内容简介
第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 两种主要的软件工程方法
小结
习题
第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.3.8 第4代技术模型
2.3.9 基于构件的开发模型
小结
习题
第3章 结构化需求分析
3.1 可行性研究
3.1.1 问题的定义
3.1.2 可行性分析的内容
3.2 需求分析的任务
3.3 获取需求的方法
3.4 结构化需求分析方法
3.4.1 需求分析的原则
3.4.2 需求分析的过程
3.5 分析建模
3.5.1 分析模型
3.5.2 数据建模(E-R图)
3.5.3 功能建模(数据流图)
3.5.4 行为建模(状态迁移图)
3.5.5 数据字典
3.5.6 加工说明的描述工具
3.6 需求规格说明书
3.7 需求验证
小结
习题
第4章 结构化软件设计
4.1 软件设计的原理
4.1.1 软件设计的过程
4.1.2 软件设计的原则
4.1.3 软件体系结构
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.3.4 事务分析与映射
4.4 数据设计
4.4.1 数据设计的原则
4.4.2 文件设计的过程
4.4.3 数据库设计
4.4.4 数据库设计的技巧
4.5 详细设计
4.5.1 详细设计的任务
4.5.2 详细设计的原则
4.5.3 过程设计
4.5.4 界面设计
4.5.5 在线帮助的信息设计
4.5.6 提示信息的信息设计
4.6 设计规格说明与设计评审
4.6.1 软件设计规格说明书
4.6.2 软件设计的评审
小结
习题
第5章 面向对象方法学
5.1 面向对象概述
5.1.1 面向对象基本概念
5.1.2 面向对象基本特征
5.2 面向对象开发方法概述
5.2.1 软件开发过程
5.2.2 传统开发方法存在的问题
5.2.3 面向对象开发方法的特点
5.2.4 Booch方法
5.2.5 Coda/Yourdon方法
5.2.6 OMT方法
5.2.7 OOSE方法
5.3 统一建模语言UML
5.3.1 UML概述
5.3.2 UML内容
小结
习题
第6章 面向对象分析
6.1 面向对象分析概述
6.1.1 面向对象分析模型
6.1.2 面向对象分析过程
6.2 需求陈述
6.3 建立功能模型
6.3.1 确定基本系统模型图
6.3.2 细化数据流图
6.3.3 功能描述
6.3.4 用例模型
6.4 建立静态模型
6.4.1 寻找类与对象
6.4.2 确定关联
6.4.3 确定属性
6.4.4 识别主题
6.4.5 识别结构
6.4.6 定义服务
6.4.7 完善对象模型
6.5 建立动态模型
6.5.1 准备脚本
6.5.2 确定事件
6.5.3 准备时序图
6.5.4 生成协作图
6.5.5 构造状态机图
6.5.6 完善动态模型
6.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.2.6 全局资源管理
7.2.7 控制流机制
7.2.8 边界条件
7.2.9 评审
7.3 对象设计
7.3.1 设计内部结构
7.3.2 设计关联
7.3.3 设计接口
7.3.4 设计类中的服务
7.3.5 选择复用构件
7.3.6 优化对象设计
7.4 面向对象设计实例
7.4.1 分析阶段
7.4.2 设计阶段
小结
习题
第8章 代码设计
8.1 程序设计语言
8.1.1 程序设计语言的基本成分
8.1.2 程序设计语言的分类
8.1.3 程序设计语言的选择
8.2 程序设计风格
8.2.1 源程序的文档化
8.2.2 数据说明
8.2.3 语句构造
8.2.4 输入与输出
8.2.5 编程规范
8.3 结构化程序设计
8.3.1 结构化程序设计的原理
8.3.2 结构化编程
8.4 面向对象程序设计
8.4.1 面向对象语言特点
8.4.2 面向对象语言的选择
8.4.3 面向对象程序设计风格
8.5 程序效率
8.6 程序复杂性度量
小结
习题
第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.3 黑盒测试法
9.3.1 等价类划分法
9.3.2 边界值分析法
9.3.3 错误推测法
9.3.4 因果图法
9.4 白盒测试法
9.4.1 逻辑覆盖法
9.4.2 基本路径法
9.5 软件测试计划
9.5.1 测试策略
9.5.2 制定测试计划
9.6 测试用例设计
9.6.1 什么是测试用例
9.6.2 测试用例的书写标准
9.6.3 测试用例设计的原则
9.7 面向对象测试
9.7.1 面向对象测试模型
9.7.2 面向对象的单元测试
9.7.3 面向对象的集成测试
9.8 软件测试自动化
9.8.1 自动化测试的基本概念
9.8.2 测试工具的分类及选择
小结
习题
第10章 软件过程
10.1 软件过程概述
10.2 软件过程能力成熟度模型
10.2.1 软件过程能力成熟度模型(SW-CMM)的诞生
10.2.2 软件过程能力成熟度模型(CMM)的组织与结构
10.2.3 能力等级的特点和关键过程域
10.2.4 实施CMM是软件企业发展的必然趋势
10.3 软件过程的改进
10.3.1 软件过程改进的5条原则
10.3.2 软件过程改进的策略
10.3.3 软件过程改进战略策划
10.3.4 软件过程改进建议
10.3.5 为什么要实施SPI
10.3.6 以项目形式管理SPI
小结
习题
第11章 成本估算与进度规划
11.1 软件度量与软件生产率
11.1.1 软件度量
11.1.2 面向规模的度量
11.1.3 面向功能的度量
11.1.4 软件质量的度量
11.1.5 影响软件生产率的因素
11.2 软件项目估算与开发成本估算
11.2.1 软件项目计划的目标
11.2.2 软件的范围
11.2.3 软件开发的资源
11.2.4 软件项目估算
11.2.5 估算之前的任务分解
11.2.6 软件开发成本估算
11.3 进度计划
11.3.1 各阶段工作量的分配
11.3.2 制订开发进度计划
11.3.3 进度安排的方法
小结
习题
第12章 团队建设与沟通管理
12.1 团队建设的基本概念
12.2 项目团队的组织
12.2.1 项目的组织结构模式
12.2.2 程序设计小组的组织形式
12.3 团队成员的选择与基本要求
12.3.1 项目开发各阶段对人员的需求
12.3.2 配备人员的原则
12.3.3 对项目经理的要求
12.3.4 团队成员的招聘与选择
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 编制项目沟通计划
小结
习题
第13章 风险管理和配置管理
13.1 风险管理
13.1.1 软件风险分类
13.1.2 风险识别
13.1.3 风险预测
13.1.4 处理风险的策略
13.2 质量保证
13.2.1 软件质量
13.2.2 软件质量保证措施
13.3 配置管理
13.3.1 软件配置管理的内容
13.3.2 软件配置管理的基本目标
13.3.3 软件配置管理角色职责
13.3.4 软件配置管理过程描述
13.3.5 软件配置管理的关键活动
小结
习题
第14章 软件工程标准
14.1 软件工程标准化
14.1.1 软件工程标准的概念
14.1.2 软件工程标准的制定与推行
14.1.3 软件工程标准层次
14.2 软件质量认证
14.2.1 软件质量认证的产生背景
14.2.2 软件质量认证的标准
14.2.3 软件质量认证的作用
14.2.4 ISO 9000标准的构成
14.3 GB/T 8567—2006计算机软件文档编制规范
14.3.1 使用范围
14.3.2 文档过程
14.3.3 文档编制要求
小结
习题
第15章 软件文档
15.1 软件文档的意义
15.2 软件文档的作用
15.2.1 管理依据
15.2.2 任务之间联系的凭证
15.2.3 质量保证
15.2.4 培训与参考
15.2.5 软件维护支持
15.2.6 历史档案
15.3 软件文档的分类
15.3.1 开发文档
15.3.2 产品文档
15.3.3 管理文档
15.4 软件文档的管理
15.4.1 概述
15.4.2 管理者的作用
15.4.3 制订文档编制策略
15.5 软件文档的编写技巧
15.5.1 从技术角度进行文档的编写和评价
15.5.2 明确文档编写人员的责任
15.5.3 让编写人员对开发项目有准确的认识
15.5.4 让开发和设计人员参与文档审阅工作
15.6 文档编写的常用工具
小结
习题
第16章 软件文档编写指南
16.1 概述
16.2 软件开发文档
16.2.1 可行性分析(研究)报告
16.2.2 软件需求规格说明
16.2.3 概要设计书
16.2.4 详细设计书
16.3 软件管理文档
16.3.1 项目开发计划
16.3.2 软件测试计划
16.3.3 测试报告
16.3.4 开发进度月报
16.3.5 项目开发总结报告
16.4 软件用户文档
16.4.1 用户手册
16.4.2 操作手册
小结
习题
参考文献