第1章软件工程的基本概念
1.1软件的定义、特征和分类
1.1.1软件的定义
1.1.2软件的特征
1.1.3软件的分类
1.2软件的发展和软件危机
1.2.1软件的发展历程
1.2.2软件危机的表现、产生的原因和解决方法
1.3软件工程方法学
1.3.1软件工程的基本概念
1.3.2软件工程的要素
1.3.3软件工程的基本原理
1.3.4软件工程的基本目标
1.3.5软件工程的基本原则
1.3.6两种主要的软件工程方法
1.4软件的生命周期
1.4.1生命周期的种类
1.4.2生命周期的阶段划分
1.5软件过程的模型
1.5.1瀑布模型
1.5.2原型模型
1.5.3增量模型
1.5.4螺旋模型
1.5.5变换模型
1.5.6喷泉模型
1.5.7智能模型
1.5.8第4代技术模型
1.5.9基于构件的开发模型
1.6本章小结
习题1
第2章需求分析与需求设计
2.1可行性研究
2.1.1问题的定义
2.1.2可行性分析的内容
2.2需求分析的任务
2.3获取需求的方法
2.4需求分析的原理
2.4.1需求分析的原则
2.4.2需求分析的过程
2.5分析建模
2.5.1分析模型
2.5.2数据建模(ER图)
2.5.3功能建模(数据流图)
2.5.4行为建模(状态迁移图)
2.5.5数据字典
2.5.6加工说明的描述工具
2.6需求规格说明书
2.7需求验证
2.8本章小结
习题2
第3章软件设计
3.1软件设计的原理
3.1.1软件设计的过程
3.1.2软件设计的原则
3.1.3软件体系结构
3.1.4模块化设计的方法
3.2结构化设计方法
3.2.1系统结构图中的模块
3.2.2变换流与变换型系统结构
3.2.3事务流与事务型系统结构图
3.2.4变换分析与映射
3.2.5事务分析与映射
3.2.6软件体系结构优化的方法
3.2.7“黑箱”技术的使用
3.3数据设计
3.3.1数据设计的原则
3.3.2文件设计的过程
3.3.3数据库设计
3.3.4数据库设计的技巧
3.4详细设计
3.4.1详细设计的任务
3.4.2详细设计的原则
3.4.3过程设计
3.4.4界面设计
3.4.5在线帮助的信息设计
3.4.6提示信息的信息设计
3.5设计规格说明与设计评审
3.5.1软件设计规格说明书
3.5.2软件设计的评审
3.6本章小结
习题3
第4章面向对象方法学
4.1面向对象概述
4.1.1面向对象基本概念
4.1.2面向对象基本特征
4.2面向对象开发方法概述
4.2.1软件开发过程
4.2.2传统开发方法存在的问题
4.2.3面向对象开发方法的特点
4.2.4Booch方法
4.2.5Coda/Yourdon方法
4.2.6OMT方法
4.2.7OOSE方法
4.3统一建模语言UML
4.3.1UML概述
4.3.2UML内容
4.4本章小结
习题4
第5章面向对象分析
5.1面向对象分析概述
5.1.1面向对象分析模型
5.1.2面向对象分析过程
5.2需求陈述
5.3建立静态模型
5.3.1寻找类与对象
5.3.2确定关联
5.3.3确定属性
5.3.4识别主题
5.3.5识别结构
5.3.6定义服务
5.3.7完善对象模型
5.4建立动态模型
5.4.1准备脚本
5.4.2确定事件
5.4.3准备事件跟踪图
5.4.4构造状态机图
5.4.5完善动态模型
5.5建立功能模型
5.5.1确定基本系统模型图
5.5.2细化数据流图
5.5.3功能描述
5.6面向对象分析实例
5.7本章小结
习题5
第6章面向对象设计
6.1面向对象设计概述
6.1.1面向对象设计模型
6.1.2面向对象设计准则
6.1.3面向对象设计启发规则
6.2系统设计
6.2.1系统分解
6.2.2设计问题域子系统
6.2.3设计人机交互子系统
6.2.4设计任务管理子系统
6.2.5设计数据管理子系统
6.2.6全局资源管理
6.2.7控制流机制
6.2.8边界条件
6.2.9评审
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.5本章小结
习题6
第7章代码设计
7.1程序设计语言
7.1.1程序设计语言的基本成分
7.1.2程序设计语言的分类
7.1.3程序设计语言的选择
7.2程序设计风格
7.2.1源程序的文档化
7.2.2数据说明
7.2.3语句构造
7.2.4输入与输出
7.2.5编程规范
7.3结构化程序设计
7.3.1结构化程序设计的原理
7.3.2结构化编程
7.4面向对象程序设计
7.4.1面向对象语言的特点
7.4.2面向对象语言的选择
7.4.3面向对象程序设计风格
7.5程序效率
7.6程序复杂性度量
7.7本章小结
习题7
第8章软件测试
8.1软件测试基础
8.1.1什么是软件缺陷
8.1.2软件测试的原则
8.1.3软件测试过程模型
8.1.4软件测试的阶段
8.1.5软件测试的工作范畴
8.2软件测试基本技术
8.2.1黑盒测试和白盒测试
8.2.2静态测试和动态测试
8.2.3验证与确认
8.2.4自动化测试和随机测试
8.3黑盒测试法
8.3.1等价类划分法
8.3.2边界值分析法
8.3.3错误推测法
8.3.4因果图法
8.4白盒测试法
8.4.1逻辑覆盖法
8.4.2基本路径法
8.5软件测试计划
8.5.1测试策略
8.5.2制定测试计划
8.6测试用例设计
8.6.1什么是测试用例
8.6.2测试用例的书写标准
8.6.3测试用例设计的原则
8.7面向对象测试
8.7.1面向对象测试模型
8.7.2面向对象的单元测试
8.7.3面向对象的集成测试
8.8软件测试自动化
8.8.1自动化测试的基本概念
8.8.2测试工具的分类及选择
8.9本章小结
习题8
第9章成本估算与进度规划
9.1软件度量与软件生产率
9.1.1软件度量
9.1.2面向规模的度量
9.1.3面向功能的度量
9.1.4软件质量的度量
9.1.5影响软件生产率的因素
9.2软件项目估算与开发成本估算
9.2.1软件项目计划的目标
9.2.2软件的范围
9.2.3软件开发的资源
9.2.4软件项目估算
9.2.5估算之前的任务分解
9.2.6软件开发成本估算
9.3进度计划
9.3.1各阶段工作量的分配
9.3.2制定开发进度计划
9.3.3进度安排的方法
9.4本章小结
习题9
第10章团队建设与沟通管理
10.1团队建设的基本概念
10.2项目团队的组织
10.2.1项目的组织结构模式
10.2.2程序设计小组的组织形式
10.3团队成员的选择与基本要求
10.3.1项目开发各阶段对人员的需求
10.3.2配备人员的原则
10.3.3对项目经理的要求
10.3.4团队成员的招聘与选择
10.4团队的建设与管理
10.4.1项目成员的使用与培训
10.4.2对项目成员的激励
10.4.3软件项目的指导
10.4.4软件项目的检验
10.5团队的沟通管理
10.5.1沟通管理与沟通的原则
10.5.2沟通方式
10.5.3编制项目沟通计划
10.6本章小结
习题10
第11章风险管理和配置管理
11.1风险管理
11.1.1软件风险分类
11.1.2风险识别
11.1.3风险预测
11.1.4处理风险的策略
11.2质量保证
11.2.1软件质量
11.2.2软件质量保证措施
11.3配置管理
11.3.1软件配置管理的内容
11.3.2软件配置管理的基本目标
11.3.3软件配置管理角色职责
11.3.4软件配置管理过程描述
11.3.5软件配置管理的关键活动
11.4本章小结
习题11
第12章软件过程
12.1软件过程概述
12.2软件过程能力成熟度模型
12.2.1软件过程能力成熟度模型(SWCMM)的诞生
12.2.2软件过程能力成熟度模型(CMM)的组织与结构
12.2.3能力等级的特点和关键过程域
12.2.4实施CMM是软件企业发展的必然趋势
12.3软件过程的改进
12.3.1软件过程改进的5条原则
12.3.2软件过程改进的策略
12.3.3软件过程改进战略策划
12.3.4软件过程改进建议
12.3.5实施SPI的目的
12.3.6以项目形式管理SPI
12.4本章小结
习题12
第13章软件工程标准
13.1软件工程标准化
13.1.1软件工程标准的概念
13.1.2软件工程标准的制定与推行
13.1.3软件工程标准层次
13.2软件质量认证
13.2.1软件质量认证的产生背景
13.2.2软件质量认证的标准
13.2.3软件质量认证的作用
13.2.4ISO 9000标准的构成
13.3GB/T 8567—2006计算机软件文档编制规范
13.3.1使用范围
13.3.2文档过程
13.3.3文档编制要求
13.4本章小结
习题13
第14章软件文档
14.1软件文档的意义
14.2软件文档的作用
14.2.1管理依据
14.2.2任务之间联系的凭证
14.2.3质量保证
14.2.4培训与参考
14.2.5软件维护支持
14.2.6历史档案
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.5.4让开发和设计人员参与文档审阅工作
14.6文档编写的常用工具
14.7本章小结
习题14
第15章软件文档编写指南
15.1概述
15.2软件开发文档
15.2.1可行性分析(研究)报告
15.2.2软件需求规格说明
15.2.3概要设计书
15.2.4详细设计书
15.3软件管理文档
15.3.1项目开发计划
15.3.2软件测试计划
15.3.3测试报告
15.3.4开发进度月报
15.3.5项目开发总结报告
15.4软件用户文档
15.4.1用户手册
15.4.2操作手册
15.5本章小结
习题15
参考文献