第2章 RUP软件开发过程_第1页
第2章 RUP软件开发过程_第2页
第2章 RUP软件开发过程_第3页
第2章 RUP软件开发过程_第4页
第2章 RUP软件开发过程_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信息系统分析与设计第2章RUP软件开发过程

第2章RUP软件开发过程

为了保证项目的成功不仅需要面向对象的分析设计工具,还需要一个好的软件开发过程。

RUP(RationalUnifiedProcess)又称为统一软件过程能够有效的管理工作进度,控制和改善工作效率。它是目前的软件过程中与UML结合最好的过程,支持面向对象的软件开发,本章将对RUP进行简要的介绍。2.1RUP软件开发过程概述

RUP是Rational公司推出的软件过程模型,它是软件业界迄今为止商品化最成功的软件过程模型。RUP的近千页文档可以从Rational公司的网站下载,RUP的主要特征包括:采用迭代的、增量式的开发过程采用UML语言描述软件开发过程有一系列功能强大的软件工具支撑2.1.1RUP简介2.1RUP软件开发过程概述

RUP有三个突出的特点:(1)用例驱动(2)以构架为中心(3)采用迭代和增量模型2.1.2RUP主要特点(1)所有的软件开发都是用户需求驱动的。统一软件开发过程采用用例来描述用户需求,同时提供了一套方法把用例转化为设计的类图,进一步变成最终的程序代码。在整个软件开发过程中,需求用例是可跟踪的。

2.1RUP软件开发过程概述

(2)构架是一个小的、皮包骨头的系统,它实现了用户的核心需求,包括了系统中最重要的静态和动态特征。构架刻画了系统的整体设计,它舍弃了细节部分,突出了系统的重要特征。

(3)在进行软件系统开发时,统一软件开发过程采用迭代和增量的开发方式,把一个软件产品划分成多个较小的部分,每次完成一个部分,这个部分是产品的一个增量部分。每个增量部分的生产过程是都受控的。

2.1RUP软件开发过程概述

RUP在不断的实践过程中,总结出六个最有效地实践经验,称为最佳实践。这些最佳实践是对实际软件开发过程应用的总结,这六个最佳经验是:(1)迭代的软件开发(2)需求管理(3)使用基于构件的体系结构(4)可视化软件建模(5)验证软件质量(6)控制软件变更2.1.3RUP最佳实践2.2RUP过程框架

使用RUP开发软件产品,每个软件产品的开发过程都应该包括多次循环。每个循环包括四个阶段:初始、细化、构建和产品化。每个阶段又包括多个迭代过程。

2.2.1RUP过程框架模型

2.2RUP过程框架

统一软件过程是一个二维结构,如图2.1所示

2.2RUP过程框架

RUP中的软件生命周期在时间上被分解为四个顺序的阶段,每个阶段结束时都有一个主要的里程碑,在每个阶段结束时,对本阶段的工作是否达到预定的目标进行评估。如果评估结果令人满意的话,项目就可以进入下一个阶段。

2.2.2RUP过程阶段

2.2RUP过程框架

1.初始阶段初始阶段有时也称先启阶段。初始阶段的目标是为系统建立商业用例,确定要开发系统的边界,找出与系统交互的所有外部实体,列出实体与系统的交互过程。

初始阶段在RUP中具有非常重要的意义,在这个阶段中所关注的是整个项目进行中的业务和需求方面的主要风险。

2.2RUP过程框架

2.细化阶段

细化阶段也称为精化阶段。细化阶段的目标是分析问题领域,准备构架的设计,编制项目计划,淘汰项目中最高风险的元素。为此必须在理解整个系统的基础上确定系统的构架,包括系统的范围、主要的功能需求以及性能需求。同时为项目建立支持环境,包括创建开发案例,创建模板并准备工具。细化阶段结束时第二个重要的里程碑—周期结构里程碑。

2.2RUP过程框架3.构建阶段

在构建阶段,主要完成选择所需要的构件,开发应用程序的主要功能,并把这些功能集成为产品,并对这些产品进行测试。从某种意义上说,构建阶段是一个制造过程,其重点放在管理资源及控制运作以及优化成本、进度和质量。构建阶段结束时是第三个重要的里程碑—功能里程碑。

