简介
本书以软件工程的3个层次——传统软件工程、软件工程新方法以及软件工程标准与管理为主线,比较全面地介绍了软件工程的基本概念、基本理论、基本方法及其应用技术。全书共13章,分为3个部分。第1部分包括第1章至第7章,介绍了软件工程的基础知识,即软件过程模型及软件开发方法,重点讨论了软件需求、设计、编码、测试和维护的方法及处理技术;第2部分包括第8章至第10章,分别介绍了软件体系结构技术、面向对象技术、软件复用、净室软件工程和敏捷开发方法;第3部分详细介绍了软件工程标准、规范及软件工程管理的方法和技术。
本书可作为高等院校高年级本科生、研究生学习软件工程的教材和教学参考书,也可作为从事软件工程研究和应用的有关人员的参考书。
◆以传统软件工程、软件工程新方法、软件工程
标准与管理为主线,包括:
◆软件过程模型及开发方法
◆软件需求、设计、编码、测试和维护
◆软件体系结构技术、面向对象技术
◆软件复用、净室软件工程、敏捷开发方法
◆软件工程标准、规范与管理的方法与技术
目录
第1部分 软件工程基础
第1章 软件工程概述
1.1 软件的概念与特点
1.2 软件的分类
1.3 软件的发展和软件危机
1.4 软件过程及其模型
1.4.1 软件过程
1.4.2 软件过程模型
1.4.3 软件工程的目标和原则
1.5 软件开发工具
1.5.1 软件开发的分析工具
1.5.2 CASE 工具
1.6 未来之路
1.7 小结
参考文献
第2章 软件项目分析
2.1 概述
2.2 软件项目规模估算
2.2.1 代码行技术
2.2.2 任务估算技术
2.2.3 Delphi法
2.2.4 类比法
2.2.5 功能点估计法
2.2.6 PERT估计法
2.3 成本估计与效益分析
2.3.1 成本估计
2.3.2 效益分析
2.4 现有系统分析
2.5 可行性研究报告
2.5.1 可行性研究
2.5.2 可行性研究报告
2.6 立项评审
2.6.1 立项检查
2.6.2 立项评审报告
2.7 小结
参考文献
第3章 需求分析
3.1 概述
3.1.1 需求的类型
3.1.2 需求分析目标
3.1.3 需求分析过程
3.2 需求获取
3.2.1 需求获取方法
3.2.2 分析人员与用户的合作关系
3.3 需求分析
3.3.1 软件需求分析
3.3.2 需求和系统模型之间的关系
3.4 结构化分析方法
3.4.1 结构化分析
3.4.2 使用PDL描述需求
3.4.3 接口描述
3.5 软件原型实现
3.5.1 原型的特征
3.5.2 原型的选择
3.5.3 原型实现方法和工具
3.6 需求描述与评审
3.6.1 分析建模
3.6.2 软件需求规约
3.7 需求验证与评审
3.7.1 需求有效性验证
3.7.2 需求评审
3.8 需求管理
3.8.1 需求跟踪表
3.8.2 需求变更管理
3.9 小结
参考文献
第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.2.6 数据设计
4.2.7 软件结构设计
4.2.8 过程设计
4.3 模块化设计
4.3.1 功能独立性
4.3.2 内聚性
4.3.3 耦合度
4.4 软件设计工具
4.4.1 总体设计工具
4.4.2 详细设计工具
4.5 Jackson设计方法
4.5.1 Jackson结构图
4.5.2 Jackson设计方法
4.5.3 结构冲突
4.6 设计规格说明与评审
4.6.1 设计规格说明
4.6.2 软件设计评审
4.7 小结
参考文献
第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.3.4 适当使用注释
5.4 程序效率
5.4.1 讨论效率的准则
5.4.2 算法对效率的影响
5.4.3 影响存储效率的因素
5.4.4 影响输入/输出的因素
5.5 程序编码优化
5.5.1 程序优化的内容与原则
5.5.2 程序结构优化的基本方法
5.5.3 程序代码优化的基本方法
5.6 小结
参考文献
第6章 软件测试
6.1 测试基础
6.1.1 软件测试
6.1.2 验证和确认
6.1.3 测试流程
6.1.4 测试的组织
6.2 测试方法
6.2.1 测试设计中的系统分析方法
6.2.2 测试技术的分类
6.2.3 逻辑覆盖
6.2.4 基本路径测试
6.2.5 控制结构测试
6.3 测试过程
6.3.1 单元测试
6.3.2 集成测试
6.3.3 确认测试
6.3.4 系统测试
6.3.5 停止测试的时机
6.4 调试方法
6.4.1 调试步骤
6.4.2 几种主要调试方法
6.4.3 调试原则
6.5 自动测试工具
6.5.1 常用自动测试工具
6.5.2 工具对测试工作的影响
6.5.3 测试工具的开发
6.5.4 软件质量评测及其工具
6.6 软件可靠性
6.6.1 基本概念
6.6.2 软件可靠性与硬件可靠性
6.6.3 软件可靠性参数和模型
6.6.4 软件可靠性的衡量方法
6.6.5 软件的可靠性测试过程
6.6.6 提高软件可靠性的方法和技术
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.3 程序修改的副作用
7.3.1 修改代码的副作用
7.3.2 修改数据的副作用
7.3.3 文档的副作用
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.5.5 进行明确的质量保证审查
7.6 软件再工程
7.6.1 再工程的基本概念
7.6.2 再工程的相关软件技术
7.6.3 再工程应用实例
7.7 小结
参考文献
第2部分 新技术、新方法
第8章 软件体系结构
8.1 体系结构的概念及描述
8.1.1 体系结构的概念
8.1.2 体系结构的描述
8.1.3 体系结构的生命周期模型
8.2 体系结构风格
8.2.1 管道过滤模式
8.2.2 面向对象模式
8.2.3 事件驱动模式
8.2.4 分层模式
8.2.5 知识库模式
8.2.6 解释器模式
8.2.7 过程控制环模式
8.3 基于体系结构的软件开发
8.3.1 体系结构驱动的软件分析设计
8.3.2 体系结构评估
8.4 多层软件体系结构实例
8.4.1 J2EE概述
8.4.2 JBoss应用服务器
8.5 小结
参考文献
第9章 面向对象方法
9.1 OO基本原理
9.1.1 OO基本概念
9.1.2 OO的特征
9.1.3 OO的要素
9.2 OO开发方法
9.2.1 Booch方法
9.2.2 Coad方法
9.2.3 OMT方法
9.3 UML技术
9.3.1 UML概述
9.3.2 UML表示法
9.3.3 UML建模实例
9.4 小结
参考文献
第10章 软件开发新方法
10.1 软件复用
10.1.1 软件复用概念
10.1.2 领域工程
10.1.3 基于构件的软件开发
10.1.4 软件生产线
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.4 小结
参考文献
第3部分 软件工程管理标准、规范
第11章 软件工程标准
11.1 软件工程标准概述
11.1.1 软件工程标准化的意义
11.1.2 软件工程标准的制订与推行
11.1.3 软件工程标准的层次
11.1.4 中国的软件标准化工作
11.2 软件能力成熟度模型简介
11.2.1 CMM概述
11.2.2 CMM级别
11.2.3 CMM与管理
11.2.4 软件过程评估
11.2.5 软件过程评估方法
11.2.6 从CMM到CMMI
11.3 软件工程国际标准
11.3.1 IS09000的管理思想
11.3.2 IS09000族标准构成
11.3.3 IS09000-3实施
11.3.4 ISO/IECl5504简介
11.3.5其他软件工程标准
11.4 小结
参考文献
第12章 软件工程规范
12.1 PSP方法
12.1.1 PSP概述
12.1.2 PSP的演化
12.1.3 PSP过程实施
12.2 TSP方法
12.2.1 TSP概述
12.2.2 TSP的结构
12.2.3实现TSP的条件
12.2.4 TSP实施方法
12.3 RUP方法
12.3.1 RUP概述
12.3.2 RUP应用
12.3.3 RUP的核心工作流
12.3.4 RUP管理实施
12.4小结
参考文献
第13章 软件工程管理
13.1 软件管理的目标与基本原则
13.1.1 管理目标
13.1.2 基本原则
13.1.3 专题原则
13.2 风险管理
13.2.1 风险的分类
13.2.2 风险的识别
13.2.3 风险评估
13.2.4 风险的驾驭和监控
13.3 组织管理
13.3.1 民主制程序员组
13.3.2 主程序员组
13.3.3 现代程序员组
13.3.4 软件项目组
13.3.5 IT组织管理
13.4 质量管理
13.4.1 软件质量概述
13.4.2 软件质量因素
13.4.3 质量认证
13.4.4 测试管理
13.5 配置管理
13.5.1 配置管理的意义
13.5.2 配置管理的实施过程
13.5.3 配置控制
13.5.4 配置管理计划
13.5.5 配置管理报表
13.6 软件项目管理
13.6.1 软件项目产品的特点
13.6.2 软件项目失控的原因
13.6.3 软件项目管理的内容
13.7 小结
参考文献
附录A 主要英文缩写
第1章 软件工程概述
1.1 软件的概念与特点
1.2 软件的分类
1.3 软件的发展和软件危机
1.4 软件过程及其模型
1.4.1 软件过程
1.4.2 软件过程模型
1.4.3 软件工程的目标和原则
1.5 软件开发工具
1.5.1 软件开发的分析工具
1.5.2 CASE 工具
1.6 未来之路
1.7 小结
参考文献
第2章 软件项目分析
2.1 概述
2.2 软件项目规模估算
2.2.1 代码行技术
2.2.2 任务估算技术
2.2.3 Delphi法
2.2.4 类比法
2.2.5 功能点估计法
2.2.6 PERT估计法
2.3 成本估计与效益分析
2.3.1 成本估计
2.3.2 效益分析
2.4 现有系统分析
2.5 可行性研究报告
2.5.1 可行性研究
2.5.2 可行性研究报告
2.6 立项评审
2.6.1 立项检查
2.6.2 立项评审报告
2.7 小结
参考文献
第3章 需求分析
3.1 概述
3.1.1 需求的类型
3.1.2 需求分析目标
3.1.3 需求分析过程
3.2 需求获取
3.2.1 需求获取方法
3.2.2 分析人员与用户的合作关系
3.3 需求分析
3.3.1 软件需求分析
3.3.2 需求和系统模型之间的关系
3.4 结构化分析方法
3.4.1 结构化分析
3.4.2 使用PDL描述需求
3.4.3 接口描述
3.5 软件原型实现
3.5.1 原型的特征
3.5.2 原型的选择
3.5.3 原型实现方法和工具
3.6 需求描述与评审
3.6.1 分析建模
3.6.2 软件需求规约
3.7 需求验证与评审
3.7.1 需求有效性验证
3.7.2 需求评审
3.8 需求管理
3.8.1 需求跟踪表
3.8.2 需求变更管理
3.9 小结
参考文献
第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.2.6 数据设计
4.2.7 软件结构设计
4.2.8 过程设计
4.3 模块化设计
4.3.1 功能独立性
4.3.2 内聚性
4.3.3 耦合度
4.4 软件设计工具
4.4.1 总体设计工具
4.4.2 详细设计工具
4.5 Jackson设计方法
4.5.1 Jackson结构图
4.5.2 Jackson设计方法
4.5.3 结构冲突
4.6 设计规格说明与评审
4.6.1 设计规格说明
4.6.2 软件设计评审
4.7 小结
参考文献
第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.3.4 适当使用注释
5.4 程序效率
5.4.1 讨论效率的准则
5.4.2 算法对效率的影响
5.4.3 影响存储效率的因素
5.4.4 影响输入/输出的因素
5.5 程序编码优化
5.5.1 程序优化的内容与原则
5.5.2 程序结构优化的基本方法
5.5.3 程序代码优化的基本方法
5.6 小结
参考文献
第6章 软件测试
6.1 测试基础
6.1.1 软件测试
6.1.2 验证和确认
6.1.3 测试流程
6.1.4 测试的组织
6.2 测试方法
6.2.1 测试设计中的系统分析方法
6.2.2 测试技术的分类
6.2.3 逻辑覆盖
6.2.4 基本路径测试
6.2.5 控制结构测试
6.3 测试过程
6.3.1 单元测试
6.3.2 集成测试
6.3.3 确认测试
6.3.4 系统测试
6.3.5 停止测试的时机
6.4 调试方法
6.4.1 调试步骤
6.4.2 几种主要调试方法
6.4.3 调试原则
6.5 自动测试工具
6.5.1 常用自动测试工具
6.5.2 工具对测试工作的影响
6.5.3 测试工具的开发
6.5.4 软件质量评测及其工具
6.6 软件可靠性
6.6.1 基本概念
6.6.2 软件可靠性与硬件可靠性
6.6.3 软件可靠性参数和模型
6.6.4 软件可靠性的衡量方法
6.6.5 软件的可靠性测试过程
6.6.6 提高软件可靠性的方法和技术
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.3 程序修改的副作用
7.3.1 修改代码的副作用
7.3.2 修改数据的副作用
7.3.3 文档的副作用
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.5.5 进行明确的质量保证审查
7.6 软件再工程
7.6.1 再工程的基本概念
7.6.2 再工程的相关软件技术
7.6.3 再工程应用实例
7.7 小结
参考文献
第2部分 新技术、新方法
第8章 软件体系结构
8.1 体系结构的概念及描述
8.1.1 体系结构的概念
8.1.2 体系结构的描述
8.1.3 体系结构的生命周期模型
8.2 体系结构风格
8.2.1 管道过滤模式
8.2.2 面向对象模式
8.2.3 事件驱动模式
8.2.4 分层模式
8.2.5 知识库模式
8.2.6 解释器模式
8.2.7 过程控制环模式
8.3 基于体系结构的软件开发
8.3.1 体系结构驱动的软件分析设计
8.3.2 体系结构评估
8.4 多层软件体系结构实例
8.4.1 J2EE概述
8.4.2 JBoss应用服务器
8.5 小结
参考文献
第9章 面向对象方法
9.1 OO基本原理
9.1.1 OO基本概念
9.1.2 OO的特征
9.1.3 OO的要素
9.2 OO开发方法
9.2.1 Booch方法
9.2.2 Coad方法
9.2.3 OMT方法
9.3 UML技术
9.3.1 UML概述
9.3.2 UML表示法
9.3.3 UML建模实例
9.4 小结
参考文献
第10章 软件开发新方法
10.1 软件复用
10.1.1 软件复用概念
10.1.2 领域工程
10.1.3 基于构件的软件开发
10.1.4 软件生产线
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.4 小结
参考文献
第3部分 软件工程管理标准、规范
第11章 软件工程标准
11.1 软件工程标准概述
11.1.1 软件工程标准化的意义
11.1.2 软件工程标准的制订与推行
11.1.3 软件工程标准的层次
11.1.4 中国的软件标准化工作
11.2 软件能力成熟度模型简介
11.2.1 CMM概述
11.2.2 CMM级别
11.2.3 CMM与管理
11.2.4 软件过程评估
11.2.5 软件过程评估方法
11.2.6 从CMM到CMMI
11.3 软件工程国际标准
11.3.1 IS09000的管理思想
11.3.2 IS09000族标准构成
11.3.3 IS09000-3实施
11.3.4 ISO/IECl5504简介
11.3.5其他软件工程标准
11.4 小结
参考文献
第12章 软件工程规范
12.1 PSP方法
12.1.1 PSP概述
12.1.2 PSP的演化
12.1.3 PSP过程实施
12.2 TSP方法
12.2.1 TSP概述
12.2.2 TSP的结构
12.2.3实现TSP的条件
12.2.4 TSP实施方法
12.3 RUP方法
12.3.1 RUP概述
12.3.2 RUP应用
12.3.3 RUP的核心工作流
12.3.4 RUP管理实施
12.4小结
参考文献
第13章 软件工程管理
13.1 软件管理的目标与基本原则
13.1.1 管理目标
13.1.2 基本原则
13.1.3 专题原则
13.2 风险管理
13.2.1 风险的分类
13.2.2 风险的识别
13.2.3 风险评估
13.2.4 风险的驾驭和监控
13.3 组织管理
13.3.1 民主制程序员组
13.3.2 主程序员组
13.3.3 现代程序员组
13.3.4 软件项目组
13.3.5 IT组织管理
13.4 质量管理
13.4.1 软件质量概述
13.4.2 软件质量因素
13.4.3 质量认证
13.4.4 测试管理
13.5 配置管理
13.5.1 配置管理的意义
13.5.2 配置管理的实施过程
13.5.3 配置控制
13.5.4 配置管理计划
13.5.5 配置管理报表
13.6 软件项目管理
13.6.1 软件项目产品的特点
13.6.2 软件项目失控的原因
13.6.3 软件项目管理的内容
13.7 小结
参考文献
附录A 主要英文缩写
Software Engineering and Management
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×