《软件工程导论(第六版)》复习路线

《软件工程导论(第六版)》复习路线

一、软件工程学概述

1.1软件危机

1.1.1软件危机的介绍

1.1.2产生软件危机的原因

1.1.3消除软件危机的途径

1.2软件工程

1.2.1软件工程的介绍

1.2.2软件工程的基本原理

1.2.3软件工程方法学

1.3软件生命周期

1.4软件过程

1.4.1瀑布模型

1.4.2快速原型模型

1.4.3增量模型

1.4.4螺旋模型

1.4.5喷泉模型

1.4.6 Rational统一过程

1.4.7敏捷过程与极限编程

1.4.8微软过程

二、可行性研究

2.1可行性研究的任务

2.2可行性研究过程

2.3系统流程图

2.3.1符号

2.3.2例子

2.3.3分层

2.4数据流图

2.4.1符号

2.4.2例子

2.4.3命名

2.4.4用途

2.5数据字典

2.5.1数据字典的内容

2.5.2定义数据的方法

2.5.3数据字典的用途

2.5.4数据字典的实现49

2.6成本/效益分析

2.6.1成本估计

2.6.2成本/效益分析的方法

三、需求分析

3.1需求分析的任务

3.1.1确定对系统的综合要求

3.1.2分析系统的数据要求

3.1.3导出系统的逻辑模型

3.1.4修正系统开发计划

3.2与用户沟通获取需求的方法

3.2.1访谈

3.2.2面向数据流自顶向下求精

3.2.3简易的应用规格说明技术

3.2.4快速建立软件原型

3.3分析建模与规格说明

3.3.1分析建模

3.3.2软件需求规格说明

3.4实体联系图

3.4.1数据对象

3.4.2属性

3.4.3联系

3.4.4实体联系图的符号

3.5数据规范化

3.6状态转换图

3.6.1状态

3.6.2事件

3.6.3符号

3.6.4例子

3.7其他图形工具

3.7.1层次方框图

3.7.2Warnier图

3.7.3IPO图

3.8验证软件需求

3.8.1从哪些方面验证软件需求的正确性

3.8.2验证软件需求的方法

3.8.3用于需求分析的软件工具

四、形式化说明技术

4.1概述

4.1.1非形化方法的缺点

4.1.2形式化方法的优点

4.1.3应用形式化方法的准则

4.2有穷状态机

4.3 Petri网

4.4 Z语言

五、总体设计

5.1设计过程

5.2设计原理

5.2.1模块化

5.2.2抽象

5.2.3逐步求精

5.2.4信息隐藏和局部化

5.2.5模块独立

5.3启发规则

5.4描绘软件结构的图形工具

5.4.1层次图和HIPO图

5.4.2结构图

5.5面向数据流的设计方法

5.5.1概念

5.5.2变换分析

5.5.3事务分析

5.5.4设计优化

六、详细设计

6.1结构程序设计

6.2人机界面设计

6.2.1设计问题

6.2.2设计过程

6.2.3人机界面设计指南

6.3过程设计的工具

6.3.1程序流程图

6.3.2盒图

6.3.3PAD图

6.3.4判定表

6.3.5判定树

6.3.6过程设计语言

6.4面向数据结构的设计方法

6.4.1Jackson图

6.4.2改进的Jackson图

6.4.3Jackson方法

6.5程序复杂程度的定量度量

6.5.1McCabe方法

6.5.2Halstead方法

第7章实现

7.1编码

7.1.1选择程序设计语言

7.1.2编码风格

7.2软件测试基础

7.2.1软件测试的目标

7.2.2软件测试准则

7.2.3测试方法

7.2.4测试步骤

7.2.5测试阶段的信息流

7.3单元测试

7.3.1测试重点

7.3.2代码审查

7.3.3计算机测试

7.4集成测试

7.4.1自顶向下集成

7.4.2自底向上集成

7.4.3不同集成测试策略的比较

