第1章 绪论
1.1 软件的发展
1.2 软件危机
1.2.1 产生软件危机的原因
1.2.2 克服软件危机的途径
1.3 软件工程
1.3.1 软件工程的定义
1.3.2 软件工程的基本原则
1.3.3 软件工程的发展
1.4 软件开发方法
1.5 小结
习题一
第2章 软件生命周期模型
2.1 软件生命周期
2.2 软件生命周期模型的概念
2.3 典型的软件生命周期模型
2.3.1 瀑布模型
2.3.2 快速原型模型
2.3.3 增量模型
2.3.4 螺旋模型
2.3.5 喷泉模型
2.3.6 基于构件的开发模型
2.3.7 模型驱动体系结构
2.4 小结
习题二
第3章 可行性研究
3.1 可行性研究的任务
3.2 可行性研究步骤
3.3 系统流程图
3.3.1 基本符号
3.3.2 系统流程图的作用
3.4 成本一效益分析
3.5 可行性研究实例
3.6 小结
习题三
第4章 需求分析
4.1 需求的定义
4.2 获取需求的方法
4.3 需求分析的任务
4.4 需求分析的方法
4.5 结构化分析建模
4.5.1 结构化分析的步骤
4.5.2 数据流图
4.5.3 数据字典
4.5.4 加工逻辑的描述
4.6 结构化分析建模实例
4.7 验证软件需求
4.8 快速原型需求分析方法
4.9 小结
习题四
第5章 概要设计
5.1 概要设计概述
5.1.1 概要设计基本任务
5.1.2 概要设计基本步骤
5.2 基本设计原理
5.2.1 模块化
5.2.2 抽象
5.2.3 逐步求精
5.2.4 模块独立性
5.3 软件结构的描述工具
5.3.1 软件结构图
5.3.2 层次图和IPO表
5.4 结构化设计
5.4.1 数据流图的类型
5.4.2 结构化设计过程
5.4.3 变换分析设计
5.4.4 事务分析设计
5.4.5 综合型数据流图的软件结构设计
5.5 结构化设计举例
5.6 软件结构优化准则
5.7 概要设计审查和验证
5.8 小结
习题五
第6章 详细设计与编码实现
6.1 详细设计的基本任务
6.2 界面设计
6.2.1 界面设计的主要问题
6.2.2 友好界面设计的基本原则
6.3 过程设计
6.3.1 结构化程序设计方法
6.3.2 过程设计的描述工具
6.4 详细设计实例
6.5 编码实现
6.5.1 程序设计语言的选择
6.5.2 编码风格
6.6 小结
习题六
第7章 测试与维护
7.1 软件测试基础
7.1.1 软件测试的目的与准则
7.1.2 软件测试方法
7.2 测试用例设计技术
7.2.1 白盒测试技术
7.2.2 黑盒测试技术
7.3 软件测试过程
7.3.1 软件测试步骤
7.3.2 单元测试
7.3.3 集成测试
7.3.4 系统测试和验收测试
7.4 调试
7.4.1 调试的目的
7.4.2 调试的方法
7.5 软件维护
7.5.1 软件维护的定义
7.5.2 软件维护过程
7.5.3 软件的可维护性
7.6 小结
习题七
第8章 面向对象方法学基础
8.1 面向对象基础
8.1.1 面向对象的基本思想
8.1.2 面向对象的基本概念
8.1.3 面向对象的基本特征
8.1.4 面向对象方法的优点
8.1.5 面向对象方法的基本流派
8.2 UML面向对象建模
8.2.1 UML介绍
8.2.2 静态模型
8.2.3 功能模型
8.2.4 动态模型
8.2.5 三种模型之间的关系
8.3 小结
习题八
第9章 面向对象分析
9.1 面向对象分析的基本过程
9.1.1 面向对象分析概述
9.1.2 获取需求
9.1.3 用例模型
9.2 建立对象模型实例
9.2.1 确定对象
9.2.2 确定关联并画出初步的对象模型图
9.2.3 确定主题
9.2.4 确定属性
9.2.5 确定服务
9.2.6 识别泛化关系
9.2.7 完善对象模型
9.3 建立动态模型实例
9.3.1 准备脚本
9.3.2 构造顺序图
9.3.3 构造状态图
9.3.4 完善动态模型
9.4 建立功能模型实例
9.4.1 基本系统模型
9.4.2 功能级数据流图
9.5 小结
习题九
第10章 面向对象设计
10.1 面向对象设计的基本原则
10.2 软件复用
10.2.1 概述
10.2.2 基于构件的软件复用
10.2.3 软件重用的效益
10.3 面向对象设计的步骤
10.3.1 系统分解
10.3.2 类设计
10.3.3 设计类中的服务
10.3.4 设计关联
10.3.5 数据管理设计
10.3.6 人机界面设计
10.4 小结
习题十
第11章 面向对象实现
11.1 程序设计语言
11.1.1 面向对象程序设计概述
11.1.2 不同面向对象语言的比较
11.1.3 程序设计风格
11.2 面向对象测试
11.2.1 面向对象的测试策略
11.2.2 测试用例的设计
11.3 小结
习题十一
第12章 软件项目管理
12.1 成本估算方法
12.1.1 代码行及功能点估算方法
12.1.2 参数模型估算法
12.2 进度管理
12.3 人员组织
12.4 质量保证
12.5 软件配置管理
12.5.1 软件配置管理产生的原因
12.5.2 实施软件配置管理的步骤
12.6 软件过程管理
12.6.1 软件过程的定义
12.6.2 软件能力成熟度模型
12.7 小结
习题十二
附录A 软件工程开发文档
参考文献