前言 1
第1章 软件工程概述 1
1.1 软件工程产生背景 1
1.1.1 软件特点及分类 1
1.1.2 软件危机 3
1.2 软件工程的要素 3
1.2.1 软件工程的定义 3
1.2.2 软件工程三要素 4
1.2.3 软件工程原理与原则 4
1.3 软件过程与软件生存周期 5
1.3.1 软件过程的概念 5
1.3.2 软件过程的构造 5
1.3.3 软件生存周期 7
1.4 软件工程方法学与软件开发模型 7
1.4.1 软件工程方法学 7
1.4.2 软件开发模型 10
1.5 软件开发工具与环境 13
1.5.1 软件工具 13
1.5.2 软件开发环境 14
本章小结 15
思考题 15
第2章 软件工程标准化与工程化 16
2.1 软件工程标准 16
2.1.1 软件工程标准概述 16
2.1.2 软件工程标准的层次 16
2.1.3 我国的软件标准 17
2.2 软件文档与编写要求 18
2.2.1 文档的分类 19
2.2.2 文档编制的要求 20
2.3 软件质量 22
2.4 软件质量保证与过程改进 23
2.4.1 质量保证的概念 23
2.4.2 软件过程改进 24
2.4.3 软件过程成熟度模型 25
2.4.4 ISO 9000标准及软件质量认证 28
2.4.5 软件过程工程化 29
本章小结 32
思考题2 32
第3章 软件项目管理 33
3.1 软件项目管理概述 33
3.2 软件项目启动与计划 34
3.3 软件项目人员组织与技能 40
3.3.1 项目组织结构的形式 40
3.3.2 程序设计小组的形式 41
3.3.3 人员配备 42
3.4 软件项目实施与控制 43
3.4.1 软件项目风险管理 43
3.4.2 软件项目进度管理 45
3.4.3 软件项目质量管理 46
3.5 软件配置管理 46
本章小结 48
思考题 348
第4章 系统工程与需求工程方法 49
4.1 系统思维方法 49
4.1.1 系统的概念 49
4.1.2 系统思维 50
4.1.3 系统分析员 51
4.2 计算机系统工程 52
4.3 需求获取方法 54
本章小结 56
思考题 457
第5章 可行性研究 58
5.1 可行性研究步骤与任务 58
5.2 可行性分析 59
本章小结 62
思考题 562
第6章 结构化分析与设计 63
6.1 需求分析任务 63
6.1.1 需求分析任务与步骤 63
6.1.2 需求获取的内容 63
6.2 结构化分析 64
6.2.1 功能建模 66
6.2.2 数据建模 70
6.2.3 行为建模 75
6.3 需求规格说明书编写与评审 75
6.4 结构化设计概述 75
6.4.1 任务与步骤 76
6.4.2 设计原则与原理 77
6.5 软件结构设计 81
6.5.1 结构表示 81
6.5.2 面向数据流的设计方法 82
6.6 人机界面设计 87
6.6.1 人机界面设计问题 87
6.6.2 人机界面设计过程 88
6.6.3 人机界面设计指南 89
6.6.4 人机界面测试与评估 92
6.7 过程设计 93
6.7.1 结构化程序设计方法 93
6.7.2 图形表示法 94
6.7.3 表格表示法 96
6.7.4 语言描述法 96
6.8 软件设计规格说明书编写与评审 97
本章小结 98
思考题 699
第7章 面向对象分析与设计 100
7.1 面向对象方法概述 100
7.1.1 面向对象的概念 100
7.1.2 面向对象方法学概述 102
7.1.3 统一建模语言 104
7.2 面向对象分析 122
7.2.1 用况建模 122
7.2.2 静态建模 127
7.2.3 对象模型技术 131
7.2.4 动态建模与物理建模 133
7.3 面向对象设计 134
7.3.1 系统设计 135
7.3.2 对象设计 136
案例:“图书管理系统”面向对象分析与设计 137
本章小结 145
思考题7 146
第8章 编码与实现 147
8.1 结构化程序设计 147
8.1.1 程序设计语言的选择 147
8.1.2 程序设计风格 148
8.2 程序结构复杂程度的度量 154
8.2.1 McCabe方法 154
8.2.2 Halstead方法 155
8.3 面向对象实现 157
本章小结 159
思考题8 159
第9章 软件测试 160
9.1 软件测试目标和方法 160
9.1.1 测试目标 160
9.1.2 测试方法 160
9.1.3 测试原则 161
9.2 测试步骤 162
9.2.1 单元测试 163
9.2.2 集成测试 164
9.2.3 确认测试 165
9.2.4 系统测试 165
9.3 测试用例设计 166
9.3.1 黑盒法 166
9.3.2 白盒法 169
9.4 调试 174
9.5 可靠性分析 175
9.6 面向对象测试策略 176
本章小结 178
思考题9 179
第10章 软件维护 180
10.1 软件维护过程 180
10.1.1 软件维护的定义 180
10.1.2 软件维护的特点 180
10.1.3 软件维护的过程 181
10.2 可维护性 183
10.2.1 决定可维护性的因素 183
10.2.2 提高可维护性的方法 183
10.3 再工程 184
本章小结 187
思考题10 188
附录 189
附录A 图书管理系统可行性研究报告 189
附录B 图书管理系统项目开发计划 194
附录C 图书管理系统需求规格说明书 200
附录D 图书管理系统软件设计规格说明书 209
附录E 软件工程实践指导书 221
参考文献 227