第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.3.7第四代技术模型
1.4软件工程
1.4.1软件工程的定义
1.4.2软件工程的基本策略
1.4.3软件工程应遵循的原则
1.5可行性调研分析
1.5.1项目开发背景
1.5.2问题定义
1.5.3可行性分析
1.5.4开发计划的制定
1.6实验实训
小结
习题一
第2章 需求分析
2.1需求分析基础
2.1.1需求分析的任务
2.1.2需求分析的步骤
2.1.3需求获取技术
2.1.4需求分析模型
2.2结构化分析方法
2.2.1结构化开发方法
2.2.2结构化分析方法
2.3数据流图
2.3.1数据流图的符号
2.3.2数据流图的画法
2.3.3检查和修改数据流图的原则
2.3.4确定数据定义与加工策略
2.4数据字典
2.4.1数据字典的符号及其含义
2.4.2实例
2.5加工说明
2.5.1结构化语言
2.5.2判定表
2.5.3判定树
2.6软件需求规格说明与需求验证
2.6.1需求规格说明
2.6.2需求验证
2.7实验实训
小结
习题二
第3章 软件设计
3.1软件设计概述
3.1.1软件设计在开发阶段中的重要性
3.1.2软件设计的任务
3.2软件设计的基本原理
3.2.1模块化
3.2.2抽象
3.2.3信息隐蔽
3.2.4模块独立性
3.3软件设计的准则
3.4用户界面设计
3.4.1界面设计的基本类型
3.4.2界面设计的一般问题
3.4.3用户界面设计指南
3.5软件设计工具
3.5.1层次图和HIPO图
3.5.2结构图
3.6面向数据流的设计方法
3.6.1基本概念
3.6.2设计过程
3.6.3变换分析
3.6.4事务分析设计
3.6.5综合设计
3.6.6结构化设计应用示例
3.6.7设计的后处理
3.7详细设计
3.7.1详细设计的基本任务与原则
3.7.2结构化程序设计
3.7.3详细设计的工具
3.8软件设计文档及其复审
3.8.1软件设计文档
3.8.2软件设计复审
3.9实验实训
小结
习题三
第4章 软件项目的实现
4.1程序设计方法
4.1.1程序设计方法的发展
4.1.2结构化程序设计
4.1.3模块化程序设计的方法
4.1.4面向对象的程序设计
4.1.5编码的标准
4.2程序设计语言的选择
4.2.1程序设计语言的定义
4.2.2程序设计语言的基本成分
4.2.3程序设计语言的特性
4.2.4程序设计语言的分类
4.2.5程序设计语言的选择
4.3编码的风格
4.3.1源程序文档化
4.3.2数据说明
4.3.3程序的视觉组织
4.3.4输入和输出
4.3.5效率
4.3.6其他推荐原则
4.4实验实训
小结
习题四
第5章 软件测试
5.1软件测试的目的
5.1.1软件测试的定义
5.1.2软件测试的目的
5.1.3软件测试的原则
5.2软件测试的方法和步骤
5.2.1软件测试的方法
5.2.2软件测试的信息流
5.3黑盒测试
5.3.1测试用例
5.3.2黑盒测试的概念
5.3.3黑盒测试用例的设计
5.4白盒测试
5.4.1白盒测试的概念
5.4.2白盒测试用例的设计
5.5软件测试的过程
5.5.1软件测试过程概述
5.5.2软件测试过程与软件开发各阶段的关系
5.5.3单元测试
5.5.4集成测试
5.5.5确认测试
5.5.6系统测试
5.6调试
5.6.1调试步骤
5.6.2调试方法
5.6.3调试原则
5.7实验实训
小结
习题五
第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.4.3软件可维护性的度量
6.4.4提高软件的可维护性方法
6.5软件维护的副作用
6.6软件再工程
6.6.1软件再工程过程模型
6.6.2逆向工程
6.6.3软件重构
6.7实验实训
小结
习题六
第7章 面向对象方法
7.1面向对象方法的基础知识
7.1.1面向对象方法的世界观
7.1.2面向对象方法的基本概念
7.1.3面向对象方法的基本过程
7.1.4面向对象方法的与传统方法的比较
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面向对象程序设计语言的特征
7.4.3面向对象系统的实现途径
7.5面向对象系统的测试
7.5.1面向对象系统测试的特点
7.5.2面向对象系统测试的过程
7.5.3面向对象的测试策略
7.5.4面向对象软件的测试用例设计
7.6统一建模语言UML
7.6.1UML概念
7.6.2UML组成
7.6.3静态建模
7.6.4动态建模
7.7应用案例
7.7.1初始阶段
7.7.2细化阶段
7.8实验实训
小结
习题七
第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.4实验实训
小结
习题八
第9章 软件项目管理
9.1软件项目管理概述
9.1.1软件项目管理的重要性
9.1.2软件项目管理的内容
9.1.3软件项目管理的特点
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.4软件项目的风险管理
9.4.1风险管理的重要性
9.4.2风险管理的过程
9.4.3风险辨识
9.4.4风险分析
9.4.5风险评估
9.4.6风险应对
9.5软件项目的人力资源管理
9.5.1软件项目的人力资源
9.5.2人力资源的组织建立
9.5.3人员配备
9.6软件配置管理
9.6.1基线(Baseline)
9.6.2软件配置项
9.6.3软件配置管理的过程
9.6.4软件配置管理的特点
9.7软件质量保证
9.7.1软件质量的定义
9.7.2软件质量的评价
9.7.3质量度量模型
9.7.4软件复杂性
9.7.5软件可靠性
9.7.6软件评审
9.7.7软件容错技术
9.8能力成熟度模型(CMM)简介
9.8.1基本概念
9.8.2CMM框架
9.8.3CMM应用
9.8.4能力成熟度集成模型(CMMI)
9.9实验实训
小结
习题九
第10章 软件工程环境
10.1软件工具
10.1.1软件工具的基本概念
10.1.2软件工具的分类
10.2计算机辅助软件工程(CASE)集成环境
10.2.1CASE的优势
10.2.2CASE的组成
10.2.3CASE的体系结构
10.3实用CASE工具
10.3.1Rational Rose简介
10.3.2Power Designer简介
10.4实验实训
小结
习题十
参考文献