7.4.4回归测试

7.5确认测试

7.5.1确认测试的范围

7.5.2软件配置复查

7.5.3Alpha和Beta测试

7.6白盒测试技术

7.6.1逻辑覆盖

7.6.2控制结构测试

7.7黑盒测试技术

7.7.1等价划分

7.7.2边界值分析

7.7.3错误推测

7.8调试

7.8.1调试过程

7.8.2调试途径

7.9软件可靠性

7.9.1基本概念

7.9.2估算平均无故障时间的方法

第8章维护

8.1软件维护的定义

8.2软件维护的特点

8.2.1结构化维护与非结构化维护差别巨大

8.2.2维护的代价高昂

8.2.3维护的问题很多

8.3软件维护过程

8.4软件的可维护性

8.4.1决定软件可维护性的因素

8.4.2文档1958.4.3可维护性复审

8.5预防性维护

8.6软件再工程过程

九、面向对象方法学引论

9.1面向对象方法学概述

9.1.1面向对象方法学的要点

9.1.2面向对象方法学的优点

9.2面向对象的概念

9.2.1对象

9.2.2其他概念

9.3面向对象建模

9.4对象模型

9.4.1类图的基本符号

9.4.2表示关系的符号

9.5动态模型

9.6功能模型

9.6.1用例图

9.6.2用例建模

9.7 3种模型之间的关系

十、面向对象分析

10.1面向对象分析的基本过程

10.1.1概述

10.1.23个子模型与5个层次

10.2需求陈述

10.2.1书写要点

10.2.2例子

10.3建立对象模型

10.3.1确定类与对象

10.3.2确定关联

10.3.3划分主题

10.3.4确定属性

10.3.5识别继承关系

10.3.6反复修改

10.4建立动态模型

10.4.1编写脚本

10.4.2设想用户界面

10.4.3画事件跟踪图

10.4.4画状态图

10.4.5审查动态模型

10.5建立功能模型

10.5.1画出基本系统模型图

10.5.2画出功能级数据流图

10.5.3描述处理框功能

10.6定义服务

十一、面向对象设计

11.1面向对象设计的准则

11.2启发规则

11.3软件重用

11.3.1概述

11.3.2类构件

11.3.3软件重用的效益

11.4系统分解

11.5设计问题域子系统

11.6设计人机交互子系统

11.7设计任务管理子系统

11.8设计数据管理子系统

11.8.1选择数据存储管理模式

11.8.2设计数据管理子系统

11.9设计类中的服务

11.9.1确定类中应有的服务

11.9.2设计实现服务的方法

11.10设计关联

11.11设计优化

11.11.1确定优先级

11.11.2提高效率的几项技术

11.11.3调整继承关系

十二、面向对象实现

12.1程序设计语言

12.1.1面向对象语言的优点

12.1.2面向对象语言的技术特点

12.1.3选择面向对象语言

12.2程序设计风格

12.2.1提高可重用性

12.2.2提高可扩充性

12.2.3提高健壮性

12.3测试策略

12.3.1面向对象的单元测试

12.3.2面向对象的集成测试

12.3.3面向对象的确认测试

12.4设计测试用例

12.4.1测试类的方法

12.4.2集成测试方法

十三、软件项目管理

13.1估算软件规模

13.1.1代码行技术

13.1.2功能点技术

13.2工作量估算

13.2.1静态单变量模型

13.2.2动态多变量模型

13.2.3COCOMO2模型

13.3进度计划

13.3.1估算开发时间

13.3.2Gantt图

13.3.3工程网络

13.3.4估算工程进度

13.3.5关键路径

13.3.6机动时间

13.4人员组织

13.4.1民主制程序员组

13.4.2主程序员组

13.4.3现代程序员组

13.5质量保证

13.5.1软件质量

13.5.2软件质量保证措施

13.6软件配置管理

13.6.1软件配置

13.6.2软件配置管理过程

13.7能力成熟度模型