第一篇 软件工程概念 3
第1章 软件工程概述 3
1.1软件及软件危机 3
1.1.1软件的概念 3
1.1.2软件的分类 4
1.1.3软件的发展 5
1.1.4软件危机 5
1.1.5软件危机产生的原因 6
1.1.6解决软件危机的途径 7
1.2软件工程 7
1.2.1软件工程的定义 7
1.2.2软件工程研究内容 7
1.2.3软件工程目标 8
1.2.4软件工程的基本原则 8
1.2.5软件工程的三要素 9
1.2.6软件工程所面临的问题 9
1.3小结 10
习题 10
第2章 软件过程 11
2.1软件生命周期的基本任务 11
2.1.1软件定义阶段 11
2.1.2软件设计阶段 12
2.1.3运行与维护阶段 13
2.2软件生命周期模型 13
2.2.1瀑布模型 13
2.2.2增量模型 14
2.2.3同步-稳定模型 16
2.2.4螺旋模型 16
2.2.5喷泉模型 16
2.2.6基于知识的模型 17
2.3软件开发方法 18
2.3.1结构化方法 18
2.3.2Jackson方法 19
2.3.3维也纳开发方法 19
2.3.4面向对象的方法 19
2.4软件开发工具与开发环境 19
2.4.1软件开发工具 19
2.4.2软件开发环境 20
2.4.3计算机辅助软件工程 20
2.5小结 20
习题 20
第二篇 软件工程工具 23
第3章 Project 23
3.1 Project 2010简介 23
3.1.1 Project的设计目的 23
3.1.2 Project 2010的功用 23
3.1.3 Project的版本历史 24
3.1.4 Project的优势 24
3.2 Project 2010工作界面 24
3.2.1 Project 2010工作界面展示 24
3.2.2项目管理专用术语概述 25
3.3 Project 2010项目管理 26
3.3.1 Project操作入门 26
3.3.2利用Project进行项目管理 28
3.4小结 30
习题 30
第4章 Visio 31
4.1 Visio简介 31
4.2 Visio的安装步骤 31
4.3 Visio建模举例 32
4.3.1业务流程图 32
4.3.2数据流程图 34
4.4小结 36
习题 36
第5章 PowerDesigner 37
5.1 PowerDesigner概述 37
5.1.1 PowerDesigner简介 37
5.1.2 PowerDesigner的功用 37
5.1.3 PowerDesigner的版本历史 37
5.1.4 PowerDesigner的优势 37
5.2 PowerDesigner工作界面 38
5.3 PowerDesigner数据模型及使用 38
5.3.1业务处理模型 38
5.3.2概念数据模型 40
5.3.3物理数据模型 42
5.4小结 44
习题 44
第6章 Rational Rose 45
6.1 Rational Rose简介 45
6.2 Rational Rose的安装步骤 45
6.3 Rational Rose建模举例 46
6.3.1业务用例图 46
6.3.2用例图 46
6.3.3类图 47
6.3.4协作图 48
6.3.5活动图 48
6.3.6状态图 48
6.3.7构件图和部署图 49
6.4小结 49
习题 49
第三篇 软件工程方法学 53
第7章 结构化的分析技术 53
7.1可行性分析 53
7.1.1可行性分析的任务 53
7.1.2可行性分析的步骤 53
7.1.3可行性分析的主要内容 55
7.1.4方案选择与可行性分析报告 60
7.2需求分析 60
7.2.1需求分析的任务 61
7.2.2需求获取的途径 62
7.2.3需求分析过程 64
7.2.4需求分析技术 66
7.2.5需求规格及评审 70
7.3小结 71
习题 71
第8章 结构化的设计技术 72
8.1概要设计 72
8.1.1概要设计的概念和任务 72
8.1.2概要设计的原则 72
8.1.3软件设计的步骤和方法 78
8.1.4软件设计规则和图形工具的应用 80
8.2详细设计 90
8.2.1详细设计的概念和任务 90
8.2.2过程设计的工具 91
8.2.3面向数据结构的设计方法 96
8.2.4人机交互界面设计 101
8.2.5程序复杂度的度量 102
8.3小结 106
习题 106
第9章 结构化的实现技术 108
9.1软件实现 108
9.1.1程序语言的选择 108
9.1.2编码风格的重要性 109
9.2软件测试 110
9.2.1软件测试的任务和目标 110
9.2.2软件测试方法 111
9.2.3软件测试步骤 119
9.2.4调试策略和常用调试技术 123
9.2.5估算软件平均无故障时间 124
9.3小结 127
习题 127
第10章 面向对象的方法学和统一建模语言UML 129
10.1面向对象方法概述 129
10.1.1面向对象方法学的优点 130
10.1.2面向对象的概念 131
10.2统一建模语言UML概述 133
10.2.1 UML的产生和发展 134
10.2.2 UML内容 135
10.2.3 UML的语义和表示法 136
10.3 UML的图 136
10.3.1用例图 136
10.3.2类图 137
10.3.3对象图 141
10.3.4状态图 142
10.3.5顺序图 143
10.3.6活动图 144
10.3.7协作图 144
10.3.8构件图 145
10.3.9部署图 146
10.4小结 146
习题 146
第11章 面向对象方法应用 147
11.1面向对象分析 147
11.1.1面向对象分析过程概述 147
11.1.2面向对象分析的模型和层次 147
11.2建立对象模型 149
11.2.1确定类和对象 149
11.2.2确定类之间的关联 150
11.2.3划分主题 151
11.3建立动态模型 152
11.3.1编写脚本 152
11.3.2设计用户界面 153
11.3.3画顺序图 153
11.3.4画状态图 154
11.4建立功能模型 154
11.5面向对象设计 155
11.5.1面向对象设计准则 156
11.5.2系统设计 157
11.5.3对象设计 162
11.6面向对象实现 165
11.6.1程序设计语言的选择 165
11.6.2设计面向对象程序设计 169
11.6.3面向对象的测试 171
11.7小结 172
习题 172
第12章 软件维护 173
12.1软件维护的内容 173
12.1.1软件维护的特点 173
12.1.2软件维护的分类 173
12.1.3软件维护策略 174
12.2软件维护的过程 174
12.2.1建立维护机构 174
12.2.2软件维护工作流程 174
12.3软件的可维护性管理 175
12.3.1软件可维护性概念 175
12.3.2软件可维护性度量指标 175
12.3.3提高可维护性方法 176
12.4小结 178
习题 178
第四篇 软件工程管理 181
第13章 软件项目计划管理 181
13.1软件项目计划的制定 181
13.1.1进度安排 181
13.1.2软件工程标准 184
13.1.3软件项目成本估算方法 185
13.2软件项目组织管理 189
13.2.1民主制程序员组 190
13.2.2主程序员组 190
13.2.3现代程序员组 191
13.2.4软件项目组织形式 192
13.3软件配置管理 192
13.3.1配置管理的意义 193
13.3.2软件配置过程 193
13.4小结 195
习题 195
第14章 软件风险管理 196
14.1软件风险概述 196
14.1.1软件风险定义 196
14.1.2常见软件风险 196
14.1.3软件风险管理的意义 197
14.2软件风险的识别 198
14.2.1软件风险识别依据 198
14.2.2软件风险识别过程 198
14.2.3软件风险识别方法技术 199
14.3软件风险分析 201
14.3.1软件风险分析过程 201
14.3.2软件风险分析方法技术 202
14.4软件风险监控与规避 202
14.4.1软件风险监控 202
14.4.2软件风险规避 203
14.5 RMMM计划 203
14.6小结 204
习题 204
第15章 软件企业成熟度模型 205
15.1 CMM概述 205
15.1.1 CMM的产生和发展 205
15.1.2 CMM各等级特征 206
15.2 CMM的结构 207
15.2.1关键过程域 207
15.2.2关键实践 207
15.2.3共同特性 208
15.3 CMM各级中关键过程域 208
15.3.1可重复级中的关键过程域 208
15.3.2已定义级中的关键过程域 209
15.3.3已管理级中的关键过程域 210
15.3.4优化级的关键过程域 210
15.4 CMM应用 211
15.4.1软件过程评估和软件能力评价 211
15.4.2软件过程改进 212
15.5 CMM的实施与评估 213
15.5.1软件过程评估必要性 213
15.5.2 CMM评估步骤 215
15.5.3企业实施CMM过程 215
15.6中国软件企业CMM的应用现状与趋势 218
15.7小结 219
习题 219
参考文献 220