第3章 统一过程

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3.2.2 分析流

用更精确的语言,以 确保设计流和实现流 正确地完成。加入更 多的技术细节,细节 不必让用户知道。


目标:分析和提取需求,以获得正确开发一个 软件产品和易于维护它所必需的需求。 当使用统一过程的时候,没有通常意义上的规 格说明文档。而是向客户展示一组UML图表 在分析流阶段,客户批准了规格说明文档之后, 就开始准备制定软件项目管理计划
CMM模型的类型



用于软件的(SW-CMM); 用于人力资源管理的(P-CMM;P代表 “人”); 用于系统工程的(SE-CMM); 用于集成产品开发的(IPD-CMM); 用于软件获取的(SA-CMM)。
SW-CMM成熟度模型

主要观点是:新的软件技术本身并不能导致产量和利润的增加, 问题主要出在软件过程管理上 。 SW-CMM将企业的软件过程成熟能力划分为五级
分析流
设计流 实现流 测试流
细化分析流得到的结果,直至这些结果已经使程序员容易实现 选择适当的编程语言实现软件 与上述工作流并行进行,找出上述工作流中的错误
3.3 统一过程的四个阶段

(1)开始阶段 (2) 细化阶段 (3) 构建阶段 (4) 转换阶段
(1)开始阶段



目标:确定目标产品是否值得去开发,即开发 该软件经济上是否可行 以需求流的工作为主,有少量的分析、设计和 测试工作 需求流有三方面的任务:
细化 阶段
建造 阶段
转换 阶段
分析阶段
需求流
阶段/递增 (商业范畴)
分析流
设计阶段 设计流 实现阶段 阶段 实现流 工作流 (技术范畴)
图3-1:一维生命周期模型
图3-2:二维生命周期模型
3.2 统一过程的五个核心工作 流
3.2.1 需求流 3.2.2 分析流 3.2.3 设计流 3.2.4 实现流 3.2.5 测试流

面向对象方法:


程序员应注重编写规范,应对变量定义和重要的代码 段添加注释,遵守变量定义约定。
3.2.5 测试流

对实现流产品进行测试的主要步骤如下:

单元测试——〉集成测试——〉产品测试— —〉验收测试
程序员做测试

(1)单元测试

每个组件在实现之后要对它们运行测试用例
3.2.5 测试流(续)

初始级 可重复级 已定义级 已管理级 优化级


等级越高的企业软件过程可见度越好,软件过程的可控性越高, 产品性能的预见性以及软件项目的风险评估也越准确,企业的生 产能力以及产品质量也越高。 SW-CMM的主要目标之一是改善软件过程和产品质量,它只是描 述了过程应当解决的问题,其关键过程域(Key Process Area. KPA) 是静态、抽象的描述,并没有说明如何去执行,即使其关键实践 也只是描述要做什么,而没有强行规定“怎样”完成目标
(2) 细化阶段

细化阶段的目标



细化最初的需求, 细化体系结构, 监视风险, 细化商业案例, 生成软件项目管理计划 。
化阶段可以交付的文档



完成的问题域模型; 完成的商业模型; 完成的需求制品; 完成的分析制品; 体系结构的更新版本; 风险的更新清单; 软件项目管理计划; 完成的商业案例。


获得要开发的软件的领域知识; 在清楚理解客户时如何工作的基础上,画出个要开 发系统的商业模型(用例图等); 限定提出项目的范围
开始阶段可交付的文档

领域模型的初始版本; 商业模型的初始版本; 需求制品的初始版本; 分析制品的初始版本; 体系结构的初始版本; 风险的初始清单; 初始用例; 对细化阶段的计划; 商业案例的初始版本。
成熟度级别 3:定义级



定义级的软件开发过程有充分的软件生 产文档 软件开发过程在所有的管理和技术方面 都有明确的定义,并在可能的地方不断 努力改进软件开发过程,采用评审的方 式来保证软件质量。 也能够引进CASE这样的新技术来进一步 提高软件质量和软件生产力。
成熟度级别 4:可管理级

(4) 转换阶段


转换阶段的目标
确保客户的需求切实得到满足。 将系统从开发单位转移到用户单位,并使 之在真实环境中工作。


