第一章

  1. 软件不仅包括程序,还包括程序的处理对象——数据,以及与程序开发、维护和使用有关的图文资料,既文档
  2. 软件的特点:
    • 软件是一种逻辑实体,具有抽象性
    • 软件的生产与硬件制造不同
    • 软件在运行使用中不会磨损
    • 软件的开发至今尚未完全摆脱手工艺的开发方式
    • 软件的开发和运行必须依附于特定的计算机系统环境
  3. 软件的分类
    • 基于功能不同:系统软件、支撑软件、应用软件
    • 根据软件服务对象不同:通用软件、定制软件
    • 按照软件产品规模不同:微型软件、小型软件、中型软件、大型软件、超大型软件
    • 根据工作方式不同:实时软件、分时软件、交互式软件、批处理软件
  4. 软件危机表现
    • 产品的功能或特性与需求不符
    • 相比越来越廉价的硬件,软件代价过高
    • 软件质量难以得到保证,且难以发挥硬件潜能
    • 难以准确估计软件开发、维护的费用、开发周期
    • 难以控制开发风险,开发速度赶不上市场变化
    • 软件产品维护困难,集成系统更困难
    • 软件文档不完备,并且存在文档内容与产品不符的情况
  5. IEEE对软件工程的定义:将系统化、严格约束的、可量化的方法应用于软件开发、运行和维护,既将工程化应用于软件
  6. 软件工程三要素:过程、方法、工具
  7. 软件工程研究:方法与技术、工具与环境、管理技术、标准与规范
  8. 软件工程的基本目标:
    • 到达要求的软件功能
    • 取得较好的软件性能
    • 开发出高质量的软件
    • 付出较低的开发成本
    • 需要较低的维护费用
    • 能按时完成开发工作,及时交付使用
  9. 软件工程的基本原则:
    • 用分阶段的生命周期计划进行严格的管理
    • 坚持进行阶段评审
    • 实行严格的产品控制
    • 采用现代程序设计技术
    • 软件工程结果应能被清楚地审查
    • 开发小组的人员应该少而精
    • 承认不断改进软件工程实践的必要性
  10. 软件工程开发方法:结构化方法、面向数据结构方法、面向对象方法、形式化方法

第二章

  1. 软件生命周期的6个阶段:可行性研究、需求分析、软件设计、编码、软件测试、软件维护
  2. 软件周期模型:
    • 瀑布模型:

      1. 优点:过程模型简单,执行容易
      2. 缺点:无法适应变更
    • 快速原型模型
      1. 优点:可低成本、快速地确认需求
      2. 缺点:选用的开发技术和工具不一定符合主流的发展
    • 增量模型
      1. 优点:将待开发的软件系统模块化、以组件为单位进行开发降低了软件开发的风险、开发顺序灵活
      2. 缺点:要求待开发的软件系统可以被模块化
    • 螺旋模型:瀑布模型与快速原型模型相结合,再加入风险分析
      1. 优点:将风险分析扩展到各个阶段中,大幅度降低了软件开发的风险
      2. 缺点:控制和管理较为复杂、可操作性不强,对项目管理人员的要求较高
    • 喷泉模型
    • 统一软件开发模型过程
    • 敏捷模型
    • 极限编程

第四章

  1. 需求分析的两个任务:①需求分析的建模、②需求分析的描述
  2. 需求分析的4个步骤:①需求获取、②分析建模、③需求描述、④需求验证
  3. 需求管理:是一种用于查找、记录、组织和跟踪系统需求变更的系统化方法
  4. 常用建模的方法:实体-关系图(数据建模)、数据流图、状态转换图(行为建模)
  5. E-R图:
    • 基本概念:实体、关系、属性
    • 关系类型:一对一(1:1)、一对多(1:n)、多对多(n:m)

第五章

  1. 软件设计的重要原则:模块化
  2. 模块是数据说明、可执行语句等程序对象的集合
  3. 软件设计分类:
    • 从活动任务:对软件需求进行数据设计、体系结构设计、接口设计、构件设计、部署设计
    • 从工程管理:概要设计、详细设计
    • 要进行结构化的设计,必须依据结构化分析的结果
  4. 表示结构化的图形工具:结构图
  5. 数据流分为:变换型数据流、事务型数据流
  6. 结构化设计的工具:流程图、盒图(N-S图)、PAD图、判定表、判定树、过程设计语言
  7. 数据库结构设计包括:概念结构设计、逻辑结构设计、物理结构设计
  8. 界面设计要考虑的问题:系统响应时间、用户救助机制、出错信息、命令方式
  9. 接口设计:用户接口、外部接口、内部接口

