面向对象的软件开发过程_第1页
面向对象的软件开发过程_第2页
面向对象的软件开发过程_第3页
面向对象的软件开发过程_第4页
面向对象的软件开发过程_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、1 RUP (Rational Unified Process,Rational统一过程)是UML的创始者在创建UML的同时提出的一种面向对象的软件开发过程。 UML是一种用于软件的系统分析和设计的语言工具,它是独立于软件开发过程的。UML可以应用于任何软件开发过程。 UML与RUP 相结合进行软件系统的开发必定相得益彰。 第2章 面向对象的软件开发过程Home2第2章 面向对象的软件开发过程2.1 RUP2.2 项目开端阶段2.3 精化阶段2.4 系统构建2.5 系统提交Home2.6 循环节的生命周期活动32.1 RUPRUP是一种二维结构的软件开发过程,其中一维是时间,另一维是过程成分,

2、如图2.1所示。按时间序列,RUP把软件开发的生命周期划分为若干阶段和一系列的循环重复。 过程成分是指良好定义的开发活动,获得软件开发的产物。 Home图2.1 RUP42.1 RUP2.1.1 项目开发阶段2.1.2 过程成分2.1.3 螺旋上升式开发2.1.4 RUP的产物2.1.5 RUP的特点Home52.1.1 项目开发阶段RUP把软件项目的开发过程划分为4个阶段:开端阶段、精化阶段、构建阶段和过渡阶段。 开端阶段:给出关于项目的初步轮廓的说明,理解问题领域的各种业务过程和关系,了解系统的需求,明确系统的范围和职责,构思未来系统的概貌,探讨项目开发的必要性和可行性。精化阶段:收集更详

3、细的系统需求,进行高层次的系统分析和设计,确定系统的特征和基本的系统架构,编制系统构建计划,确定开发所需要的活动和资源。构建阶段:通过循环重复的工作具体建造软件系统。每一次的循环都包含了常规的软件生命周期阶段的活动分析、设计、实现、测试等。每一次循环都将得到一个更准确的接近未来系统的系统模型或原型。过渡阶段:系统正式投入运行前的阶段,进行系统的Beta测试、系统性能调整和人员培训等。 62.1.2 过程成分RUP规定了6个过程成分:业务建模、需求分析、系统分析与设计、实现、测试、系统配置。它们是RUP过程的核心工作流,即软件系统开发的主要的开发活动。 业务建模:对将来使用该系统的组织机构或企业

4、进行评估,理解它们要求未来系统解决的问题。业务建模的结果是建立一个业务Use Case模型和业务对象模型。 需求分析:采集和评价系统的需求。需求分析的结果可以用一个Use Case模型表达。 系统分析与设计:研究欲采用的实现环境和系统构建的效用,结果是产生一个对象模型,即设计模型。 实现:在预定的环境中实现系统,生成系统的源代码、可执行程序和相应的软件文档,建立一个可执行的系统。 测试:对系统进行测试和排错,获得一个无错误的系统实现。系统配置:在真实的使用运行环境(硬件)中配置系统,调试系统。 Home72.1.2 过程成分 RUP的核心开发活动与系统模型的关系如图2.2所示。 模型是各个过程

5、成分中的产物,也是下一个过程成分的工作依据。 RUP过程的支持工作流包括:结构与变更管理、项目管理和环境。 Home图2.2 核心过程工作流与模型的关系82.1.3 螺旋上升式开发 RUP采用螺旋上升式的开发模式,一个软件系统的开发是渐增、循环、重复地完成的,如图2.3所示。 Home图2.3 渐增、循环、重复地开发92.1.3 螺旋上升式开发 RUP的每一个开发阶段,尤其是系统构建阶段,可以进一步划分为若干循环重复的工作节(section)。本次循环工作节的结果是下一次循环工作节的输入,下一次循环工作节的结果是本次结果的精化和扩展。 在每一个循环重复的工作节里,过程的工作流都包括业务建模、需

