第1章绪论
1.1软件概述
1.1.1什么是计算机软件
1.1.2软件的特点
1.1.3软件的分类
1.1.4软件的发展
1.1.5软件危机
1.2软件工程概述
1.2.1软件工程与方法学
1.2.2软件工程的基本原理
1.2.3软件工程的目标
1.2.4软件工程的内容
1.2.5软件工程原则
1.2.6软件工程面临的问题
小结
综合练习1
第2章基本理论
2.1软件工程过程
2.2软件生命周期
2.2.1软件分析时期
2.2.2软件设计时期
2.2.3编码与测试时期
2.2.4运行与维护时期
2.3软件生命周期模型
2.3.1软件生命周期模型的概念
2.3.2瀑布模型
2.3.3原型模型
2.3.4增量模型
2.3.5螺旋模型
2.3.6喷泉模型
2.3.7基于知识的模型
2.3.8变换模型
2.4软件开发方法
2.4.1结构化方法
2.4.2Jackson方法
2.4.3维也纳开发方法
2.4.4面向对象的开发方法
2.5软件工具与开发
2.5.1软件工具箱
2.5.2软件开发环境
2.5.3计算机辅助软件工程
小结
综合练习2
第3章可行性研究
3.1可行性研究任务与步骤
3.1.1研究任务
3.1.2研究步骤
3.2系统分析
3.2.1系统分析员
3.2.2面临的问题域
3.2.3通信技术
3.3分析原理
3.3.1信息域
3.3.2建立模型
3.3.3分解
3.4系统模型与模拟
3.4.1系统模型
3.4.2系统建模和模拟
3.5成本效益分析
3.6可行性研究的文档
3.7项目开发计划
3.7.1方案选择
3.7.2制订项目开发计划
小结
综合练习3
第4章软件需求分析
4.1需求分析
4.1.1需求分析的特点
4.1.2需求分析的原则
4.1.3需求分析的任务
4.1.4需求分析的方法
4.2结构化分析
4.2.1自顶向下逐层分解
4.2.2结构化分析步骤
4.3系统流程图
4.4数据流图
4.4.1基本图形符号
4.4.2画数据流图
4.4.3结构化分析方法的应用
4.5数据字典
4.5.1内容及格式
4.5.2数据字典的实现
小结
综合练习4
第5章总体设计
5.1软件设计的重要性
5.2设计过程
5.3软件总体设计
5.4设计基本原理
5.4.1抽象
5.4.2细化
5.4.3模块化
5.4.4软件体系结构
5.4.5程序结构
5.4.6数据结构
5.4.7软件过程
5.5体系结构设计
5.5.1软件结构图
5.5.2模块的大小
5.5.3扇出和扇入与深度和宽度
5.5.4模块的耦合
5.5.5模块的内聚
5.5.6结构设计的一般准则
5.5.7模块的作用域与控制域
5.6结构化设计
5.6.1数据流的类型
5.6.2过程步骤
5.6.3变换分析设计
5.6.4事务分析设计
5.6.5混合流设计
5.6.6结构化设计方法应用示例
5.6.7设计的后期处理
5.7软件结构优化
5.7.1软件结构设计优化准则
5.7.2软件结构的HIPO图
小结
综合练习5
第6章软件详细设计
6.1详细设计的任务与方法
6.1.1详细设计的基本任务
6.1.2详细设计方法
6.2设计表示法
6.2.1结构化语言
6.2.2判定表
6.2.3判定树
6.3结构化程序设计
6.3.1流程图程序
6.3.2三种基本控制结构
6.3.3常用符号
6.3.4正规程序
6.3.5基本程序
6.3.6结构化程序
6.4结构化定理
6.4.1程序函数
6.4.2基本定理
6.4.3非结构化转换为结构化
6.4.4常见错误
6.5过程设计语言
小结
综合练习6
第7章面向对象分析
7.1面向对象的相关概念
7.1.1对象
7.1.2类
7.1.3属性
7.1.4服务(操作或方法)
7.1.5封装
7.1.6继承
7.1.7消息
7.1.8结构与连接
7.2UML的基本图标
7.3对象分析
7.3.1用户需求与研究问题域
7.3.2发现对象方法
7.3.3定义属性
7.3.4定义服务
7.4一般特殊结构
7.5整体部分结构
7.6实例连接
7.6.1简单的实例连接
7.6.2复杂的实例连接及其表示
7.7消息连接
小结
综合练习7
第8章面向对象设计
8.1系统总体方案
8.2软件体系结构
8.3设计环境
8.3.1为适应编程环境的调整
8.3.2对象设计的步骤
8.4完善对象的细节
8.5设计算法
8.5.1选择算法
8.5.2选择数据结构
8.6关联设计
8.6.1单向关联
8.6.2双向关联
8.7设计优化
小结
综合练习8
第9章用户界面设计
9.1人的因素
9.1.1分析活动者
9.1.2从Use Case分析人机交互
9.1.3分析处理异常事件的人机交互
9.1.4命令的组织
9.1.5输出信息的组织结构
9.2界面设计风格
9.2.1菜单的选择
9.2.2对话框
9.2.3窗口
9.3人机界面的设计准则
9.4人机界面设计过程
9.4.1用户界面模型
9.4.2界面支持系统
9.4.3界面元素
9.4.4设计的形式
9.5描述方法与技术
9.5.1灵境技术
9.5.2多通道人机交互技术
小结
综合练习9
第10章数据库及其接口设计
10.1数据管理系统及其选择
10.2技术整合
10.3数据接口
10.4对象存储方案和数据接口的设计策略
10.4.1针对文件系统的设计
10.4.2针对RDBMS的设计
10.4.3使用OODBMS
小结
综合练习10
第11章软件实现
11.1程序设计语言的特性及选择
11.1.1程序设计语言特性
11.1.2程序设计语言的选择
11.2程序设计风格
11.3程序设计效率
11.3.1代码效率
11.3.2内存效率
11.3.3I/O效率
11.4冗余编程
11.5软件容错技术
11.5.1容错软件
11.5.2容错的一般方法
11.5.3容错软件的设计过程
11.5.4软件的容错系统结构
小结
综合练习11
第12章软件质量
12.1软件质量概述
12.1.1软件质量的定义
12.1.2软件质量特性
12.1.3软件质量特性之间的竞争
12.2软件质量的度量和评价
12.2.1软件质量的度量
12.2.2软件质量度量的分类
12.2.3软件质量评价
12.3软件质量保证
12.3.1软件质量保证的概述
12.3.2软件质量保证原则
12.3.3软件质量保证计划
12.3.4软件质量保证的措施
12.3.5软件质量管理小组
12.4技术评审与审查
12.4.1评审过程
12.4.2选择参加评审的成员
12.4.3评审的管理和组织
12.4.4评审的方法
12.4.5走查和审查
12.4.6开发过程的评审
12.4.7对评审的综合评价
12.5软件的可靠性
小结
综合练习12
第13章软件测试
13.1软件测试概述
13.1.1软件测试的目的
13.1.2软件测试的原则
13.2测试方法
13.2.1静态测试
13.2.2动态测试
13.3测试用例的设计
13.3.1白盒技术
13.3.2黑盒技术
13.4测试过程
13.4.1软件测试过程中的信息
13.4.2软件测试的步骤与各开发阶段的关系
13.4.3单元测试
13.4.4集成测试
13.4.5确认测试
13.5调试
小结
综合练习13
第14章软件维护
14.1软件维护概述
14.1.1软件维护的定义
14.1.2影响维护工作的因素
14.1.3维护成本
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.4.4维护的副作用
14.5维护“老化代码”
14.6逆向工程和再工程
14.6.1预防性维护
14.6.2逆向工程的元素
14.6.3再工程中的重构技术
小结
综合练习14
第15章软件项目管理与计划
15.1软件项目管理概述
15.1.1软件管理的对象
15.1.2软件开发中的资源
15.1.3分解技术
15.2项目管理过程
15.3软件开发成本估算
15.3.1软件开发成本估算方法
15.3.2软件开发成本估算的经验模型
15.4风险分析
15.4.1风险识别
15.4.2风险估算
15.4.3风险评价
15.4.4风险驾驭和监控
15.5进度安排
15.5.1软件开发小组人数与软件生产率
15.5.2任务的确定与并行性
15.5.3制定开发进度计划
15.5.4进度安排的图形方法
15.5.5项目的追踪和控制
15.6软件项目的组织
15.6.1软件项目管理的特点
15.6.2软件项目组织的建立
15.6.3人员配备
小结
综合练习15
参考答案
参考文献