内容简介
第一部分 软件工程基础
第1章 软件工程概述
1.1关于软件
1.1.1软件的定义与特性
1.1.2软件技术演化
1.1.3软件发展趋势
1.2关于软件工程
1.2.1软件危机
1.2.2软件危机的解决途径
1.2.3软件工程的概念
1.3软件工程原理与原则
1.3.1基本原理
1.3.2基本原则
1.4软件工程开发范型
1.4.1结构化开发范型
1.4.2面向对象开发范型
1.4.3重型软件工程与轻型软件工程
1.5软件工程活动
1.6小结
习题
第2章 软件过程
2.1关于软件过程
2.1.1软件过程框架
2.1.2软件过程模型
2.2软件过程技术
2.2.1产品与过程
2.2.2过程评估
2.2.3个人软件过程
2.2.4团队软件过程
2.3 CMM能力成熟度模型
2.3.1什么是能力成熟度模型
2.3.2 CMM的5级模型
2.3.3能力成熟度模型集成
2.4敏捷软件开发过程
2.4.1敏捷过程
2.4.2敏捷开发原则
2.5极限编程
2.5.1关于极限编程
2.5.2极限编程的精髓
2.6结对编程
2.6.1什么是结对编程
2.6.2结对编程分析
2.6.3结对编程方法
2.7小结
习题
第3章 软件过程模型
3.1软件生存周期
3.2瀑布模型
3.3增量模型
3.4螺旋模型
3.5构件集成模型
3.6形式化方法模型
3.7统一过程模型
3.8小结
习题
第二部分 结构化分析与设计
第4章 软件需求分析
4.1什么是软件需求
4.2软件需求分析过程
4.3会谈技术
4.3.1非正式会谈
4.3.2正式会谈
4.4调查表技术
4.4.1确定调查内容
4.4.2可靠可信分析
4.5场景分析
4.6小结
习题
第5章 结构化分析与建模
5.1结构化分析概述
5.2结构化分析模型
5.3面向数据流的建模方法
5.3.1数据流建模
5.3.2面对面结对编程系统分析
5.4面向数据的建模方法
5.4.1数据建模
5.4.2面对面结对编程系统实体关系图
5.5状态机建模方法
5.5.1状态机建模
5.5.2电梯控制系统分析
5.6结构化分析步骤
5.7需求规格说明文档编写示例
5.7.1引言
5.7.2任务概述
5.7.3数据描述
5.7.4功能需求
5.7.5性能需求
5.7.6运行需求
5.7.7其他需求
5.8小结
习题
第6章 结构化软件设计基础
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.4软件总体结构描述
6.4.1软件结构图
6.4.2软件结构优化
6.5小结
习题
第7章 结构化概要设计
7.1数据流模型
7.1.1变换流
7.1.2事务流
7.1.3混合流
7.2面向数据流的设计方法
7.3变换流设计
7.3.1变换流设计方法
7.3.2统计文件单词数程序
7.4事务流设计
7.4.1事务流设计方法
7.4.2自动柜员机业务
7.5混合流设计
7.6面向数据的JSD设计方法
7.6.1数据结构的表示
7.6.2面向数据的设计过程
7.6.3信用卡记账系统分析
7.7接口设计
7.8概要设计规格说明文档编写示例
7.8.1引言
7.8.2数据设计
7.8.3体系结构设计
7.8.4界面设计
7.8.5接口设计
7.8.6需求交叉索引
7.8.7测试部分
7.9小结
习题
第8章 结构化详细设计
8.1详细设计的基本任务
8.2结构化程序的控制结构
8.3结构化详细设计工具
8.3.1程序流程图
8.3.2盒图
8.3.3 PAD图
8.3.4 HIPO图
8.3.5判定表与判定树
8.3.6过程描述语言
8.4人机交互界面设计
8.4.1界面分析
8.4.2界面设计步骤
8.4.3界面设计指南
8.4.4 CAD系统界面设计
8.5数据库设计
8.6编码实现
8.6.1编码语言
8.6.2编码风格
8.7详细设计规格说明文档编写示例
8.7.1引言
8.7.2总体设计
8.7.3程序描述
8.8面对面结对编程系统的部分代码
8.8.1实现思路
8.8.2主界面的代码实现
8.9小结
习题
第三部分 面向对象分析与设计
第9章 面向对象基础
9.1面向对象概念
9.2面向对象模型
9.2.1用例模型
9.2.2逻辑模型
9.2.3交互模型
9.2.4部署模型
9.3 UML统一建模语言
9.3.1 UML的组成
9.3.2 UML的视图
9.4面向对象分析与设计过程
9.4.1面向对象分析过程
9.4.2面向对象设计过程
9.5小结
习题
第10章 面向对象分析与建模
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.2.5开发包图
10.2.6逻辑架构
10.3系统行为建模
10.3.1建立系统顺序图
10.3.2建立操作契约
10.3.3建立顺序图
10.3.4 POS机系统的状态图
10.4 POS机系统案例分析
10.5分布式结对编程系统分析与建模
10.5.1项目概述
10.5.2功能描述
10.5.3逻辑分析与建模
10.6小结
习题
第11章 面向对象设计与实现
11.1面向对象设计模型
11.2构件级设计
11.2.1关于构件
11.2.2构件级设计步骤
11.2.3构件级设计原则
11.3确定并发性
11.4使用设计模式
11.4.1基于职责的对象设计
11.4.2常见的设计模式
11.5面向对象详细设计
11.5.1模型精化
11.5.2逻辑架构的精化设计
11.5.3分层设计
11.5.4详细设计问题
11.5.5面向对象设计的进一步讨论
11.5.6详细设计中的实现问题
11.6数据存储与持久性设计
11.7部署设计与构件图
11.8面向对象设计案例分析
11.8.1 POS机系统
11.8.2分布式结对编程系统
11.9小结
习题
第四部分 软件测试、维护与管理
第12章软件测试
12.1软件测试概述
12.1.1软件测试的目的
12.1.2验证与确认
12.1.3软件测试的原则
12.2软件测试策略
12.2.1单元测试
12.2.2集成测试
12.2.3确认测试
12.2.4系统测试
12.3测试用例设计
12.4黑盒测试技术
12.4.1等价类划分
12.4.2边界值分析
12.4.3错误推测
12.4.4因果图
12.5白盒测试技术
12.5.1逻辑覆盖
12.5.2基本路径覆盖
12.5.3循环路径测试策略
12.6集成测试技术
12.6.1集成策略
12.6.2性能测试
12.6.3案例分析:ATM系统取款功能的测试
12.7面向对象测试技术
12.7.1面向对象分析的测试
12.7.2面向对象设计的测试
12.7.3面向对象编程的测试
12.7.4面向对象的单元测试
12.7.5面向对象的集成测试
12.7.6面向对象的系统测试
12.8调试技术
12.8.1调试过程
12.8.2调试策略
12.9测试管理
12.9.1测试计划与设计阶段
12.9.2测试实施阶段
12.9.3测试总结阶段
12.10软件测试文档编写
12.10.1软件测试计划文档
12.10.2软件集成测试文档
12.11小结
习题
第13章 软件维护
13.1软件维护概述
13.1.1软件维护的目的
13.1.2软件维护的特点
13.1.3软件的可维护性
13.2软件维护类型
13.3软件维护技术与过程
13.4非结构化维护和结构化维护
13.5提高软件的可维护性
13.6小结
习题
第14章 软件项目管理
14.1软件项目管理概述
14.2软件项目组织管理
14.2.1团队组织模式
14.2.2项目组织原则
14.3软件过程管理
14.3.1软件过程度量
14.3.2软件过程改进
14.3.3软件项目度量
14.4软件风险管理
14.4.1风险识别
14.4.2风险预测
14.4.3风险管理
14.5软件配置管理
14.5.1基本概念
14.5.2软件配置管理过程
14.5.3版本和发布管理
14.6软件项目估算
14.6.1软件项目估算概述
14.6.2软件规模度量
14.6.3软件项目估算管理
14.7软件项目估算的分解技术
14.7.1基于问题分解的估算
14.7.2基于过程分解的估算
14.8经验估算技术
14.8.1专家类比推断
14.8.2中级COCOMO模型
14.9软件质量管理
14.9.1软件质量保证
14.9.2软件质量度量
14.10软件项目进度计划
14.10.1进度计划
14.10.2进度安排
14.10.3进度跟踪管理
14.11小结
习题
参考文献