答:RUP突出的特点是它是一种以用况为驱动、以体系结构为中心的迭代、增量式开发。迭代就是指把一个大的项目按需求重要性等,分成若干步实现,每一步的结果都是可以满足用户进一步需求的产品(即一个增量),而每一步都有系统的需求分析,设计,实施,测试等过程。这就叫迭代。
在RUP中,将整个开发生命周期分为4个阶段:初始阶段、细化阶段、构造阶段、移交阶段。根据需求,各个阶段都可以细分为小的迭代。每个迭代类似小型的瀑布模式。项目每一次的迭代都会产生一个可以发布的版本,这个版本是最终产品的一个子集。迭代的思想如下图所示。
比如说建一个网站,可分为以下几步来完成 1、按用户的要求建一个静态网站 2、按用户的要求可以动态发布信息 3、可以分栏发布信息 4、实现会员管理
5、会员级别以及会员收费系统
每步都是一个迭代过程,两次相邻的迭代所得到的发布版本只差就是一个增量。
RUP迭代的特色:
1、每次迭代都按照专门的计划和评估标准,产生一个发布版本。
2、RUP的迭代增量式开发是演化模型的一个变体,它规定了“大的”迭代数目——四个阶段,并规定了每次迭代的目标。
初始阶段的基本目标是:获得与特定用况和平台无关的系统体系结构轮廓,以此建立产品功能范围;编制初始的业务实例,从业务角度指出该项目的价值,减少项目主要的错误风险。
精化阶段的基本目标是:通过捕获并描述系统的大部分需求(一些关键用况),建立系统体系结构基线的第一个版本,主要包括用况模型和分析模型,减少次要的错误风险;到该阶段末,就能够估算成本、进度,斌跟你过详细地规划构造阶段。
构造阶段的基本目标是:通过演化,形成最终的系统体系结构基线(包括系统的各种模型和各模型视角下的体系结构描述),开发完整的系统,确保产品可以开始向客户交付,即具有初始操作能力。
移交阶段的基本目标是:确保有一个实在的产品发布给用户群。期间,培训用户如何使用该软件。
3、RUP的迭代分为“大的”迭代,即四个阶段,每个阶段又分为“小的”迭代,即每个阶段里计划的迭代。每个阶段的结束是项目的主里程碑(有四个),主里程碑是管理者和开发者的同步点,用以决定是否继续进行项目,确定项目的进度、预算、需求等。而每一次“小的”迭代又产生一个次里程碑,产生一个增量,次里程碑是如何进行后续迭代的决策点。产生了同步点和决策点可以及时的发现错误,减少风险。迭代式开发的一个主要目的就是尽早降低风险,通过每次迭代中分析、按重要性排序并解决主要风险,来达到尽早化解风险的目的。
4、对于阶段任务来说,规定必须完成的就得必须完成;而对于迭代来说,一旦有任务完不成,可以考虑放入下一个迭代中继续进行,节省开发时间。
由瀑布模型转变到RUP的四个步骤
多数的软件开发团队仍然在开发项目中使用瀑布型的开发过程。采用瀑布型开发方法意味着要以严格的顺序来完成一系列的项目阶段:需求分析、设计、实现/集成然后是测试。当项目中出现的问题解时,可能会推迟测试阶段才能发现;这些问题可能会威胁软件发布的期限并且使其他阶段的团队成员在某些开发环节上是空闲的。
所以很多团队开始考虑将项目分解成为两个或者更多的部分,也称为阶段或者是时期。这种改良可以帮助简化集成、使测试人员更早的进行测试工作并提供更早的项目状态的反馈。
多数的瀑布型的项目将开发工作划分为阶段或者时期;可以将这个划分视为向迭代方法转换的第一步。但是实现向迭代开发方法的过渡,一般要使用下面四个步骤来:
尽早的构建功能原型。
划分详细设计、实现和测试阶段到不同的迭代中。 在项目早期基线化一个可执行的架构。 采用迭代式的和风险驱动的管理过程。
进一步的解释每一个步骤如下: 步骤 1 :尽早的构建功能原型
作为向迭代开发转换的第一步,在需求和设计阶段要考虑一个或者更多的功能原型。将你认为有风险的或者有难度的部分原型化,并且使用来自每一个阶段的反馈修改你的设计。设计这些原型的目标是减少主要的技术风险和认清项目应该做什么。
步骤 2 :将详细设计、实现和测试等不同的阶段划分到不同的迭代中。 在知道整个项目是关于哪方面的开发之前去把一个项目划分成为各个迭代部分是困难且不准确的。但是,进入了详细设计阶段时,通常对需求和系统的架构都有了较好的理解,这个时候就可以开始划分迭代部分了。假设有九个子系统,每一个都有数量日益增加的组件。就可以划分详细设计、实现和测试阶段到三个迭代中,每个迭代实现九个子系统中的三个。这样经过三次迭代就可以完成九个
子系统的开发。
步骤 3: 在项目的早期构建一个可执行的架构。
你可以将这个步骤看作是更加正式和有组织的完成步骤 1 ( 尽早的构建功能原型)的方法。
可执行的架构是系统的部分的实现,更重要的是,它能够证明设计能够满足对于性能、生产能力、容量可靠性、可测量性和其他方面的需求。一个可执行的架构允许你在稍后的阶段在这一基础上构建所有的系统功能性。这个可执行的架构是一个进化的原型,它的目的是当系统的架构成熟时,保持已经被证明的系统特性,并保证他们最大可能的满足系统的需求。换句话说,这些特性将是交付系统的一部分。与你在步骤 1中构建的功能原型相比,这个进化的原型覆盖了架构问题的所有方面。
生成一个进化的原型意味着你要设计、实现和测试一个系统的框架结构。这个原型会反映你的关键设计的决定,包括技术、主要组件和他们之间接口的选择。
步骤 4 :采用迭代式的和风险驱动的管理过程。
由上面的步骤 2 和步骤 3 ,我们将会一个非常接近“理想”迭代开发的模型。所以接下来的步骤应该是融合步骤 2 和步骤 3 ,并添加支持风险驱动和迭代开发的管理生命周期。这就是在 RUP 中被描述的迭代开式的生命周期。
RUP 对迭代开发提供了一个结构化的方法,它将一个项目划分成为四个阶段:初始阶段、细化阶段、构造阶段、移交阶段。每一个阶段包含了一个或者更多的迭代,每个迭代都关注产生的可交付物以实现阶段的业务目标。如果在团队计划的迭代次数内他们没有成功的实现这些目标,他们必须为那个阶段添加额外的迭代 — 并且推迟项目。为了避免这种事情发生,一定要严格的将你的精力集中在每个阶段你需要实现的业务目标上。例如,如果在构造阶段将精力集中在需求上将会成生相反的效果。
专业:计算机应用技术 学号:1113303013 姓名:李美燕
因篇幅问题不能全部显示,请点此查看更多更全内容