转换阶段交付的产品包括:
全部软件产品(最终版); 完成的手册。
知识点3-2:对比四个阶段交 付的内容
知识点3-2:对比四个阶段交付的内容 知识点简述: 统一过程的四个阶段分别是开始阶段、细化阶段、构建阶段和转换阶段, 每个阶段都产 生各自的产品。 对比四个阶段交付的内容 阶段名称 开始阶段 交付内容 (1)领域模型的初始版本 (2)商业模型的初始版本 (3)需求产品的初始版本 (4)分析产品的初始版本 (5)体系结构的初始版本 (6)风险的初始清单 (7)初始用例 (8)对细化阶段的计划 (1)完成的问题域模型 (2)完成的商业模型 (3)完成的需求产品 (4)完成的分析产品 (5)体系结构的更新版本 (6)风险的更新清单 (7)软件项目管理计划(项目余下部分)
成熟度级别 1:初始级



初始级的软件过程是未加定义的随意过程 项目的执行是随意甚至是混乱的,强调的是经 验和个人能力,当开发人员调动或离开时,软 件过程也跟着变化 许多措施都是在软件开发遇到困难的时候采取 的,而不是事先计划好的 无法对软件开发的时间和金钱的花费进行精确 的估计
成熟度级别 2:可重复级
(3) 构建阶段

强调的是编程 和测试

构建阶段的目标:产生软件产品的第一个可工 作版本,即测试版(版) 交付给用户的相关文档

1)初始用户手册和其他相关手册; 2)全部的软件产品(测试版); 3)完成的体系结构; 4)更新的风险清单; 5)软件项目管理计划(用于项目的余下部分) 6)根据情况,可以更新商业案例。


可管理级的管理是量化的管理,为每个项目设 计了质量目标和生产目标。 所有过程需建立相应的度量方式,所有产品的 质量(包括工作产品和提交给用户的产品)需 有明确的度量指标。 在软件开发过程中按照制定的指标进行测量, 当与目标有不可接受的偏离时,则采取措施对 其进行纠正。 设立统计质量控制,确保管理者能够对质量和 生产标准的随机偏离及有意图的违背有所判断。
第3章 统一过程

3.1 一维与二维生命周期模型 3.2 统一过程的五个核心工作流

需求流 分析流 设计流 实现流 测试流 开始阶段 细化阶段 构建阶段 转换阶段

3.3 统一过程的四个阶段


3.4软件能力成熟度模型
3.1 一维与二维生命周期模型
需求阶段
开始 阶段
每个级别都包含一系列的关键过程区(key process area,KPA),它是一个组织向在迈向下 一个级别时要努力实现的目标。 每个KPA进一步包含若干关键实践(Key Practice, KP),关键实践就是指企业在执行约 定时,采取的措施或能力中对关键过程域的实 施和规范化起重大作用的部分。 每个关键过程区域最终由关键实践所组成,通 过实现这些关键实践来达到关键区域的目标。 每一个KPA都包含五类KP为完成关键过程域中 的实践活动

(2)集成测试


将组件与其他编码后的组件组合起来,以便能够确定该部分 产品整体上功能是否正确 组件集成的方式

一次全部集成 一次一个集成 自顶向下:底层组件通常不会像在自底向上方式中那样得到完全 测试 自底向上:查找出顶层的设计错误比较晚,这样造成的重新设计 会付出比较昂贵的代价

集成顺序

成熟度级别 5:最优级


最优级的目标:持续改进软件过程 在每个项目中获得的知识在以后的项目 中得到应用,根据过程执行的反馈信息 来改善下一步的执行过程,开发过程形 成了一个反馈性的良性循环。 企业能够根据实际的项目性质、技术等 因素,不断调整软件生产过程以求达到 最佳。
SW-wk.baidu.comMM



软件项目管理计划的主要内容


计划内容
可交付的东西(客户将要得到什么); 交付的时间(客户什么时候可以得到它们); 预算(它要花费多少钱)。


计划尽可能详细地描述整个软件过程
要使用的生命周期模型; 开发组织的组织结构,项目职责,管理目标和优 先权; 使用的技术和CASE工具; 详细时间表,预算和资源分配。
3.2.1 需求流

