面向对象方法——RUP.pptx
1第第11章章 绪论绪论第第22章章 软件需求与软件需求规约软件需求与软件需求规约第第33章章 结构化方法结构化方法第第44章章 面向对象的方法面向对象的方法UMLUML第第55章章 面向对象方法面向对象方法RUPRUP第第66章章 软件测试软件测试第第77章章 软件生存周期过程与管理软件生存周期过程与管理第第88章章 集成化能力成熟度模型(集成化能力成熟度模型(CMMICMMI)第1页/共307页2第5章面向对象方法RUP5.1RUP的特点5.2核心工作流5.2.1需求获取5.2.2需求分析5.2.3设计5.2.4RUP的实现和测试5.3本章小结第2页/共307页3第五章面向对象方法RUP一种软件开发方法学至少由3部分组成,一是用于表达基本信息的术语;二是用于组织基本信息的表达格式;三是在不同抽象层之间进行“映射”的过程指导。第3页/共307页4 统一软件开发过程(UnitiedSoftwareDevelopmentProcess)是对象管理组织(ObjectManagementGroup,OMG)所推荐的一个有关过程的标准,它由UML语言的开发者们提出,其中权衡了三十余年的软件开发实践,吸取了数百个用户多年的实际经验以及Rational公司多年的工作成果,因此统一软件开发过程往往写为RationalUnifiedProcess,简称RUP。第4页/共307页5总的要求 要求考生掌握在创建系统/产品需求获取模型、需求分析模型和设计模型中的基本活动和任务,并能运用RUP建立小型简单系统的用况模型、需求分析模型,并了解RUP设计模型的基本结构,以及在设计中如何处理共性的非功能需求。第5页/共307页6知识点和考核要求(1)识记 1)需求获取层、需求分析层、软件设计层上的术语。2)用况之间的基本关系。3)系统/产品用况模型的构成。4)系统/产品需求分析模型构成。5)系统/产品设计模型和部署模型的构成。6)创建系统/产品需求获取模型的四个步骤。第6页/共307页7(2)领会 1)领域模型、业务模型以及在系统开发中创建它们的目的。2)创建系统/产品用况模型的活动和任务。3)参与者的标识与描述,以及标识中的有关准则。4)用况标识以及标识中的有关准则,用况的事件流描述技术以及描述的基本内容。5)创建系统/产品需求分析模型的活动和任务。第7页/共307页86)分析包的标识以及分析包的二层结构。7)边界类、实体类、控制类的标识,以及它们的作用和关系。8)用况细化分析以及用况和协作之间的基本关系。9)创建系统/产品设计模型的活动和任务。10)设计模型的四层结构。11)需求获取模型与需求分析模型的比较。12)需求分析模型与设计模型的比较。第8页/共307页9(3)应用1)针对一个小型简单系统,创建系统/产品用况模型、需求分析模型。2)针对一个特定的用况,运用顺序图描述它的实现。3)针对一个特定类,运用状态图描述其生存周期。4)针对一个小型简单系统,运用状态图描述其生存周期。5)针对一种共性需求(例如事物管理等),运用主动类给出它的设计。第9页/共307页10统一软件过程统一软件过程(RUP)1)概述概述(1)UML是一种可视化的建模语言,而不是一种特定的软是一种可视化的建模语言,而不是一种特定的软件开发方法学。作为一种软件开发方法学,为了支持软件开发方法学。作为一种软件开发方法学,为了支持软件开发活动,例如软件设计,至少涉及三方面的内容:件开发活动,例如软件设计,至少涉及三方面的内容:一是应定义设计抽象层,即给出该层的一些术语,二是一是应定义设计抽象层,即给出该层的一些术语,二是应给出该层的模型表达工具,三是应给出如何把需求层应给出该层的模型表达工具,三是应给出如何把需求层的模型映射为设计层的模型,即过程。的模型映射为设计层的模型,即过程。UML仅包括前两仅包括前两方面的内容,即给出了一些可用于定义软件开发各抽象方面的内容,即给出了一些可用于定义软件开发各抽象层的术语(符号),给出了各层表达模型的工具。层的术语(符号),给出了各层表达模型的工具。第10页/共307页11到现在为止我们看到了到现在为止我们看到了UMLUML给出了一大堆面向对象给出了一大堆面向对象建模的可视化图形符号和规则,但并没有告诉我们在建模的可视化图形符号和规则,但并没有告诉我们在什么时候、用什么方法、去建立什么模型。什么时候、用什么方法、去建立什么模型。基于基于UMLUML的统一建模过程的统一建模过程RUPRUP试图解决以上问题。试图解决以上问题。也就是要给出一种方法,告诉大家在建模过程中,也就是要给出一种方法,告诉大家在建模过程中,做什么、怎么做、何时做、为什么做以及做的过程要做什么、怎么做、何时做、为什么做以及做的过程要注意什么等。注意什么等。UML推荐的推荐的RUP(Rational Unified Process)过程基础过程基础:使用使用UML过程的基本特征是:用例驱动,以过程的基本特征是:用例驱动,以体系结构为中心,反复,渐增式。体系结构为中心,反复,渐增式。基于基于UMLUML的统一建模过程的统一建模过程RUPRUP第11页/共307页12面向对象的过程模型1、演化/并行模型 是Booch等人在90年代初建议的。该模型与前面介绍的螺旋模型、增量模型相似。但强调:(1)对OO系统的分析和设计建模不在相同的抽象层次上进行。(2)分析和设计可以并发地应用到独立的系统构件。第12页/共307页13该模型每次迭代都要计划、工程和评估。每个计划都要调整进度以适应和本次迭代相关的变化。早期阶段迭代进行的分析与设计工作为了分离出OO模型中的所有重要元素;当工程工作不断进展时,产生软件的增量版本;在评估阶段对每个增量的评估其反馈将影响下一次计划活动及后续增量。2、RUP98年6月推出,该过程强调了开发方法的统一、建模语言的统一、研究成果的统一。该过程是基于构件的,即所构造的系统是由软件构件通过明确定义的接口相互连接所建造起来的。它使用UML来制定软件系统的所有蓝图。第13页/共307页14UML与与RUPActorActorUse caseUse case关联关联 泛化泛化USE CASEUSE CASE图模型图模型分析类分析类 分析包分析包 Use caseUse case细化细化分析模型分析模型设计模型设计模型部署模型部署模型RUP第14页/共307页15(2)RUP的本质及特点的本质及特点本质本质:是是“一般的过程框架一般的过程框架”.即即:-为软件开发,进行不同抽象层之间为软件开发,进行不同抽象层之间“映射映射”,安排其开发,安排其开发活动的次序,指定任务和需要开发的制品,提供了指导;活动的次序,指定任务和需要开发的制品,提供了指导;-为对项目中的制品和活动进行监控与度量,提供了相应的为对项目中的制品和活动进行监控与度量,提供了相应的准则。准则。换言之,换言之,RUP比较完整地定义了将用户需求转换成产品所需比较完整地定义了将用户需求转换成产品所需要的活动集,并提供了活动指南以及对产生相关文档的要求。要的活动集,并提供了活动指南以及对产生相关文档的要求。适用于:大多数软件系统的开发,涉及适用于:大多数软件系统的开发,涉及 -不同应用领域不同应用领域 -不同类型的组织不同类型的组织 -不同的技能水平不同的技能水平 -不同的项目规模不同的项目规模 可见可见,RUP,RUP 和和UML UML 是是“统一统一”的方法学。的方法学。第15页/共307页16RUP的突出特点的突出特点是一种以用况(是一种以用况(UseCase)为驱动的、以体系结构为中心的、)为驱动的、以体系结构为中心的、迭代、增量式开发。迭代、增量式开发。以用况为驱动以用况为驱动意指在系统的生存周期中,意指在系统的生存周期中,以用况作为基础,驱动有关以用况作为基础,驱动有关人员对所要建立系统之功能人员对所要建立系统之功能需求进行交流,驱动系统分需求进行交流,驱动系统分析、设计、实现和测试等活析、设计、实现和测试等活动,包括制定计划、分配任动,包括制定计划、分配任务、监控执行和进行测试等,务、监控执行和进行测试等,并将它们有机地组合为一体,并将它们有机地组合为一体,使各个阶段中都可以回溯到使各个阶段中都可以回溯到用户的实际需求。用户的实际需求。USE CASE分分析析输入输入设设计计实实现现跟踪跟踪输入输入跟踪跟踪输入输入跟踪跟踪输入输入输入输入测测试试输入输入跟踪跟踪输入输入第16页/共307页17用例驱动用例作为系统分析、设计、实现和测试的基本输入。即用例不只是一种确定系统需求的工具,它还能驱动系统的设计、实现和测即用例不只是一种确定系统需求的工具,它还能驱动系统的设计、实现和测试的进行。试的进行。基于用例模型,开发人员可以创建一系列实现这些用例的设计模型和实现模基于用例模型,开发人员可以创建一系列实现这些用例的设计模型和实现模型。开发人员可以审查每个后续建立的模型是否与用例模型一致。测试人员测试实现型。开发人员可以审查每个后续建立的模型是否与用例模型一致。测试人员测试实现以确定实现模型的构件是否实现了用例。所以用例启动了开发过程,还使开发过程结以确定实现模型的构件是否实现了用例。所以用例启动了开发过程,还使开发过程结合为一体。开发过程是沿着一系列从用例得到的工作流前进的。合为一体。开发过程是沿着一系列从用例得到的工作流前进的。第17页/共307页18下图显示了用例模型与其他模型之间的相关性:下图显示了用例模型与其他模型之间的相关性:用例模型由建立分析模型为系统描述一系列类由设计设计模型为系统定义一系列子系统和界面由实现实现模型将类映射到构件由分配测试模型由验证验证系统是否提供了用例模型中描述的功能配置模型定义软件分布第18页/共307页19从从USE CASEUSE CASE模型的视觉模型的视觉从分析模型的视觉从分析模型的视觉从设计模型的视觉从设计模型的视觉从实现模型的视觉从实现模型的视觉从部署模型的视觉从部署模型的视觉给给 出出体体 系系 结结 构构描描 述述 以体系结构为中心以体系结构为中心意指在系统的生存周期中,开发的任何阶段(意指在系统的生存周期中,开发的任何阶段(RUP规定了四规定了四个阶段,即初始阶段、细化阶段、构造阶段和移交阶段)都要个阶段,即初始阶段、细化阶段、构造阶段和移交阶段)都要给出相关模型视角下的有关体系结构的描述,作为构思、构造、给出相关模型视角下的有关体系结构的描述,作为构思、构造、管理和改善系统的主要制品。管理和改善系统的主要制品。第19页/共307页20系统体系结构是对系统语义的概括表述,内含一些决策,主系统体系结构是对系统语义的概括表述,内含一些决策,主要涉及软件系统的组织(要涉及软件系统的组织(包括构成系统的结构元素、各元素的包括构成系统的结构元素、各元素的接口、由元素间的各种协作所描述的各元素行为、由结构元素接口、由元素间的各种协作所描述的各元素行为、由结构元素和行为元素构成的子系统、相关的系统功能和性能、其他约束和行为元素构成的子系统、相关的系统功能和性能、其他约束等等)以及支持这种组织的体系结构风格。)以及支持这种组织的体系结构风格。系统体系结构对所有与项目有关人员来说都是能够理解的,系统体系结构对所有与项目有关人员来说都是能够理解的,因此便于用户和其他关注者对系统达到共识,以便建立和控制因此便于用户和其他关注者对系统达到共识,以便建立和控制系统的开发、复用和演化。系统的开发、复用和演化。因此,在系统体系结构描述中,应关注子系统、构件、接口、因此,在系统体系结构描述中,应关注子系统、构件、接口、协作、关系和节点等重要模型元素,而忽略其他细节。协作、关系和节点等重要模型元素,而忽略其他细节。第20页/共307页21具体地说,体系结构描述应根据相关模型的视角:具体地说,体系结构描述应根据相关模型的视角:展示对体系结构有意义上的用况、子系统展示对体系结构有意义上的用况、子系统(不涉及子系统不涉及子系统的隐含成分和私有成分,及其变种的隐含成分和私有成分,及其变种)、接口、类、接口、类(主要为主动类主要为主动类)、构件、节点和协作;、构件、节点和协作;展示对系统体系结构有意义的非功能需求,例如性能、展示对系统体系结构有意义的非功能需求,例如性能、安全、分布和并发等;安全、分布和并发等;简述相关的平台、遗产系统、所用的商业软件、框架和简述相关的平台、遗产系统、所用的商业软件、框架和模板机制等;以及模板机制等;以及各种体系结构模式。各种体系结构模式。第21页/共307页22例如,为获得系统用况模型视角下的系统体系结构描述,应:例如,为获得系统用况模型视角下的系统体系结构描述,应:在一般性地了解系统用况之后,勾画与特定用况和平台无关在一般性地了解系统用况之后,勾画与特定用况和平台无关的系统体系结构轮廓。的系统体系结构轮廓。关注一些关键用况。所谓关键用况,是指那些有助于降低最关注一些关键用况。所谓关键用况,是指那些有助于降低最大风险的用况,对系统用户来说是最重要的用况,以及有助于大风险的用况,对系统用户来说是最重要的用况,以及有助于实现所有重要的功能而不遗留任何重大问题的用况。实现所有重要的功能而不遗留任何重大问题的用况。给出每一关键用况的描述。其中应考虑软件需求、中间件、给出每一关键用况的描述。其中应考虑软件需求、中间件、遗产系统和非功能性需求等,以便产生更加成熟的用况和更多遗产系统和非功能性需求等,以便产生更加成熟的用况和更多的系统体系结构成分。的系统体系结构成分。对以上三步进行迭代,得到一个文档化的体系结构基线。并对以上三步进行迭代,得到一个文档化的体系结构基线。并在此基础上,形成一个稳定的系统体系结构描述。在此基础上,形成一个稳定的系统体系结构描述。第22页/共307页23 软件系统的构架从不同角度描述了即将构造的系统,它刻画了系统的整体设计,软件系统的构架从不同角度描述了即将构造的系统,它刻画了系统的整体设计,去掉了细节部分,突出了系统的重要特征,包含了系统中最重要的静态结构和动态行去掉了细节部分,突出了系统的重要特征,包含了系统中最重要的静态结构和动态行为。为。构架是根据应用领域的需要逐渐发展起来的,并在用例中得到反映。每种产品构架是根据应用领域的需要逐渐发展起来的,并在用例中得到反映。每种产品都具有功能和表现形式,功能与用例对应,表现形式与构架对应。用例与构架是相互都具有功能和表现形式,功能与用例对应,表现形式与构架对应。用例与构架是相互影响的,用例在实现时必须符合于构架,构架必须预留空间以实现现在或将来所有需影响的,用例在实现时必须符合于构架,构架必须预留空间以实现现在或将来所有需要的用例。要的用例。第23页/共307页24迭代与增量的过程迭代指工作流中的步骤,增量指产品中增加的部分。迭代过程要处理一组用例,这组用例合起来能扩展所开发产品的可用性,后续的迭代过程建立在前一次迭代过程末期所开发的产品上。构架提供了一种结构来指导迭代过程中的工作,用例则确定了目标并驱动每次迭代的工作。基于构件统一过程所构造的软件系统,是由软件构件通过明确定义的接口相互连接所建造起来的。使用UML统一过程使用UML来制定软件系统的所有蓝图,UML是整个统一过程的一个完整部分,他们是共同发展起来的,它强调创建和维护模型。第24页/共307页25过程可剪裁用统一过程开发软件时,各阶段应该有多长?各个阶段迭代多少次是合适的?候选构架可以在哪一点完全建立起来?这些问题的答案取决于系统的规模、项目的性质、开发组织的领域经验,甚至包括相关人员有效配合程度。总之,统一过程是一个框架,可以根据具体情况加以裁剪,以此来适应各种各样的开发过程。第25页/共307页26 用例对各阶段及视图的影响需求用例分析设计实现测试用例视图构件视图部暑视图逻辑视图并发视图第26页/共307页27设计视图实现视图配置视图过程视图Use case视图Use case ViewUse case View描述系描述系统的外部特性、系统的外部特性、系统功能等。统功能等。Implementation Implementation ViewView 表示系统表示系统的实现特征,的实现特征,常用构件图表常用构件图表示。示。Design ViewDesign View 描述系描述系统设计特征,包括统设计特征,包括结构模型视图和行结构模型视图和行为模型视图,前者为模型视图,前者描述系统的静态结描述系统的静态结构构(类图、对象图类图、对象图),后者描述系统的,后者描述系统的动态行为动态行为(交互图、交互图、状态图、活动图状态图、活动图)。Process ViewProcess View 表示系统内部表示系统内部的控制机制。常用类图描述的控制机制。常用类图描述过程结构,用交互图描述过过程结构,用交互图描述过程行为。程行为。Deployment ViewDeployment View 配置视图配置视图描述系统的物理配置特征。描述系统的物理配置特征。用配置图表示用配置图表示。UMLUML的主要内容的主要内容UMLUML常用常用常用常用视图视图视图视图第27页/共307页28阶阶段段核心工作流核心工作流 迭代、增量式开发迭代、增量式开发意指通过开发活动的迭代,不断地产生相应的增量。在意指通过开发活动的迭代,不断地产生相应的增量。在RUP中,规定了四个开发阶段:初始阶段中,规定了四个开发阶段:初始阶段(theinceptionphase)、精化阶段精化阶段(theelaborationphase)、构造阶段、构造阶段(theconstructionphase)和移交阶段和移交阶段(thetransitionphase)第28页/共307页29RUP的阶段论RUP包括初始、细化、构造和移交4个阶段(初始、细化、构造、移交),每个阶段又分若干次迭代,每次迭代都有一个核心工作流(包括5个活动需求、分析、设计、实现、测试),如下图:第29页/共307页301.初始阶段.对需求有一个大概了解,确定系统中的大多数用例和角色,但此时用例是简要的;.划分主要子系统,给出系统体系结构概貌;.分析项目执行的风险;.考虑时间、经费、技术、项目规模和效益等因素;.定制出开发计划。第30页/共307页312.细化阶段识别出大多数剩余的用例。对当前迭代的每个用例进行细化,分析用例处理流程、状态细节以及可能发生的状态改变。细化流程时,可以使用程序况图和协作图,还可以使用活动图、类图分析用例对风险的处理。主要工作:需求风险考虑项目的目标是否偏离了用户的需求。为了解决需求风险要充分了解用户需求以及各需求的优先级,还应尽量列出所有的用例,并要建立领域的概念模型。技术风险通过建立原型等方法,考察所选的技术方案是否可行;技能风险考虑实施项目的人员素质能否胜任项目的要求;政策风险考虑政策性的因素对项目的影响;进行高层分析和设计,并做出结构性决策;所产生的简要体系结构包括用例列表、领域概念模型和技术平台等,以后的阶段对细化阶段建立的体系结构不能进行过大的变动;为构造阶段定制计划。第31页/共307页323.构造阶段识别出剩余的用例。每一次迭代开发都针对用例进行分析、设计、编码、测试和集成过程,所得到的产品满足项目需求的一个子集。由于细化阶段的软件设计已经完成,这样各个项目组可以并发开发。在代码完成后,要保证其符合标准和设计规则,并要进行质量检查。对于新出现的变化,要通过逆向工具把代码转换成模型,对模型进行修改、再重新产生代码,以保证软件与模型同步。此阶段要建立类图、协作图和配置图;如一个类具有复杂的生命周期,可绘制状态图;如算法特别复杂,可绘制活动图。第32页/共307页334.移交阶段这一阶段完成最后的软件产品和最后的验收测试,并完成用户文档编制以及用户培训等工作。第33页/共307页34UMLUML开发过程中的产品开发过程中的产品第34页/共307页35每次迭代都要按照专门的计划和评估标准,通过一组明确的每次迭代都要按照专门的计划和评估标准,通过一组明确的活动,产生一个内部的或外部的发布版本。两次相邻迭代所得活动,产生一个内部的或外部的发布版本。两次相邻迭代所得到的发布版本之差,称为一个增量,因此增量是系统中一个较到的发布版本之差,称为一个增量,因此增量是系统中一个较小的、可管理的部分小的、可管理的部分(一个或几个构造块一个或几个构造块)。贯穿整个生存周期的迭代,形成了项目开发的一些里程碑。贯穿整个生存周期的迭代,形成了项目开发的一些里程碑。-每一阶段的结束,是项目的一个主里程碑(共四个),产生每一阶段的结束,是项目的一个主里程碑(共四个),产生系统的一个体系结构基线,即模型集合所处的当时状态。系统的一个体系结构基线,即模型集合所处的当时状态。-主里程碑是管理者与开发者的同步点,以决定是否继续进行主里程碑是管理者与开发者的同步点,以决定是否继续进行项目,确定项目的进度、预算和需求等。项目,确定项目的进度、预算和需求等。-在四个阶段中的每一次迭代的结束,是一个次里程碑,产生在四个阶段中的每一次迭代的结束,是一个次里程碑,产生一个增量。次里程碑是如何进行后续迭代的决策点。一个增量。次里程碑是如何进行后续迭代的决策点。第35页/共307页36-系统体系结构基线的建立,是精化阶段的一个目标,期间通系统体系结构基线的建立,是精化阶段的一个目标,期间通过不断演化,到该阶段末得到这一基线,是系统的过不断演化,到该阶段末得到这一基线,是系统的“骨架骨架”.-该基线包括早期版本的用况模型、分析模型、设计模型、部该基线包括早期版本的用况模型、分析模型、设计模型、部署模型、实现模型和测试模型,但此时用况模型和分析模型较署模型、实现模型和测试模型,但此时用况模型和分析模型较为成熟。为成熟。-在实践中,体系结构描述和体系结构基线往往同时开发,以在实践中,体系结构描述和体系结构基线往往同时开发,以便指导整个软件开发的生命周期。期间,体系结构描述不断更便指导整个软件开发的生命周期。期间,体系结构描述不断更新,以便反映体系结构基线的变化。新,以便反映体系结构基线的变化。注注:该基线应该是坚实的,因为它是开发人员当时和将来进行该基线应该是坚实的,因为它是开发人员当时和将来进行开发时所要遵循的标准开发时所要遵循的标准;并应与最终系统并应与最终系统(对客户发布的产品对客户发布的产品)几乎具有同样的骨架。但最后形成的体系结构基线是系统各几乎具有同样的骨架。但最后形成的体系结构基线是系统各种模型和各模型视角下体系结构描述的一个集合。种模型和各模型视角下体系结构描述的一个集合。第36页/共307页37综上可知,综上可知,RUP的迭代增量式开发,是演化模型的一个变体,的迭代增量式开发,是演化模型的一个变体,即规定了即规定了“大大”的迭代数目的迭代数目-四阶段,并规定了每次迭代的目标。四阶段,并规定了每次迭代的目标。初始阶段的基本目标初始阶段的基本目标是:是:获得与特定用况和平台无关的系统体系结构轮廓,以此获得与特定用况和平台无关的系统体系结构轮廓,以此建立产品功能范围;建立产品功能范围;编制初始的业务实例,从业务角度指出该项目的价值,减编制初始的业务实例,从业务角度指出该项目的价值,减少项目主要的错误风险。少项目主要的错误风险。简言之,其目标是:建立该项目的生存周期目标简言之,其目标是:建立该项目的生存周期目标(objectives)第37页/共307页38精化阶段的基本目标精化阶段的基本目标是:是:通过捕获并描述系统的大部分需求(一些关键用况),建立通过捕获并描述系统的大部分需求(一些关键用况),建立系统体系结构基线的第一个版本,主要包括用况模型和分析模系统体系结构基线的第一个版本,主要包括用况模型和分析模型,减少次要的错误风险型,减少次要的错误风险.从而到该阶段末,就能够估算成本、从而到该阶段末,就能够估算成本、进度,并能详细地规划构造阶段。进度,并能详细地规划构造阶段。构造阶段的基本目标构造阶段的基本目标是:是:通过演化,形成最终的系统体系结构基线(包括系统的各通过演化,形成最终的系统体系结构基线(包括系统的各种模型和各模型视角下体系结构描述)种模型和各模型视角下体系结构描述);开发了完整的系统,确保产品可以开始向客户交付开发了完整的系统,确保产品可以开始向客户交付,即具即具有初始操作能力。有初始操作能力。交付阶段的基本目标交付阶段的基本目标是:是:确保有一个实在的产品,发布给用户确保有一个实在的产品,发布给用户群。期间,培训用户如何使用该软件。群。期间,培训用户如何使用该软件。第38页/共307页39需求需求设计设计编码编码测试测试集成集成需求需求设计设计编码编码测试测试集成集成开开发发反反馈馈开开发发反反馈馈.核核心心系系统统开开发发第第二二次次迭迭代代注:这注:这4个阶段是演化模型的一个变体。个阶段是演化模型的一个变体。演化模型(演化模型(Evolutionary modelEvolutionary model)-一种迭代风范一种迭代风范是是一一种种有有弹弹性性的的过过程程模模式式,由由一一些些小小的的开开发发步步组组成成,每每一一步步历历经经需需求求分分析析、设设计计、实实现现和和验验证证,产产生生软软件件产产品品的的一一个个增增量量。通过这些迭代,完成最终软件产品的开发。通过这些迭代,完成最终软件产品的开发。针对事先不能完整地定义需求针对事先不能完整地定义需求 针对用户的核心需求针对用户的核心需求,开发核心系统开发核心系统 根据用户的反馈根据用户的反馈,实施活动的迭代实施活动的迭代第39页/共307页40演化模型还具有以下优点:演化模型还具有以下优点:在需求不能予以规约时,可以使用这一演化模型。在需求不能予以规约时,可以使用这一演化模型。用户可以通过运行系统的实践,对需求进行改进。用户可以通过运行系统的实践,对需求进行改进。与瀑布模型相比,需要更多用户与瀑布模型相比,需要更多用户/获取方的参与。获取方的参与。缺点有:缺点有:演化模型的使用演化模型的使用,需要有力的管理。需要有力的管理。演化模型的使用很容易成为不编写需求或设计文档的借口,演化模型的使用很容易成为不编写需求或设计文档的借口,即使很好地理解了需求或设计。即使很好地理解了需求或设计。用户用户/获取方不易理解演化模型的自然属性,因此当结果不获取方不易理解演化模型的自然属性,因此当结果不 够理想时,可能产生抱怨。够理想时,可能产生抱怨。第40页/共307页41UMLUMLUMLUML的事物、关系与图的事物、关系与图的事物、关系与图的事物、关系与图序号序号结构事物名称结构事物名称结构事物语义结构事物语义1 1类(类(classclass)他是一组具有相同属性、操作、关系、语义的对象模板。他就是他是一组具有相同属性、操作、关系、语义的对象模板。他就是面向对象程序设计中的类。数据库中的实体或表,在这里也叫类。面向对象程序设计中的类。数据库中的实体或表,在这里也叫类。类的表示符号。类的表示符号。2 2接口接口(interfaceinterface)它是说明一个类或构件的一个服务的操作集。表示符号。它是说明一个类或构件的一个服务的操作集。表示符号。3 3协作协作(collaborationcollaboration)他是多个元素的交互,用一个仅包含名称的虚线椭圆表示他是多个元素的交互,用一个仅包含名称的虚线椭圆表示4 4用例用例(use caseuse case)他是跟系统有关的参与者的一组动作序列,参与者可以是人、他是跟系统有关的参与者的一组动作序列,参与者可以是人、设备、或其他系统。符号表示。设备、或其他系统。符号表示。5 5主动类(主动类(active active classclass)他是拥有进程或线程的类,用一个外框线加粗的类表示他是拥有进程或线程的类,用一个外框线加粗的类表示6 6构件构件(componentcomponent)他是物理上的可替代的软部件,表示符号。他是物理上的可替代的软部件,表示符号。7 7、8 8制品、节点制品、节点他一般是网络中的一台服务器,就是网络中的节点。他一般是网络中的一台服务器,就是网络中的节点。表示符号。表示符号。UML的8种结构事物第41页/共307页42UMLUML的事物、关系与图的事物、关系与图序序号号行为行为事物名称事物名称行为事物语义行为事物语义1交互交互(interaction)他是一组对象间的交互信息,用包含操作名的一他是一组对象间的交互信息,用包含操作名的一条有向线段表示条有向线段表示2状态机状态机(statemachine)他是一个对象或一个交互再其生存周期内响应其他是一个对象或一个交互再其生存周期内响应其事件而经历的状态序列,用一个包含名称的圆角事件而经历的状态序列,用一个包含名称的圆角矩形表示矩形表示UML的2种行为事物第42页/共307页43UMLUMLUMLUML的事物、关系与图的事物、关系与图的事物、关系与图的事物、关系与图UMLUML的的5 5种关系种关系序号序号关系名称关系名称关系语义关系语义1依赖依赖(dependency)当一个独立的事物发生变化而影响到另一个事物的当一个独立的事物发生变化而影响到另一个事物的语义时,称为依赖。表示符号。语义时,称为依赖。表示符号。2关联关联(association)关联是对象间连接的结构关系。表示符号。关联是对象间连接的结构关系。表示符号。3泛化泛化(generalization)泛化是指从特殊到一般的关系。符号表示。泛化是指从特殊到一般的关系。符号表示。4实现实现(realization)实现是一个类元指定了由另一个类元保证执行的契约语义实现是一个类元指定了由另一个类元保证执行的契约语义关系。如接口和实现接口的构件之间、用例和实现他的协关系。如接口和实现接口的构件之间、用例和实现他的协作之间,就是实现关系。表示符号。作之间,就是实现关系。表示符号。5聚集聚集(aggregation)表示整体与部分的关系。表示符号。表示整体与部分的关系。表示符号。第43页/共307页44UMLUMLUMLUML的事物、关系与图的事物、关系与图的事物、关系与图的事物、关系与图UML的9种图1序号序号图名称图名称规则语义规则语义类型类型性质性质1类图(类图(Class)类图展示了一组类、接口和协作及它们之间的关系。在建类图展示了一组类、接口和协作及它们之间的关系。在建模中所建立的最常见的图就是类图。用类图说明系统的静模中所建立的最常见的图就是类图。用类图说明系统的静态设计视图,包含主动类的类图是专注于系统的静态进展态设计视图,包含主动类的类图是专注于系统的静态进展视图。系统可有多个类图,单个类图仅表达了系统的一个视图。系统可有多个类图,单个类图仅表达了系统的一个方面。要在高层给出类的主要职责,在低层给出类的属性方面。要在高层给出类的主要职责,在低层给出类的属性和操作和操作静态静态结构结构2对象图对象图(Object)对象图展示了一组对象及它们间的关系。用对象图说明类对象图展示了一组对象及它们间的关系。用对象图说明类图中所反映的事物实例的数据结构和静态快照。对象图表图中所反映的事物实例的数据结构和静态快照。对象图表达了系统的静态设计视图或静态过程视图,除了现实和原达了系统的静态设计视图或静态过程视图,除了现实和原型方面的因素外,它与类图作用是相同的型方面的因素外,它与类图作用是相同的静态静态结构结构3用况图用况图(UseCase)用况图展现了一组用况、参与者以及它们之间的关系。可用况图展现了一组用况、参与者以及它们之间的关系。可以用用况图描述系统的静态使用情况。在对系统行为组织以用用况图描述系统的静态使用情况。在对系统行为组织和建模方面,用况图的是相当重要的和建模方面,用况图的是相当重要的动态动态行为行为4顺序图顺序图(Sequence)展现了一组对象和由这组对象收发的消息,用于按时间顺展现了一组对象和由这组对象收发的消息,用于按时间顺序对控制流建模。用顺序图说明系统的动态视图序对控制流建模。用顺序图说明系统的动态视图动态动态行为行为5协作图协作图(Collaboration)展现了一组对象,这组对象间的连接以及这组对象收发的展现了一组对象,这组对象间的连接以及这组对象收发的消息。它强调收发消息的对象的组织结构,按组织结构对消息。它强调收发消息的对象的组织结构,按组织结构对控制流建模控制流建模动态动态行为行为第44页/共307页45小结小结小结小结1 1 1 1:UMLUMLUMLUML的事物、关的事物、关的事物、关的事物、关系与图系与图系与图系与图UML的9种图2序号序号图名称图名称规则语义规则语义类型类型性质性质6状态图状态图(Statechart)展现了一个特定对象的所有可能状态,以及各种事件的发生而展现了一个特定对象的所有可能状态,以及各种事件的发生而引起的状态间的转移。一个状态图描述了一个状态机,用状态引起的状态间的转移。一个状态图描述了一个状态机,用状态图说明系统的动态视图。它对于接口、类或协作的行为建模尤图说明系统的动态视图。它对于接口、类或协作的行为建模尤为重要,可用它描述用况实例的生存周期为重要,可用它描述用况实例的生存周期动态动态行为行为7活动图活动图(Activity)活动图是一种特殊的状态图,描述需要做的活动、执行这些活活动图是一种特殊的状态图,描述需要做的活动、执行这些活动的顺序(多为并行的)以及工作流(完成工作需要的步骤)。动的顺序(多为并行的)以及工作流(完成工作需要的步骤)。它对于系统功能建模特别重要,强调对象间的控制流程。高层它对于系统功能建模特别重要,强调对象间的控制流程。高层活动图用于表示需要完成的一些任务,即用于分析用况,理解活动图用于表示需要完成的一些任务,即用于分析用况,理解涉及多个用况的工作流,多线程及并行,显示显示相互联系的涉及多个用况的工作流,多线程及并行,显示显示相互联系的行为整体,它还可用于对企业过程建模。低层活动图用于表示行为整体,它还可用于对企业过程建模。低层活动图用于表示类的方法。但活动图不适用于描述对象间的关系、显示对象间类的方法。但活动图不适用于描述对象间的关系、显示对象间的协作,以及显示对象在周期内的运转情况的协作,以及显示对象在周期内的运转情况动态动态行为行为8构件图构件图(Component)构件图展现一组构件之间的组织和依赖关系,用于对源代码、构件图展现一组构件之间的组织和依赖关系,用于对源代码、可执行的发布、物理数据库和可调整的系统建模可执行的发布、物理数据库和可调整的系统建模静态静态结构结构9实施图实施图(Deployment)实施图展现运行时处理节点,以及其中构件的部署。它描述系实施图展现运行时处理节点,以及其中构件的部署。它描述系统硬件的热处理拓扑结构(包括网络布局和构件在网络上的位统硬件的热处理拓扑结构(包括网络布局和构件在网络上的位置),以及在此结构上上的软件(即运行时软构件在节点中的置),以及在此结构上上的软件(即运行时软构件在节点中的分布情况),用实施图还可用来说明系统结构的静态实施视图,分布情况),用实施图还可用来说明系统结构的静态实施视图,即说明分布、交付和安装的热处理系统。即说明分布、交付和安装的热处理系统。静态静态结构结构第45页/共307页46UMLUMLUMLUML的事物、关系与图的事物、关系与图的事物、关系与图的事物、关系与图Rational 统一过程的9个模型序号序号模型名称模型名称模型定义模型定义对模型的通俗解释对模型的通俗解释1业务模型业务模型建立组织的一个抽象建立组织的一个抽象业务操作流程业务操作流程2领域模型领域模型建立系统的语境建立系统的语境业务操作规则业务操作规则3用况模型用况模型建立系统的功能需求建立系统的功能需求用户功能需求列表用户功能需求列表4分析模型分析模型建立概念设计建立概念设计系统的逻辑设计系统的逻辑设计5设计模型设计模型建立问题的词汇以及它的解决方案建立问题的词汇以及它的解决方案物理设计(含字典设物理设计(含字典设计)计)6过程模型过程模型建立系统的并发和同步机制建立系统的并发和同步机制系统的进程设计系统的进程设计7部署模型部署模型建立被执行的系统的硬件拓扑