图书目录

 第1章 软件工程概论1

1.1 软件危机1

1.1.1 软件危机简介1

1.1.2 产生软件危机的原因1

1.1.3 消除软件危机的途径2

1.2 软件工程3

1.2.1 软件工程简介3

1.2.2 软件工程的基本原理3

1.2.3 软件工程方法学3

1.3 软件生命周期4

1.4 软件过程5

习题11

习题解答13

第2章 结构化分析17

2.1 可行性研究的目的17

2.2 可行性研究过程17

2.3 需求分析的任务18

2.4 与用户沟通的方法18

2.5 分析建模与规格说明19

2.6 实体-联系图20

2.7 数据流图20

2.8 数据字典21

2.9 状态转换图21

2.10 其他图形工具22

2.11 验证软件需求23  2.12 成本/效益分析23

2.12.1 成本估计23

2.12.2 成本/效益分析方法23

2.13 形式化说明技术24

习题25

习题解答27

 软件工程导论(第5版)学习辅导目  录 第3章 结构化设计45

3.1 软件设计的任务45

3.1.1 概要设计45

3.1.2 详细设计45

3.2 分析与设计的关系46

3.3 设计原理47

3.3.1 模块化与模块独立47

3.3.2 抽象47

3.3.3 逐步求精48

3.3.4 信息隐藏49

3.3.5 局部化49

3.4 度量模块独立性的标准49

3.4.1 内聚49

3.4.2 耦合49

3.5 启发规则50

3.6 描绘软件结构的图形工具50

3.7 面向数据流的设计方法50

3.7.1 数据流的类型51

3.7.2 设计步骤51

3.8 人机界面设计52

3.8.1 应该考虑的设计问题53

3.8.2 人机界面设计过程54

3.8.3 人机界面设计指南54

3.9 过程设计55

3.10 过程设计的工具55

3.11 面向数据结构的设计方法57

3.12 程序复杂程度的定量度量58

3.12.1 McCabe方法58

3.12.2 Halstead方法58

习题59

习题解答63

第4章 结构化实现83

4.1 编码83

4.1.1 选择程序设计语言83

4.1.2 编码风格84

4.2 软件测试基础84

4.3 单元测试85

4.4 集成测试86

4.5 白盒测试技术88

4.5.1 逻辑覆盖88

4.5.2 控制结构测试89

4.6 黑盒测试技术90

4.6.1 等价划分90

4.6.2 边界值分析91

4.6.3 错误推测92

4.7 调试92

4.7.1 调试过程92

4.7.2 调试途径92

4.8 软件可靠性93

4.8.1 基本概念93

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

习题96

习题解答98

第5章 维护109

5.1 软件维护的定义109

5.2 软件维护的特点110

5.3 软件维护过程111

5.4 软件的可维护性112

5.4.1 决定软件可维护性的因素112

5.4.2 文档113

5.4.3 可维护性复审113

5.5 预防性维护114

5.6 软件再工程过程114

习题116

习题解答117

第6章 面向对象方法学引论121

6.1 面向对象方法学概述121

6.1.1 面向对象方法学的要点121

6.1.2 面向对象方法学的优点122

6.1.3 面向对象的软件过程124

6.2 面向对象的概念125

6.2.1 对象125

6.2.2 其他概念126

6.3 面向对象建模127

6.4 对象模型128

6.4.1 类图的基本符号128

6.4.2 表示关系的符号129

6.5 动态模型130

6.6 功能模型130

6.6.1 用例图131

6.6.2 用例建模132

6.7 3种模型之间的关系133

习题133

习题解答134

第7章 面向对象分析141

7.1 面向对象分析的基本过程141

7.1.1 概述141

7.1.2 3个子模型与5个层次142

7.2 需求陈述142

7.3 建立对象模型143

7.3.1 确定类与对象143

7.3.2 确定关联144

7.3.3 划分主题145

7.3.4 确定属性145

7.3.5 识别继承关系145

7.3.6 反复修改146

7.4 建立动态模型146

7.4.1 编写脚本146

7.4.2 画事件跟踪图147

7.4.3 画状态图147

7.4.4 审查动态模型148

7.5 建立功能模型148

7.6 定义服务148

习题149

习题解答150

第8章 面向对象设计155

8.1 面向对象设计的准则155

8.2 启发规则156

8.3 软件重用157

8.3.1 概述157

8.3.2 类构件158

8.3.3 软件重用的效益159

8.4 系统分解159

8.5 设计问题域子系统160

8.6 设计人机交互子系统161

8.7 设计任务管理子系统161

8.8 设计数据管理子系统162

8.9 设计类中的服务163

8.10 设计关联163

8.11 设计优化164

习题165

习题解答166

第9章 面向对象实现175

9.1 程序设计语言175

9.2 程序设计风格176

9.3 面向对象的测试策略177

9.4 设计测试用例178

9.4.1 测试类的技术178

9.4.2 集成测试技术179

习题179

习题解答180

第10章 软件项目管理185

10.1 估算软件规模185

10.1.1 代码行技术185

10.1.2 功能点技术185

10.2 估算工作量187

10.2.1 静态单变量模型187

10.2.2 动态多变量模型187

10.2.3 COCOMO2模型187

10.3 进度计划188

10.3.1 估算开发时间188

10.3.2 Gantt图189

10.3.3 工程网络189

10.3.4 估算工程进度189

10.3.5 关键路径190

10.3.6 机动时间190

10.4 人员组织190

10.4.1 民主制程序员组191

10.4.2 主程序员组191

10.4.3 现代程序员组191

10.5 质量保证192

10.5.1 软件质量192

10.5.2 软件质量保证措施192

10.6 软件配置管理192

10.6.1 软件配置192

10.6.2 软件配置管理过程193

10.7 能力成熟度模型194

习题195

习题解答197

附录203

附录A 模拟试题203

试卷一203

试卷二205

试卷三207

附录B 模拟试题参考答案210

试卷一参考答案210

试卷二参考答案212

试卷三参考答案214

参考文献217