内容简介
第一篇 软件工程引论
第1章 软件工程概述
1.1 软件
1.1.1 软件的定义
1.1.2 软件的发展阶段
1.1.3 软件的特点
1.1.4 软件的分类
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.4 软件生命周期
1.5 软件开发模型
1.5.1 瀑布模型
1.5.2 原型模型
1.5.3 增量模型
1.5.4 螺旋模型
1.5.5 快速应用开发模型
1.5.6 敏捷开发
1.5.7 混合模型
1.6 习题
第二篇 传统软件工程方法
第2章 可行性研究
2.1 可行性研究的任务
2.2 可行性研究的步骤
2.3 可行性论证报告的主要内容
2.4 系统流程图
2.4.1 符号
2.4.2 应用
2.5 成本效益分析
2.5.1 成本估计
2.5.2 费用估计
2.5.3 度量效益的方法
2.6 习题
第3章 软件需求分析
3.1 需求分析概述
3.1.1 软件需求的定义
3.1.2 产品和过程需求
3.1.3 功能性和非功能性需求
3.1.4 可量化的需求
3.1.5 系统需求和软件需求
3.2 需求分析的执行步骤
3.3 结构化分析方法
3.3.1 数据流图
3.3.2 数据字典
3.3.3 实体-关系图
3.3.4 层次方框图
3.3.5 Warnier图
3.3.6 IPO图
3.4 软件需求规格说明书
3.5 需求规格案例分析
3.6 习题
第4章 概要设计
4.1 概要设计的基本概念
4.1.1 概要设计的任务
4.1.2 概要设计的步骤
4.1.3 软件设计的原则
4.1.4 概要设计阶段应该提交的文档
4.1.5 结构化设计方法
4.1.6 概要设计工具
4.1.7 模块划分标准
4.2 结构化设计的过程
4.2.1 结构化程序设计的原则
4.2.2 面向数据流的设计方法
4.2.3 绘制结构图的步骤
4.2.4 事务分析
4.2.5 设计优化
4.3 面向数据结构的设计方法
4.3.1 Jackson设计方法
4.3.2 Warnier设计方法
4.4 接口设计
4.5 概要设计说明书
4.6 案例分析
4.7 习题
第5章 详细设计
5.1 详细设计的任务
5.2 详细设计的原则
5.3 人机界面设计
5.4 过程设计的工具
5.4.1 程序流程图
5.4.2 N-S图
5.4.3 问题分析图
5.4.4 判定表
5.4.5 过程设计语言
5.5 详细设计说明书
5.6 习题
第6章 软件编码
6.1 结构化程序设计
6.2 程序设计风格
6.3 程序设计语言
6.3.1 程序设计语言的分类
6.3.2 程序设计语言的特点
6.3.3 程序设计语言的选择
6.3.4 程序设计方法与工具
6.4 习题
第7章 软件测试
7.1 软件测试概述
7.1.1 软件测试的定义和目标
7.1.2 软件测试的原则
7.2 软件测试方法
7.2.1 静态测试
7.2.2 动态测试
7.2.3 黑盒测试
7.2.4 白盒测试
7.3 测试用例
7.3.1 测试用例的定义
7.3.2 使用测试用例的目的
7.3.3 测试用例的重要性
7.3.4 测试用例的应用意义和作用
7.4 黑盒测试用例设计
7.4.1 等价类划分法
7.4.2 边界值分析法
7.4.3 决策表法
7.4.4 因果图法
7.4.5 场景法
7.4.6 正交实验法
7.5 白盒测试用例设计
7.5.1 逻辑覆盖法
7.5.2 基本路径法
7.6 软件测试过程
7.6.1 单元测试
7.6.2 集成(组装)测试
7.6.3 系统测试
7.7 测试计划及测试报告
7.7.1 测试计划
7.7.2 测试报告
7.8 习题
第8章 软件维护
8.1 软件维护的概念
8.2 软件维护的影响因素
8.3 软件维护的步骤
8.4 软件可维护性
8.5 软件再工程
8.6 习题
第三篇 面向对象的软件工程
第9章 面向对象技术
9.1 面向对象技术概述
9.1.1 面向对象方法简介
9.1.2 面向对象的基本概念
9.2 面向对象的软件工程
9.3 UML建模
9.3.1 UML简介
9.3.2 用例图
9.3.3 类图
9.3.4 对象图
9.3.5 顺序图
9.3.6 协作图
9.3.7 活动图
9.3.8 状态机图
9.3.9 包图
9.3.10 构件图
9.3.11 部署图
9.4 习题
第10章 面向对象分析
10.1 面向对象分析的概念
10.2 系统分析面临的主要问题
10.3 面向对象分析方法的主要原则
10.4 面向对象的分析过程
10.4.1 分析过程概述
10.4.2 面向对象的分析过程的主要活动
10.5 对象和类的确定
10.5.1 确定对象
10.5.2 对象分类、建立类图的对象层
10.6 确定属性
10.6.1 对象的属性和服务
10.6.2 定义属性
10.7 定义服务
10.7.1 对象的状态与状态转换图
10.7.2 行为分类
10.7.3 发现服务的策略与启发
10.7.4 审查与调整
10.7.5 识别主动对象
10.7.6 服务的命名和定位
10.7.7 服务的详细说明
10.8 对象间通信
10.8.1 识别结构
10.8.2 识别主题
10.8.3 实例连接
10.9 习题
第11章 面向对象设计
11.1 面向对象设计的概念
11.2 面向对象设计的准则
11.3 启发规则
11.4 软件重用
11.5 系统分解
11.6 面向对象的基本设计方法
11.7 设计问题子系统
11.8 设计人机交互子系统
11.9 设计任务管理子系统
11.10 设计数据管理子系统
11.11 习题
第12章 面向对象的实现与测试
12.1 面向对象的实现
12.2 对象的创建
12.3 面向对象的软件测试
12.4 习题
第四篇 软件质量控制
第13章 软件质量与质量保证
13.1 软件质量的定义
13.2 影响软件质量的因素
13.3 软件质量保证策略
13.4 软件质量保证活动
13.5 软件评审
13.5.1 设计质量的评审内容
13.5.2 程序质量的评审内容
13.6 软件质量保证标准
13.7 软件质量评价
13.7.1 软件质量评价体系
13.7.2 软件质量评价标准
13.8 软件质量框架
13.8.1 高质量软件的特性
13.8.2 软件质量框架的组成
13.9 软件开发质量的定量描述
13.9.1 基本的定量估算
13.9.2 软件需求的估算
13.9.3 估算验收测试阶段预期发现的缺陷数
13.9.4 维护活动设计的度量
13.9.5 软件可用性的计算
13.9.6 基于植入故障方法的原有故障总数EN估算
13.10 习题
第14章 软件项目管理
14.1 软件项目概述
14.1.1 软件项目的特点
14.1.2 软件管理的功能
14.1.3 确定软件项目的工作范围
14.2 确定软硬件资源
14.2.1 人力资源
14.2.2 硬件
14.2.3 软件
14.3 人员的计划和组织
14.4 成本估计和成本控制
14.4.1 软件开发成本估计方法
14.4.2 专家估算法
14.4.3 成本估算模型
14.5 进度计划
14.5.1 软件工作的特殊性
14.5.2 各阶段工作量的分配
14.5.3 制定开发进度
14.6 软件配置管理
14.6.1 基线
14.6.2 软件配置项
14.6.3 软件配置管理过程
14.7 软件管理方案
14.8 软件能力成熟度模型
14.8.1 软件过程评估的必要性
14.8.2 能力成熟度模型的主要用途
14.8.3 能力成熟度模型的体系结构
14.8.4 能力成熟度模型的内部结构
14.8.5 能力成熟度模型的应用
14.9 习题
第五篇 软件开发工具及案例
第15章 软件开发工具与环境概述
15.1 软件开发工具概述
15.2 软件开发工具的功能
15.3 软件开发工具的特性
15.4 软件开发工具的分类
15.5 软件开发环境
15.6 常用开发环境
15.6.1 Windows操作系统
15.6.2 UNIX程序开发环境
15.6.3 Linux开发环境
15.7 软件开发工具与环境应用
15.8 CASE技术
15.9 习题
第16章 Visio 2010的应用
16.1 图形文档操作
16.1.1 创建新的图形文档
16.1.2 基于模板创建图形文档
16.1.3 保存图形文档
16.2 形状的使用
16.2.1 形状窗口
16.2.2 形状的概述
16.2.3 选择形状
16.2.4 移动形状
16.2.5 调整形状大小
16.2.6 旋转或翻转形状
16.2.7 对齐形状
16.2.8 绘制形状
16.3 构建各种图形
16.3.1 构建基本流程图
16.3.2 构建UML用例图
16.4 案例分析
16.4.1 案例1:绘制程序流程图
16.4.2 案例2:绘制UML用例图
16.5 习题
第17章 项目实例
17.1 图书管理系统综合案例
17.1.1 问题定义
17.1.2 可行性研究
17.1.3 需求分析
17.1.4 总体设计
17.1.5 详细设计
17.1.6 编码和单元测试
17.1.7 综合测试
17.1.8 软件维护
17.2 学生心理动态跟踪评价系统
附录A 计算机软件开发文档编写指南
附录A.1 可行性研究报告
附录A.2 项目开发计划书
附录A.3 软件需求说明书
附录A.4 概要设计说明书
附录A.5 详细设计说明书
附录A.6 测试计划
附录A.7 测试分析报告
附录A.8 开发进度月报
附录A.9 项目开发总结报告
附录B 软件工程综合测试题
参考文献