用自然语言描述 系统的功能,不 用专业术语
目标:确定客户的需求 开发小组的任务

准确确定客户的需求并从客户的角度找出存在的限制条件

(1)最终期限 (2)可靠性 (3)成本

需求流经常完成得不好,原因如下:

(1)客户可能不真正了解在他的组织内部正在进行的事情。 (2)客户常常提出错误的产品需求,产生这种情况的主要原 因是软件的复杂性。

编程序

目标:用选择的实现语言实现目标软件产品 小型软件产品有时由设计者实现。而大型软件产品被 划分为较小的子系统,它们由多个编码小组并行实现。 结构化方法:

交给程序员的是要实现的模块的详细设计。详细设计通常提 供程序员实现代码制品所需的详细信息。
分析制品包含详细的类图和类之间的关系图,程序员需要按 照详细设计来编码实现并测试自己所编的部分。

3.2.3 设计流

指示产品如何做
目标:细化分析流的制品,直至材料处于程序员可实 现的形式 方法:结构化方法和面向对象方法

传统的结构化设计:设计小组确定产品的内部结构。设计人 员将产品分解成模块,它是与产品其他部分有明确定义的接 口的独立代码段。


概要设计:每个模块的接口(即传递给模块的参数和从模块返回 的参数)必须详细定义; 详细设计:为每个模块选择相应的算法和数据结构。 分析流:提取类 设计流:对分析流期间得到的类进行细化,添加类的属性、方法、 类之间的消息传递
(4)验收测试

软件交付给客户,客户使用与测试数据 不同的真实数据,在实际的硬件上对产 品进行测试
知识点3-1:比较五个工作流分 别需要做什么
知识点3-1:比较统一过程的五个工作流分别需要做什么 知识点简述:统一过程中的五个工作流分别是需求流、分析流、设计流、实现流和测试流,它们各自的 任务不同。 比较统一过程的五个工作流分别需要做什么 工作流名称 需求流 工作 确定客户的需求并从客户角度找出在开发时间、可靠性和成本方面的限制,分析在技 术上和经济上的可行性(用客户的语言表达) 分析和提取需求,以获得正确开发软件和易于维护所必需的需求(用精确的语言)


对组件接口的测试要考察形参的数量、顺序和类型是否与实 参的数量、顺序和类型相匹配
(3)产品测试




依照规格说明对产品功能进行整体测试 要对规格说明中列出的约束条件进行测 试:响应时间 还需要测试产品的健壮性 新产品对客户计算机已有软件是否有不 良影响 检查源代码和所有其他类型的文档是否 全部完成,并且是否具有内在一致性

可重复级使用了基本的软件项目管理措施。根据类似 产品的经验对新的产品进行计划和管理 可重复级的焦点集中在软件管理过程上

需求管理 项目管理 质量管理 配置管理 子合同管理

从管理角度可以看到一个按计划执行的、且阶段可控 的软件开发过程,具有质量统筹、跟踪计划管理,稳 定的计划和生产基准。
CMM活动具有公共特性的5个 部分:
细化阶段
构建阶段
(1)初始用户手册和其他相关手册 (2)全部产品(测试版) (3)完成的体系结构 (4)更新的风险清单 (5)软件项目管理计划(项目余下部分)
(1)全部产品(最终版) (2)完成的手册
转换阶段
3.4软件能力成熟度模型


CMM (Capability Maturity Model)即能 力成熟度模型 成熟度是过程本身良好程度的度量, CMM基于众多软件专家的实践经验,侧 重于软件开发过程的管理及工程能力的 提高与评估,是国际上流行的软件生产 过程标准和软件企业成熟度等级认证标 准。

面向对象方法:该方法的基础是类

详细记录所做的每个设计决定


(1) 在进行产品设计时,有时会走到 死胡同,这样设计小组需要原路返回重 新进行设计。 (2) 以便将来的修改,可修改性是指 将来可通过添加新的类或取代已存在的 类来提高产品的性能(交付后维护), 同时在整体上不影响设计。
3.2.4 实现流
相关文档
最新文档