软件工程——原理、方法与应用(第2版)
作者: 史济民
出版时间:2002-12-15
出版社:高等教育出版社
- 高等教育出版社
- 9787040115611
- 2
- 250284
- 平装
- 16开
- 2002-12-15
- 470
- 340
- 工学
- 软件工程
本书自第一版出版以来,由于内容全面(以软件开发技术为主体,兼顾软件工程管理和软件工程环境)、注重实用(理论与实践紧密结合)而受到读者欢迎。第一版连续发行12年,重印15次,累计印数近12万册,并于1995年获得上海市优秀教材二等奖。
第二版继承前一版的风格,增加了面向对象、软件复用等大量新内容。全书共15章,在介绍了软件工程的基本概念和软件开发模型后,按照软件开发流程的顺序,依次介绍了需求分析、系统设计、编码、测试、维护的基本概念以及软件管理、质量保证和工程环境等知识。为了说明怎样把软件工程的原理与方法应用于软件开发,在有关各章均有典型案例,从头到尾陆续讲述了一个软件的完整开发过程。
本书可作为高等学校计算机及相关专业本、专科学生软件工程课程的教材,对从事软件开发、软件维护的工程和管理人员也是一本很好的参考书。
第一章 绪论
1.1 软件与软件危机
1.1.1 软件的定义
1.1.2 软件的特征
1.1.3 软件危机
1.2 软件工程学的范畴
1.2.1 软件开发方法学
1.2.2 软件工具
1.2.3 软件工程环境
1.2.4 软件工程管理
1.3 传统软件工程和面向对象软件工程
1.3.1 程序设计方法的两次飞跃
1.3.2 面向对象程序设计的优势
1.3.3 两类软件工程范型的简单比较
1.4 软件工程的应用
1.4.1 在各种规模软件开发中的应用
1.4.2 软件工程的成就与局限
1.5 软件工程的教学:本书导读
小结
习题
第二章 软件开发模型
2.1 软件生存周期
2.2 传统软件开发模型
2.2.1 瀑布模型
2.2.2 快速原型模型
2.3 软件演化模型
2.3.1 增量模型
2.3.2 螺旋模型
2.4 面向对象开发模型
2.4.1 面向对象的基本概念
2.4.2 构件集成模型
2.5 形式化方法模型
2.5.1 转换模型
2.5.2 净室模型
2.6 开发模型选用实例
2.6.1 瀑布模型实例:教材购销系统(面向过程软件)
2.6.2 螺旋模型实例:显像管生产监测系统(面向对象软件)
小结
习题
第三章 软件需求分析
3.1 需求分析的任务与步骤
3.1.1 需求分析的任务
3.1.2 需求分析的步骤
3.2 需求获取的常用方法
3.2.1 常规的需求获取方法
3.2.2 快速原型法在需求分析中的应用
3.3 分析建模
3.3.1 两种分析模型
3.3.2 分析模型的组成与描述工具
3.4 软件需求说明
3.5 结构化分析方法
3.5.1 画分层数据流图
3.5.2 确定数据定义与加工策略
3.5.3 需求分析的复审
3.6 面向对象分析方法
3.6.1 定义用例
3.6.2 领域分析
3.6.3 类对象建模
3.6.4 建立对象-关系模型
3.6.5 建立对象-行为模型
小结
习题
第四章 软件设计概述
4.1 软件设计的任务
4.2 软件设计的基本概念
4.2.1 模块与构件
4.2.2 抽象与细化
4.2.3 信息隐藏
4.2.4 软件复用
4.3 模块化设计
4.3.1 分解
4.3.2 模块独立性
4.3.3 自顶向下与由底向上设计
4.4 其他设计问题的处理
4.4.1 协同设计
4.4.2 用户界面设计
4.4.3 并发系统设计
4.5 设计文档及其复审
4.5.1 软件设计说明书
4.5.2 设计复审
小结
习题
第五章 传统的设计方法
5.1 概述
5.1.1 面向数据流设计和面向数据设计
5.1.2 从分析模型导出设计模型
5.2 结构化设计方法
5.2.1 SC图
5.2.2 数据流图的类型与SD方法的步骤
5.2.3 变换映射
5.2.4 事务映射
5.2.5 结构设计的优化规则
5.2.6 教材购销系统的结构设计示例
5.3 过程设计
5.3.1 目的与任务
5.3.2 过程设计的原则与方法
5.3.3 常用的表达工具
5.3.4 过程设计示例
5.4 Jackson方法
5.4.1 Jackson表示法
5.4.2 Jackson方法的设计步骤
5.4.3 Jackson方法示例
小结
习题
第六章 面向对象设计方法
6.1 面向对象设计概述
6.1.1 面向对象设计的任务
6.1.2 面向对象的设计模型
6.2 系统设计
6.2.1 系统设计过程
6.2.2 子系统设计
6.2.3 人机交互设计
6.2.4 任务管理设计
6.2.5 数据管理设计
6.3 对象设计
6.3.1 对象描述
6.3.2 算法设计
6.3.3 程序构件与接口
6.4 领域对象设计
6.4.1 领域对象的设计内容
6.4.2 领域对象的设计模板
小结
习题
第七章 统一建模语言UML
7.1 U ML的组成、特点与应用
7.1.1 UML的组成
7.1.2 UML的特点
7.1.3 UML的应用
7.2 静态建模
7.2.1 用例模型
7.2.2 类和对象模型
7.2.3 包
7.3 动态建模
7.3.1 消息
7.3.2 状态图和时序图
7.3.3 协作图和活动图
7.3.4 动态图的运用
7.4 物理架构建模
7.4.1 逻辑架构与物理架构
7.4.2 构件图与配置图
7.5 基于UML的统一建模过程——RUP
小结
习题
第八章 编码和语言选择
8.1 编码的目的
8.2 编码的风格
8.3 编码使用的语言
8.3.1 编码语言的发展
8.3.2 常用的编码语言
8.3.3 编码语言的选择
小结
习题
第九章 软件测试
9.1 测试的基本概念
9.1.1 目的与任务
9.1.2 测试的特性
9.1.3 测试的种类
9.1.4 测试的文档
9.2 黑盒测试
9.2.1 等价分类法
9.2.2 边界值分析法
9.2.3 错误猜测法
9.3 白盒测试
9.3.1 逻辑覆盖测试法
9.3.2 路径测试法
9.4 测试用例设计
9.4.1 黑盒测试用例设计
9.4.2 白盒测试用例设计
9.5 软件的纠错
9.5.1 纠错的策略
9.5.2 常用的纠错技术
9.5.3 纠错举例
9.6 多模块程序的测试策略
9.6.1 测试的层次性
9.6.2 程序错误的类型
9.6.3 单元测试
9.6.4 集成测试
9.6.5 确认测试
9.6.6 系统测试
9.6.7 终止测试的标准
9.7 面向对象系统的测试
9.7.1 面向对象软件的测试策略
9.7.2 面向对象软件测试用例设计
小结
习题
第十章 软件复用
10.1 软件复用的基本概念
10.1.1 软件复用的定义
10.1.2 软件复用的重要性
10.1.3 软件复用的粒度
10.2 领域工程
10.2.1 领域工程的活动内容
10.2.2 实施领域分析
10.2.3 开发可复用构件
10.2.4 建立可复用构件库
10.3 基于构件的软件开发
10.3.1 构件集成的过程
10.3.2 应用系统工程
10.4 面向对象与软件复用
10.4.1 面向对象方法对软件复用的支持
10.4.2 复用技术对面向对象方法的支持
小结
习题
第十一章 软件维护
11.1 软件维护的种类
11.2 软件可维护性
11.3 软件维护的实施
11.4 软件维护的管理
11.5 软件再工程
小结
习题
第十二章 软件项目计划
12.1 问题定义
12.2 可行性研究
12.3 软件风险分析
12.4 项目实施计划
小结
习题
第十三章 软件工程管理
13.1 管理的目的与内容
13.2 软件估算模型
13.2.1 资源估算模型
13.2.2 COCOMO模型
13.3 软件成本估计
13.4 人员的分配与组织
13.5 项目进度安排
13.6 软件知识产权保护
13.6.1 软件著作权
13.6.2 软件侵权及法律保护
13.6.3 软件工程师的职业道德规范
小结
习题
第十四章 软件质量管理
14.1 从质量保证到质量认证
14.2 质量保证
14.2.1 软件的质量属性
14.2.2 质量保证的活动内容
14.3 软件可靠性
14.3.1 可靠性的定义和分级
14.3.2 可靠性模型
14.3.3 软件容错技术
14.4 程序正确性证明
14.5 CM M软件能力成熟度模型
14.5.1 CM M的基本概念
14.5.2 软件能力成熟度等级
14.5.3 CM M的应用
14.5.4 CM M评估的实施
14.5.5 软件过程评估的SPICE国际标准
14.6 ISO 9000国际标准
14.6.1 ISO 9001和ISO 9000-3
14.6.2 ISO 9000标准对软件企业的重要性
14.6.3 怎样在软件企业中实施ISO9000标准
14.7 软件度量
14.7.1 项目度量
14.7.2 过程度量
小结
习题
第十五章 软件工程环境
15.1 什么是软件工程环境
15.1.1 软件开发环境的特点
15.1.2 理想环境的模型
15.1.3 CASE环境
15.2 CASE环境的组成与结构
15.2.1 CASE的组成构件
15.2.2 CASE的一般结构
15.3 CASE环境实例
15.3.1 SUITE企业开发环境
15.3.2 青鸟系统
小结
习题
附录 缩略语中英文对照表
参考文献