第1章绪论
1.1软件的基本概念
1.1.1什么是软件
1.1.2软件的特点和分类
1.1.3软件开发涉及的问题
1.2软件危机与软件工程
1.2.1软件危机
1.2.2软件工程学及其基本原则
1.2.3软件生存周期
1.3软件开发模型
1.3.1瀑布模型
1.3.2原型化模型
1.3.3渐增模型
1.3.4螺旋模型
1.3.5喷泉模型
1.3.6构件集成模型
1.4小结
练习题
第2章系统分析
2.1基于计算机的系统
2.1.1基于计算机系统的层次及元素
2.1.2计算机系统工程
2.1.3软件和软件工程
2.2系统分析
2.2.1系统分析的目标
2.2.2系统分析的过程
2.3可行性分析
2.3.1可行性研究的内容
2.3.2可行性研究的步骤
2.3.3可行性研究报告
2.4技术分析
2.4.1系统模型
2.4.2模型工具
2.5成本/效益分析
2.5.1成本估计
2.5.2成本/效益分析的内容
2.6系统规格说明与评审
2.7小结
练习题
第3章需求分析
3.1需求分析的任务和过程
3.1.1软件需求分析的任务与原则
3.1.2软件需求的内容
3.1.3软件需求分析的过程与步骤
3.1.4常用需求分析方法
3.2结构化分析方法(StructuredAnalysis,SA)
3.2.1结构化分析方法使用的工具
3.2.2结构化分析的过程
3.2.3原型化方法在需求分析中的作用
3.3面向对象分析方法(OOA,Object-OrientedAnalysis)
3.3.1面向对象的基本概念
3.3.2面向对象方法常用的图形工具
3.3.3面向对象的分析方法学
3.3.4面向对象分析过程
3.4软件需求分析的验证
3.4.1软件需求分析的评审
3.4.2软件需求规格说明
3.5小结
练习题
第4章软件设计基础
4.1软件设计的目的和任务
4.1.1概要设计的任务
4.1.2详细设计的任务
4.2软件设计的基本概念
4.2.1抽象与细化
4.2.2模块化与信息隐蔽
4.2.3复用
4.3软件架构设计
4.4过程设计的技术与工具
4.4.1结构化程序设计
4.4.2图形工具
4.5设计规格说明书与评审
4.6小结
练习题
第5章面向数据流的软件设计方法
5.1基本概念与工具
5.1.1SC图
5.1.2数据流图DFD的类型
5.1.3SD方法的步骤
5.2变换分析
5.3事务分析
5.4结构设计优化的启发式策略
5.5结构设计的示例
5.6过程设计
5.6.1过程设计的原则
5.6.2过程设计的工具
5.6.3过程设计的例
5.7小结
练习题
第6章面向对象的设计方法
6.1面向对象设计概述
6.1.1面向对象设计任务
6.1.2OOD方法的描述机制
6.2面向对象设计方法
6.2.1系统设计
6.2.2对象设计
6.3小结
练习题
第7章编码与程序设计语言选择
7.1程序设计语言
7.1.1影响编码的程序设计语言的特点
7.1.2程序设计语言的类别
7.1.3程序设计语言的选择
7.2编码标准
7.3编码风格
7.3.1编码风格指导原则
7.3.2编码问题的例
7.4软件设计支撑工具
7.5小结
练习题
第8章软件测试
8.1测试的基本概念
8.1.1软件测试的目的与特性
8.1.2几个与测试相关的概念
8.1.3Myers测试经验
8.1.4软件的错误
8.2黑盒测试
8.2.1等价分类法
8.2.2边界值分析(BOundaryValueAnalysis)
8.2.3错误猜测法
8.3白盒测试
8.3.1逻辑覆盖测试
8.3.2基本路径测试
8.4软件的测试策略
8.4.1测试的层次性
8.4.2单元测试
8.4.3集成测试
8.4.4确认测试
8.4.5系统测试
8.5调试(纠错)
8.5.1调试的特点
8.5.2调试的方法
8.6面向对象的测试
8.6.1面向对象软件的测试策略
8.6.2类的测试用例设计
8.7软件测试计划与测试分析报告
8.8小结
练习题
第9章软件维护
9.1软件维护的基本概念
9.1.1软件维护的定义与分类
9.1.2维护代价的分布
9.1.3一个维护的例子
9.2维护的特点
9.2.1软件工程方法对维护的影响
9.2.2维护的代价
9.2.3软件维护中的一些典型问题
9.3可维护性
9.3.1影响可维护性的因素
9.3.2可维护性的若干量化的测度
9.3.3保证可维护性的复审
9.4维护过程与维护活动
9.4.1软件维护工作的内容
9.4.2建立维护机构
9.4.3维护报告
9.4.4维护活动的模型
9.4.5维护管理文档
9.4.6评价
9.5软件修改的副作用
9.6逆向工程与重构工程
9.6.1软件重构工程模型
9.6.2恢复信息的级别
9.6.3恢复信息的方法
9.7小结
练习题
第10章配置管理
10.1软件配置管理的基本概念
10.1.1基线技术
10.1.2软件配置项
10.2软件配置管理的任务
10.2.1标识软件配置中各种对象
10.2.2版本控制
10.2.3变化控制
10.2.4状态报告
10.2.5配置审计
10.2.6配置管理的标准和CASE工具
10.3小结
练习题
第11章软件项目的度量
11.1软件度量的基本概念
11.1.1度量,测量和估算
11.1.2面向规模的度量
11.1.3面向功能的度量
11.1.4软件度量体系标准
11.2软件项目的估算
11.3经验估算模型
11.3.1COCOMO模型
11.3.2Putnam模型
11.4软件的质量度量
11.4.1软件质量和影响软件质量的要素
11.4.2软件质量要素评价标准
11.5软件复杂性度量
11.5.1软件复杂性
11.5.2控制结构的复杂性度量
11.5.3源代码复杂性度量
11.6软件可靠性估算
11.7面向对象系统的技术度量
11.7.1面向对象系统在度量方面的区别特征
11.7.2面向类的度量
11.7.3面向操作的度量
11.8小结
练习题
第12章软件体系结构与设计模式
12.1软件体系结构
12.1.1软件体系结构的研究现状
12.1.2常用的软件体系结构
12.2面向对象中的模式
12.2.1设计模式的概念
12.2.2设计模式的组成与描述
12.2.3模式的分类
12.2.4Proxy模式
12.2.5如何使用模式
12.3小结
练习题
参考文献