6、求分析、系统分析与设计、实现、测试等过程成分。在每一个小循环可以产生一个可以执行的原型系统。RUP的螺旋上升式的开发模式还体现在前向工程和逆向工程的结合(往返工程)上。RUP的4个开发阶段通过往返工程可以循环重复。 Home102.1.4 RUP的产物 RUP的产物是软件开发的成果,每一个RUP活动都有相应的产物。 RUP的产物包括两大类:模型和文档,参见图2.4。 Home图2.4 RUP的主要产物和产物之间的信息流 112.1.4 RUP的产物在RUP过程中将建立9种模型 : 1业务模型(Business Model):对问题领域中的组织机构的一个抽象。 2领域模型(Domain Mode

7、l):表达系统的上下文。 3Use Case模型:Use Case模型表达系统的功能需求。 4分析模型(Analysis Model) 表达一个理想的系统设计。分析模型是可选项,只有对于复杂的系统才需要建立独立的分析模型。 5设计模型(Design Model) 给出问题的词汇表和具体的解决方案。 Home122.1.4 RUP的产物 6过程模型(Process Model) 表达系统的并发和同步机制。过程模型是可选项,一般对于多线程的并发系统才建立过程模型。 7配置模型(Deployment Model) 表达系统的硬件拓扑,以及系统软件在硬件上的配置。 8实现模型(Implementati

8、on Model) 表达用于组装物理系统的各个软部件。 9测试模型(Test Model) 表达验证系统的途径。Home132.1.4 RUP的产物RUP技术文档包括: (1)需求分析信息集,如软件需求说明书、需求补充说明、业务案例(剧本)等。 (2)设计信息集,如图形界面、词汇表、软件设计说明书、数据库设计说明书等。 (3)实现信息集,如源程序清单、动态连接库说明、用户使用手册等。 (4)配置信息集,提供可交付的全部数据。管理文档包括风险表、软件开发计划、配置计划、测试计划等。 Home142.1.5 RUP的特点 RUP的主要特点: 1.面向对象。 2.Use Case驱动。 3.以体系结

9、构为中心。 4.螺旋上升式的开发过程。 5.以质量控制和风险管理为目标。 6.与UML配套。 7.适应性强。Home15项目开端阶段的主要任务是构思未来系统的概貌,确定项目的必要性和可行性。对于一个全新开发的系统,在项目开端阶段要制订出领域的业务案例(Business Case),确定项目的目标、未来系统的范围和规模,以及项目中应包含哪些内容。此外,还需评估项目的可行性、可以采用的开发方法,以及预期的开发风险等,并且粗略地估计需要多少开发经费和今后系统投产可能产生的效益。对于一个既有的计算机系统的演化或改版,在项目开端阶段只要对用户的要求、问题的报告和新技术的采用等进行研究即可,从而确定开发的

10、目标和内容。项目开端阶段的产物包括Use Case模型和有关的文档。 2.2 项目开端阶段Home16精化阶段的主要任务是: 进一步分析问题领域; 建立系统的基本架构; 找出项目的实施将会遭遇的风险和应对措施; 确定开发的技术措施; 决定资金与资源的配置; 制订系统的构建计划。 当能够精确地估计对每一个Use Case需要投入的人力,重要的开发风险均已被确认,并且有了相应的对付办法的时,精化阶段就可结束。 2.3 精化阶段Home172.3 精化阶段2.3.1 问题领域分析2.3.2 建立系统架构2.3.3 开发风险处理2.3.4 构建规划Home18 问题领域分析的主要任务是充分理解领域业务

11、问题和项目投资者及用户的需求,提出高层次的问题解决方案。 问题领域分析一般需要回答下列问题: 在该问题领域中做些什么活动; 什么时候做这些活动; 谁负责做这些活动; 为什么做这些活动; 怎样做这些活动; 在何处做这些活动。问题领域分析可采取4个步骤,由领域专家和软件系统分析员合作进行: 取得对问题的一致认识; 确认项目的投资者和用户对项目的需求; 定义系统的职责范围和边界。 确定将施加在系统上的约束。 问题领域分析的主要产物有业务模型和软件需求分析说明书。 2.3.1 问题领域分析Home191. 业务模型2需求分析 需求分析的主要任务是确定软件系统的需求。 需求分析的产物主要是Use Cas

12、e模型和需求分析说明书。 需求分析的具体任务如下:(1)确定对系统的综合要求。 (2)确定系统的数据要求。(3)建立Use Case模型。 (4)开发系统原型。 2.3.1 问题领域分析Home201建立领域模型 建立领域概念模型(Domain Model)是精化阶段的另一个重要任务。 可用对象类图表达领域专家所使用的业务概念,以及把这些概念联系在一起的方式。 用于表达领域模型的对象模型是业务对象模型的演化。 如果在业务领域中存在明显的业务工作流,则可以用活动图为业务工作流建立模型。 在定义工作流时,活动图应当回答下列问题: 是谁或什么对工作流总体负责? 需要一些什么活动满足所需要的目标? 谁