2.2RUP过程框架4.产品化阶段产品化阶段又称为交付阶段,这个阶段的重点是确保软件对最终用户是可用的。产品化阶段可以跨越几次迭代,包括为发布做准备的产品测试,基于用户反馈的少量的调整。在产品化阶段的终点是第四个里程碑—发布里程碑。此时需要判断最初预定的目标是否实现,是否应该开始下一个开发周期。

2.2RUP过程框架RUP中的每个阶段可以进一步分解为迭代。一个迭代是一个完整的开发循环,产生一个可执行的产品版本,是最终产品的一个子集。采用增量开发方式,不断从一个迭代过程到另一个迭代逐步积累,一步一步地完成最终的系统。

2.2.2RUP迭代开发模式

2.3RUP的静态结构

在RUP模型图中包括九个工作流,被称为RUP的核心工作流。核心工作流进一步分为六个核心过程工作流和三个核心支持工作流。模型图中的阴影部分描述了不同的工作流在不同的时间段内工作量的不同。

2.3RUP的静态结构

1.业务建模业务建模工作流描述了系统开发的一个构想,使用业务用例模型来描述这个构想,包括业务对象模型中定义组织的过程、角色和责任。大多数实际工程项目的主要问题在于软件工程和企业工程这两个领域无法进行有效的交流,导致对企业工程的分析无法直接进行转换用于软件开发。

2.3RUP的静态结构

2.需求

需求工作流的目标是描述系统应该做什么,并使开发人员和用户就这一描述达成共识。为了达到该目标,要对需要的功能和约束进行提取、组织、文档化,最重要的是理解系统所解决问题的定义和范围。2.3RUP的静态结构

3.分析设计分析设计工作流将需求转化成未来系统的设计,为系统开发一个健壮的结构,并调整设计使其与实现环境相匹配,优化其性能。分析设计的结果是一个设计模型和一个可选的分析模型。设计模型是源代码的抽象,由设计类和一些描述组成。设计类被组织成具有良好接口的设计包(Package)和设计子系统(Subsystem),而描述则体现了类的对象如何协同工作以实现用例的功能。2.3RUP的静态结构

4.实施实施工作流的目的包括以层次化的子系统形式定义代码的组织结构,以构件的形式(源文件、二进制文件、可执行文件)实现类和对象,将开发出的构件作为单元进行测试,以及集成由单个开发者所产生的结果,使其成为可执行的系统。2.3RUP的静态结构

5.测试

测试工作流要验证对象间的交互作用是否符合设计要求,验证软件中所有构件是否正确集成,检验所有的需求是否被正确的实现。在测试工作流中发现并确认缺陷,在软件部署之前对这些缺陷进行处理。RUP提出了迭代的方法,意味着在整个项目中都需要进行测试,从而尽可能早的发现缺陷,从根本上降低了修改缺陷所带来的成本。

2.3RUP的静态结构

6.部署部署工作流的目的是成功的生成版本并将软件分发给最终用户。部署工作流描述了那些与最终用户相关的活动,包括:软件打包、生成软件本身以外的产品、安装软件、为用户提供帮助。

2.3RUP的静态结构

7.配置与变更管理

配置与变更管理工作流描绘了如何在多个成员组成的项目中控制和管理变更。配置和变更管理工作流提供了一套准则来跟踪软件创建过程中的各个版本。配置与变更管理工作流描述了如何管理并行开发、分布式开发、如何自动化创建工程。同时也阐述了对产品修改原因、时间、人员进行记录。把谁、什么时候、为什么对什么产品做的什么修改记录下来。

2.3RUP的静态结构

8.项目管理软件项目管理平衡各种可能产生冲突的目标,管理风险,克服各种约束并成功交付使用户满意的产品。其目标包括:为项目的管理提供框架,为计划、人员配备、执行和监控项目提供实用的准则,为管理风险提供框架等。

2.3RUP的静态结构

9.环境环境工作流的目的是向软件开发组织提供软件开发环境,包括过程和工具。环境工作流集中于配置项目过程中所需要的活动,同样也支持开发项目规范的活动,提供了过程指导手册并指导项目组如何来实现过程。环境工作流的重点是在项目环境中,进行软件开发过程的配置活动。2.4RUP的角色