第六章

  1. 面向对象基本概念(P93 选择、判断)

    • 面向对象
    • 对象
    • 消息
    • 类的特性:抽象、继承、封装、多态、重写
    • 包的接口类
  2. 面向对象的实施步骤
    • 面向对象分析
    • 面向对象设计
    • 面向对象实现
    • 面向对象测试
  3. UML的特点:统一标准、面向对象、可视化、独立于过程、容易掌握与使用、与编程语言的关系
  4. UML的5类图(9种图形):
    • 静态模型:用例图、类图(包含包图)、对象图、构件图、部署图
    • 动态模型:状态图、活动图、顺序图、协作图
  5. 参与者:人形符号、用例:椭圆
  6. 用例之间的关系:包含(include)、扩展(extend)、泛化(generalization)
  7. 类与类之间的关系:关联、依赖、泛化、实现

第七章

  1. 目标系统的类划分:边界类、控制类、实体类
  2. 面向对象的需求分析:获取需求、建立用例模型、识别分析类(对象)、定义类之间的关系、定义交互行为、建立分析模型
  3. 面向对象分析的原则:①定义有实际意义的对象、②模型的描述要规范、准确、③共享性、④封装性
  4. 建立对象模型的主要活动:划分主题、确定类与对象、识别结构、确定属性、确定服务
  5. 建立功能模型的步骤:①确定输入和输出值、②画数据流图、③定义服务

第八章

  1. 软件体系结构的模型:结构模型、框架模型、动态模型、过程模型、功能模型
  2. 典型的软件体系结构风格:数据流风格、调用/返回风格、独立构件风格、虚拟机风格、仓库风格
  3. 软件质量属性:系统属性、商业属性、构架属性
  4. 分布式系统结构:多处理器体系结构、客户机/服务器体系结构、分布式对象体系结构、对等端体系结构、代理
  5. 体系结构框架:
    • 模型-视图-控制器(MVC)
    • 模型-视图-表示器(MVP)
    • J2EE体系结构框架
    • PCMEF框架
  6. 设计模式:工厂模式、桥接模式、策略模式、其他模式、

第九章

  1. 从分析到设计的过渡是一个逐渐扩充、细化和完善分析阶段所得到的各种模型过程
  2. 设计建模则要考虑系统的具体实现环境约束
  3. 面向对象设计过程
    • 建立软件体系结构环境图

      1. 上级系统、下级系统、同级系统、参与者
    • 软件体系结构设计
    • 对各个子系统进行设计
    • 对象设计优化
  4. 面向对象设计原则:模块化、抽象化、信息隐藏、低耦合、高内聚、复用性
  5. 系统设计的步骤:①将系统分解为子系统、设计问题域子系统、设计人机交互子系统、设计任务管理子系统、设计数据管理子系统

第十章

  1. 低级语言和高级语言的区别

第十一章

  1. 软件测试的目的是:为了发现软件产品中存在的软件缺陷,进而保证软件产品的质量
  2. 软件测试的原则:
    • 完全测试是不可能的
    • 测试中有风险存在
    • 软件测试只能表明缺陷的存在,而不能保证产品已经没有缺陷了
    • 软件产品中所存在的错误数与已发现的错误数成正比
    • 要避免软件测试的杀虫剂现象
    • 在设计测试用例时,应包括输入数据和预期输出结果两个部分,并且,输入数据不仅应该包括合法情况,还应该包括非法的输入情况
    • 要集中测试容易出错或错误较多的模块
    • 应该长期保留所有的测试用例
    • 使开发人员和测试人员分立,既软件的开发工作和测试工作不能由同一部分人来完成
    • 测试工作应该尽早开始,并且贯穿于整个开发过程中
  3. 开发阶段:单元测试(白盒)、集成测试(黑盒)、确认测试、系统测试、验收测试
  4. 按测试技术:白盒测试、黑盒测试、灰盒测试
  5. 常用软件测试过程模型:V模型、W模型、H模型
  6. 测试用例设计:
    • 在任何情况下都必须选择边界值分析方法
    • 必要时用等价类划分法补充一些测试用例
    • 用错误推测法再追加一些测试用例
    • 对照程序逻辑,检查已经设计出的测试用例的逻辑覆盖度
    • 如果程序的功能说明中含有输入条件的组合情况,则可选用因果图法
  7. 黑盒测试技术:等价类划分法、边界值分析法、错误推断法、因果图法、决策表法、场景法
  8. 软件测试的一般步骤:单元测试、集成测试、确认测试、系统测试

