第1章 软件工程概述
1.1 软件的概念及特征
1.1.1 软件定义
1.1.2 软件的特征
1.2 软件危机与软件工程
1.2.1 软件的发展
1.2.2 软件危机
1.2.3 软件工程
1.3 软件过程模型
1.3.1 软件的生命周期
1.3.2 常用的软件过程模型
习题1
第2章 可行性研究
2.1 问题定义
2.2 可行性研究内容及其步骤
2.2.1 可行性研究的内容
2.2.2 可行性研究的步骤
2.3 成本/效益分析
2.3.1 估算成本
2.3.2 成本/效益分析
2.4 可行性研究报告
习题2
第3章 需求分析及规范
3.1 需求分析的任务和原则
3.1.1 软件需求的定义
3.1.2 需求分析的目标、任务及过程
3.1.3 需求分析的原则
3.2 需求调查
3.2.1 需求调查的原则
3.2.2 需求调查的内容和方法
3.3 结构化分析工具
3.3.1 数据流程图
3.3.2 数据字典
3.3.3 判定树和判定表
3.4 面向对象分析工具
3.4.1 统一建模语言(UML)简介
3.4.2 用例模型
3.4.3 对象模型
3.4.4 动态模型
3.5 软件需求说明书
3.6 需求分析案例
3.6.1 结构化分析案例:名片管理系统
3.6.2 面向对象分析案例:学生成绩管理系统
习题3
第4章 软件总体设计
4.1 总体设计的任务和原则
4.1.1 总体设计的任务
4.1.2 总体设计的原则
4.2 总体设计的基本原理
4.2.1 抽象和逐步求精
4.2.2 模块化与信息隐蔽
4.2.3 软件层次结构的划分
4.3 模块的独立性
4.3.1 模块和模块结构图
4.3.2 模块独立性的度量
’4.3.3 模块结构设计准则
4.4 结构化设计方法
4.4.1 数据流的类型
4.4.2 结构化设计步骤
4.4 ,3变换型数据流的分析设计
4.4.4 事务型数据流的分析设计
4.5 面向对象设计建模方法
4.1 5.1 类图
4.5.2 包图
4.6 软件总体设计说明书
4.7 总体设计案例:名片管理系统总体设计
习题4
第5章 软件详细设计
5.1 详细设计的任务与设计原则
5.1.1 详细设计的任务
5.1.2 详细设计的原则
5.2 详细设计的内容
5.2.1 代码设计
5.2.2 输入设计
5.2.3 输出设计
5.2.4 用户界面设计
5.2.5 安全控制设计
5.3 处理过程设计工具
5.3.1 程序流程图
5.3.2 盒图(N-S图)
5.3.3 PAD图
5.3.4 过程设计语言(PDL)
5.4 软件详细设计文档
习题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.3 面向对象的分析
6.3.1 建立对象模型
6.3.2 建立动态模型
6.3.3 建立功能模型
6.3.4 定义服务
6.4 面向对象的设计
6.4.1 面向对象设计的准则
6.4.2 面向对象设计的内容
6.5 面向对象的实现
6.5.1 面向对象语言的选择
6.5.2 面向对象程序设计风格
习题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 输入输出(L/O)
7.2.5 效率
7.3 容错软件的设计
7.3.1 容错软件
7.3.2 容错的方法
7.3.3 容错软件的设计过程
习题7
第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.2.6 测试总结与报告
8.3 黑盒测试
B.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.5.3 面向对象分析的测试
8.5.4 面向对象设计的测试
8.5.5 面向对象编程的测试
8.6 软件测试总结与报告
8.7 调试技术
8.7.1 调试的步骤
……
第9章 软件维护
第10章 软件项目管理
参考文献