统一过程的特点:用况驱动、以构架为中心、迭代和增量的

软件朝着更庞大、更复杂的系统发展,我们也希望能更快生产出软件。要实现这些目标具有相当的难度。

软件问题可以归结为开发人员面临的将一个大型软件所包含的各个部分集成为一个整体的难度。软件开发团体需要一种受控的工作方式;需要一个过程来集成软件开发的方方面面;需要通用的方法或过程来完成如下工作:

  • 指导一个群组活动的顺序。
  • 布置每个开发人员和整个群组的任务。
  • 确定开发何种制品。
  • 提出监控和测量一个项目的产品和活动的准则。

具有明确定义和管理完善的过程是区分高效项目和不成功项目的关键。统一软件开发过程是30多年来经验的总结,是软件问题的一种解决方案。

统一过程概述

统一过程是一个软件开发过程。软件开发过程是一个将用户需求转化为软件系统所需要的活动的集合。

统一过程是基于构件的,即所构造的软件系统是由软件构件通过定义明确的接口相互连接所建造起来的。

统一过程使用UML来指定软件系统的所有蓝图。

统一过程的突出特点:用况驱动、以构架为中心、迭代和增量的。

统一过程是用况驱动的

软件系统是为了服务于它的用户而出现的。所以必须了解用户的需求是什么。

用户代表了与所开发的系统进行交互的某个人或某件事。

用况是能够向用户提供有价值结果的系统中的一种功能。用况获取的是功能需求。所有的用况何在一起构成用况模型,它描述了系统的全部功能。

用况还可以驱动开发过程。基于用况模型,开发人员可以创建一系列实现这些用况的设计和实现模型。测试人员测试实现以确保实现模型的构件正确实现了用况。

统一过程是以构架为中心的

软件系统的架构从不同的角度描述了即将构造的系统。

软件构架概念包含了系统中最重要的静态和动态特征。架构刻画了系统的整体设计,去掉了细节部分,突出了系统的重要特征。

每一种产品都具有功能和形式两个方面。功能与用况相对应,表现形式与架构相对应。用况和架构之间是相互影响的,用况再实现时必须适用于构架;架构必须预留空间以实现现在或将来所有需要的用况。架构和用况必须并行进化。

架构设计步骤:

  1. 首先,从不是专门针对用况的那部分架构开始,创建一个粗略的架构轮廓。尽管这部分架构与用况无关,但价格是再创建构架轮廓之前必须对用况有一个全面的了解。
  2. 其次,构架师需要着手处理已经确定的重要用况子集,这些用况代表了带开发系统的主要功能。详细描述每个选定的用况并实现。
  3. 随着用况的描述趋于完善,构架的更多部分便会显示出来,从而也使更多的用况趋于完善。 继续这个过程,指导确信得到了一个稳定的构架为止。

统一过程是迭代和增量的过程

迭代时指工作流中的步骤,而增量时产品中增加的部分。为了获得最佳的效果,迭代必须时受控的。

开发人员基于两个因素来确定再一次迭代过程中要实现的目标:

  • 首先,迭代过程要处理一组用况,这些用况合起来能够扩展所开发产品的可用性。
  • 其他,迭代过程要解决最突出的风险问题。

受控迭代过程具有很多好处:

  • 受控迭代将成本风险降低为获得一次增量所需要的费用。
  • 受控迭代过程可以降低产品不能按计划投放市场的风险。
  • 受控迭代过程可以加快整个项目的进展速度,这是因为有了清晰、简洁的目标,而不是再一个漫长且不断变化的进度下工作,开发人员的工作效率也会更高。
  • 受控迭代的操作模式使项目开发更能适应项目需求的变化。

统一过程的生命周期

统一过程是在重复一系列组成系统生命周期的循环。每次循环都以向用户提供一个产品版本作为终结。每次循环都包括四个阶段:初始、细化、构架和移交。每个阶段又进一步细分为多次迭代过程。

产品

每次循环产生系统的一个新的版本,每个版本都是一个准备交付的产品。软件产品包括:

  • 用况模型,包含所有用况机器与用户之间的关系。
  • 分析模型,它有两方面的作用:
    • 更详细地提炼用况
    • 将系统的行为初步分配给提供行为的一组对象
  • 设计模型,将系统静态结构定义为子系统、类和接口,并定义由子系统、类和接口之间的协作所实现的用况。
  • 实现模型,包括构件和类到构件的映射。
  • 实施模型,定义计算机的物理节点和构件到这些节点的映射。
  • 测试模型,描述用于验证用况的测试用例。
  • 架构描述。
  • 业务模型或领域模型,描述系统业务语境。

所有这些模型都是相关的,它们合起来表示整个系统。一个模型的元素到其他模型的链表明了模型中的元素前后存在跟踪以来关系。可跟踪行有助于系统的理解和修改。

一次循环所包含的阶段

每个阶段都以一个里程碑作为结束表示。通过获得一组可用的制品来定义每个里程碑。

里程碑有很多用途:

  • 最关键的用途是管理人员能够在进入下一阶段据此作出某些意义重大的决定。
  • 里程碑还能使管理人员和开发人员在开发工作通过这四个关键点使监控工作的进展情况。
  • 通过跟踪在每个阶段所投入的时间和其他开销,我们可以得到大量的数据。可以用于估计其他项目。

在初始阶段,将一个好的想法发展为最终产品的一个构想,提出了产品的业务实例。本质上,该阶段回答下面的问题:

  • 系统向它的每个主要用户提供的基本功能使什么?包含最关键用况的简化模型可以回答这个问题。
  • 该系统的架构看起来使什么样子?在这个阶段,架构使实验性的,通常知识一个包括主要子系统的大致的轮廓。
  • 开发该产品的计划如何?开销多大?在这个阶段,要确定最主要的风险及其优先次序,要对细化阶段进行详细规划,并对整个项目进行粗略估算。

在细化阶段,详细说明该产品的绝大多数用况,并设计出系统的构架。架构包括了用况模型、分析模型、设计模型、实现模型和实施模型的视图。在开发的这个阶段所确定的最关键用况都要在这个阶段具体化。该阶段的结果是构架基线。在细化阶段末期,项目经理要规划完成项目的活动,估算完成项目所需的资源。这里的关键问题是:用况、构架和计划是否足够稳定可靠,风险是否得到充分控制,以便能够按照合同的规定完成整个任务。

在构架阶段,构架基线逐渐发展称为完善的系统。在开发的这个阶段将消耗大部分资源。在这个阶段的末期,产品将包括管理层和客户对发布的版本达成共识的所有用况。在这个里程碑要回答的问题是,早期交付给某些客户的产品是否完全满足了用户的需求?

在移交阶段包括了产品进入bata版后的整个阶段。包括诸如制作、用户培训、提供在线之hi已经改正交付后发现的缺陷等活动。维护部门通常将这些缺陷分为两类:对检验最近一个测试版本的操作产生重要影响的缺陷和可以在下一个正式版本中改正的缺陷。

一个综合的过程

统一过程是基于构件的。它采用UML建模。它依赖三个关键概念:用况、构件已经迭代和增量开发。为了使这些概念能够发挥作用,需要一个包括多方面的过程,该过程要考虑到生命周期、阶段、工作流、风险缓解、质量把控、项目管理和配置管理。统一过程建立一个集成所有这些方面的框架。

本书的目的在于从工程角度、从三个主要概念以及基于构件的设计和UML的运用方面来描述统一过程。本书将介绍四个阶段和不同的工作流,但不太具体设计管理问题。

results matching ""

    No results matching ""