相关商品推荐
·赢在用户
·CSS网站布局实录第2版
·搜索引擎营销
·Java编程思想(第4版
·CSS禅意花园
·XML HACKS 10
·JAVA JDK6学习笔
·Java编程思想(英文版
·Ajax模式与最佳实践
·Excel实战技巧精粹(
特价促销商品
您最近的浏览历史
暂无浏览历史软件工程(第3版)
出 版 社:
人民邮电出版社
- 出版时间:2007-5-1
- ISBN:7115158291
- 页数:672
- 译者:杨卫东
- 版次:第1版第1次
- 开本:16开
- 包装:平装
- 销售状态:在销
- 常用标签: 图灵计算机科学丛书
定价:¥59.00
时代网价:¥50.15 折扣:85折 节省:¥8.85
配送区域:成都市区免费送货上门、货到付款;四川其它地区送货上门、货到付款。全国范围内使用支付宝支付,先收货,后付款,安全方便(支付宝信任商家)。查看具体配送区域
编辑推荐
本书适合作为计算机相关专业软件工程课程的本科教材,也适用于介绍软件工程的概念与实践的研究生课程,期望进一步学习该领域相关知识的专业人员也可以阅读本书。
内容简介
本书是软件工程领域的经典著作,国际上众多名校均采用本书作为教材。本书分为3个部分。第一部分旨在引起读者学习软件工程的兴趣,解释为什么软件工程知识对实践者和研究者是同样重要的,然后在论证过程模型的同时,也强调了敏捷方法的必要性,最后讨论项目计划的相关概念,以及它与软件开发过程的相关性。第二部分论述开发和维护的主要步骤:引发、建模和检查需求,设计问题的解决方案,编写和测试代码,以及将软件交付给客户。第三部分主要讲述软件评估和改进,着眼于如何评价过程和产品的质量,以及如何采取措施改进。
目录介绍
目 录
第1章 软件工程概述 1
1.1 什么是软件工程 1
1.1.1 问题求解 2
1.1.2 软件工程师的角色是什么 3
1.2 软件工程取得了哪些进展 4
1.3 什么是好的软件 6
1.3.1 产品的质量 7
1.3.2 过程的质量 8
1.3.3 商业环境背景下的质量 8
1.4 软件工程涉及的人员 10
1.5 系统的方法 11
1.5.1 系统的要素 11
1.5.2 相互联系的系统 12
1.6 工程的方法 14
1.6.1 盖房子 15
1.6.2 构建一个系统 16
1.7 开发团队的成员 17
1.8 软件工程发生了多大的变化 18
1.8.1 变化的本质 19
1.8.2 软件工程的Wasserman规范 20
1.9 信息系统的例子 24
1.10 实时系统的例子 25
1.11 本章对单个开发人员的意义 27
1.12 本章对开发团队的意义 27
1.13 本章对研究人员的意义 27
1.14 学期项目 28
1.15 主要参考文献 29
1.16 练习 29
第2章 过程和生命周期的建模 31
2.1 过程的含义 31
2.2 软件过程模型 33
2.2.1 瀑布模型 33
2.2.2 V模型 35
2.2.3 原型化模型 36
2.2.4 可操作规格说明 37
2.2.5 可转换模型 37
2.2.6 阶段化开发:增量和迭代 38
2.2.7 螺旋模型 39
2.2.8 敏捷方法 40
2.3 过程建模工具和技术 43
2.3.1 静态建模:Lai表示法 43
2.3.2 动态建模:系统动力学 45
2.4 实际的过程建模 48
2.4.1 Marvel的案例研究 48
2.4.2 过程建模工具和技术应该具有的特性 50
2.5 信息系统的例子 50
2.6 实时系统的例子 52
2.7 本章对单个开发人员的意义 53
2.8 本章对开发团队的意义 53
2.9 本章对研究人员的意义 53
2.10 学期项目 53
2.11 主要参考文献 55
2.12 练习 56
第3章 计划和管理项目 57
3.1 跟踪项目进展 57
3.1.1 工作分解和活动图 58
3.1.2 估算完成时间 60
3.1.3 跟踪进展的工具 64
3.2 项目人员 66
3.2.1 人员角色和特性 66
3.2.2 工作风格 69
3.2.3 项目组织 70
3.3 工作量估算 72
3.3.1 专家判断 74
3.3.2 算法方法 75
3.3.3 机器学习方法 80
3.3.4 找出适合具体情形的模型 81
3.4 风险管理 82
3.4.1 什么是风险 82
3.4.2 风险管理活动 83
3.5 项目计划 85
3.6 过程模型和项目管理 87
3.6.1 注册管理 87
3.6.2 责任建模 88
3.6.3 紧密结合里程碑 91
3.7 信息系统的例子 92
3.8 实时系统的例子 93
3.9 本章对单个开发人员的意义 94
3.10 本章对开发团队的意义 94
3.11 本章对研究人员的意义 95
3.12 学期项目 95
3.13 主要参考文献 95
3.14 练习 96
第4章 获取需求 98
4.1 需求过程 99
4.2 需求引发 100
4.3 需求的类型 103
4.3.1 解决冲突 105
4.3.2 两种需求文档 105
4.4 需求的特性 107
4.5 建模表示法 107
4.5.1 实体—联系图 108
4.5.2 例子:UML类图 109
4.5.3 事件踪迹 111
4.5.4 例子:消息时序图 112
4.5.5 状态机 113
4.5.6 例子:UML状态图 114
4.5.7 例子:Petri网 116
4.5.8 数据流图 118
4.5.9 例子:用例 119
4.5.10 函数和关系 120
4.5.11 例子:判定表 121
4.5.12 例子:Parnas表 122
4.5.13 逻辑 122
4.5.14 例子:对象约束语言(OCL) 124
4.5.15 例子:Z 125
4.5.16 代数规格说明 126
4.5.17 例子:SDL数据 127
4.6 需求和规格说明语言 129
4.6.1 统一建模语言(UML) 129
4.6.2 规格说明和描述语言(SDL) 130
4.6.3 软件成本降低(SCR) 131
4.6.4 需求表示法的其他特征 131
4.7 原型化需求 131
4.8 需求文档 133
4.8.1 需求定义 133
4.8.2 需求规格说明书 134
4.8.3 过程管理和需求的可跟踪性 135
4.9 确认和验证 136
4.9.1 需求确认 136
4.9.2 验证 138
4.10 测量需求 139
4.11 选择规格说明技术 140
4.12 信息系统的例子 143
4.13 实时系统的例子 145
4.13.1 本章对单个开发人员的意义 146
4.13.2 本章对开发团队的意义 146
4.13.3 本章对研究人员的意义 147
4.14 学期项目 147
4.14.1 前提和假设 147
4.14.2 功能的高层描述 147
4.14.3 功能需求 148
4.14.4 数据约束 148
4.14.5 设计和接口约束 149
4.14.6 质量需求 149
4.15 主要参考文献 149
4.16 练习 150
第5章 设计系统 153
5.1 什么是设计 153
5.2 分解和模块化 155
5.3 体系结构风格和策略 157
5.3.1 管道和过滤器 158
5.3.2 面向对象的设计 158
5.3.3 隐含调用 158
5.3.4 分层 159
5.3.5 信息库 160
5.3.6 解释器 160
5.3.7 过程控制 161
5.3.8 其他风格 162
5.4 创建设计中的问题 163
5.4.1 模块化和抽象层次 163
5.4.2 协作的设计 164
5.4.3 设计用户界面 166
5.4.4 并发性 168
5.4.5 设计模式和复用 169
5.5 好设计的特性 170
5.5.1 构件独立性 170
5.5.2 异常标识和处理 175
5.5.3 防错和容错技术 176
5.6 改进设计技术 178
5.6.1 降低复杂性 178
5.6.2 按合同设计 180
5.6.3 原型化设计 181
5.6.4 故障树分析 182
5.7 设计的评估和确认 184
5.7.1 数学的确认 184
5.7.2 测量设计质量 184
5.7.3 比较设计 185
5.7.4 设计评审 188
5.8 文档化设计 191
5.9 信息系统的例子 192
5.10 实时系统的例子 193
5.11 本章对单个开发人员的意义 194
5.12 本章对开发团队的意义 194
5.13 本章对研究人员的意义 195
5.14 学期项目 195
5.15 主要参考文献 195
5.16 练习 196
第6章 细述对象 197
6.1 什么是OO 198
6.2 OO开发过程 200
6.2.1 OO需求 201
6.2.2 OO设计 201
6.2.3 OO编码和测试 201
6.3 用例 202
6.4 OO的表示:一个使用UML的例子 205
6.5 OO系统设计 207
6.6 OO程序设计 218
6.6.1 设计助手 220
6.6.2 用户界面设计 220
6.6.3 数据管理设计 222
6.6.4 任务管理设计 222
6.7 OO测度 224
6.7.1 OO规模测量 225
6.7.2 OO设计的测量 226
6.7.3 在何处进行OO测度 230
6.8 信息系统的例子 231
6.9 实时系统的例子 232
6.10 本章对单个开发人员的意义 232
6.11 本章对开发团队的意义 233
6.12 本章对研究人员的意义 233
6.13 学期项目 233
6.14 主要参考文献 233
6.15 练习 234
第7章 编写程序 235
7.1 编程标准和过程 235
7.1.1 对单个开发人员的标准 236
7.1.2 对其他开发人员的标准 236
7.1.3 设计和实现的匹配 237
7.2 编程的指导原则 237
7.2.1 控制结构 237
7.2.2 算法 238
7.2.3 数据结构 239
7.2.4 通用性指导原则 241
7.3 文档 244
7.3.1 内部文档 244
7.3.2 外部文档 247
7.4 编程过程 247
7.4.1 将编
第1章 软件工程概述 1
1.1 什么是软件工程 1
1.1.1 问题求解 2
1.1.2 软件工程师的角色是什么 3
1.2 软件工程取得了哪些进展 4
1.3 什么是好的软件 6
1.3.1 产品的质量 7
1.3.2 过程的质量 8
1.3.3 商业环境背景下的质量 8
1.4 软件工程涉及的人员 10
1.5 系统的方法 11
1.5.1 系统的要素 11
1.5.2 相互联系的系统 12
1.6 工程的方法 14
1.6.1 盖房子 15
1.6.2 构建一个系统 16
1.7 开发团队的成员 17
1.8 软件工程发生了多大的变化 18
1.8.1 变化的本质 19
1.8.2 软件工程的Wasserman规范 20
1.9 信息系统的例子 24
1.10 实时系统的例子 25
1.11 本章对单个开发人员的意义 27
1.12 本章对开发团队的意义 27
1.13 本章对研究人员的意义 27
1.14 学期项目 28
1.15 主要参考文献 29
1.16 练习 29
第2章 过程和生命周期的建模 31
2.1 过程的含义 31
2.2 软件过程模型 33
2.2.1 瀑布模型 33
2.2.2 V模型 35
2.2.3 原型化模型 36
2.2.4 可操作规格说明 37
2.2.5 可转换模型 37
2.2.6 阶段化开发:增量和迭代 38
2.2.7 螺旋模型 39
2.2.8 敏捷方法 40
2.3 过程建模工具和技术 43
2.3.1 静态建模:Lai表示法 43
2.3.2 动态建模:系统动力学 45
2.4 实际的过程建模 48
2.4.1 Marvel的案例研究 48
2.4.2 过程建模工具和技术应该具有的特性 50
2.5 信息系统的例子 50
2.6 实时系统的例子 52
2.7 本章对单个开发人员的意义 53
2.8 本章对开发团队的意义 53
2.9 本章对研究人员的意义 53
2.10 学期项目 53
2.11 主要参考文献 55
2.12 练习 56
第3章 计划和管理项目 57
3.1 跟踪项目进展 57
3.1.1 工作分解和活动图 58
3.1.2 估算完成时间 60
3.1.3 跟踪进展的工具 64
3.2 项目人员 66
3.2.1 人员角色和特性 66
3.2.2 工作风格 69
3.2.3 项目组织 70
3.3 工作量估算 72
3.3.1 专家判断 74
3.3.2 算法方法 75
3.3.3 机器学习方法 80
3.3.4 找出适合具体情形的模型 81
3.4 风险管理 82
3.4.1 什么是风险 82
3.4.2 风险管理活动 83
3.5 项目计划 85
3.6 过程模型和项目管理 87
3.6.1 注册管理 87
3.6.2 责任建模 88
3.6.3 紧密结合里程碑 91
3.7 信息系统的例子 92
3.8 实时系统的例子 93
3.9 本章对单个开发人员的意义 94
3.10 本章对开发团队的意义 94
3.11 本章对研究人员的意义 95
3.12 学期项目 95
3.13 主要参考文献 95
3.14 练习 96
第4章 获取需求 98
4.1 需求过程 99
4.2 需求引发 100
4.3 需求的类型 103
4.3.1 解决冲突 105
4.3.2 两种需求文档 105
4.4 需求的特性 107
4.5 建模表示法 107
4.5.1 实体—联系图 108
4.5.2 例子:UML类图 109
4.5.3 事件踪迹 111
4.5.4 例子:消息时序图 112
4.5.5 状态机 113
4.5.6 例子:UML状态图 114
4.5.7 例子:Petri网 116
4.5.8 数据流图 118
4.5.9 例子:用例 119
4.5.10 函数和关系 120
4.5.11 例子:判定表 121
4.5.12 例子:Parnas表 122
4.5.13 逻辑 122
4.5.14 例子:对象约束语言(OCL) 124
4.5.15 例子:Z 125
4.5.16 代数规格说明 126
4.5.17 例子:SDL数据 127
4.6 需求和规格说明语言 129
4.6.1 统一建模语言(UML) 129
4.6.2 规格说明和描述语言(SDL) 130
4.6.3 软件成本降低(SCR) 131
4.6.4 需求表示法的其他特征 131
4.7 原型化需求 131
4.8 需求文档 133
4.8.1 需求定义 133
4.8.2 需求规格说明书 134
4.8.3 过程管理和需求的可跟踪性 135
4.9 确认和验证 136
4.9.1 需求确认 136
4.9.2 验证 138
4.10 测量需求 139
4.11 选择规格说明技术 140
4.12 信息系统的例子 143
4.13 实时系统的例子 145
4.13.1 本章对单个开发人员的意义 146
4.13.2 本章对开发团队的意义 146
4.13.3 本章对研究人员的意义 147
4.14 学期项目 147
4.14.1 前提和假设 147
4.14.2 功能的高层描述 147
4.14.3 功能需求 148
4.14.4 数据约束 148
4.14.5 设计和接口约束 149
4.14.6 质量需求 149
4.15 主要参考文献 149
4.16 练习 150
第5章 设计系统 153
5.1 什么是设计 153
5.2 分解和模块化 155
5.3 体系结构风格和策略 157
5.3.1 管道和过滤器 158
5.3.2 面向对象的设计 158
5.3.3 隐含调用 158
5.3.4 分层 159
5.3.5 信息库 160
5.3.6 解释器 160
5.3.7 过程控制 161
5.3.8 其他风格 162
5.4 创建设计中的问题 163
5.4.1 模块化和抽象层次 163
5.4.2 协作的设计 164
5.4.3 设计用户界面 166
5.4.4 并发性 168
5.4.5 设计模式和复用 169
5.5 好设计的特性 170
5.5.1 构件独立性 170
5.5.2 异常标识和处理 175
5.5.3 防错和容错技术 176
5.6 改进设计技术 178
5.6.1 降低复杂性 178
5.6.2 按合同设计 180
5.6.3 原型化设计 181
5.6.4 故障树分析 182
5.7 设计的评估和确认 184
5.7.1 数学的确认 184
5.7.2 测量设计质量 184
5.7.3 比较设计 185
5.7.4 设计评审 188
5.8 文档化设计 191
5.9 信息系统的例子 192
5.10 实时系统的例子 193
5.11 本章对单个开发人员的意义 194
5.12 本章对开发团队的意义 194
5.13 本章对研究人员的意义 195
5.14 学期项目 195
5.15 主要参考文献 195
5.16 练习 196
第6章 细述对象 197
6.1 什么是OO 198
6.2 OO开发过程 200
6.2.1 OO需求 201
6.2.2 OO设计 201
6.2.3 OO编码和测试 201
6.3 用例 202
6.4 OO的表示:一个使用UML的例子 205
6.5 OO系统设计 207
6.6 OO程序设计 218
6.6.1 设计助手 220
6.6.2 用户界面设计 220
6.6.3 数据管理设计 222
6.6.4 任务管理设计 222
6.7 OO测度 224
6.7.1 OO规模测量 225
6.7.2 OO设计的测量 226
6.7.3 在何处进行OO测度 230
6.8 信息系统的例子 231
6.9 实时系统的例子 232
6.10 本章对单个开发人员的意义 232
6.11 本章对开发团队的意义 233
6.12 本章对研究人员的意义 233
6.13 学期项目 233
6.14 主要参考文献 233
6.15 练习 234
第7章 编写程序 235
7.1 编程标准和过程 235
7.1.1 对单个开发人员的标准 236
7.1.2 对其他开发人员的标准 236
7.1.3 设计和实现的匹配 237
7.2 编程的指导原则 237
7.2.1 控制结构 237
7.2.2 算法 238
7.2.3 数据结构 239
7.2.4 通用性指导原则 241
7.3 文档 244
7.3.1 内部文档 244
7.3.2 外部文档 247
7.4 编程过程 247
7.4.1 将编
顾客评论
(查看所有有关此商品的评论)
(查看所有有关此商品的评论)商品问答
(查看所有问答)














