标题：高等院校精品课程系列教材·软件工程教程
图书信息
出版社: 机械工业出版社; 第1版 (2010年4月1日)
平装: 332页
正文语种: 简体中文
开本: 16
ISBN: 7111300025, 9787111300021
条形码: 9787111300021
尺寸: 25.8 x 18.2 x 1.4 cm
重量: 581 g
内容简介
《软件工程教程》全面系统地介绍了软件工程的有关概念、原则、方法和工具。全书共15章，内容包括：软件工程中面向过程、面向对象的开发方法，技术度量，质量保证，软件项目计划与管理，用统一建模语言UML开发软件的方法等。另外，还对设计模式、敏捷软件开发、Web工程等软件工程相关领域进行了介绍和讨论。《软件工程教程》既注重科学性和系统性，又注重实用性和新颖性。
《软件工程教程》可作为大学计算机及相关专业本（专）科学生的教材或教学参考书，也可作为研究生的参考教材。
目录
出版者的话 
前言 
教学建议 
第1章 软件工程概述 1 
1.1 软件发展和软件危机 1 
1.1.1 软件的定义和发展 1 
1.1.2 软件危机过程 2 
1.2 软件工程学的范畴 5 
1.3 软件开发的生命周期 5 
1.4 传统软件工程和面向对象软件工程 7 
1.5 软件的特点 10 
1.6 软件工程的基本目标 11 
小结 12 
习题 12 
第2章 软件生命周期过程模型 13 
2.1 过程及软件生命周期 13 
2.2 软件过程模型 14 
2.2.1 瀑布模型 15 
2.2.2 具有原型化的瀑布模型 17 
2.3 演化过程模型 18 
2.3.1 原型化模型 18 
2.3.2 螺旋模型 19 
2.3.3 操作说明模型 20 
2.4 增量过程模型 21 
2.4.1 RAD模型 21 
2.4.2 增量和迭代模型 22 
2.5 其他类型的过程模型 23 
2.5.1 喷泉模型 23 
2.5.2 智能模型 24 
2.5.3 V模型 25 
2.5.4 变换模型 25 
小结 26 
习题 26 
第3章 需求分析 27 
3.1 需求分析的任务 27 
3.1.1 需求定义 27 
3.1.2 需求的层次 28 
3.1.3 需求的开发与管理 28 
3.2 需求获取技术 30 
3.2.1 需求分析人员的组成 30 
3.2.2 需求的类型 30 
3.2.3 获取需求的途径 31 
3.3 需求规格说明书 36 
3.3.1 需求说明的目的 36 
3.3.2 需求说明的方法 36 
3.4 需求描述技术 36 
3.4.1 结构化技术 36 
3.4.2 形式化技术 40 
3.5 需求验证 48 
小结 49 
习题 49 
第4章 概要设计 51 
4.1 概要设计的概念 51 
4.1.1 概要设计的目标和任务 51 
4.1.2 概要设计的过程 53 
4.1.3 概要设计的工具 53 
4.2 模块独立性 55 
4.2.1 模块化 55 
4.2.2 模块的耦合性 56 
4.2.3 模块的内聚性 60 
4.3 结构化设计方法 63 
4.3.1 概念 63 
4.3.2 变换分析 66 
4.3.3 事务分析 68 
4.3.4 设计的后处理 69 
4.4 数据设计 70 
4.4.1 数据设计的原则 70 
4.4.2 数据结构设计 71 
4.4.3 文件设计 71 
4.4.4 数据库设计 72 
小结 73 
习题 73 
第5章 详细设计 74 
5.1 详细设计的任务 74 
5.2 详细设计的方法 75 
5.2.1 设计表示法 75 
5.2.2 结构化程序设计 77 
5.2.3 面向数据结构的设计 80 
5.2.4 详细设计文档与复审 85 
小结 90 
习题 91 
第6章 编码与语言选择 92 
6.1 编码的目的和任务 92 
6.2 编码所使用的语言 93 
6.2.1 程序设计语言范型 93 
6.2.2 程序设计语言的发展 94 
6.2.3 常用的编码语言 96 
6.2.4 编码语言的选择 98 
6.3 编码的风格 99 
小结 103 
习题 103 
第7章 面向对象方法 104 
7.1 面向对象的基本概念 104 
7.1.1 对象 104 
7.1.2 类与消息 105 
7.1.3 类的基本特征 106 
7.2 面向对象的开发方法 106 
7.2.1 概述 107 
7.2.2 面向对象方法的发展历程 107 
7.2.3 常用的面向对象分析的方法 108 
7.3 面向对象的设计 111 
7.3.1 面向对象设计概述 111 
7.3.2 底层设计—类的设计 118 
7.3.3 OOD的Yourdon的方法 120 
7.3.4 Booch的方法 125 
7.3.5 系统的设计过程 126 
小结 129 
习题 129 
第8章 统一建模语言 130 
8.1 统一建模语言简介 130 
8.1.1 发展历史 130 
8.1.2 UML简介 131 
8.1.3 UML视图简介 132 
8.1.4 视图 132 
8.1.5 UML类、构件、部署和协作图 中的图标 133 
8.1.6 扩展组件 134 
8.1.7 各种视图间的关系 134 
8.2 概念与视图 135 
8.2.1 静态视图 135 
8.2.2 用例图 136 
8.2.3 交互视图 136 
8.2.4 状态图 138 
8.2.5 活动视图 139 
8.2.6 物理视图 140 
8.2.7 模型管理视图 142 
8.3 UML与Java的对应关系 143 
8.3.1 表示结构 143 
8.3.2 表示关系 145 
8.4 统一建模语言的综合应用 149 
8.4.1 项目概述 149 
8.4.2 静态分析和设计 150 
8.4.3 持久对象设计 151 
8.4.4 动态对象设计 152 
8.4.5 通用接口设计 154 
8.4.6 体系结构设计 157 
小结 159 
习题 160 
第9章 统一软件过程 161 
9.1 软件开发过程 161 
9.2 迭代和递增 162 
9.3 核心工作流 162 
9.3.1 需求流 162 
9.3.2 分析流 164 
9.3.3 设计流 166 
9.3.4 实现流 167 
9.3.5 测试流 168 
9.3.6 交付后维护 170 
9.3.7 退役 170 
9.4 统一过程的各阶段 171 
9.4.1 开始阶段 171 
9.4.2 细化阶段 173 
9.4.3 构建阶段 173 
9.4.4 转换阶段 174 
9.5 二维生命周期模型 174 
小结 174 
习题 174 
第10章 软件测试 176 
10.1 软件测试概述 176 
10.1.1 软件测试的目标 176 
10.1.2 软件测试的原则 177 
10.1.3 软件测试的方法 178 
10.1.4 软件测试与软件开发各阶段的 关系 178 
10.1.5 测试信息流 179 
10.1.6 错误分类 179 
10.2 软件测试过程与策略 182 
10.2.1 单元测试 182 
10.2.2 集成测试 183 
10.2.3 确认测试 186 
10.2.4 平行运行 187 
10.3 设计测试方案 187 
10.3.1 逻辑覆盖 188 
10.3.2 等价划分 191 
10.3.3 边界值分析 194 
10.3.4 错误推测 194 
10.3.5 实用测试策略 195 
10.4 纠错 198 
10.5 对OOA和OOD模型的测试 200 
10.5.1 扩大测试的视角 201 
10.5.2 测试OOA和OOD模型 201 
10.6 面向对象的测试策略 203 
10.6.1 在OO语境中的单元测试 203 
10.6.2 在OO语境中的集成测试 203 
10.6.3 在OO语境中的有效性测试 204 
10.7 OO软件的测试用例设计 204 
10.7.1 OO概念的测试用例设计的 含义 204 
10.7.2 传统测试用例设计方法的 可用性 204 
10.7.3 基于故障的测试 205 
10.7.4 OO编程对测试的影响 205 
10.7.5 测试用例和类层次 206 
10.7.6 基于场景的测试设计 206 
10.7.7 测试表层结构和深层结构 207 
10.8 其他专门环境要求的测试 208 
10.8.1 GUI测试 208 
10.8.2 测试文档和帮助设施 209 
10.8.3 实时系统测试 210 
小结 211 
习题 211 
第11章 软件维护 213 
11.1 系统的变化 213 
11.1.1 系统的类型 214 
11.1.2 系统生命周期中的变化 215 
11.1.3 系统的生命范围 216 
11.2 软件维护的基本内容和特点 218 
11.2.1 软件维护概述 218 
11.2.2 软件维护的特点 219 
11.2.3 维护中的问题 220 
11.3 软件维护的实施 221 
11.3.1 软件维护的过程 221 
11.3.2 软件维护的技术 224 
11.4 软件的可维护性 224 
11.4.1 软件可维护性概述 225 
11.4.2 软件可维护性度量 225 
11.4.3 提高可维护性的方法 225 
11.5 软件维护的副作用 226 
11.5.1 代码副作用 226 
11.5.2 数据副作用 227 
11.5.3 文档副作用 227 
11.6 软件再工程 227 
11.6.1 软件再工程的过程 227 
11.6.2 软件再工程的方法 228 
小结 228 
习题 229 
第12章 软件质量及其管理 230 
12.1 软件质量的概念及属性 230 
12.1.1 软件质量概述 230 
12.1.2 软件质量的属性 230 
12.2 软件质量保证与控制 231 
12.2.1 软件质量保证概述 232 
12.2.2 软件质量保证计划 232 
12.2.3 软件质量成本 234 
12.2.4 软件质量控制 234 
12.3 软件质量度量 235 
12.3.1 软件质量度量概述 235 
12.3.2 质量度量模型 235 
12.3.3 三种度量模型的比较 236 
12.3.4 软件质量评价 238 
12.4 软件可靠性 238 
12.4.1 基本概念 238 
12.4.2 影响软件可靠性的因素 239 
12.4.3 软件可靠性模型 240 
12.4.4 软件可靠性工程 242 
12.5 CMM：软件能力成熟度模型 242 
12.5.1 CMM的发展 242 
12.5.2 基本概念 243 
12.5.3 SW-CMM的用途 243 
12.5.4 CMM的五个等级 244 
12.5.5 CMM的内部结构 246 
12.5.6 采用CMM的意义 248 
小结 249 
习题 249 
第13章 软件项目管理 250 
13.1 项目管理的概念 250 
13.1.1 项目管理过程 250 
13.1.2 项目管理的范围 251 
13.1.3 项目管理中的资源 251 
13.2 可行性研究 252 
13.2.1 可行性研究的任务和过程 252 
13.2.2 技术可行性研究 253 
13.2.3 经济可行性研究 254 
13.2.4 运行可行性研究 256 
13.3 软件项目估算 257 
13.3.1 代码行技术 257 
13.3.2 功能点技术 257 
13.4 软件开发成本估算 260 
13.4.1 软件开发成本估算方法 260 
13.4.2 专家判定技术 260 
13.4.3 软件开发成本估算的早期经验 模型 261 
13.5 进度安排 264 
13.5.1 软件开发小组人数与软件 生产率 264 
13.5.2 任务的确定与并行性 264 
13.5.3 制定开发进度计划 265 
13.5.4 项目的追踪和控制 265 
13.6 人员组织 266 
13.6.1 民主制程序员组 266 
13.6.2 主程序员组 267 
13.6.3 现代程序员组 268 
13.7 软件风险管理 269 
13.7.1 风险识别 269 
13.7.2 风险估计 271 
13.7.3 风险评价 272 
13.7.4 风险驾驭和监控 273 
13.8 软件配置管理 274 
13.8.1 软件配置 274 
13.8.2 软件配置管理过程 275 
小结 276 
习题 276 
第14章 CASE环境与工具 278 
14.1 工程环境 278 
14.1.1 软件开发环境的特点 278 
14.1.2 理想环境的模型 280 
14.1.3 CASE环境简介 280 
14.2 CASE环境的组成与结构 281 
14.2.1 CASE的组成构件 281 
14.2.2 CASE的一般结构 283 
14.3 CASE环境工具与实践 284 
14.3.1 CASE软件工程实践 284 
14.3.2 常用CASE工具介绍 285 
14.4 逐步求精 287 
小结 290 
习题 290 
第15章 软件工程新技术概述 292 
15.1 敏捷软件开发过程 292 
15.1.1 敏捷的概念 293 
15.1.2 敏捷过程的含义 293 
15.1.3 敏捷过程模型 295 
15.2 设计模式 302 
15.2.1 设计模式的基本概念 302 
15.2.2 关系环与组合模式 303 
15.2.3 工厂模式 306 
15.2.4 观察者模式与拉推数据 315 
15.3 Web工程简介 320 
15.3.1 Web系统和应用特点 320 
15.3.2 Web工程的层次 321 
15.3.3 Web分析 322 
15.3.4 Web设计 323 
15.3.5 Web测试 324 
15.3.6 Web的项目管理 328 
小结 330 
习题 330 
参考文献 331