- 高等教育出版社
- 9787040264371
- 1版
- 27175
- 46242754-3
- 平装
- 异16开
- 2009-04-21
- 550
- 584
- 工学
- 软件工程
- 计算机科学与技术
本书以面向对象软件开发方法学、软件开发和管理的过程模型为主线,系统地介绍统一建模语言(UML)、基于UML的面向对象需求工程、基于UML的面向对象软件设计、面向对象的软件实现及软件测试、软件项目管理及软件工程过程模型。此外,本书还介绍了具有良好发展前景的先进的软件过程模型和软件开发技术,包括统一软件过程、敏捷软件开发和极限编程以及测试驱动、面向方面、面向Agent和模型驱动的软件开发方法。
本书是作者多年来在软件开发实践、软件工程科研和教学活动中积累沉淀的经验、体会和感悟的结晶。其结构设计和内容选材遵循实践性、可操作性、逻辑性、系统性、基础优先、技术和管理并重的原则,通过大量和系统的案例分析来诠释、演示软件工程技术和过程的综合使用方法,力求比较系统地解决长期困扰软件工程教育的“知易行难”问题。
本书可作为高等院校计算机专业、软件专业尤其是软件工程专业以及信息类相关专业高年级本科生和研究生“面向对象软件工程”课程的教材,还可作为软件开发人员、软件项目管理人员的技术参考书。
第一章 绪论
1.1 本书的结构及导读
1.2 软件工程的观念
1.3 案例说明
1.4 面向对象的概念与思想
1.4.1 基本概念
1.4.2 面向对象的优势
1.4.3 面向对象的复用
1.4.4 封装与多态
本章小结
习题一
本章参考文献
第二章 UML简介
2.1 用例图
2.1.1 执行者和用例
2.1.2 执行者与用例之间的关系
2.1.3 用例之间的关系
2.1.4 执行者之间的关系
2.1.5 边界框
2.1.6 布局规则
2.1.7 伴随文档
2.2 类图
2.2.1 类
2.2.2 接口
2.2.3 关联关系
2.2.4 聚合与组合
2.2.5 依赖关系
2.2.6 实现关系
2.2.7 继承关系
2.2.8 布局规则
2.3 对象图*
2.4 交互图
2.4.1 顺序图
2.4.2 通信图
2.4.3 顺序图与通信图之间的选取
2.5 状态图
2.5.1 基本机制
2.5.2 结构化机制*
2.5.3 建模规则
2.5.4 布局规则
2.6 活动图
2.6.1 基本机制
2.6.2 结构化机制*
2.6.3 建模规则
2.6.4 布局规则
2.7 构件图*
2.7.1 构件及其表示
2.7.2 构件图
2.7.3 构件定义图
2.7.4 布局规则
2.8 部署图*
2.8.1 描述性部署图
2.8.2 实例性部署图
2.8.3 布局规则
2.9 包图
2.9.1 包及包间依赖
2.9.2 包图
2.9.3 布局规则
2.10 对象约束语言*
2.11 扩充机制
2.11.1 约束
2.11.2 标记值
2.11.3 构造型
2.11.4 扩展剖面*
本章小结
习题二
本章参考文献
第三章 软件项目管理导论
3.1 软件项目管理概述
3.2 项目案例描述和假设
3.3 软件过程定义与改进
3.3.1 软件过程模型
3.3.2 定义软件过程
3.3.3 改进软件过程
3.3.4 案例分析
3.4 软件度量
3.4.1 度量、测量和估算
3.4.2 自顶向下和自底向上的估算方式
3.4.3 估算方法
3.4.4 应用度量、测量和估算
3.4.5 案例分析
3.5 软件项目计划
3.5.1 基本概念
3.5.2 表示和分析软件项目计划
3.5.3 制订软件项目计划要考虑的因素
3.5.4 制订软件项目计划的步骤
3.5.5 应用软件项目计划
3.5.6 案例分析
3.6 软件项目跟踪和控制
3.6.1 软件项目跟踪的对象
3.6.2 软件项目跟踪和控制的方法
3.6.3 软件项目跟踪和控制的步骤
3.6.4 案例分析
3.7 软件风险管理
3.7.1 软件风险
3.7.2 软件风险的类型
3.7.3 软件风险管理模式
3.7.4 软件风险管理方法
3.7.5 案例分析
3.8 软件质量管理
3.8.1 软件质量
3.8.2 软件质量保证
3.8.3 软件质量保证计划
3.8.4 案例分析
3.9 软件配置管理
3.9.1 基本概念
3.9.2 软件配置管理过程
3.9.3 软件配置管理计划
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.3 需求获取
4.3.1 获取活动的参与者
4.3.2 获取活动的进入准则
4.3.3 获取活动的输入
4.3.4 获取活动的预备知识
4.3.5 获取活动的步骤
4.3.6 获取活动的输出
4.3.7 获取活动的出口准则
4.3.8 获取活动小结
4.4 需求分析
4.4.1 分析活动的参与者
4.4.2 分析活动的进入准则
4.4.3 分析活动的输入
4.4.4 分析活动的步骤
4.4.5 分析活动的输出
4.4.6 分析活动的出口准则
4.4.7 分析活动小结
4.5 需求规范化
4.6 需求验证
4.7 需求管理
4.7.1 管理活动的参与者
4.7.2 管理活动的进入准则
4.7.3 管理活动的输入
4.7.4 需求管理的任务与方法
4.7.5 管理活动的输出
4.7.6 管理活动的出口准则
4.7.7 需求管理活动小结
4.8 案例分析
4.8.1 需求获取的输出
4.8.2 需求分析的输出
本章小结
习题四
本章参考文献
第五章 软件设计
5.1 软件设计的过程模型
5.1.1 设计活动
5.1.2 迭代式设计过程模型
5.1.3 设计过程模型的裁剪
5.2 软件设计的策划
5.2.1 策划活动的参与者
5.2.2 策划活动的进入准则与输入
5.2.3 策划活动的步骤
5.2.4 策划活动的输出与出口准则
5.2.5 策划活动小结
5.3 用户界面设计
5.3.1 界面设计活动的参与者
5.3.2 界面设计活动的进入准则与输入
5.3.3 界面设计活动的预备知识
5.3.4 界面设计活动的步骤
5.3.5 界面设计活动的输出与出口准则
5.3.6 界面设计活动小结
5.4 体系结构设计
5.4.1 体系结构设计活动的参与者
5.4.2 体系结构设计活动的进入准则与输入
5.4.3 体系结构设计的预备知识
5.4.4 体系结构设计的步骤
5.4.5 体系结构设计活动的输出与出口准则
5.4.6 体系结构设计活动小结
5.5 用例设计
5.5.1 用例设计活动的参与者
5.5.2 用例设计活动的进入准则与输入
5.5.3 用例设计活动的步骤
5.5.4 用例设计活动的输出与出口准则
5.5.5 用例设计活动小结
5.6 子系统设计
5.6.1 子系统设计活动的参与者
5.6.2 子系统设计活动的进入准则与输入
5.6.3 子系统设计活动的步骤
5.6.4 子系统设计活动的输出与出口准则
5.6.5 子系统设计活动小结
5.7 构件设计
5.8 类设计
5.8.1 类设计活动的参与者
5.8.2 类设计活动的进入准则与输入
5.8.3 类设计活动的步骤
5.8.4 类设计活动的输出与出口准则
5.8.5 类设计活动小结
5.9 数据模型设计
5.9.1 数据模型设计活动的参与者
5.9.2 数据模型设计活动的进入准则与输入
5.9.3 数据模型设计活动的步骤
5.9.4 数据模型设计活动的输出与出口准则
5.9.5 数据模型设计活动小结
5.10 设计整合
5.11 设计评审
5.12 设计管理
5.12.1 设计管理活动的参与者
5.12.2 设计管理活动的进入准则
5.12.3 设计管理活动的输入
5.12.4 设计管理的任务与方法
5.12.5 设计管理活动的输出
5.12.6 设计管理活动的出口准则
5.12.7 设计管理活动小结
5.13 案例分析
5.13.1 用户界面设计的输出
5.13.2 体系结构设计的输出
5.13.3 用例设计的输出
5.13.4 子系统设计的输出
5.13.5 构件设计的输出
5.13.6 类设计的输出
5.13.7 数据模型设计的输出
本章小结
习题五
本章参考文献
第六章 软件实现
6.1 软件实现的概念
6.1.1 软件实现在软件生命周期中的地位
6.1.2 软件实现的先决条件与具体任务
6.1.3 软件实现与程序设计语言
6.2 软件实现过程
6.3 软件编程
6.3.1 类设计的实现
6.3.2 数据模型的实现
6.3.3 界面设计的实现
6.3.4 编写高质量的程序代码
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.5.5 软件实现阶段的评审
6.6 案例分析
6.6.1 类设计的实现
6.6.2 访问数据模型的类实现
本章小结
习题六
本章参考文献
第七章 软件测试
7.1 软件测试的概念
7.1.1 测试用例及其设计
7.1.2 测试中的信息流程
7.1.3 测试评价和充分性准则
7.1.4 软件测试的重要原则
7.2 软件测试的过程
7.3 基本的软件测试方法
7.3.1 黑盒测试
7.3.2 白盒测试
7.3.3 非功能性测试
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.5.3 继承测试
7.5.4 基于UML的测试
7.6 软件测试的经验
7.7 软件测试过程中的项目管理
7.7.1 制订软件测试计划
7.7.2 软件缺陷的报告与跟踪
7.7.3 软件测试的进度管理
7.7.4 软件测试的度量
7.8 案例分析
7.8.1 软件测试计划
7.8.2 功能性测试
7.8.3 非功能性测试
本章小结
习题七
本章参考文献
第八章 软件工程前瞻
8.1 敏捷软件开发
8.1.1 敏捷软件开发思想
8.1.2 敏捷软件开发的特点
8.1.3 支持敏捷软件开发的技术和管理手段
8.1.4 极限编程
8.2 测试驱动开发
8.2.1 测试驱动开发思想
8.2.2 支持测试驱动开发的软件工具
8.2.3 测试驱动开发过程
8.3 面向方面软件开发
8.3.1 面向方面软件开发思想
8.3.2 面向方面编程的实现原
8.3.3 面向方面的编程语言
8.4 模型驱动软件开发
8.4.1 模型驱动软件开发思想
8.4.2 MDA的模型和映射
8.4.3 基于MDA的软件开发
8.5 面向Agent软件开发
8.5.1 面向Agent软件开发的概念和思想
8.5.2 面向Agent的软件开发
本章小结
习题八
本章参考文献