内容简介
本书比较系统地介绍了软件工程的概念、技术和方法,内容包括软件生存周期,软件开发模型,需求分析,面向数据流的分析和设计,面向对象的分析和设计,软件编码及软件重用,软件测试和维护,软件项目管理等。在面向对象的分析和设计方法中,还讲述了统一建模语言UML。书中含有一定的例题和习题,便于教学与自学。本书可作为高等职业教育学校计算机专业的教材或教学参考书,也可供软件开发人员阅读参考。
目录
1 软件工程概诚
1.1 软件
1.1.1 软件与软件的组成
1.1.2 软件的特点和分类
1.1.3 软件的发展
1.1.4 软件危机
1.2 软件工程的概念
1.2.1 软件工程的定义
1.2.2 软件工程的目标和原则
1.3 软件生命周期
1.3.1 软件生命周期的概念
1.3.2 目的和阶段
1.4 软件开发模型
1.4.1 瀑布模型
1.4.2 原型模型
1.4.3 螺旋模型
1.4.4 基于4代技术的模型
1.5 计算机辅助软件工程
1.5.1 计算机辅助软件工程
1.5.2 CASE工具
1.5.3 集成化的CASE环境
1.6 软件工程标准
1.6.1 软件工程国际标准
1.6.2 ISO9000系列标准基本思想
1.6.3 ISO9000-3标准
1.6.4 ISO9000标准与CMM
小结1
习题1
2 可行性研究
2.1 问题定义
2.1.1 问题定义的内容
2.1.2 问题定义的步骤
2.2 可行性研究
2.2.1 引言
2.2.2 经济可行性
2.2.3 技术可行性
2.2.4 方案选择
2.3 系统模型与模拟
2.3.1 系统模型
2.3.2 系统建模和模拟
2.4 系统规格说明及评审
2.4.1 系统规格说明
2.4.2 系统规格说明评审
小结2
习题2
3 需求分析基础
3.1 需求分析的任务与原则
3.2 需求分析的过程
3.3 分析员和用户的责任
3.4 软件需求分析方法
3.5 原型化方法
3.5.1 软件原型化方法概述
3.5.2 快速原型开发模型
3.5.3 软件开发过程
3.6 需求规格说明与评审
3.6.1 需求规格说明书的内容
3.6.2 需求评审
小结3
习题3
4 面向数据流的分析方法
4.1 数据流图
4.1.1 数据流图中的主要图形元素
4.1.2 数据流图的画法
4.2 数据字典
4.2.1 数据流的描述
4.2.2 加工的描述
4.3 实体一关系图
4.3.1 数据对象、属性与关系
4.3.2 实体一关系图
4.4 基于数据流的分析方法
4.4.1 创建数据流模型
4.4.2 过程规格说明
小结4
习题4
5 软件设计基础
5.1 软件设计过程
5.2 软件设计基本概念
5.2.1 模块化设计
5.2.2 自顶向下逐层分解
5.2.3 启发式规则
5.2.4 软件总体结构设计
5.2.5 数据结构设计
5.2.6 软件过程设计
5.3 过程设计技术和工具
5.3.1 结构化程序设计
5.3.2 图形表示法
5.3.3 判定表
5.3.4 过程设计语言
5.4 Jackson程序设计方法
5.4.1 Jackson方法
5.4.2 设计实例
5.5 设计规格说明与评审
小结5
习题5
6 面向数据流的设计方法
6.1 基本概念和设计过程
6.2 变换分析
6.3 事务分析
6.4 模块优化设计准则
小结6
习题6
7 面向对象的分斩与设计
7.1 面向对象的概念与思想
7.2 面向对象的系统开发方法的原理
7.2.1 面向对象建模
7.2.2 面向对象开发方法的内容与过程
7.2.3 面向对象开发方法各阶段的思路
7.3 标准建模语言UML概述
7.4 UML的静态建模机制
7.5 UML的动态建模机制
7.6 面向对象的分析方法
7.6.1 标识类及对象
7.6.2 标识对象的属性和关联关系
7.6.3 建立动态模型
7.6.4 建立功能模型
7.6.5 定义对象的服务
7.7 面向对象设计
7.7.1 面向对象设计准则
7.7.2 启发规则
7.7.3 面向对象分析与设计实例
小结7
习题7
8 软件编码与实现
8.1 对源程序的质量要求
8.2 程序设计语言
8.2.1 程序设计语言的分类
8.2.2 程序设计语言的特点
8.2.3 选择语言进行编码
8.3 程序设计风格
8.3.1 结构化程序编码
8.3.2 写程序的风格
8.4 程序设计过程
8.5 软件复用与构件技术
8.5.1 软件复用分类
8.5.2 实现复用的关键因素
8.5.3 领域工程
8.5.4 软件构件技术
8.5.5 复用成熟度模型和复用效益
小结8
习题8
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.2.4 错误推测法
9.2.5 因果图
9.2.6 选择测试技术的综合策略
9.3 软件测试策略
9.3.1 单元测试
9.3.2 综合测试
9.3.3 确认测试
9.3.4 系统测试
9.3.5 自动测试工具
9.3.6 排错
小结9
习题9
10 软件维护
10.1 软件维护的定义及分类
10.2 维护的特点
10.2.1 结构化和非结构化维护
10.2.2 软件维护的成本
10.3 可维护性
10.3.1 软件可维护性的定义及度量
10.3.2 文档
10.3.3 保证可维护性复审
10.4 软件维护活动
10.4.1 维护组织
10.4.2 维护的报告与评估
10.4.3 维护的事件流
10.4.4 保存维护记录
10.4.5 评价维护活动
小结10
习题10
11 软件项目管理
11.1 软件项目的特点和软件管理职能
11.1.1 项目与项目管理
11.1.2 软件项目的规模
11.1.3 软件项目的特点
11.1.4 软件项目管理的职能及存在的困难
11.2 成本估算
11.2.1 经验估算法
11.2.2 因素估算法
11.2.3 WBS基础上的全面详细估算
11.3 进度计划
11.3.1 成员能力评估
11.3.2 案例简介
11.4 人员管理
11.4.1 组织计划编制
11.4.2 人员募集
11.4.3 项目团队建设
11.5 质量保证
11.5.1 软件质量设计
11.5.2 软件质量管理
11.5.3 软件质量评审
11.5.4 软件质量保证过程
11.6 项目计划
11.6.1 项目计划内容
11.6.2 制订WBS计划
11.6.3 项目时间管理
11.7 软件管理工具
11.8 软件过程成熟度模型
11.8.1 CMM的基本框架
11.8.2 软件企业实施CMM的方法
11.8.3 CMM不覆盖的问题
小结11
习题11
参考文献