书籍详情
软件工程(第二版)
作者:张海藩编著
出版社:人民邮电出版社
出版时间:2006-01-01
ISBN:9787115140708
定价:¥35.00
购买这本书可以去
内容简介
本书是在第一版的基础上,依据教育部《高职高专教育基础课程教学的基本要求》和《高职高专教育专业人才培养目标与规格》经过全面修订而成的。在修订中强调内容的实用性,以问题带知识点的方式来阐述,反映学科最新发展方向的新内容,加强了计算机网络、面向对象软件技术等实用技术的介绍,对统一建模语言(UML)和统一过程(RUP)作了深入浅出的介绍。本书共14章,内容主要包括:软件危机与软件工程、软件生命周期及软件开发模型、计算机系统工程、需求分析、总体设计、详细设计、编码与测试、软件维护、面向对象方法学引论、面向对象的分析、面向对象系统设计、快速原型技术、软件重用技术。本书内容精练,重点突出,概念清楚,强调专业知识与工程实践相结合,注重专业技术与技能的训练,引入典型工程案例。书中含有丰富的例题与习题,便于教学与自学。适合作为高职高专、成人高校计算机及相关专业学生的教材,也可作为软件开发人员的参考书。本书所配电子教案可从中国水利水电出版社网站下载,网址为:http://WWW.waterpub.com.cn/softdown/。
作者简介
暂缺《软件工程(第二版)》作者简介
目录
第一篇 软件工程与软件过程 1
第1章 软件工程 1
1.1 软件危机 1
1.1.1 计算机系统的发展历程 1
1.1.2 软件危机的含义 2
1.1.3 产生软件危机的原因 3
1.1.4 消除软件危机的途径 5
1.2 软件工程 6
1.2.1 什么是软件工程 6
1.2.2 软件工程的基本原理 6
1.2.3 软件工程方法学 8
1.3 小结 10
习题 11
第2章 软件过程 13
2.1 软件生命周期的基本任务 13
2.2 瀑布模型 16
2.3 快速原型模型 18
2.4 增量模型 19
2.5 螺旋模型 20
2.6 喷泉模型 22
2.7 小结 23
习题 24
第二篇 传统方法学 25
第3章 结构化分析 25
3.1 概述 25
3.2 与用户通信的技术 26
3.2.1 访谈 26
3.2.2 简易的应用规格说明技术 27
3.2.3 软件原型 28
3.3 分析建模与规格说明 29
3.3.1 分析建模 29
3.3.2 软件需求规格说明 29
3.4 实体—关系图 31
3.4.1 数据对象 31
3.4.2 属性 31
3.4.3 关系 32
3.4.4 实体—关系图的符号 32
3.5 数据流图 33
3.5.1 数据流图符号 33
3.5.2 例子 34
3.5.3 命名 37
3.6 状态转换图 37
3.6.1 状态 38
3.6.2 事件 38
3.6.3 符号 38
3.6.4 例子 39
3.7 数据字典 40
3.8 结构化分析实例 41
3.8.1 问题陈述 42
3.8.2 问题定义 42
3.8.3 可行性研究 43
3.8.4 需求分析 48
3.9 小结 53
习题 55
第4章 结构化设计 56
4.1 结构化设计与结构化分析的关系 56
4.2 软件设计的概念和原理 57
4.2.1 模块化 57
4.2.2 抽象 59
4.2.3 逐步求精 59
4.2.4 信息隐藏 60
4.3 模块独立 61
4.3.1 耦合 61
4.3.2 内聚 62
4.4 启发规则 63
4.4.1 改进软件结构提高模块独立性 63
4.4.2 模块规模应该适中 64
4.4.3 深度、宽度、扇出和扇入都应适当 64
4.4.4 模块的作用域应该在控制域之内 64
4.4.5 力争降低模块接口的复杂程度 65
4.4.6 设计单入口单出口的模块 65
4.4.7 模块功能应该可以预测 65
4.5 表示软件结构的图形工具 65
4.5.1 层次图和HIPO图 65
4.5.2 结构图 67
4.6 面向数据流的设计方法 68
4.6.1 概念 68
4.6.2 变换分析 69
4.6.3 事务分析 75
4.6.4 设计优化 76
4.7 人机界面设计 77
4.7.1 人机界面设计问题 77
4.7.2 人机界面设计过程 78
4.7.3 界面设计指南 79
4.8 过程设计 81
4.9 过程设计的工具 83
4.9.1 程序流程图 83
4.9.2 盒图(N-S图) 84
4.9.3 PAD图 84
4.9.4 判定表 86
4.9.5 判定树 87
4.9.6 过程设计语言(PDL) 87
4.10 面向数据结构的设计方法 88
4.10.1 Jackson图 88
4.10.2 改进的Jackson图 89
4.10.3 Jackson方法 89
4.11 小结 94
习题 95
第5章 结构化实现 98
5.1 编码 98
5.1.1 选择程序设计语言 98
5.1.2 编码风格 100
5.2 软件测试基础 102
5.2.1 测试目标 102
5.2.2 黑盒测试和白盒测试 103
5.2.3 测试准则 103
5.2.4 流图 103
5.3 逻辑覆盖 106
5.4 控制结构测试 108
5.4.1 基本路径测试 108
5.4.2 条件测试 111
5.4.3 数据流测试 113
5.4.4 循环测试 114
5.5 黑盒测试技术 115
5.5.1 等价划分 116
5.5.2 边界值分析 118
5.5.3 错误推测 119
5.6 测试策略 120
5.6.1 测试步骤 120
5.6.2 单元测试 121
5.6.3 集成测试 123
5.6.4 确认测试 126
5.7 调试 127
5.7.1 调试过程 127
5.7.2 调试途径 128
5.8 软件可靠性 130
5.8.1 基本概念 130
5.8.2 估算平均无故障时间的方法 131
5.9 小结 132
习题 133
第三篇 面向对象方法学 139
第6章 面向对象方法学导论 139
6.1 面向对象程序设计实例 139
6.1.1 用对象分解取代功能分解 141
6.1.2 设计类等级 143
6.1.3 定义属性和服务 144
6.1.4 用C++语言实现 147
6.2 面向对象方法学概述 147
6.2.1 面向对象方法学的要点 149
6.2.2 面向对象的软件过程 150
6.3 面向对象方法学的主要优点 153
6.4 面向对象的概念 153
6.4.1 对象 156
6.4.2 其他概念 159
6.5 面向对象建模 160
6.6 对象模型 160
6.6.1 表示类的符号 161
6.6.2 表示关系的符号 164
6.7 动态模型 165
6.8 功能模型 165
6.9 三种模型之间的关系 166
6.10 小结 166
习题 166
第7章 面向对象分析 168
7.1 分析过程 168
7.1.1 概述 168
7.1.2 三个子模型与五个层次 169
7.2 需求陈述 170
7.2.1 书写要点 170
7.2.2 例子 171
7.3 建立对象模型 172
7.3.1 确定类与对象 172
7.3.2 确定关联 174
7.3.3 划分主题 177
7.3.4 确定属性 177
7.3.5 识别继承关系 178
7.3.6 反复修改 179
7.4 建立动态模型 182
7.4.1 编写脚本 182
7.4.2 设想用户界面 183
7.4.3 画事件跟踪图 184
7.4.4 画状态图 184
7.4.5 审查动态模型 186
7.5 建立功能模型 187
7.5.1 画出基本系统模型图 187
7.5.2 画出功能级数据流图 187
7.5.3 描述处理框功能 188
7.6 定义服务 189
7.6.1 常规行为 189
7.6.2 从事件导出的操作 189
7.6.3 与数据流图中处理框对应的操作 189
7.6.4 利用继承减少冗余操作 189
7.7 面向对象分析实例 190
7.7.1 需求陈述 190
7.7.2 建立对象模型 190
7.7.3 建立动态模型 191
7.7.4 建立功能模型 193
7.7.5 进一步完善 194
7.8 小结 194
习题 195
第8章 面向对象设计 197
8.1 面向对象设计的准则 197
8.1.1 模块化 198
8.1.2 抽象 198
8.1.3 信息隐藏 198
8.1.4 弱耦合 198
8.1.5 强内聚 199
8.1.6 可重用 199
8.2 启发规则 199
8.2.1 设计结果应该清晰易懂 200
8.2.2 一般—特殊结构的深度应适当 200
8.2.3 设计简单的类 200
8.2.4 使用简单的协议 201
8.2.5 使用简单的服务 201
8.2.6 把设计变动减至最小 201
8.3 系统分解 201
8.3.1 子系统之间的两种交互方式 202
8.3.2 组织系统的两种方案 202
8.3.3 设计系统的拓扑结构 203
8.4 设计问题域子系统 203
8.4.1 调整需求 204
8.4.2 重用已有的类 204
8.4.3 把问题域类组合在一起 204
8.4.4 增添一般化类以建立协议 204
8.4.5 ATM系统之例 204
8.5 设计人-机交互子系统 205
8.5.1 设计人-机交互界面的准则 205
8.5.2 设计人-机交互子系统的策略 206
8.6 设计任务管理子系统 207
8.6.1 分析并发性 208
8.6.2 设计任务管理子系统 208
8.7 设计数据管理子系统 209
8.7.1 选择数据存储管理模式 209
8.7.2 设计数据管理子系统 210
8.7.3 例子 212
8.8 设计类中的服务 212
8.8.1 确定类中应有的服务 212
8.8.2 设计实现服务的方法 213
8.9 设计关联 214
8.9.1 关联的遍历 214
8.9.2 实现单向关联 214
8.9.3 实现双向关联 215
8.9.4 关联对象的实现方法 215
8.10 设计优化 215
8.10.1 确定优先级 215
8.10.2 提高效率的几项技术 216
8.10.3 调整继承关系 217
8.11 面向对象分析与设计实例 218
8.11.1 面向对象分析 219
8.11.2 面向对象设计 221
8.12 小结 225
习题 226
第9章 面向对象实现 227
9.1 程序设计语言 227
9.1.1 面向对象语言的优点 227
9.1.2 面向对象语言的技术特点 228
9.1.3 选择面向对象语言 231
9.2 程序设计风格 232
9.2.1 提高可重用性 232
9.2.2 提高可扩充性 234
9.2.3 提高健壮性 234
9.3 测试策略 235
9.3.1 面向对象的单元测试 235
9.3.2 面向对象的集成测试 235
9.3.3 面向对象的确认测试 236
9.4 设计测试用例 236
9.4.1 测试类的方法 236
9.4.2 集成测试方法 238
9.5 小结 240
习题 240
第四篇 软件项目管理 242
第10章 计划 242
10.1 度量软件规模 242
10.1.1 代码行技术 243
10.1.2 功能点技术 245
10.2 工作量估算 245
10.2.1 静态单变量模型 245
10.2.2 动态多变量模型 245
10.2.3 COCOMO2模型 246
10.3 进度计划 248
10.3.1 基本原则 249
10.3.2 估算软件开发时间 250
10.3.3 Gantt图 251
10.3.4 工程网络 252
10.3.5 估算进度 253
10.3.6 关键路径 254
10.3.7 机动时间 255
10.4 小结 256
习题 257
第11章 组织 259
11.1 民主制程序员组 259
11.2 主程序员组 260
11.3 现代程序员组 262
11.4 软件项目组 263
11.4.1 三种组织方式 264
11.4.2 四种组织范型 265
11.5 小结 266
习题 266
第12章 控制 267
12.1 风险管理 267
12.1.1 软件风险分类 267
12.1.2 风险识别 268
12.1.3 风险预测 272
12.1.4 处理风险的策略 274
12.2 质量保证 275
12.2.1 软件质量 275
12.2.2 软件质量保证措施 276
12.3 配置管理 279
12.3.1 软件配置 279
12.3.2 软件配置管理过程 281
12.4 小结 286
习题 286
第13章 国际标准 288
13.1 IEEE 1058.1软件项目管理计划标准 288
13.1.1 软件项目管理计划的组成 288
13.1.2 IEEE软件项目管理计划 288
13.2 ISO9000质量标准 289
13.2.1 基本思想 291
13.2.2 ISO9000-3标准 291
13.3 ISO/IEC 12207软件生命周期过程标准 292
13.3.1 概述 294
13.3.2 软件生命周期过程 294
13.4 ISO/IEC TR 15504软件过程评估标准 295
13.4.1 概述 298
13.4.2 标准的结构 299
13.5 能力成熟度模型 299
13.5.1 能力成熟度模型的结构 300
13.5.2 能力成熟度等级 301
13.5.3 关键过程域 302
13.5.4 应用CMM 303
13.6 小结 304
习题 305
第五篇 高级课题 306
第14章 形式化方法 306
14.1 概述 306
14.1.1 非形式化方法的缺点 306
14.1.2 14.1.2 软件开发过程中的数学 307
14.1.3 应用形式化方法的准则 307
14.2 有穷状态机 308
14.2.1 基本概念 308
14.2.2 电梯问题 309
14.2.3 评论 312
14.3 Petri网 312
14.3.1 基本概念 312
14.3.2 应用实例 314
14.4 Z语言 315
14.4.1 简介 315
14.4.2 评论 317
14.5 小结 318
习题 318
第15章 统一建模语言UML 320
15.1 概述 320
15.1.1 UML的产生和发展 320
15.1.2 UML的结构 321
15.1.3 UML的图 322
15.1.4 UML的应用领域 323
15.2 静态建模机制 324
15.2.1 用例图 324
15.2.2 类图和对象图 327
15.3 动态建模机制 336
15.3.1 消息 336
15.3.2 状态图 336
15.3.3 顺序图 337
15.3.4 协作图 339
15.3.5 活动图 340
15.4 描述物理架构的机制 341
15.4.1 逻辑架构和物理架构 341
15.4.2 构件图 341
15.4.3 配置图 342
15.5 使用和扩展UM L343
15.5.1 使用UML的准则 343
15.5.2 扩展UML的机制 344
15.6 小结 345
习题 345
第16章 软件重用 346
16.1 可重用的软件成分 346
16.2 软件重用过程 347
16.2.1 构件组装模型 347
16.2.2 类构件 348
16.2.3 重用过程模型 349
16.3 领域工程 350
16.3.1 分析过程 350
16.3.2 领域特征 351
16.3.3 结构建模和结构点 352
16.4 开发可重用的构件 352
16.4.1 为了重用的分析与设计 352
16.4.2 基于构件的开发 353
16.5 分类和检索构件 354
16.5.1 描述可重用的构件 355
16.5.2 重用环境 357
16.6 软件重用的效益 357
16.7 小结 358
习题 359
参考文献 360
第1章 软件工程 1
1.1 软件危机 1
1.1.1 计算机系统的发展历程 1
1.1.2 软件危机的含义 2
1.1.3 产生软件危机的原因 3
1.1.4 消除软件危机的途径 5
1.2 软件工程 6
1.2.1 什么是软件工程 6
1.2.2 软件工程的基本原理 6
1.2.3 软件工程方法学 8
1.3 小结 10
习题 11
第2章 软件过程 13
2.1 软件生命周期的基本任务 13
2.2 瀑布模型 16
2.3 快速原型模型 18
2.4 增量模型 19
2.5 螺旋模型 20
2.6 喷泉模型 22
2.7 小结 23
习题 24
第二篇 传统方法学 25
第3章 结构化分析 25
3.1 概述 25
3.2 与用户通信的技术 26
3.2.1 访谈 26
3.2.2 简易的应用规格说明技术 27
3.2.3 软件原型 28
3.3 分析建模与规格说明 29
3.3.1 分析建模 29
3.3.2 软件需求规格说明 29
3.4 实体—关系图 31
3.4.1 数据对象 31
3.4.2 属性 31
3.4.3 关系 32
3.4.4 实体—关系图的符号 32
3.5 数据流图 33
3.5.1 数据流图符号 33
3.5.2 例子 34
3.5.3 命名 37
3.6 状态转换图 37
3.6.1 状态 38
3.6.2 事件 38
3.6.3 符号 38
3.6.4 例子 39
3.7 数据字典 40
3.8 结构化分析实例 41
3.8.1 问题陈述 42
3.8.2 问题定义 42
3.8.3 可行性研究 43
3.8.4 需求分析 48
3.9 小结 53
习题 55
第4章 结构化设计 56
4.1 结构化设计与结构化分析的关系 56
4.2 软件设计的概念和原理 57
4.2.1 模块化 57
4.2.2 抽象 59
4.2.3 逐步求精 59
4.2.4 信息隐藏 60
4.3 模块独立 61
4.3.1 耦合 61
4.3.2 内聚 62
4.4 启发规则 63
4.4.1 改进软件结构提高模块独立性 63
4.4.2 模块规模应该适中 64
4.4.3 深度、宽度、扇出和扇入都应适当 64
4.4.4 模块的作用域应该在控制域之内 64
4.4.5 力争降低模块接口的复杂程度 65
4.4.6 设计单入口单出口的模块 65
4.4.7 模块功能应该可以预测 65
4.5 表示软件结构的图形工具 65
4.5.1 层次图和HIPO图 65
4.5.2 结构图 67
4.6 面向数据流的设计方法 68
4.6.1 概念 68
4.6.2 变换分析 69
4.6.3 事务分析 75
4.6.4 设计优化 76
4.7 人机界面设计 77
4.7.1 人机界面设计问题 77
4.7.2 人机界面设计过程 78
4.7.3 界面设计指南 79
4.8 过程设计 81
4.9 过程设计的工具 83
4.9.1 程序流程图 83
4.9.2 盒图(N-S图) 84
4.9.3 PAD图 84
4.9.4 判定表 86
4.9.5 判定树 87
4.9.6 过程设计语言(PDL) 87
4.10 面向数据结构的设计方法 88
4.10.1 Jackson图 88
4.10.2 改进的Jackson图 89
4.10.3 Jackson方法 89
4.11 小结 94
习题 95
第5章 结构化实现 98
5.1 编码 98
5.1.1 选择程序设计语言 98
5.1.2 编码风格 100
5.2 软件测试基础 102
5.2.1 测试目标 102
5.2.2 黑盒测试和白盒测试 103
5.2.3 测试准则 103
5.2.4 流图 103
5.3 逻辑覆盖 106
5.4 控制结构测试 108
5.4.1 基本路径测试 108
5.4.2 条件测试 111
5.4.3 数据流测试 113
5.4.4 循环测试 114
5.5 黑盒测试技术 115
5.5.1 等价划分 116
5.5.2 边界值分析 118
5.5.3 错误推测 119
5.6 测试策略 120
5.6.1 测试步骤 120
5.6.2 单元测试 121
5.6.3 集成测试 123
5.6.4 确认测试 126
5.7 调试 127
5.7.1 调试过程 127
5.7.2 调试途径 128
5.8 软件可靠性 130
5.8.1 基本概念 130
5.8.2 估算平均无故障时间的方法 131
5.9 小结 132
习题 133
第三篇 面向对象方法学 139
第6章 面向对象方法学导论 139
6.1 面向对象程序设计实例 139
6.1.1 用对象分解取代功能分解 141
6.1.2 设计类等级 143
6.1.3 定义属性和服务 144
6.1.4 用C++语言实现 147
6.2 面向对象方法学概述 147
6.2.1 面向对象方法学的要点 149
6.2.2 面向对象的软件过程 150
6.3 面向对象方法学的主要优点 153
6.4 面向对象的概念 153
6.4.1 对象 156
6.4.2 其他概念 159
6.5 面向对象建模 160
6.6 对象模型 160
6.6.1 表示类的符号 161
6.6.2 表示关系的符号 164
6.7 动态模型 165
6.8 功能模型 165
6.9 三种模型之间的关系 166
6.10 小结 166
习题 166
第7章 面向对象分析 168
7.1 分析过程 168
7.1.1 概述 168
7.1.2 三个子模型与五个层次 169
7.2 需求陈述 170
7.2.1 书写要点 170
7.2.2 例子 171
7.3 建立对象模型 172
7.3.1 确定类与对象 172
7.3.2 确定关联 174
7.3.3 划分主题 177
7.3.4 确定属性 177
7.3.5 识别继承关系 178
7.3.6 反复修改 179
7.4 建立动态模型 182
7.4.1 编写脚本 182
7.4.2 设想用户界面 183
7.4.3 画事件跟踪图 184
7.4.4 画状态图 184
7.4.5 审查动态模型 186
7.5 建立功能模型 187
7.5.1 画出基本系统模型图 187
7.5.2 画出功能级数据流图 187
7.5.3 描述处理框功能 188
7.6 定义服务 189
7.6.1 常规行为 189
7.6.2 从事件导出的操作 189
7.6.3 与数据流图中处理框对应的操作 189
7.6.4 利用继承减少冗余操作 189
7.7 面向对象分析实例 190
7.7.1 需求陈述 190
7.7.2 建立对象模型 190
7.7.3 建立动态模型 191
7.7.4 建立功能模型 193
7.7.5 进一步完善 194
7.8 小结 194
习题 195
第8章 面向对象设计 197
8.1 面向对象设计的准则 197
8.1.1 模块化 198
8.1.2 抽象 198
8.1.3 信息隐藏 198
8.1.4 弱耦合 198
8.1.5 强内聚 199
8.1.6 可重用 199
8.2 启发规则 199
8.2.1 设计结果应该清晰易懂 200
8.2.2 一般—特殊结构的深度应适当 200
8.2.3 设计简单的类 200
8.2.4 使用简单的协议 201
8.2.5 使用简单的服务 201
8.2.6 把设计变动减至最小 201
8.3 系统分解 201
8.3.1 子系统之间的两种交互方式 202
8.3.2 组织系统的两种方案 202
8.3.3 设计系统的拓扑结构 203
8.4 设计问题域子系统 203
8.4.1 调整需求 204
8.4.2 重用已有的类 204
8.4.3 把问题域类组合在一起 204
8.4.4 增添一般化类以建立协议 204
8.4.5 ATM系统之例 204
8.5 设计人-机交互子系统 205
8.5.1 设计人-机交互界面的准则 205
8.5.2 设计人-机交互子系统的策略 206
8.6 设计任务管理子系统 207
8.6.1 分析并发性 208
8.6.2 设计任务管理子系统 208
8.7 设计数据管理子系统 209
8.7.1 选择数据存储管理模式 209
8.7.2 设计数据管理子系统 210
8.7.3 例子 212
8.8 设计类中的服务 212
8.8.1 确定类中应有的服务 212
8.8.2 设计实现服务的方法 213
8.9 设计关联 214
8.9.1 关联的遍历 214
8.9.2 实现单向关联 214
8.9.3 实现双向关联 215
8.9.4 关联对象的实现方法 215
8.10 设计优化 215
8.10.1 确定优先级 215
8.10.2 提高效率的几项技术 216
8.10.3 调整继承关系 217
8.11 面向对象分析与设计实例 218
8.11.1 面向对象分析 219
8.11.2 面向对象设计 221
8.12 小结 225
习题 226
第9章 面向对象实现 227
9.1 程序设计语言 227
9.1.1 面向对象语言的优点 227
9.1.2 面向对象语言的技术特点 228
9.1.3 选择面向对象语言 231
9.2 程序设计风格 232
9.2.1 提高可重用性 232
9.2.2 提高可扩充性 234
9.2.3 提高健壮性 234
9.3 测试策略 235
9.3.1 面向对象的单元测试 235
9.3.2 面向对象的集成测试 235
9.3.3 面向对象的确认测试 236
9.4 设计测试用例 236
9.4.1 测试类的方法 236
9.4.2 集成测试方法 238
9.5 小结 240
习题 240
第四篇 软件项目管理 242
第10章 计划 242
10.1 度量软件规模 242
10.1.1 代码行技术 243
10.1.2 功能点技术 245
10.2 工作量估算 245
10.2.1 静态单变量模型 245
10.2.2 动态多变量模型 245
10.2.3 COCOMO2模型 246
10.3 进度计划 248
10.3.1 基本原则 249
10.3.2 估算软件开发时间 250
10.3.3 Gantt图 251
10.3.4 工程网络 252
10.3.5 估算进度 253
10.3.6 关键路径 254
10.3.7 机动时间 255
10.4 小结 256
习题 257
第11章 组织 259
11.1 民主制程序员组 259
11.2 主程序员组 260
11.3 现代程序员组 262
11.4 软件项目组 263
11.4.1 三种组织方式 264
11.4.2 四种组织范型 265
11.5 小结 266
习题 266
第12章 控制 267
12.1 风险管理 267
12.1.1 软件风险分类 267
12.1.2 风险识别 268
12.1.3 风险预测 272
12.1.4 处理风险的策略 274
12.2 质量保证 275
12.2.1 软件质量 275
12.2.2 软件质量保证措施 276
12.3 配置管理 279
12.3.1 软件配置 279
12.3.2 软件配置管理过程 281
12.4 小结 286
习题 286
第13章 国际标准 288
13.1 IEEE 1058.1软件项目管理计划标准 288
13.1.1 软件项目管理计划的组成 288
13.1.2 IEEE软件项目管理计划 288
13.2 ISO9000质量标准 289
13.2.1 基本思想 291
13.2.2 ISO9000-3标准 291
13.3 ISO/IEC 12207软件生命周期过程标准 292
13.3.1 概述 294
13.3.2 软件生命周期过程 294
13.4 ISO/IEC TR 15504软件过程评估标准 295
13.4.1 概述 298
13.4.2 标准的结构 299
13.5 能力成熟度模型 299
13.5.1 能力成熟度模型的结构 300
13.5.2 能力成熟度等级 301
13.5.3 关键过程域 302
13.5.4 应用CMM 303
13.6 小结 304
习题 305
第五篇 高级课题 306
第14章 形式化方法 306
14.1 概述 306
14.1.1 非形式化方法的缺点 306
14.1.2 14.1.2 软件开发过程中的数学 307
14.1.3 应用形式化方法的准则 307
14.2 有穷状态机 308
14.2.1 基本概念 308
14.2.2 电梯问题 309
14.2.3 评论 312
14.3 Petri网 312
14.3.1 基本概念 312
14.3.2 应用实例 314
14.4 Z语言 315
14.4.1 简介 315
14.4.2 评论 317
14.5 小结 318
习题 318
第15章 统一建模语言UML 320
15.1 概述 320
15.1.1 UML的产生和发展 320
15.1.2 UML的结构 321
15.1.3 UML的图 322
15.1.4 UML的应用领域 323
15.2 静态建模机制 324
15.2.1 用例图 324
15.2.2 类图和对象图 327
15.3 动态建模机制 336
15.3.1 消息 336
15.3.2 状态图 336
15.3.3 顺序图 337
15.3.4 协作图 339
15.3.5 活动图 340
15.4 描述物理架构的机制 341
15.4.1 逻辑架构和物理架构 341
15.4.2 构件图 341
15.4.3 配置图 342
15.5 使用和扩展UM L343
15.5.1 使用UML的准则 343
15.5.2 扩展UML的机制 344
15.6 小结 345
习题 345
第16章 软件重用 346
16.1 可重用的软件成分 346
16.2 软件重用过程 347
16.2.1 构件组装模型 347
16.2.2 类构件 348
16.2.3 重用过程模型 349
16.3 领域工程 350
16.3.1 分析过程 350
16.3.2 领域特征 351
16.3.3 结构建模和结构点 352
16.4 开发可重用的构件 352
16.4.1 为了重用的分析与设计 352
16.4.2 基于构件的开发 353
16.5 分类和检索构件 354
16.5.1 描述可重用的构件 355
16.5.2 重用环境 357
16.6 软件重用的效益 357
16.7 小结 358
习题 359
参考文献 360
猜您喜欢