第1章 软件工程概述
1. 1 软件的概念. 特点和分类
1. 1. 1 软件的概念与特点
1. 1. 2 软件的分类
1. 2 软件的发展和软件危机
1. 3 软件工程过程和软件生存期
1. 3. 1 软件工程过程(software engineering process)
1. 3. 2 软件生存期(life cycle)
1. 4 软件生存期模型
1. 4. 1 瀑布模型(waterfall model)
1. 4. 2 演化模型(evolutional model)
1. 4. 3 螺旋模型(spiral model)
1. 4. 4 喷泉模型(water fountain model)
1. 4. 5 智能模型(intelligence model)
1. 5 软件工程的基本目标
1. 5. 1 软件工程的定义
1. 5. 2 软件工程项目的基本目标
第2章 软件需求分析
2. 1 软件需求分析概述
2. 1. 1 软件需求分析的任务
2. 1. 2 需求分析的过程
2. 1. 3 软件需求分析的原则
2. 2 结构化分析方法
2. 2. 1 数据流图(DFD, data flow diagram)
2. 2. 2 数据词典(DD, data dictionary)
2. 2. 3 加工逻辑说明
2. 3 结构化数据系统开发方法(DSSD)--面向数据结构的分析方法之
2. 3. 1 Warnier图
2. 3. 2 DSSD的分析方法
2. 4 Jackson系统开发方法(JSD)--面向数据结构的分析方法之二
2. 4. 1 进程模型
2. 4. 2 JSD方法的步骤
2. 4. 3 实体动作分析
2. 4. 4 实体结构分析
2. 4. 5 定义初始模型
2. 5 原型化方法(Prototyping)
2. 5. 1 软件原型的分类
2. 5. 2 快速原型开发模型
2. 6 系统动态分析
2. 6. 1 状态迁移图
2. 6. 2 Petri网
2. 7 结构化分析与设计方法(SADT)
第3章 软件设计
3. 1 软件设计的目标和任务
3. 1. 1 软件设计在开发阶段中的重要性
3. 1. 2 软件设计任务
3. 2 程序结构与程序结构图
3. 2. 1 程序的树状结构和网状结构
3. 2. 2 结构图(structure chart, 简称SC)
3. 3 模块的独立性
3. 3. 1 模块(module)
3. 3. 2 模块独立性(module independence)
3. 3. 3 耦合性(coupling)
3. 3. 4 内聚性(cohesion)
3. 3. 5 信息隐蔽
3. 4 结构化设计方法--面向数据流的设计方法
3. 4. 1 典型的系统结构形式
3. 4. 2 变换分析
3. 4. 3 事务分析
3. 4. 4 软件模块结构的改进
3. 5 结构化数据系统开发方法(DSSD)--面向数据结构的设计方法之一
3. 5. 1 一种简化的设计方法
3. 5. 2 导出逻辑输出结构
3. 5. 3 导出逻辑处理结构(LPS)
3. 6 Jackson系统开发方法(JSD)--面向数据结构的分析与设计方法之二
3. 6. 1 JSD功能描述
3. 6. 2 决定系统时间特性
3. 6. 3 实现
第4章 详细设计描述的工具
4. 1 程序流程图(Program flow chart)
4. 2 N-S图
4. 3 PAD
4. 4 FDL
第5章 程序编码
5. 1 对源程序的质量要求
5. 2 结构化程序设计
5. 2. 1 关于GOTO语句的争论
5. 2. 2 结构化程序设计的原则
5. 2. 3 程序设计自顶向下, 逐步求精
5. 3 程序设计风格
5. 3. 1 源程序文档化
5. 3. 2 数据说明
5. 3. 3 语句结构
5. 3. 4 输入和输出(I/O)
5. 4 程序复杂性度量
5. 4. 1 代码行度量法
5. 4. 2 McCabe度量法
5. 4. 3 Halstead的软件科学
第6章 面向对象技术
6. 1 面向对象的概念
6. 2 基于复用的开发过程
6. 2. 1 应用生存期
6. 2. 2 类生存期
6. 3 面向对象分析与模型化
6. 3. 1 面向对象分析(OOA, object-oriented analysis)
6. 3. 2 论域分析(domain analysis)
6. 3. 3 应用分析(application analysis)
6. 3. 4 对象模型技术(OMT, object model tech. )
6. 4 高层设计
6. 5 类的设计
6. 5. 1 通过复用设计类
6. 5. 2 类设计的方针
6. 5. 3 类设计的过程
6. 6 Coad与Yourdon面向对象分析与设计技术
6. 6. 1 面向对象的分析
6. 6. 2 面向对象的设计
6. 7 Booch的方法
6. 7. 1 Booch方法的设计过程
6. 7. 2 Booch方法的基本的模型
6. 8 面向对象设计的实现
6. 8. 1 类的实现
6. 8. 2 系统的实现
第7章 软件测试
7. 1 软件测试的基础
7. 1. 1 什么是软件测试
7. 1. 2 软件测试的目的和原则
7. 1. 3 软件测试的对象
7. 1. 4 测试信息流
7. 1. 5 测试与软件开发各阶段的关系
7. 2 测试用例设计
7. 3 白盒测试的测试用例设计
7. 3. 1 逻辑覆盖
7. 3. 2 语句覆盖
7. 3. 3 判定覆盖
7. 3. 4 条件覆盖
7. 3. 5 判定-条件覆盖
7. 3. 6 条件组合覆盖
7. 3. 7 路径测试
7. 4 黑盒测试的测试用例设计
7. 4. 1 等价类划分
7. 4. 2 边界值分析
7. 4. 3 错误推测法
7. 4. 4 因果图
7. 5 软件测试的策略
7. 5. 1 单元测试(unit testing)
7. 5. 2 组装测试(integrated testing)
7. 5. 3 确认测试(validation testing)
7. 5. 4 系统测试(system testing)
7. 5. 5 测试的步骤及相应的测试种类
7. 6 人工测试
7. 6. 1 静态分析
7. 6. 2 人工测试
7. 7 调试(Debug, 排错)
7. 7. 1 调试的步骤
7. 7. 2 几种主要的调试方法
7. 7. 3 调试原则
第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. 3 程序修改的步骤及修改的副作用
8. 3. 1 分析和理解程序
8. 3. 2 修改程序
8. 3. 3 重新验证程序
8. 4 软件可维护性
8. 4. 1 软件可维护性的定义
8. 4. 2 可维护性的度量
8. 5 提高可维护性的方法
8. 5. 1 建立明确的软件质量目标和优先级
8. 5. 2 使用提高软件质量的技术和工具
8. 5. 3 进行明确的质量保证审查
8. 5. 4 选择可维护的程序设计语言
8. 5. 5 改进程序的文档
8. 6 逆向工程和再工程
第9章 软件工程标准化与软件文档
9. 1 软件工程标准化
9. 1. 1 什么是软件工程标准
9. 1. 2 软件工程标准化的意义
9. 1. 3 软件工程标准的层次
9. 1. 4 中国的软件工程标准化工作
9. 2 软件质量认证
9. 2. 1 ISO 9000系列标准及软件质量认证
9. 2. 2 ISO 9000系列标准的内容
9. 2. 3 制定与实施ISO 9000系列标准
9. 2. 4 ISO 9000-3的要点
9. 3 在开发机构中推行软件工程标准化
9. 4 软件文档的作用与分类
9. 4. 1 软件文档的作用和分类
9. 4. 2 对文档编制的质量要求
9. 4. 3 文档的管理和维护
9. 5 软件过程成熟度模型
9. 5. 1 软件机构的成熟性
9. 5. 2 软件过程成熟度模型
9. 5. 3 关键过程领域
9. 5. 4 成熟度提问单
第10章 软件管理
10. 1 软件生产率和质量的度量
10. 1. 1 软件度量
10. 1. 2 面向规模的度量
10. 1. 3 面向功能的度量
10. 1. 4 软件质量的度量
10. 1. 5 影响软件生产率的因素
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. 4 软件项目进度安排
10. 4. 1 软件开发小组人数与软件生产率
10. 4. 2 任务的确定与并行性
10. 4. 3 制定开发进度计划
10. 4. 4 进度安排的方法
10. 4. 5 项目的追踪和控制
10. 5 软件项目的组织与计划
10. 5. 1 软件项目管理的特点
10. 5. 2 制定计划
10. 5. 3 软件项目组织的建立
10. 5. 4 人员配备
10. 5. 5 指导与检验
10. 6 软件配置管理
10. 6. 1 软件配置管理
10. 6. 2 配置标识
10. 6. 3 版本控制
10. 6. 4 变更控制
10. 6. 5 配置状态报告(configuration status reporting, CSR)
10. 6. 6 配置审计(configuration audit)
附录 软件产品开发文档编写指南
参考文献