第一章 软件产业的形成与发展 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软件产品的历史 5
1.3软件产业的形成 7
1.3.1软件产业的概念 7
1.3.2软件产业发展过程 7
1.3.3软件产业的业务范围 8
1.3.4软件产业的发展现状 8
1.4振兴软件产业的措施 10
习题一 12
第二章 科技软件及软件工程概述 13
2.1科技软件 13
2.1.1科技软件的概念 13
2.1.2数学软件 14
2.1.3辅助性软件 15
2.1.4结构工程软件 16
2.1.5专业性技术软件 16
2.1.6人工智能软件 17
2.2科技软件的功能与结构 18
2.2.1功能与结构的发展阶段 18
2.2.2发展趋势 20
2.3科技软件的评价 22
2.3.1可移植性 22
2.3.2可用性 25
2.3.3可维护性 26
2.3.4文档的完善性 26
2.4大中型科技软件的特点 27
2.5软件工程概述 27
2.5.1软件工程登台 28
2.5.2软件工程基础理论 30
2.5.3软件工程原理 31
2.5.4软件工程中的几个基本概念 32
2.5.5软件工程标准化 34
2.6软件工具与软件工程环境 35
2.6.1软件工具 35
2.6.2软件工程环境 36
2.7软件生存周期和软件开发模型 39
2.7.1瀑布式开发模型 40
2.7.2原型化开发模型 42
2.7.3进程组开发模型 46
习题二 48
第三章 可行性研究与软件计划 49
3.1问题定义 49
3.2可行性研究 49
3.2.1可行性研究的目的与任务 49
3.2.2可行性研究的步骤 50
3.2.3系统流程图 51
3.3软件作用范围 55
3.4资源分析 56
3.4.1人员资源 56
3.4.2硬件资源 57
3.4.3软件资源 57
3.5软件的成本估算 58
3.5.1估算中的计量单位 58
3.5.2软件成本估算方法 59
3.5.3软件成本估算模型 60
3.5.4语句行成本估算技术 66
3.5.5任务—工作量成本估算技术 67
3.5.6自动化成本估算技术 68
3.5.7成本估算实例 69
3.6软件开发进度安排 71
3.7软件计划说明书 73
3.8软件计划复审 74
习题三 74
第四章 软件需求分析 75
4.1需求分析概述 75
4.2需求分析的重要性 75
4.3需求分析的困难 77
4.4需求分析的任务 78
4.5需求定义方法 79
4.6需求分析方法(SA法) 80
4.6.1数据流图 80
4.6.2数据流图的画法 83
4.6.3数据字典 90
4.6.4 SA方法的分析步骤 92
4.7软件需求规格说明 93
4.7.1需求规格说明的特征 93
4.7.2需求规格说明的组成 94
4.8复审 95
4.9需求分析工具简介 95
习题四 97
第五章 软件设计 98
5.1软件设计任务 98
5.2软件设计步骤 101
5.3软件结构与软件过程 101
5.3.1软件结构 102
5.3.2软件过程 104
5.4软件设计的概念和原理 105
5.4.1模块化 105
5.4.2抽象化 106
5.4.3信息隐蔽与局部化 107
5.4.4模块独立性 107
5.5软件设计指导原则 112
5.6图形工具 115
5.6.1层次图 115
5.6.2 HIPO图 115
5.6.3结构图 118
5.7 SD方法 120
5.7.1软件结构的标准形式 120
5.7.2 SD设计步骤 123
5.7.3实例 128
5.8 Jackson方法 134
5.8.1 Jackson图 134
5.8.2 Jackson方法设计步骤 136
5.8.3一个例子 137
5.8.4结构冲突和回溯 141
5.8.5应用范围 145
5.9详细设计 145
5.9.1结构程序设计方法 146
5.9.2详细设计工具 149
5.9.3 PAM 159
5.10设计文档 163
5.11设计复审 164
习题五 165
第六章 编码 167
6.1编程语言分类 167
6.2编程语言的特性 170
6.3工程观点 172
6.4编程语言的选择准则 172
6.5编码风格 173
6.5.1代码文件 173
6.5.2数据说明 176
6.5.3语句构造 177
6.5.4输入/输出(I/O) 180
6.5.5功效 182
习题六 183
第七章 软件测试 185
7.1测试的复杂性 185
7.2测试阶段的任务 186
7.3测试的基本原则 188
7.4测试方法 189
7.4.1黑箱法 189
7.4.2白箱法 196
7.5测试过程 199
7.5.1单元测试 200
7.5.2集成测试 202
7.5.3验收测试 205
7.6测试规格说明 206
7.7自动测试工具 207
习题七 209
第八章 软件维护 210
8.1软件维护的定义 210
8.2软件维护的特点 212
8.2.1结构化维护与非结构化维护 212
8.2.2维护的代价 212
8.2.3维护中经常遇到的问题 213
8.3可维护性 214
8.3.1影响可维护性的环境因素 214
8.3.2影响维护活动因素的分析 214
8.3.3可维护性的定量评价 215
8.3.4可维护性复审 216
8.4维护技术 216
8.5维护过程 216
8.5.1维护组织 217
8.5.2维护报告 217
8.5.3维护的事件流 218
8.5.4保存维护记录 219
8.5.5评价维护活动 220
8.6维护的副作用 220
8.6.1编码的副作用 221
8.6.2数据的副作用 221
8.6.3文档的副作用 221
8.7维护支援工具和技术 222
8.8小结 224
习题八 226
第九章 软件工程管理 228
9.1软件工程管理导论 228
9.2软件的行业管理与企业管理概述 229
9.3软件项目管理 229
9.3.1人员管理 229
9.3.2组织管理 230
9.3.3成本管理 233
9.3.4项目计划的管理 235
9.3.5质量管理 237
9.4文档管理 238
9.4.1文档的重要性 238
9.4.2文档的分类 239
9.4.3文档编制应考虑的因素 242
9.4.4文档管理规范 243
9.4.5文档编制实施规定的实例 246
9.5软件管理工具 248
习题九 249
主要参考文献 249