内容简介
肖丁、修佳鹏主编的《软件工程模型与方法(第2 版新编高等院校计算机科学与技术规划教材)》在第1 版的基础上对基本结构行了一些必要的改动。全书 包括12个章节和3个附录,主要涉 及软件工程中核心的基本概念以及一些基本活动,诸 如软件生命周期模型、基于UML的面向对象方法以 及基于数据流图的结构化方法等,并着重描述软件需 求分析、软件概要设计以及软件测试在软件工程中的 核心作用。本书的后两章介绍了基本的软件维护过程 及软件项目管理的基本方法。面向对象方法是第2 版重突出的内容,重描述用例模型、领域模型以 及设计模型结合UML的用例图、顺序图以及类图的使 用方法,附录三介绍了UML顺序图、活动图和状态图的 高阶使用方法。
本书适合作为高校计算机专业及其他相关专业的 软件工程课程的教材,也适合从事软件发工作的 相关人员行阅读和参考。
目录介绍
第2版前言
第1章 软件工程概述
1.1 计算机软件
1.1.1 软件的定义
1.1.2 软件的特点
1.1.3 软件的分类
1.2 软件的发展和软件危机
1.2.1 软件发展阶段
1.2.2 软件危机
1.3 软件工程
1.3.1 软件工程定义
1.3.2 软件工程要素
1.3.3 软件工程的目标
1.3.4 软件工程研究内容
1.3.5 软件工程的原则
1.3.6 软件工程原理
1.4 软件工程知识体系
1.4.1 软件工程知识体系指南简介
1.4.2 软件工程知识体系指南目的
1.4.3 软件工程知识体系知识域
习题
第2章 软件生命周期模型
2.1 软件工程过程
2.2 模型及软件生命周期定义
2.2.1 模型的定义及作用
2.2.2 软件生命周期
2.3 传统软件生命周期模型
2.3.1 瀑布模型
2.3.2 演化模型
2.3.3 增量模型
2.3.4 喷泉模型
2.3.5 螺旋模型
2.3.6 V模型和W模型
2.3.7 构件组装模型
2.3.8 快速应用开发模型
2.3.9 原型方法(Prototyping Method)
2.4 新型软件生命周期模型
2.4.1 RUP
2.4.2 敏捷思想与XP方法
2.4.3 极限编程
习题
第3章 软件需求分析
3.1 需求分析之前的活动
3.1.1 系统分析
3.1.2 可行性分析
3.2 什么是需求
3.2.1 需求的定义
3.2.2 需求的不确定性
3.3 软件需求分析的目标及任务
3.4 软件需求分析建模的原则和方法
3.4.1 数据建模
3.4.2 功能和行为建模
3.5 软件需求工程
3.6 软件需求分析过程
3.6.1 需求获取的对象及注意事项
3.6.2 需求获取
3.6.3 需求类别
3.6.4 需求分析与综合
3.6.5 需求建模
3.6.6 编制需求分析文档
3.6.7 需求确认
3.6.8 需求分析评审
习题
第4章 面向对象需求分析方法
4.1 面向对象建模方法的发展历程
4.1.1 OOA OOD
4.1.2 Booch方法
4.1.3 对象建模技术
4.1.4 面向对象软件工程方法
4.2 统一建模语言简介
4.2.1 UML的诞生和发展
4.2.2 UML概述
4.3 面向对象的需求分析建模
4.4 领域建模
4.4.1 领域模型的定义
4.4.2 领域模型的表示
4.4.3 领域模型元素与软件对象的区别
4.4.4 识别概念类
4.4.5 识别和添加概念类之间的关系
4.4.6 UML概念类及关联关系表示
4.4.7 添加属性
4.5 用例建模
4.5.1 用例及用例模型的定义
4.5.2 用例模型的组成结构
4.5.3 用例图
4.5.4 用例之间的关系
4.6 需求分析规格说明书参考模板
习题
第5章 结构化需求分析方法
5.1 结构化分析发展简史
5.2 面向数据流图的结构化分析模型
5.2.1 数据建模
5.2.2 数据流图
5.2.3 系统行为建模
5.2.4 数据词典
5.3 结构化方法的软件需求规格说明书
习题
第6章 软件设计的概念及原则
6.1 软件设计的目标
6.2 软件设计的过程
6.3 软件的概要设计
6.3.1 制订设计规范
6.3.2 软件系统结构设计
6.3.3 处理方式设计
6.3.4 数据设计
6.3.5 可靠性设计
6.3.6 界面设计
6.3.7 编写概要设计阶段的文档
6.3.8 概要设计评审
6.4 软件的详细设计
6.5 软件设计模型
6.6 软件设计的一般原则
6.6.1 软件模块化
6.6.2 信息隐藏
6.6.3 模块的独立性
6.6.4 模块耦合度计算
6.6.5 降低模块间耦合度的方法
6.7 面向对象设计原则
6.7.1 单一职责原则
6.7.2 开闭原则
6.7.3 里氏替换原则
6.7.4 依赖倒置原则
6.7.5 接口隔离原则
6.7.6 组合/聚合复用原则
6.7.7 迪米特法则
6.8 软件设计基础
6.8.1 自顶向下,逐步细化
6.8.2 系统控制结构
6.8.3 结构划分和结构图
6.8.4 数据结构
6.8.5 软件过程
6.9 软件体系结构简介
6.9.1 软件体系结构概述
6.9.2 软件体系结构的定义
6.9.3 软件体系结构三要素
6.9.4 软件体系结构在软件设计阶段的作用
6.9.5 软件体系结构风格
6.10 软件设计方法
习题
第7章 面向对象设计方法
7.1 面向对象设计方法综述
7.2 模型层次化
7.2.1 控制器层对象的设计原则
7.2.2 业务逻辑层对象的设计原则
7.2.3 持久层对象的设计原则
7.3 设计用例实现方案
7.3.1 基于GRASP的设计模式
7.3.2 控制器模式
7.3.3 创建者模式
7.3.4 信息专家模式
7.3.5 用例实现的设计过程
7.3.6 持久化层设计
7.3.7 创建设计类图
7.3.8 startUp用例
7.4 概要设计说明书参考模板
习题
第8章 结构化设计方法
8.1 系统功能结构图结构
8.1.1 系统结构图中的模块
8.1.2 变换型数据流与变换型系统结构
8.1.3 事务型数据流与事务型系统结构图
8.2 变换映射
8.3 事务映射
8.4 变换-事务混合型的系统结构图
8.5 改进系统功能结构图的启发式原则
8.5.1 模块功能的完善
8.5.2 消除重复功能,改善软件结构
8.5.3 模块的作用范围
8.5.4 减少高扇出结构
8.5.5 避免或减少使用病态联接
8.5.6 模块的大小适中
8.5.7 设计功能可预测的模块,避免过度受限制的模块
8.5.8 软件包应满足设计约束和可移植性
8.6 数据设计和文件设计的原则
8.6.1 数据设计的原则
8.6.2 文件设计的过程
8.7 设计的后处理
8.7.1 处理说明
8.7.2 接口说明
8.7.3 数据结构说明
8.7.4 概要设计评审
8.7.5 设计的优化
8.8 详细设计
8.8.1 程序流程图
8.8.2 N-S图
8.8.3 PAD
8.8.4 判定表
8.8.5 PDL
8.9 界面设计的原则
8.9.1 置用户于控制之下
8.9.2 减少用户的记忆负担
8.9.3 保持界面一致
8.9.4 界面设计模型
8.9.5 用户界面设计过程
8.9.6 界面设计须注意的常见问题
8.9.7 界面设计评估和优化
习题
第9章 软件实现
9.1 软件实现概述
9.1.1 软件实现的目标
9.1.2 软件实现的任务
9.2 程序设计语言与集成开发环境
9.2.1 程序设计语言的选择
9.2.2 集成开发环境
9.3 程序设计方法
9.3.1 结构化程序设计方法
9.3.2 面向对象程序设计方法
9.4 程序设计风格
9.4.1 源程序文档化
9.4.2 数据说明
9.4.3 语句结构
9.4.4 输入和输出
9.4.5 错误处理
习题
第10章 软件测试
10.1 软件测试概述
10.1.1 软件测试的定义
10.1.2 测试用例
10.1.3 软件测试的目的
10.1.4 软件测试的原则
10.1.5 软件测试分类
10.1.6 相关术语
10.1.7 软件的可测试性
10.2 系统测试步骤
10.2.1 单元测试
10.2.2 集成测试
10.2.3 确认测试
10.2.4 系统测试
10.2.5 验收测试
10.3 软件测试流程
10.3.1 组建测试团队
10.3.2 制订测试计划
10.3.3 设计测试用例
10.3.4 搭建测试环境
10.3.5 执行测试及结果记录
10.3.6 错误修改
10.3.7 回归测试
10.3.8 测试总结
10.4 测试用例设计方法
10.4.1 测试技术分类
10.4.2 黑盒测试技术
10.4.3 白盒测试技术
10.5 自动化软件测试
10.5.1 自动化测试概述
10.5.2 软件测试工具分类
10.5.3 常用的软件测试工具简介
10.6 软件的可靠性
10.6.1 基本概念
10.6.2 软件可靠性衡量方法
习题
第11章 软件维护
11.1 软件维护概述
11.1.1 软件维护的定义和分类
11.1.2 影响软件维护工作量的因素
11.1.3 软件维护中的典型问题
11.2 软件维护活动
11.2.1 维护机构
11.2.2 维护申请单
11.2.3 软件维护工作流程
11.3 维护期的软件开发
11.3.1 分析和理解程序
11.3.2 修改程序
11.3.3 重新验证程序
习题
第12章 软件项目管理
12.1 软件项目管理概述
12.2 软件项目管理知识体系
12.3 软件项目管理过程
12.4 项目过程组与项目管理知识域的映射关系
12.5 软件项目管理体系
12.5.1 项目综合管理
12.5.2 项目范围管理
12.5.3 项目时间管理
12.5.4 项目成本管理
12.5.5 项目质量管理
12.5.6 项目人力资源管理
12.5.7 项目沟通管理
12.5.8 项目风险管理
12.5.9 项目采购管理
习题
附录一
附录二
附录三 UML活动图 顺序图 状态机图