13、负责进行不同的活动和状态? 该活动创建或更新对象吗? 活动和状态在何处发生? 这些活动或状态为什么要发生? 有时可用交互图表达业务工作流中相互交互的各种角色。 2.3.2 建立系统架构Home212系统分解 对于一个大型的复杂的软件系统,常需要把它分解为若干个子系统,子系统之间通过接口联系。 高层的系统和各个子系统由其自己的Use Case模型、分析模型、设计模型和测试模型表示,如图2.5所示。 在分解系统时需要考虑以下因素: 子系统的大小合理,复杂性适度。 物理上的分离。 定义自然的“窄”的接口。 有利于团队开发。 2.3.2 建立系统架构Home图2.5 系统分解223系统的架构 软件系统

14、的架构由多个视图组成。RUP过程系统架构的“4+1”视图如图2.6所示。 Use Case视图结构化地描述系统的主要行为、对象类或技术风险。设计视图是系统体系结构视图,提供问题的词汇表和解决方案。实现视图包含实现模型的概览,以模块形式组成包和层。 当系统有一定程度的并发行为时才使用过程视图。配置视图只用于分布式系统,描述典型操作平台上的物理节点。4建立系统原型 系统原型(Prototype)是一个可执行的原型系统。 2.3.2 建立系统架构Home图2.6 系统架构的“4+1”视图 设计视图 实现视图 过程视图 配置视图 Use Case 视图 23软件系统的开发可能面临4种风险:需求风险、技

15、术风险、技能风险、政策风险。1需求风险 在项目开发之初往往不能准确、全面地定义系统的需求,而且在项目开发的过程中,用户对系统的需求也可能会发生改变。 建立业务Use Case模型和业务对象模型,不断地评估和检查所拟定的系统模型或原型系统是否满足系统需求,并且根据发现的问题及时更新业务Use Case模型和对象模型。2技术风险 采用先进的合适的技术进行开发,将事半功倍。建立一个简单的原型系统,试验所选用的开发工具和环境。 在系统结构的设计方面,应当采用今后比较容易变更的模型元素。 对于领域模型,应当仔细评估Use Case模型和对象模型。 2.3.3 开发风险处理Home243技能风险 问题是否

16、有足够的开发人员和开发经验。物色有经验的开发人员,加强开发人员的技能培训。 和有经验的开发人员一起工作。 4政策性风险 问题是有无政策性因素介入或影响项目的开发。 往往是非技术问题决定了项目的命运。 政策性风险须用政策性手段解决。 2.3.3 开发风险处理Home25在精化阶段的后期要制定一个构建阶段的开发计划。制订构建计划的实质问题是为构建阶段设置一系列的循环节,确定每个循环节应完成的系统功能。 在制定构建计划时应当考虑两类人员:用户和开发人员。 制订构建计划的步骤如下: 1Use Case分类 根据业务价值把Use Case分成高、中、低层3类;按照开发风险对Use Case分类,如“高风

17、险”类。 2确定循环的长度 循环应当有足够的长度去处理拟定的Use Case。循环长度确定后可以估计循环的开发工作量。 3分配Use Case到循环 把Use Case分配到循环,计算出项目的构建所需要的开发人员总数和总开发时间,制定出具体的开发计划和日程表。考虑偶然性因子。 2.3.4 构建规则Home26系统构建阶段又分为许多循环,每个循环各自完成一部分系统功能,最后把整个系统完整地建造出来,成为最终的软件产品。 实际上一个循环就是一个微型的开发项目,它为指定给该循环的Use Case进行分析、设计、编码、测试、集成等工作。 Use Case驱动的循环过程如图2.7所示。 在功能方面循环是

18、渐增的,每次循环建立在上一次循环开发的Use Case的基础上。在代码方面循环是重复的,每次循环修改已有的代码,使其更为完善。 测试和模块集成不宜在项目结尾的时候进行,应当及时进行。2.4 系统构建Home图2.7 Use Case驱动的循环过程 27构建阶段的工作实际上是进行一系列的模型映射:从Use Case模型向分析模型的映射,从分析模型向设计模型的映射,从设计模型向实现模型映射。通过编码、测试、集成,得到最终的可执行系统。 从设计模型向实现模型映射时一般需要考虑的工作: (1)把设计模型中的类、包、子系统向实现模型的组件、包、子系统映射。 (2)建立一个代表实现模型的系统结构的组件图,适当增加或调整子系统。 (3)定义子系统的输入依赖。(4)定义测试子系统和组件。 (5)更新实现视图。 2.4 系统构建Home28实现模型中的系统的体系结构建立在组件(和子系统)的基础上,一般有4个层次(见图2.8)。(1)应用层。系统的顶层,包括应用程序,提供专门的应用服务。 (2)专用业务层,包括特定的业务组件和业务程序,将由应用程序调用。 (3

温馨提示

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

评论

0/150

提交评论