角色是抽象的职责定义,它定义的是所执行的一组活动和所拥有的一组工件。角色通常由一个人或作为团队相互协作的多个人来实现。项目团队成员通常要履行许多不同的角色职能,就象一个人可以担任许多职务,一个人也可以担任许多不同的角色。角色并不代表个人,而是说明个人在业务中应该如何表现以及他们在业务活动中应该承担的责任。

2.4RUP的角色

RUP角色可以分为以下五个角色集:(1)分析员角色集(2)开发人员角色集(3)测试人员角色集(4)经理角色集(5)其它角色集

在RUP中的软件开发迭代式解决方案促进从业者采用两种观点。首先,它促进团队理解整体解决方案,然后在每一次迭代中基于上一次迭代重新评估并调整整体解决方案。第二,在每次迭代中,它促进团队主要着重于解决方案的一个方面——

每次后继迭代构建解决方案的一个方面,直至整体完成。

对应于这两个方面的两种视角通常被称为广度视角与深度视角。在一个迭代式项目中,你首先集中于广度视角,然后精选一个方面以集中于深度。分离的广度与深度,正如在迭代式开发中所做的那样,使得一个项目可以更灵活地被更改。不仅仅是广度视角可以更容易的建立,而且当更改来临时,可以并且很轻易的调整广度视角。相反,一个纯粹的瀑布式解决方案将同时集中于深度与广度视角,并且从不回退。但是,如果你想试图一次完成所有的广度与深度工作,这个工作将需要更多的时间来完成,它将更冗长并且以后难于更改,它也许将在很多地方被错误的导入。如果项目团队在工作后期被强制调整项目广度,那么许多深度工作将被废弃。换句话说,对项目管理规程,一个瀑布式项目领导者会建立一个一或二年的,包括全部时间范围的计划,然后详述整个计划中所有的任务。这种计划当改变不可避免或需要对其做出调整时将很快的崩溃。

相反的,一个迭代式项目领导者将广度从深度中分离开,为广度视角建立一个粗颗粒度的计划以显示各个阶段,列出业务用例,并显示出当项目成熟时如何对评估进行更改。深度视角是对每个单一迭代更细节的计划,也许是在整个持续时间中的六个星期。这个计划将比试图猜测在一或二个星期内的所有项目细节的计划更准确且不容易导致错误。这个迭代的广度及深度解决方案对所有九个RUP规程都有效,而不仅仅对项目管理而言。

RUP角色定义与分离广度和深度的概念相一致。进行广度工作与进行深度工作的成员类型差异很大。广度工作速度快,不精确并且有弹性。深度工作任务需要更多的时间,关注于细节,并且需要能够得到更好的质量。RUP九个工作流中的每一个都有一个集中于此规程广度的角色,以及另一个不同的集中于此规程深度的角色。一旦你理解了基本原理,记住这些角色将变得非常容易。表1列出了每个RUP工作流及其所对应的广度及深度角色,并粗略解释了角色的功能。2.5RUP的活动

在RUP中,为每个角色定义了要完成的工作,每个单独的工作成为一个活动。一项活动是一个工作单元,由参与项目的某一成员执行,活动有明确的目的,其内容通常表述为创建或更新某些工件,例如一个模型、一个类或一个计划。每个活动都被分配给具体的角色。一个活动一般延续几个小时到几天,它通常涉及一个或几个角色,只影响一个或少数几个工件。一项活动应该是一个便于实施的计划单元及流程单元。

2.5RUP的活动

(1)先启阶段核心活动先启阶段的核心活动有:明确地说明项目规模;计划和准备商业理由、评估风险管理、人员配备、项目计划和成本/进度/收益率折衷的备选方案;综合考虑备选构架,评估设计和自制/外购/复用方面的折衷,从而估算出成本、进度和资源;准备项目的环境,评估项目和组织,选择工具,决定流程中要改进的部分。

2.5RUP的活动

(2)细化阶段核心活动细化阶段的核心活动有:快速确定构架、确认构架并为构架建立基线;根据此阶段获得的新信息改进前景,对推动构架和计划决策的最关键用例建立可靠的了解;为构建阶段创建详细的迭代计划并为其建立基线;改进开发案例,定位开发环境,包括流程和支持构建团队所需的工具和自动化支持;改进构架并选择构件。

2.5RUP的活动

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论