软件工程(吕云翔第二版)部分知识点相关推荐

  1. 数据库系统原理(第二版)知识点总结

    目录 第一章 概述 基本知识 数据模型*** 数据模型的组成要素 数据模型的分类 数据库系统的结构 第二章 关系运算 2.1 关系运算语言 (1)关系代数语言 第三章 数据完整性 实体完整性:主属性的 ...

  2. 软件工程(吕云翔)概述问答题(一)

    1. 与计算机硬件相比,计算机软件有哪些特点? 计算机硬件是有形的设备,具有明显的可见性.但是人们却不能直接观察计算机软件的物理形态,只能通过他的实际运行情况来了解他的功能,特性和质量. 人们在分析, ...

  3. 唐朔飞版本计算机组成原理(第二版)各章知识点思维导图

    唐朔飞版本计算机组成原理(第二版)各章知识点思维导图 各位同学在学习计算机组成原理这门课的过程中,常常会遇到知识点繁杂,不方便记忆的情况,这个时候将书中的重点文字内容抽出做成知识图谱就显得尤为重要.作 ...

  4. 大动作!!!公开《大道至简——软件工程实践者的思想》电子版(第二版)

    哈哈,其实这个标题是七年前第一次发布这本小书的电子版时使用的.那个时候比现在爱咋呼,所以标题也就有点哗众,现在在这么写,只是怀个旧罢了. 不过真的是要发布这本书的新电子版来着.关于这次发布的原因,在前 ...

  5. 软件工程(第三版) 期末复习

    学习资料:软件工程(第三版)齐治昌等 学习计划:30h内 题型:选择题,填空题,判断题,简答题 update:2019/01/08补充了一些 update:2019/01/09国防科大的pdf版,在网 ...

  6. 十年之后,CV经典教材《计算机视觉:算法与应用》迎来第二版,初稿开放下载...

    击上方"3D视觉工坊",选择"星标" 干货第一时间送达 来源丨机器之心 你也在用<计算机视觉:算法与应用>入门 CV 吗?或许你手里的版本已经有点过 ...

  7. 拒绝从入门到放弃_《Python 核心编程 (第二版)》必读目录

    目录 目录 关于这本书 必看知识点 最后 关于这本书 <Python 核心编程 (第二版)>是一本 Python 编程的入门书,分为 Python 核心(其实并不核心,应该叫基础) 和 高 ...

  8. python基础教程第二版和第三版哪个好-python基础教程 2版和3版哪个适合新手?!...

    python基础教程 2版和3版哪个适合新手? 现在学是学python3. 两者的差异发者本身影响并不大,个别语法细微的差比如python3的print数方式使用,一些常用模块的名称差异,一些机制的差 ...

  9. 零基础入门学python 第二版-《零基础入门学习Python》第二版和第一版的区别在哪里呢?...

    第一版 时光荏苒,一晃间,距离<零基础入门学习 Python>出版(2016年11月)已经过去两年多了,在这段时间里, Python 逐步走入了大家的视野,这门语言因其简洁的语法风格,在云 ...

  10. python基础教程第三版和第二版选哪个-python基础教程 2版和3版哪个适合新手?!...

    python基础教程 2版和3版哪个适合新手? 现在学是学python3. 两者的差异发者本身影响并不大,个别语法细微的差比如python3的print数方式使用,一些常用模块的名称差异,一些机制的差 ...

最新文章

  1. 使用NLPIR 进行中文分词并标注词性
  2. 学习MSCKF笔记——后端、状态预测、状态扩增、状态更新
  3. 最细的实现剖析:jQuery 2.0.3源码分析Deferred
  4. 自助餐比喻秒懂微服务
  5. Python学习笔记:多线程和多进程(转1)
  6. Linux上搭建Samba,实现windows与Linux文件数据同步
  7. LeetCode 20. 有效的括号 golang(三)
  8. 【牛客 - 317D】小a与黄金街道(数论,tricks)
  9. php 打印 trace,php xdebug trace 调试的问题
  10. spring(7)---深入理解Spring核心技术——Spring中的各模块详解
  11. 基于Springboot的高校课程管理系统 课程设计报告 毕业设计 包括报告和程序包
  12. 统计自然语言处理(第二版)学习笔记:第一章
  13. 计算机专业基础820考什么,820计算机专业基础考纲
  14. Linux基础课程汇总-辛舒展-专题视频课程
  15. CLIP模型的使用和训练-利用CLIP实现zero-shot的分类任务
  16. 页码数字统计问题(数字统计问题)
  17. 软考知识点---10数据库基础
  18. 图神经网络用于RNA-蛋白质相互作用的新预测
  19. python百度、必应、搜狗根据关键字爬取图片
  20. 智能优化算法:多目标粒子群优化算法(MOPSO)

热门文章

  1. 计算机蓝屏分析报告,如何获取电脑蓝屏后的错误报告DMP文件
  2. hive 旧版本版本下载
  3. 采样方法(二)MCMC相关算法介绍及代码实现
  4. Java简单输出,输出Hello World,将代码上传到Github
  5. c盘满了一键检测,清理,瘦身!
  6. C语言程序——math库的函数应用
  7. java获取中文拼音,java实现根据汉字获取拼音
  8. 判断素数的方法(java)
  9. 【老生谈算法】matlab遗传算法工具箱源码——遗传算法
  10. 电路故障检测与调试分析