面向CS2013计算机专业规划教材软件工程概论(第3版)/郑人杰 本书特色
本书作者针对软件工程的学科特点,注重结合实例讲解软件工程的理论与方法,避免抽象和枯燥的论述,在兼顾传统的结构化方法的同时,注重当前广为采用的面向对象和敏捷开发方法,新版加入了新型的软件开发方法,例如开源软件、智能化软件、微服务。强调软件质量、软件安全和软件从业人员的职业道德和专业素质。
面向CS2013计算机专业规划教材软件工程概论(第3版)/郑人杰 内容简介
本书作者针对软件工程的学科特点,注重结合实例讲解软件工程的理论与方法,避免抽象和枯燥的论述,在兼顾传统的结构化方法的同时,注重当前广为采用的面向对象和敏捷开发方法,新版加入了新型的软件开发方法,例如开源软件、智能化软件、微服务。强调软件质量、软件安全和软件从业人员的职业道德和专业素质。
面向CS2013计算机专业规划教材软件工程概论(第3版)/郑人杰 目录
前言
教学建议
**部分软件工程概述
第1章软件与软件工程的概念
1?1软件的概念、特性和分类
1?1?1软件的概念及特性
1?1?2软件的分类
1?2软件危机与软件工程
1?2?1软件危机
1?2?2软件工程
1?3软件工程的目标
1?4软件生存期
1?5软件工程方法概述
1?5?1传统方法
1?5?2面向对象方法
1?5?3面向服务方法
1?5?4面向数据方法
1?5?5形式化方法
1?6软件工具概述
1?6?1软件工具的概念
1?6?2软件工具的发展
1?6?3软件工具的分类
1?6?4常用软件工具介绍
1?7软件工程知识体系及知识域
习题
第2章软件生存期模型
2?1瀑布模型
2?2快速原型模型
2?3增量模型
2?4螺旋模型
2?5喷泉模型
2?6统一过程
2?7基于构件的开发模型
2?8敏捷过程
习题
第二部分结构化分析与设计方法
第3章软件需求获取与结构化分析方法
3?1需求获取与需求分析阶段的任务
3?1?1需求获取的任务和原则
3?1?2需求获取的过程
3?1?3软件需求分析阶段的任务
3?2结构化分析方法
3?2?1功能建模
3?2?2数据建模
3?2?3行为建模
3?2?4数据字典
3?2?5加工规格说明
3?3系统需求规格说明
3?3?1软件需求规格说明模板
3?3?2SRS和DRD的质量要求
3?4需求评审
3?4?1正式的需求评审
3?4?2需求评审中的常见风险
3?5需求管理
3?5?1需求跟踪
3?5?2需求变更管理
习题
第4章结构化设计方法
4?1软件设计的概念及原则
4?1?1软件设计的概念
4?1?2软件设计的原则
4?2结构化设计
4?2?1结构化软件设计的任务
4?2?2结构化设计与结构化分析的关系
4?2?3模块结构及表示
4?2?4数据结构及表示
4?3体系结构设计
4?3?1基于数据流方法的设计过程
4?3?2典型的数据流类型和系统结构
4?3?3变换型映射方法
4?3?4事务型映射方法
4?3?5模块间的耦合与内聚
4?3?6软件模块结构的改进方法
4?4接口设计
4?4?1接口设计概述
4?4?2人机交互界面
4?5数据设计
4?5?1文件设计
4?5?2数据库设计
4?6过程设计
4?6?1结构化程序设计
4?6?2程序流程图
4?6?3N?S图
4?6?4PAD图
4?6?5伪代码
4?6?6自顶向下、逐步细化的设计过程
4?7软件设计规格说明
4?8软件设计评审
4?8?1概要设计评审的检查内容
4?8?2详细设计评审的检查内容
习题
第三部分面向对象分析与设计方法
第5章面向对象方法与UML
5?1面向对象的概念与开发方法
5?1?1对象
5?1?2类与封装
5?1?3继承
5?1?4多态
5?1?5消息通信
5?1?6面向对象的软件开发方法
5?2UML简介
5?2?1UML的产生和发展
5?2?2UML的特点
5?2?3UML的基本模型
5?3UML的事物
5?3?1结构事物
5?3?2行为事物
5?3?3分组事物
5?3?4注释事物
5?4UML的关系
5?4?1依赖关系
5?4?2关联关系
5?4?3泛化关系
5?4?4实现关系
5?5UML的图
5?5?1用例图
5?5?2类图
5?5?3顺序图与通信图
5?5?4状态图
5?5?5活动图
5?5?6构件图与部署图
习题
第6章面向对象分析
6?1面向对象分析概述
6?1?1确定系统边界
6?1?2面向对象分析的3种模型
6?2建立用例模型
6?2?1确定业务参与者
6?2?2确定业务需求用例
6?2?3创建用例图
6?3建立对象模型
6?3?1对象模型的5个层次
6?3?2划分主题
6?3?3确定类与对象
6?3?4确定结构
6?3?5确定属性
6?3?6确定服务
6?3?7建立类图
6?4建立动态模型
6?4?1顺序图
6?4?2通信图
6?4?3状态图
习题
第7章软件体系结构与设计模式
7?1软件体系结构的基本概念
7?1?1什么是体系结构
7?1?2体系结构模式、风格和框架的概念
7?1?3体系结构的重要作用
7?2典型的体系结构风格
7?2?1数据流风格
7?2?2调用∕返回风格
7?2?3仓库风格
7?3特定领域的软件体系结构
7?3?1类属模型
7?3?2参考模型
7?4分布式系统结构
7?4?1多处理器体系结构
7?4?2客户机∕服务器体系结构
7?4?3分布式对象体系结构
7?4?4代理
7?5体系结构框架
7?5?1模型视图控制器
7?5?2J2EE体系结构框架
7?5?3PCMEF与PCBMER框架
7?6设计模式
7?6?1抽象工厂
7?6?2单件
7?6?3外观
7?6?4适配器
7?6?5职责链
7?6?6中介者
7?6?7观察者
习题
第8章面向对象设计
8?1面向对象设计过程与准则
8?1?1面向对象设计过程
8?1?2面向对象设计准则
8?2体系结构模块及依赖性
8?2?1类及其依赖性
8?2?2接口及其依赖性
8?2?3包及其依赖性
8?2?4构件及其依赖性
8?3系统分解
8?3?1子系统和类
8?3?2服务和子系统接口
8?3?3子系统分层和划分
8?3?4Coad & Yourdon的面向对象设计模型
8?3?5子系统之间的两种交互方式
8?3?6组织系统的两种方案
8?4问题域部分的设计
8?5人机交互部分的设计
8?5?1用户界面设计步骤
8?5?2Web应用系统的界面设计
8?6任务管理部分的设计
8?7数据管理部分的设计
8?8对象设计
8?8?1使用模式设计对象
8?8?2接口规格说明设计
8?8?3重构对象设计模型
8?9优化对象设计模型
习题
第四部分软件实现与测试
第9章软件实现
9?1程序设计语言
9?1?1程序设计语言的性能
9?1?2程序设计语言的分类
9?1?3程序设计语言的选择
9?2程序设计风格
9?2?1源程序文档化
9?2?2数据说明标准化
9?2?3语句结构简单化
9?2?4输入/输出规范化
9?3编码规范
9?4程序效率与性能分析
9?4?1算法对效率的影响
9?4?2影响存储器效率的因素
9?4?3影响输入/输出的因素
习题
第10章软件测试方法
10?1软件测试的基本概念
10?1?1什么是软件测试
10?1?2软件测试的目的和原则
10?1?3软件测试的对象
10?1?4测试信息流
10?1?5测试与软件开发各阶段的关系
10?1?6白盒测试与黑盒测试
10?2白盒测试的测试用例设计
10?2?1逻辑覆盖
10?2?2语句覆盖
10?2?3判定覆盖
10?2?4条件覆盖
10?2?5判定条件覆盖
10?2?6条件组合覆盖
10?2?7路径覆盖
10?3基本路径覆盖
10?4黑盒测试的测试用例设计
10?4?1等价类划分
10?4?2边界值分析
10?5软件测试的策略
10?5?1单元测试
10?5?2组装测试
10?5?3确认测试
10?5?4系统测试
10?5?5测试的类型
10?6人工测试
10?6?1静态分析
10?6?2人工测试方法
10?7自动化测试
10?7?1自动化测试与手工测试
10?7?2脚本技术
10?7?3自动化测试框架及测试流程
10?8调试
习题
第五部分软件维护与软件管理
第11章软件维护
11?1软件维护的概念
11?1?1软件维护的定义
11?1?2影响维护工作量的因素
11?1?3软件维护的策略
11?2软件维护活动
11?2?1软件维护申请报告
11?2?2软件维护工作流程
11?2?3维护档案记录
11?2?4维护评价
11?3逆向工程
11?4重构
11?5程序修改的步骤和修改的副作用
11?5?1分析和理解程序
11?5?2修改程序
11?5?3修改程序的副作用及其控制
11?5?4重新验证程序
11?6软件的维护性
11?6?1软件维护性定义
11?6?2软件维护性度量
11?7提高软件维护性的方法
11?7?1使用提高软件维护性的开发技术和工具
11?7?2实施开发阶段产品的维护性审查
11?7?3改进文档
习题
第12章软件过程与软件过程改进
12?1软件过程概述
12?2软件生存期过程国际标准
12?3软件过程成熟度
12?3?1什么是软件过程成熟度
12?3?2过程制度化
12?4软件能力成熟度模型
12?4?1CMM与SEI
12?4?2CMM的演化
12?4?3CMM族和CMMI
12?4?4CMMI 1?3简介
12?4?5CMMI评估
12?5软件过程改进
12?5?1软件过程改进的IDEAL模型
12?5?2软件过程改进框架
12?5?3有效的软件过程
习题
第13章软件项目管理
13?1软件项目管理概述
13?1?1软件项目管理的目标
13?1?2软件项目管理涉及的几个方面
13?2项目估算
13?2?1项目策划与项目估算
13?2?2软件规模估算的功能点方法
13?2?3软件开发成本估算
13?3风险管理
13?3?1什么是软件风险
13?3?2风险管理的任务
13?3?3风险评估
13?3?4风险控制
13?3?5做好风险管理的建议
13?4进度管理
13?4?1进度控制问题
13?4?2甘特图
13?4?3时标网状图
13?4?4PERT图
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?6?4版本控制
13?6?5系统建立
13?6?6配置审核
13?6?7配置状态报告
13?7质量管理
习题
第14章软件工程标准及软件文档
14?1软件工程标准
14?1?1标准的概念
14?1?2软件标准化的意义
14?1?3标准的分类与分级
14?1?4软件工程标准的制定与实施
14?1?5软件组织内的标准化工作
14?2软件文档
14?2?1软件文档的作用和分类
14?2?2软件基本文档的内容要求
14?2?3对文档编制的质量要求
14?2?4文档的管理和维护
习题
第15章软件人员的职业道德和社会责任
15?1当前软件产品和软件产业的社会地位
15?2软件人员不良行为表现的实例
15?3软件工程人员的职业道德修养
15?3?1职业道德和社会责任
15?3?2软件工程人员职业道德修养的若干方面
15?4在软件业中组织职业道德规范的贯彻实施
附录近年国内外软件引起的系统重大事故
参考文献