内容简介
第1章 软件工程概述
1.1 软件工程中的常见问题
1.1.1 软件
1.1.2 软件危机
1.2 软件工程
1.2.1 软件工程的定义与原理
1.2.2 软件工程与计算机科学
1.2.3 软件工程目标
1.3.1 软件过程
1.3 软件过程和软件生命周期
1.2.4 软件工程面临的挑战
1.3.2 软件生命周期
1.4 软件开发模型
1.4.1 瀑布模型
1.4.2 演化模型
1.4.3 原型模型
1.4.4 螺旋模型
1.4.5 喷泉模型及面向对象的开发过程
1.4.6 基于四代技术的模型
1.5 职业道德
1.4.7 智能模型
1.6 本章小结
习题
第2章 软件项目管理
2.1 软件项目管理概述
2.1.1 软件项目管理的概念
2.1.2 软件项目管理的特点
2.1.3 软件项目管理的内容
2.1.4 项目的组织模式
2.1.5 项目的人员管理
2.1.6 软件配置管理
2.2 软件项目规划
2.2.1 项目规划的基本概念
2.2.2 项目规划的步骤
2.2.3 项目规划的原则
2.2.4 项目规划的形成文件
2.2.5 项目规划过程之间的相互联系
2.3 软件项目风险管理
2.3.1 风险管理概述
2.3.4 风险管理的过程
2.3.3 软件风险
2.3.2 软件项目的风险策略
2.3.5 软件风险的总结
2.4 软件项目进度管理
2.4.1 项目进度的基本概念
2.4.2 制定进度计划
2.4.3 面向网络化管理
2.4.4 建立里程碑事件
2.5 软件项目质量管理
2.5.1 基本定义
2.4.5 实施保证
2.5.2 质量管理主要内容
2.5.3 技术与方法
2.5.4 质量管理实施
2.6 本章小结
习题
第3章 软件系统及可行性研究
3.1 用户中心设计——UCD方法
3.2 计算机系统
3.2.1 硬件和硬件工程
3.2.2 软件和软件工程
3.2.3 人机工程
3.2.4 数据库和数据库工程
3.3 可行性研究
3.3.1 可行性研究的任务
3.3.2 技术可行性
3.3.3 操作可行性
3.3.4 经济可行性
3.3.5 可行性研究的步骤
3.3.6 方案选择
3.4 系统开发过程的新体系结构——快速原型与面向对象
3.5 本章小结
习题
第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.2.5 结构化分析实施步骤
4.3 其他分析方法与图形工具
4.4 实体—关系图
4.4.1 数据对象、属性与关系
4.4.2 E-R方法和实体模型
4.4.3 数据结构的规范化
4.5 需求规格说明与评审
4.5.1 需求规格说明书的目标与内容
4.5.2 需求评审
4.6 本章小结
习题
第5章 总体设计
5.1 总体设计的任务及过程
5.1.1 设计供选择的方案
5.1.2 功能解剖和设计软件结构
5.1.3 数据库设计
5.2.1 模块化
5.1.6 进行审查和复查
5.2 软件设计基本原理
5.1.5 文档的编写
5.1.4 制定测试计划
5.2.2 抽象
5.2.3 信息隐蔽
5.2.4 模块独立性
5.3 设计准则
5.4 总体设计的图形描述工具
5.4.1 层次图
5.4.2 HIPO图
5.4.3 结构图
5.5 结构化设计方法
5.5.1 数据流图的类型
5.5.2 设计步骤
5.5.3 变换设计
5.5.4 事务设计
5.5.5 设计的后处理
5.6 本章小结
习题
第6章 详细设计
6.1 结构化程序设计
6.2.1 程序流程图
6.2 详细设计工具
6.2.2 盒图(N-S图)
6.2.3 PAD图
6.2.4 过程设计语言(PDL)
6.2.5 判定表
6.2.6 判定树
6.3 Jackson程序设计方法
6.3.1 Jackson方法
6.3.2 Jackson图
6.3.3 Jackson程序设计方法
6.4.2 Warnier程序设计方法的步骤
6.4 Warnier程序设计方法简介
6.4.1 Warnier图
6.5 人机界面设计
6.5.1 人机界面设计概述
6.5.2 人机界面风格
6.5.3 人机界面实现的原则
6.5.4 人机界面的设计过程
6.6 本章小结
习题
7.1.1 程序设计语言概述
第7章 软件编码
7.1 程序设计语言
7.1.2 程序设计语言的分类
7.1.3 程序设计语言的特点
7.1.4 程序设计语言的选择
7.2 程序设计风格
7.3 编码的质量要求
7.4 编码工具
习题
7.5 本章小结
第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.3 测试用例设计
8.3.1 逻辑覆盖
8.3.2 等价类划分
8.3.3 边界值分析
8.3.4 因果图
8.3.5 错误推测法
8.4 软件测试的步骤
8.4.1 单元测试
8.4.2 集成测试
8.4.3 有效性测试
8.4.4 系统测试
8.5 调试
8.5.1 调试的步骤
8.5.2 调试的策略
8.6 软件可靠性
8.6.1 软件可靠性的定义
8.6.2 软件正确性证明
8.7 验收测试
8.7.1 验收测试的步骤
8.8.1 人工测试
8.8 测试工具
8.7.2 Alpha测试和Beta测试
8.8.2 自动测试工具
8.9 本章小结
习题
第9章 软件维护
9.1 软件维护的概念
9.1.1 软件维护的定义
9.1.2 软件维护的种类
9.1.3 影响维护工作量的因素
9.1.4 软件维护的策略
9.2 软件维护的特点
9.2.1 软件工程与软件维护的关系
9.2.2 维护成本
9.2.3 维护的问题
9.3 软件维护过程
9.3.1 维护机构
9.3.2 维护申请报告
9.3.3 维护的工作流程
9.3.4 维护记录
9.4.1 软件可维护性的度量
9.3.5 维护评价
9.4 软件可维护性
9.4.2 提高软件可维护性的方法
9.5 软件维护的副作用
9.6 本章小结
习题
第10章 软件过程改进
10.1 基本概念
10.2 软件过程的改进方法
10.2.1 CMM介绍
10.2.2 SPICE介绍
10.2.3 AGILE介绍
10.3 本章小结
习题
第11章 面向对象概念
11.1 传统方法学与面向对象方法比较
11.1.1 传统方法学
11.1.2 面向对象方法学
11.2 面向对象基础概念
11.2.1 对象
11.2.2 其他概念
11.3.1 抽象性
11.3 面向对象的特性
11.3.2 封装性
11.3.3 继承性
11.3.4 多态性
11.4 本章小结
习题
第12章 面向对象的分析
12.1 面向对象建模
12.2.2 表示结构的图形符号
12.2 对象模型
12.2.1 表示类—&—对象的图形符号
12.2.3 实例
12.3 动态模型
12.3.1 术语
12.3.2 表示方法
12.4 功能模型
12.5 UML概述
12.5.1 UML的主要内容
12.5.2 UML的主要元素
12.6 UML的图形
12.6.1 用例图
12.6.2 类图
12.6.3 序列图
12.6.4 状态图与活动图
12.7 UML的示例
12.8 本章小结
习题
第13章 面向对象设计
13.1 从面向对象分析到面向对象设计
13.2 问题域部分(PDC)设计之一——基础理论
13.2.1 为什么需要问题域部分设计
13.2.2 如何进行问题域部分设计
13.3 人机交互部分(HIC)设计
13.3.1 为什么需要人机交互部分
13.3.2 如何设计人机交互部分
13.4 任务管理部分(TMC)设计
13.4.1 为什么需要有任务管理部分
13.4.2 怎样设计任务管理部分
13.5 数据管理部件(DMC)的设计
13.6 面向对象设计的实例
13.6.1 系统总体结构和使用模型
13.6.2 体系结构的设计
13.6.3 识别对象的类
13.6.4 设计模型
13.6.5 对象接口描述
13.7 本章小结
习题
14.1.1 概述
14.1 面向对象测试的基本概念
第14章 面向对象测试
14.1.2 测试模型简介
14.2 面向对象测试用例设计
14.2.1 测试用例设计的复杂性
14.2.2 类测试用例设计
14.3 面向对象的测试分析工具
14.3.1 面向对象的测试分析工具LOGISCOPE简介
14.3.2 面向对象的测试分析工具WinRunner简介
14.3.3 面向对象的测试分析工具LoadRunner简介
习题
14.4 本章小结
第15章 软件重用技术
15.1 软件重用
15.1.1 软件重用的概念和意义
15.1.2 软件重用技术的理解
15.1.3 软件重用的过程
15.1.4 可重用软件的设计过程
15.2.1 基于域分析的软部件选取
15.2.2 软部件的开发
15.2 软部件库的构造
15.2.3 软部件库的组织与检索
15.3 面向对象的软件重用技术
15.4 本章小结
习题
第16章 软件工程的深入研究
16.1 软件的再生工程
16.1.1 重构
16.1.2 逆向工程
16.2 基于C/S与B/S的软件工程
16.2.1 基于C/S的软件开发
16.1.3 前向工程
16.2.2 基于B/S的Web系统开发
16.3 计算机辅助软件工程(CASE)
16.3.1 定义
16.3.2 CASE工具在软件开发中的作用
16.3.3 CASE工具的分类
16.3.4 CASE工具的定位
16.4 基于构件的软件工程
16.4.1 构件技术
16.4.3 构件模型
16.4.2 基于构件的开发方法
16.4.4 构件标准规范模型简介
16.5 本章小结
习题
附录1 可行性研究报告规范
附录2 项目开发计划规范
附录3 需求规格说明书规范
附录4 概要设计说明书规范
附录5 详细设计说明规范
附录6 项目开发总结报告规范
附录7 用Word撰写文档规范
参考文献