自考本科教材——NO05面向对象方法RUP课件

上传人:沈*** 文档编号:241764008 上传时间:2024-07-22 格式:PPT 页数:98 大小:444KB
返回 下载 相关 举报
自考本科教材——NO05面向对象方法RUP课件_第1页
第1页 / 共98页
自考本科教材——NO05面向对象方法RUP课件_第2页
第2页 / 共98页
自考本科教材——NO05面向对象方法RUP课件_第3页
第3页 / 共98页
点击查看更多>>
资源描述
面向对象方法RUP主讲:段智敏考试大纲本章要求掌握创建系统、产品需求需求模型、需求分析模型和设计模型中的基本活动和任务,了解RUP设计模型的基本结构。识记需求获取层、需求分析层、软件设计层上的术语用况之间的基本关系用况模型、需求分析模型、设计模型和部署模型的构成创建需求获取模型的四个步骤领会在系统开发中创建领域模型、业务模型的目的创建用况模型、需求分析模型、设计模型的活动和任务参与者的标识与描述、用况标识,以及标识中的准则分析包的标识以及分析包的二层结构边界类、实体类、控制类的标识,以及它们的作用和关系用况细化以及用况和协作之间的基本关系设计模型的四层结构自考本科教材NO05面向对象方法RUPUML与RUPActorUse case关关联 泛化泛化USE CASE图模模型型分析分析类 分析包分析包 Use case细化化分析模型分析模型设计模型模型部署模型部署模型RUP自考本科教材NO05面向对象方法RUP统一软件过程(RUP)概述UML是一种可视化的建模语言,而不是一种特定的软件开发方法学。作为一种软件开发方法学,为了支持软件开发活动,例如软件设计,至少涉及三方面的内容:一是应定义设计抽象层,即给出该层的一些术语二是应给出该层的模型表达工具三是应给出如何把需求层的模型映射为设计层的模型,即过程。UML仅包括前两方面的内容,即给出了一些可用于定义软件开发各抽象层的术语(符号),给出了各层表达模型的工具。自考本科教材NO05面向对象方法RUP统一软件过程(RUP)RUP的本质本质:是“一般的过程框架”。为软件开发,进行不同抽象层之间“映射”,安排其开发活动的次序,指定任务和需要开发的制品,提供指导为对项目中的制品和活动进行监控与度量,提供相应的准则。换言之,RUP比较完整地定义了将用户需求转换成产品所需要的活动集,并提供了活动指南以及对产生相关文档的要求。适用于大多数软件系统的开发:不同应用领域不同类型的组织不同的技能水平不同的项目规模可见,RUP和UML是“统一”的方法学。自考本科教材NO05面向对象方法RUP统一软件过程(RUP)特点是一种以用况(UseCase)为驱动的、以体系结构为中心的、迭代、增量式开发。以用况为驱动意指在系统的生存周期中,以用况作为基础,驱动有关人员对所要建立系统之功能需求进行交流,驱动系统分析、设计、实现和测试等活动,包括制定计划、分配任务、监控执行和进行测试等,并将它们有机地组合为一体,使各个阶段中都可以回溯到用户的实际需求。USE CASE 分分 析析输入入 设设 计计 实实 现现跟踪跟踪输入入跟踪跟踪输入入跟踪跟踪输入入输入入 测测 试试输入入跟踪跟踪输入入自考本科教材NO05面向对象方法RUP统一软件过程(RUP)以体系结构为中心指在系统的生存周期中,开发的任何阶段(RUP规定了四个阶段,即初始阶段、细化阶段、构造阶段和移交阶段)都要给出相关模型视角下的有关体系结构的描述,作为构思、构造、管理和改善系统的主要制品。体系结构描述应根据相关模型的视角:展示对体系结构有意义上的用况、子系统(不涉及子系统的隐含成分和私有成分,及其变种)、接口、类(主要为主动类)、构件、节点和协作展示对系统体系结构有意义的非功能需求,例如性能、安全、分布和并发等简述相关的平台、所用的商业软件、框架和模板机制等各种体系结构模式从从USE CASE模型的模型的视觉从分析模型的从分析模型的视觉从从设计模型的模型的视觉从从实现模型的模型的视觉从部署模型的从部署模型的视觉给 出出体体 系系 结 构构描描 述述自考本科教材NO05面向对象方法RUP统一软件过程(RUP)迭代、增量式开发指通过开发活动的迭代,不断地产生相应的增量。在RUP中,规定了四个开发阶段:初始阶段(theinceptionphase)、精化阶段(theelaborationphase)、构造阶段(theconstructionphase)和移交阶段(thetransitionphase)。每次迭代都要按照专门的计划和评估标准,通过一组明确的活动,产生一个内部的或外部的发布版本。两次相邻迭代所得到的发布版本之差,称为一个增量,因此增量是系统中一个较小的、可管理的部分(一个或几个构造块)。阶阶 段段核心工作流核心工作流自考本科教材NO05面向对象方法RUP统一软件过程(RUP)综上可知,RUP的迭代增量式开发,是演化模型的一个变体,即规定了“大”的迭代数目四阶段,并规定了每次迭代的目标。初始阶段的基本目标是建立该项目的生存周期目标获得与特定用况和平台无关的系统体系结构轮廓,以此建立产品功能范围编制初始的业务实例,从业务角度指出该项目的价值,减少项目主要的错误风险精化阶段的基本目标通过捕获并描述系统的大部分需求(一些关键用况),建立系统体系结构基线的第一个版本,主要包括用况模型和分析模型,减少次要的错误风险.从而到该阶段末,就能够估算成本、进度,并能详细地规划构造阶段。自考本科教材NO05面向对象方法RUP统一软件过程(RUP)构造阶段的基本目标通过演化,形成最终的系统体系结构基线(包括系统的各种模型和各模型视角下体系结构描述)开发了完整的系统,确保产品可以开始向客户交付,即具有初始操作能力。交付阶段的基本目标确保有一个实在的产品,发布给用户群。期间,培训用户如何使用该软件。自考本科教材NO05面向对象方法RUP演化模型演化模型(Evolutionarymodel)是一种有弹性的过程模式,由一些小的开发步骤组成,每一步历经需求分析、设计、实现和验证,产生软件产品的一个增量。通过这些迭代,完成最终软件产品的开发。针对事先不能完整地定义需求针对用户的核心需求,开发核心系统根据用户的反馈,实施活动的迭代需求需求设计设计编码编码测试测试集成集成需求需求设计设计编码编码测试测试集成集成开开发发反反馈馈开开发发反反馈馈.核核 心心 系系 统统 开开 发发第第 二二 次次 迭迭 代代自考本科教材NO05面向对象方法RUP演化模型演化模型优点在需求不能予以规约时,可以使用这一演化模型。用户可以通过运行系统的实践,对需求进行改进。与瀑布模型相比,需要更多用户/获取方的参与。演化模型缺点演化模型的使用,需要有力的管理。演化模型的使用很容易成为不编写需求或设计文档的借口,即使很好地理解了需求或设计。用户/获取方不易理解演化模型的自然属性,因此当结果不够理想时,可能产生抱怨。自考本科教材NO05面向对象方法RUP核心工作流需求获取需求获取面临的挑战问题空间理解人与人之间的交流需求的不断变化需求获取的目标对大系统的开发来说,需求一般包括需求获取和需求分析。使用UML中的用例、参与者以及依赖等术语来抽象客观实际问题,形成系统的需求获取模型,并产生该模型视角下的体系结构描述。客观问题(系统)客观问题(系统)系统需求获取模型形成形成-涉及:不同概念和不同处理逻辑涉及:不同概念和不同处理逻辑体系结构描述 -USE CASE模型自考本科教材NO05面向对象方法RUP核心工作流实现需求获取目标的基本途径实现实际问题到软件开发需求获取层的映射,即从软件开发的角度-实现第一次抽象。其中至少涉及以下3个问题:如何定义需求获取层,即给出该层的术语如何确定模型表示工具如何映射实际问题需求获取层需求获取层模型表示模型表示工具工具 自考本科教材NO05面向对象方法RUP核心工作流需求获取层的术语(概念)及表达模型的工具USECASEActor关系:关联、包含、扩展、泛化工具:USECASE图体系结构描述 -USE CASE模型实际问题模型表示工具-USE CASE图图自考本科教材NO05面向对象方法RUP核心工作流如何映射-需求工作流总体来说,需求工作流包括以下四步,但它们并非是严格分离的。要做的工作产生的制品列出候选的需求特征(Feature)列表理解系统语境领域模型或业务模型捕获功能需求Use case 模型捕获非功能需求补充需求或针对一些特定需求的use cases 自考本科教材NO05面向对象方法RUP特征(Feature)列表 特征:一个新的项(item)及相关的简要描述(shrinks),称为特征(feature)。应用系用系统潜在的抽象潜在的抽象层例如:按学科计算每一学生的期末考试平均成绩。统计2科以上不及格的人数。给出各分段(0-60,60-85,85-100)的人数分布情况。feature需求获取自考本科教材NO05面向对象方法RUP特征作为需求,被转换为其它制品:应用系用系统潜在的抽象潜在的抽象层(特征(特征层)一个抽象一个抽象层(USE CASE 层)USE CASE1USE CASEUSE CASE2USE CASE3制品:制品:USE CASE模型模型规约规约形成形成Actor关关联需求获取自考本科教材NO05面向对象方法RUP需求获取关于特征的几点说明:每一特征有一个简短的名字和简要的说明或定义。每一特征还有一组对规划有意义的信息,可以包括:状态(Status),例如提交,批准,确认是否是组成的等估算的实现成本。(所需的资源类型和人/时)优先级(Priority)(e.g.,critical,important,orancillary)。实现中相联的风险等级。自考本科教材NO05面向对象方法RUP需求获取业务模型或领域模型领域模型作用:领域模型捕获系统语境中的一些重要对象类型。其中领域对象表示系统工作环境中存在的事物或发生的事件,领域类以三种形态出现:业务对象:表示那些被业务所操纵(manipulate)的事物(thing),例如定单,帐目和合同等实在对象(Real-worldobjects)和概念:例如飞机,火箭等事件(Events):例如飞机到达,飞机起飞等领域模型是以类图予以描述的。自考本科教材NO05面向对象方法RUP Order date of submission delivery address Item description picture cost Invoice amount date of submission last date of payment Account balance owner1.*payable1.*buyer 1 seller 1 注:领域模型中的一个类图,捕获了该系统语境中的一些重要的概念。例如:领域类Order,Invoice,Item,Account需求获取自考本科教材NO05面向对象方法RUP需求获取业务模型 业务模型可以分为以下2个层次:业务用例模型抽象一个特定业务.一般可用用例图来表达,其中以业务用例来描述该业务的处理(business processes),以业务Actors来描述与该业务交互的客户(customers)。例如:业务对象模型业务对象模型是一个业务的内部(interior)模型。通过一组术语来细化业务对象模型中的每一个业务用例。Business entity:表示业务实体work unit:表示工作单元Workers:使用该业务用例的工作人员。注:Business entities 和 work unit可作为领域类,用于表达领域中的概念,例如定单,栏目,发票等。一般地,每一个业务用例的细化可以通过交互图和活动图来表达。取款取款银行服务员自考本科教材NO05面向对象方法RUP需求获取 Use Case模型Use Case模型用以表达客户认可的需求-系统必须满足的条件和能力。Use Case模型作为客户和开发人员之间的一种共识。Use Case模型是一个系统的一种模型,包括Actors、use cases 以及它们之间的关系。自考本科教材NO05面向对象方法RUP需求获取构造系统USE CASE模型中的活动活动1:发现并描述Actor任务1:发现Actor当存在业务模型时,可直接发现一些候选的Actors,即:对于业务中的每一个worker,可以建议一个候选的Actor 对于每一个将要使用该信息系统的业务Actor,即每一个业务客户,可建议一个候选的Actor。当有或没有领域模型时,分析人员就要与客户一起标识参与者,并将所标识Actor进行分类形成一些候选的参与者记录,还要标识表示外部系统的Actor和系统维护和运行所需要的Actor。任务2:Actors的命名与描述Actors的命名:对Actors的命名,可“传达”(convey)所期望的语义,因此给出恰当的名字是非常重要的。Actors的描述:对Actor的描述,应包含其角色(责任)以及为了完成其责任所需要的条件。自考本科教材NO05面向对象方法RUP需求获取活动2:发现并描述USE CASE任务1:发现USE CASE在UML中,用况是一组动作序列的描述,系统向它的参与者提供结果(值)的功能块,表达参与者使用系统的方式。任务2:描述USE CASE在用况发现时首先给出该UAECASE的名字;继之,给出该用况的概要描述。根据需要,概要描述一般采用两种形式:第一种形式简单地给出用况的功能。第二种形式是首先概括其动作,而后一步一步地列出系统与其参与者交互时所要做的事情。通过以上活动:形成了系统的粗略用况模型,记为用况模型概述。以这一用况模型概述为此基础上,进而可形成系统的一些非功能需求和相应的应用术语集。自考本科教材NO05面向对象方法RUP需求获取活动3:确定usecase的优先级(Priority)目标这一活动目标是,在活动1和2的基础上,确定哪些用况适宜在早期迭代中予以开发,哪些用况适宜在后期迭代中予以开发,并形成系统用况模型概述视觉下的体系结构描述。输入与输出 ArchitectUse Case model outlinedSupplementary Requirements GlossaryArchitecture Description view of the use case modelPrioritized Use Cases 自考本科教材NO05面向对象方法RUP需求获取实施刻画在体系结构方面具有意义的用况,包括:对某一重要、关键功能的用况的描述包括对那些必须在软件生存周期早期予以开发的、某一重要的用况的描述作用确定在规划的下一个迭代中,需要哪些开发活动和任务在这一规划中,当然还需要考虑其它非技术因素,例如系统开发的业务和经济方面的因素自考本科教材NO05面向对象方法RUP需求获取活动4:UseCase精化目的详细地描述事件流,包括usecase是怎样开始的,是怎样结束的,是怎样与Actors进行交互的。输入与输出Use case SpecifierUse Case model outlinedSupplementary Requirements GlossaryUse Case detailedDetail a Use Case The result is a detailed description of a particular use case in text and diagram.自考本科教材NO05面向对象方法RUP需求获取精化途径如何描述一个usecase中所有可选的路径;在一个usecase的描述中包括的内容;如何在必要时形式化地给出usecase的描述。事件流技术对用况的精化描述,可以用事件流(FlowofEvents)描述技术,规约当一个用况执行时,系统做了什么,以及系统如何与其参与者参与者进行交互。一个用况可以被认为有一个开始状态,一些中间状态,并从一个状态转换为另一状态,如下所示:其中,红箭头线表示基本路径,曲线是其它可选路径。自考本科教材NO05面向对象方法RUP需求获取一般来说,在用况的一个精化描述中,其基本内容包括:定义一个前置条件,用于表达该用况的开始状态。定义第一个要执行的动作,描述该用况是如何开始的,什么时候开始。定义该用况中基本路径所要求的动作及其次序。描述该用况是如何结束的,什么时候结束。描述基本路径之外的可选路径。定义系统与参与者之间的交互以及它们之间的交换,描述该用况的动作是如何被相关参与者激发的,以及它们是如何响应参与者的要求。定义一个后置条件,用于表达可能的结束状态。描述系统中使用的有关对象、值和资源,即描述在一个该用况的动作序列中,如何使用为该用况属性所赋予的值。总之,在用况描述中,必须明确描述系统做什么(执行的动作),描述参与者做什么,并从参与者做什么中分离出系统的责任。否则用况描述就不够精确。自考本科教材NO05面向对象方法RUP需求获取活动5:用户界面的原型构造目的建造一个用户界面的原型,使用户有效地执行usecases。步骤第一步,用户界面的逻辑设计第二步,物理用户界面的设计第三步,开发用户界面原型,演示为了执行该usecase,用户怎样使用该系统。自考本科教材NO05面向对象方法RUP需求获取活动6:UseCase模型的结构化通过对用况模型的结构化,最终形成系统的一个精化用况模型,记为用况模型精化。前置条件:系统分析员已经标识了Actors和usecases,已经以图予以了描述,并给出了整个usecase模型的说明。usecase规约人员已经对每一usecase开发了详细的描述。所做工作:抽取usecase描述中一般的、共享的功能,用于特定usecase描述。抽取usecase描述中附加的或可选的(additionaloroptional)功能,它们可能被扩展为特定usecase描述。标识用况之间的包含关系使用泛化关系,标识并描述那些共享功能使用扩展关系,标识并描述附加的或可选的功能标识usecase之间的其它关系,例如包含关系(include)自考本科教材NO05面向对象方法RUP需求获取标识用况需要注意:在建立用况的结构中,应尽可能地反映用况的实际情况。否则,用户或客户,还是开发人员,要理解这些用况以及它们的意图就变得相当困难。在用况的结构化中,不论是施加什么结构,对新引入的用况都不应太小或太大。确定用况大小的基本准则:第一条准则:用况应为它的参与者产生有值的结果,用况应向一个特定的参与者交付可见的结果(值)。目的是为了避免发现的用况太小。第二条准则:用况最好只有一个特定的参与者(particular Actor)。目的是为了避免发现的用况太大。例如在需求获取阶段,用况规约人员需要给出它的描述,而在后续的分析和设计中,设计人员需要对不同的用况予以细化(realization),这样,如果用况太小或太大,势必产生一系列管理上的问题。在建立用况的结构中,应尽量避免对用况模型中的用况功能进行分解。最好在分析和设计中对每一用况进行精化(refining),其中如果需要的话,以面向对象风格把用况中所定义的功能作为概念分析层上对象之间的协作,这样可以对需求产生更深入的理解。自考本科教材NO05面向对象方法RUP需求获取小结需求获取以及相关制品业务模型或领域模型建立了系统的语境,是创建系统usecase模型的基础。基本步骤产生的制品列出候选的需求特征(Feature)列表理解系统语境领域模型或业务模型捕获功能需求Use case 模型捕获非功能需求补充需求或针对一些特定需求的用况 自考本科教材NO05面向对象方法RUP需求获取小结use case模型Use Case Model 是软件和客户就需求的一个共识,即系统必须具有的条件(conditions)和能力(capabilities)。The Use Case模型为系统分析、设计、实现以及测试提供了基本的输入。Use Case模型是系统的一个模型,包含系统中Actors、use cases 以及它们之间的关系。Use Case systemUse Case model Actor Use case*1自考本科教材NO05面向对象方法RUP需求获取小结捕获需求阶段的活动序号输入活动执行者输出1业务模型或领域模型,补充需求,特征表发现参与者和用况系统分析员、客户用户、其他分析员用况模型概述术语表2用况模型概述,补充需求,术语表赋予用况优先级 体系结构设计者体系结构描述用况模型角度3用况模型概述,补充需求,术语表赋予用况优先级 用况描述者用况详述4用况详述,用况模型概述,补充需求,术语表人机接口原型化 人机接口设计者人机接口原型5用况详述,用况模型概述,补充需求,术语表构造用况模型系统分析员用况模型详述自考本科教材NO05面向对象方法RUP需求分析需求分析的目标实际问题?需求获取模型需求获取模型形形成成?需求分析模型需求分析模型形形成成需需求求获取取需需求求分分析析注:实现第二次抽象注:实现第二次抽象注:实现第一次抽象注:实现第一次抽象自考本科教材NO05面向对象方法RUP需求分析实现需求分析目标的基本途径实现需求获取层到需求分析层的映射,即从软件开发的角度-实现第二次抽象。如同实际问题层到需求获取层一样,其中至少涉及以下3个问题:如何定义需求分析层,即给出该层的术语如何确定模型表示工具,即分析模型的表达如何映射,即分析的主要活动自考本科教材NO05面向对象方法RUP需求分析需求分析层的术语分析类(Analysis class)用况细化(Use Case Realization-Analysis)分析包(Analysis Package)自考本科教材NO05面向对象方法RUP需求分析分析类的种类:边界类(Boundaryclasses)实体类(Entityclasses)控制类(Controlclasses)自考本科教材NO05面向对象方法RUP需求分析边界类(Boundaryclasses)内涵:用于模型化 系统和其Actors 之间的交互。该交互一般涉及向用户和外部系统发出请求和从他们那里接受信息。与设计平台的关系:边界类常常是在更高的概念层上,对窗口、通信接口、打印机接口及API等的抽象,忽略其中的一些细节-例如用户窗口的宽度,并且不需要描述该交互的物理实现(realize)。基于的设计原理:分离不同的用户界面或通讯界面,形成一个或多个边界类。自考本科教材NO05面向对象方法RUP需求分析实体类(Entity classes)内涵:用于模型化 那些需要长期足留系统的对象-例如人的信息,以及与行为相关的某些现象例如实际的一个事件。与业务类的关系:在大多数情况下,实体类对应业务模型中的业务类。其中一个主要区别是:现在所考虑的实体类,一般是要由系统处理的那些对象。与设计平台的关系:实体类一般表示一个逻辑数据结构和属性,以理解系统依赖什么信息。基于的设计原理:分离待处理的不同信息,形成一些不同的对象。自考本科教材NO05面向对象方法RUP需求分析控制类(Control Classes)内涵:用于模型化 系统的动态性(dynamics),包括:用于表达协同、定序、事务以及对其它对象的控制;用于封装那些与特定 use case 有关的控制;用于表达复杂的推导和计算,例如不与 任何存贮在系统中的特定信息有关的业务逻辑.简言之,控制类处理并协调边界类对象和实体类对象的基本动作(actions)和控制流,并向它们委派工作。基于的设计原理:问题分离控制类分离一些不同的控制、协调、定序以及不同的复杂业务逻辑,并予以封装形成一些所谓的控制类。那些与Actors交互有关的问题由边界类予以封装,与系统处理的信息有关的问题由实体类予以封装。自考本科教材NO05面向对象方法RUP需求分析用况细化(Use Case Realization-Analysis)内涵一个用况细化是分析模型中的一个协作,描述了一个特定的用况如何运用分析类以及分析类的交互对象进行细化和执行。作用:Use Case细化对Use Case模型中的一个特定的use case 提供了一中直接方式的跟踪。Use Case细化表达正文的事件流类图交互图自考本科教材NO05面向对象方法RUP需求分析分析包(Analysis Package)分析包提供了一种组织分析制品的手段,形成一些可管理的部分。分析包可包含分析类、Use case细化以及其它分析包:分析包的主要特征(characteristic)高内聚、低耦合。表达了对所要分析问题的一种分离,例如将不同领域知识分为不同的包予以分析,对具有领域知识的人来说,是可以阅读、理解的。由于包是针对功能需求和问题域予以创建的,很有可能成为一些子系统或成为一些子系统的组成部分,在某些情况中,甚至可以反映一个完整的顶层设计。Analysis package*Analysis classUse case Realization-analysis自考本科教材NO05面向对象方法RUP需求分析模型表达分析模型是分析包的一个层次结构,包含分析类和Use Case细化。分析主要活动?需求分析模型需求分析模型形成形成需求获取模型需求获取模型自考本科教材NO05面向对象方法RUP需求分析活动1:体系结构分析(Architectural Analysis)目标:通过标识分析包、分析类、公共的特定需求,建立分析模型和体系结构的“骨架”。任务1:标识分析包基本输入:use case模型基于功能需求和问题域,即考虑需要的应用和业务,对分析工作进行划分,形成一些分析包。依据use cases的主要功能(方面),把一些use cases分派到特定的包中。精化该包中的功能。任务2:处理分析包之间的共性抽取共享类,继之把共享类放到一个包中,并让其它包依赖该类或该类所在的更一般化的包。自考本科教材NO05面向对象方法RUP需求分析任务3:标识服务包(Service Packages)在包的层次结构中,除了考虑以上那种对“共性”的依赖外,时常还要考虑服务依赖,即应用层的包依赖下层提供的服务包。服务:在RUP中服务是指功能上紧密相关的、可被多个用况使用的一组动作。一个服务的主要特征是:服务是不能分割的,或系统完整地提供之,或不提供之;服务是针对客户而言的,而用况是针对用户而言的,即当细化一个用况时,可能需要多个服务,即一个用况需要多个不同服务中的动作。服务包:由服务所组成的包称为服务包。显然服务包是一个功能包,通常包含一组功能相关的类。服务包的主要特征是:是不可分离的,即如果客户需要这一包,就要其中的所有类一般只涉及一个参与者或很少几个参与者服务包可独立执行,对于同一服务的不同方面,可以由系统的2个不同服务包提供服务包之间的依赖,通常是非常受限制的自考本科教材NO05面向对象方法RUP需求分析可见,服务包的引入,可用于系统的结构化处理,即:依据服务包所提供的服务,把它放到分析包层次结构中的低层,以便应用包对它的引用。当系统功能需求得到了很好理解,并且已存在很多分析类的情况下,才能有效地标识服务包。标识服务包的基本方法:或依据客户对有关服务的要求,或直接将多个功能相关的分析类所提供的服务,标识为一个服务包。应用包应用包B依赖依赖应用包应用包A 服务包服务包依赖依赖自考本科教材NO05面向对象方法RUP需求分析任务4:定义分析包的依赖目标:发现相对独立的包,实现包的高内聚和低耦合。途径:通常使用特定应用包和公用包,把分析模型分为两个层面,清晰地区分特殊性功能和一般性功能。例如:分析包的层次和依赖通过以上任务1、2、3和4,就可以形成对体系结构是具有重要影响的分析包的层次结构。采购员发票管理采购员发票管理 销售员发票管理销售员发票管理 帐目管理帐目管理 应用共享层应用共享层 特定应用层特定应用层依依赖自考本科教材NO05面向对象方法RUP需求分析任务5:标识重要的实体类目标:标识在体系结构方面具有重要意义的实体类。为此:途径:首先,基于需求捕获中标识的领域类和业务实体,发现其中对体系结构具有意义的类,作为分析模型中的实体类,以此形成体系结构的初始骨架。其次,使用领域模型中领域类之间的聚合和关联,或使用业务模型中业务实体之间的聚合和关联,来标识这些实体类之间一组暂定的关联。自考本科教材NO05面向对象方法RUP需求分析任务6:标识公共的特定需求在分析期间,不论是对已标识的包还是对已标识的分析类,为了支持以后的设计和实现,都可能会出现一些特殊需求:永久性 分布与并发安全性容错能力事务管理等因此,该任务的目标是标识每一特殊需求的关键特征。通过以上六项任务的实施,其中系统化地使用了有关分析包、服务包、依赖、关键实体类等术语,给出了系统的体系结构描述,称为分析模型视角下的体系结构描述,记为体系结构描述分析。自考本科教材NO05面向对象方法RUP需求分析活动2:Use Case分析目标:标识在use case事件流的执行中所需要的对象和类。将use case的行为,分布(Distribute)到交互的分析对象。捕获use case细化上的特定需求。Use case engineeringUse Case model Supplementary RequirementsArchitecture Description view of the analysis modelAnalyze a use caseBusiness model or domain model use case realization-analysis Analysis class outlined自考本科教材NO05面向对象方法RUP需求分析任务1:标识分析类目的:标识那些细化use case所需要的实体类、控制类和边界类,并给出它们的名字、责任、属性和关系。首先应从系统之外的角度,来精化用况的事件流正文描述。标识实体类在活动1的任务5中,已经标识了一些对体系结构具有重要影响的实体类,在此基础上,基于该用况的事件流正文描述,发现其中其余逻辑对象(即“大”对象),并依据类的定义,来标识其它实体类。标识边界类在标识该用况的边界类中,可把边界类分为核心边界类和原子边界类:核心边界类:是指系统与人(参与者)进行交互的接口。原子边界类:是指系统与外部系统、设备等进行交互的接口,或实体类之间进行交互的接口。自考本科教材NO05面向对象方法RUP需求分析标识控制类为负责处理该用况细化的控制和协调,标识一个控制类,并依据该用况的需求,精化这一控制类。其中应当注意:由控制类负责的一些控制最好封装在一个边界类中,如果当相关的参与者在这一控制中其到很大作用时,可能就不需要控制类。由控制类负责的控制是相当复杂的,这时最好把这样的控制封装在2个或多个控制类中。自考本科教材NO05面向对象方法RUP需求分析任务2:分析(类)对象交互的描述工具:使用交互图来描述(类)对象之间的交互。途径:在创建一个交互图当中首先确定细化该用况所必要的交互,这一般应从用况的流开始,一次经过一个流。其中涉及参与交互的分析对象和参与者实例,通常在交互的定序中,自然就能在任务中所标识的分析类中发现参与交互的客体。其次,分派该用况的功能,这一般应基于激活该用况的一个消息-作为“种子”,来发现相关对象的责任。最后,再根据其责任,发现该交互图中各个链。其中,应在与这一用况细化相关的交互图中或在类图中,明确给出一个关联中所有对象之间的链。如果use case具有不同的、有区别的流或子流,一般需要为每一个流创建一个交互图。这样可以使Use Case细化更加清晰;有助于使抽取的协作图可用来表达一般性、复用的交互。对系统用况模型中的每一用况实施上述两项任务,就可形成整个系统的用况细化分析。自考本科教材NO05面向对象方法RUP:银行客户:银行客户标识身份身份:人机接口:人机接口取款取款请求求:划拨取款:划拨取款消息消息-发发现现”人人机机接接口口”责任的种子责任的种子责任责任人机接口责任人机接口责任:-鉴别身份鉴别身份-发出取款请求发出取款请求例如,例如,“银行客户银行客户”和用况和用况“取款取款”的交互,所涉及的交互,所涉及的对象有:的对象有:银行客户,:银行客户,:人机接口,:取钱接口,:人机接口,:取钱接口,:划拨,:帐户:划拨,:帐户:银行客户:银行客户标识身份身份取款取款请求求通知客通知客户自自动取款取款:人机接口:人机接口:帐户:帐户:取钱接口:取钱接口:划拨取款:划拨取款验证并划并划拨验证失失败自考本科教材NO05面向对象方法RUP需求分析活动3:类的分析通过活动1和活动2,已经标识了系统中所有分析类,但没有给出它们的详细描述。因此活动3的目标:一是标识并维护分析类的责任;二是基于它们在用况细化中的角色,标识并维护分析类的属性和关系;三是捕获分析类细化中的特殊需求。任务1:标识责任任务2:标识属性实体类属性的标识边界类属性的标识控制类属性的标识任务3:标识关联和聚合标识关联标识聚合标识泛化自考本科教材NO05面向对象方法RUP需求分析活动4:包的分析目标:一是确保分析包尽可能与其它包相对独立;二确保分析包实现了它的目标,即细化了某些领域类或用况;三是描述依赖,以益于可以估计未来的变化。一般性指导:如果一个包中的类与其他一些包中的类具有关联,那么就应在该包与那些其它包之间定义一个依赖并维护之。确保该包所包含类是正确的,并力求使这些包仅包含相关对象的功能,实现包的高内聚。限制与其他包的依赖。特别地,如果有些包所包含的类过多地依赖其他包,那么对这些包就要考虑重新布局问题。自考本科教材NO05面向对象方法RUP例如:在包“销售员发票管理”中包含一个类“发票处理”,而该类与包“帐目管理”中的类“帐目”有关联,这样就需要在这两个包之间建立一个相应的依赖。发票处理销售员发票管理发票处理帐目管理帐目帐目管理帐目需要销售员发票管理依赖需求分析自考本科教材NO05面向对象方法RUP需求分析小结分析包分析包体现了“局部化”、“问题分离”等软件设计原理。通过分析包这一术语可以把系统一些变化局部到一个业务过程、一个参与者的行为,或一组紧密相关的用况,形成一些不同的系统分析包。一个分析包中可以包含一些分析类、用况细化和一些子包。服务包和共享包是一些特殊的分析包,服务包将一些变化局部到系统提供的一些单个的服务中,并展示了一个重要的指南,即在分析期间可以通过服务包来构造复用。通过依赖,可以形成包的一个层次结构,其中应用包一般位于该结构的上层,而服务包和共享包位于该结构的下层。包的层次结构可以作为系统的顶层设计。自考本科教材NO05面向对象方法RUP需求分析小结分析类分析类是一种粒度比较大的类,有其责任、概念性的属性和关系。分析类分为边界类、实体类和控制类。在应用中,一般将用户接口、一个通讯接口方面的一个变化,局部化到一个或多个边界类中;一般将系统所处理信息方面的一个变化,局部化到一个或多个实体类中;一般将控制、协调、定序、事务和复杂业务逻辑(它们要涉及多个边界和/或实体对象)方面的一个变化,局部化到一个或多个控制类中。自考本科教材NO05面向对象方法RUP需求分析小结用况细化用况细化是一个协作,可用于对系统用况模型中的用况进行精化。换言之,用况细化将一些变化局部到对应的用况中,通过分析类之间的协作,规约用况的行为是如何实现的。自考本科教材NO05面向对象方法RUP需求分析小结分析模型是对需求的一种精化,给出了实施系统分析的活动,支持开发人员系统化地使用用以上三个术语所表达的信息,建立系统分析模型,即系统概念模型。序号输入活动执行者输出1用况模型、补充需求、业务模型或领域模型、体系结构描述用况模型体系结构分析体系结构设计者分析包概述、分析类概述、体系结构描述分析2用况模型、补充需求、业务模型或领域模型、体系结构描述分析模型细化用况用况工程师用况分析、分析类概述3用况分析、分析类概述 对类分析构件工程师分析类完成4系统体系结构描述分析、分析包概述对包进行分析 构件工程师分析包完成自考本科教材NO05面向对象方法RUP需求分析小结Use Case模型与分析模型的比较 Analysis Model使用开发者语言来描述的;给出的是系统对内的视图;使用衍型类予以结构化的,但给出的是内部视角下的系统结构;可以作为开发者理解系统如何勾画、如何设计和如何实现的基础;在需求之间不应存在冗余、不一致和冲突等问题;给出的是细化的系统功能,包括在体系结构方面具有意义的功能;定义了use case模型中每一个use case的细化。Use Case Model 使用客户语言来描述的;给出的是系统对外的视图;使用use cases 予以结构化的,但给出的是外部视角下的系统结构;可以作为客户和开发者之间关于“系统应做什么、不应做什么”的契约;需求之间可能存在一些冗余、不一致和冲突等问题;捕获的是系统功能,包括在体系结构方面具有意义的功能;定义了一些进一步需要在分析模型中予以分析的use case。自考本科教材NO05面向对象方法RUP需求分析小结分析模型对以后工作的影响如果把分析模型作为以后设计活动的基本输入,那么对设计模型以及相应的体系结构描述将在产生以下及方面影响:对设计中子系统的影响对设计类的影响对Use case细化设计的影响对创建设计模型视角下体系结构描述的影响自考本科教材NO05面向对象方法RUP设计目标设计的基本输入是分析的结果,定义满足分析所需要的结构。?设计模型设计模型形成形成需求分析模型需求分析模型设设计计需求分析需求分析部署模型部署模型体系结构描述体系结构描述(部署模型)(部署模型)Use Case 细化细化设计设计设计类设计类接口接口设计子系统设计子系统体系结构描述体系结构描述(设计模型)(设计模型)自考本科教材NO05面向对象方法RUP设计实现设计目标的基本途径实现需求分析层到设计层的映射,即从软件开发的角度-实现第三次抽象。如同实际问题层到需求获取层一样,其中至少涉及以下3个问题:如何定义设计层,即给出该层的术语;如何确定模型表示工具;如何映射。自考本科教材NO05面向对象方法RUP设计设计层的术语设计类(Design class)一个设计类是对系统实现中一个类或类似构造的一个无缝抽象。设计类的主要特征为:操作、属性、关系、方法、实现需求、是否为主动类。用况细化设计用况细化设计是设计模型中的一个协作,其中,使用设计类及其对象,描述一个特定用况是如何予以细化的,如何执行的。表达协作的工具可以是类图、交互图和正文事件流等。设计子系统设计子系统提供了一种组织设计制品的手段,成为一些可以更易管理的部分。接口(Interface)接口用于规约由设计类和设计子系统提供的操作。自考本科教材NO05面向对象方法RUP设计设计模型设计模型是设计子系统的层次结构(hierarchy),包含设计类、Use Case细化和接口。设计模型视角下的体系结构描述,是从设计模型的角度,描述那些在体系结构方面具有意义的制品。通常,这些制品包括:子系统的结构,包括它们的接口以及它们之间的依赖。对体系结构有意义的设计类对体系结构有意义的分析类所对应那些设计类;具有一般性、核心的主动类;表达通用设计机制的设计类,以及与以上这些设计类相关的其他设计类。对体系结构有意义的Use Case细化设计自考本科教材NO05面向对象方法RUP设计部署模型(Deployment Model)部署模型是一个对象模型,描述了系统的物理分布,即怎样把功能分布于各个节点(nodes)。部署模型本身展现了软件体系结构和系统体系结构(硬件)之间的一个映射(mapping)。部署模型包含一些节点及节点之间的关系,其中每一个节点表达一个计算资源,常常是处理器或类似的硬件设备。节点功能是由部署在该结点上构件所定义的;节点之间的关系是由节点之间的通讯手段表达的。在实际应用中部署模型可以描述多个不同的网络配置,包括测试配置和仿真配置。自考本科教材NO05面向对象方法RUP设计设计的主要活动工作流实施准备:开始设计时,应更深入地理解以下问题:非功能需求 有关对程序设计语言的限制(constrains)数据库技术 用况技术 事务(transaction)技术等活动1:体系结构设计(Architectural Design)目标:给出设计模型和部署模型,以及这两个模型视觉下的体系结构描述。为此,需要标识:节点,以及它们的网络配置;子系统,以及它们的接口;在体系结构方面具有意义的设计类,例如主动类。设计机制,它们处理共性需求自考本科教材NO05面向对象方法RUP设计任务1:标识节点和它们的网络配置标识需要涉及的节点以及它们的能力(处理能力和内存规模);标识节点之间的连接(connections)类型,以及使用的通讯协议;标识这些连接和通讯协议的特征;标识需要的冗余处理能力、失败模式、移植处理(process migration)以及数据备份等。以上称为网络配置。网络配置经常对软件的体系结构具有很大影响。自考本科教材NO05面向对象方法RUP设计任务2:标识子系统和它们的接口设计子系统提供了一种将设计模型组织成一些可管理部分(pieces)的手段。一般情况下:或通过对设计工作的划分,来发现子系统;或设计模型的不断进化中,通过对其较大的结构进行分解时来发现子系统。标识子系统的步骤:标识应用子系统应用子系统可分为特定应用层和应用共享层二个层次标识中间件和系统/软件子系统定义子系统依赖标识子系统接口完成任务2时,就可形成系统的初始顶层设计系统的子系统结构。自考本科教材NO05面向对象方法RUP设计任务3:标识在体系结构方面具有意义的设计类和它们的接口 标识在体系结构方面有意义的设计类根据在体系结构方面具有意义的分析类,可以初始地标识出这样的一些设计类。标识主动类主动类的标识一般应该考虑系统的一些并发需求:关于系统在节点上的分布(distribution)需求关于系统启动、终止、激活以及死锁避免、节点再配置等需求实现不同参与者与系统交互时在性能、意图和可能行等方面的需求自考本科教材NO05面向对象方法RUP设计任务4:标识处理一般性的设计机制设计机制所处理的共性需求,包括:永久性(Persistency)透明对象的分布(Transparent object distribution)安全特征(Security features)错误检测与揭示(Error detection and recovery)事务管理等(Transaction management)自考本科教材NO05面向对象方法RUP设计活动2:Use Case的设计第一种方法:标识参与用况细化的设计类第二种方法:标识参与用况细化的子系统和接口活动3:类的设计目标:进行类的设计,使之完成在Use Case细化中的角色,并完成针对它的非功能需求。一个类的设计,包含以下方面:类的操作;类的属性;参与的关系;类方法;类的状态对一般设计机制的依赖;与实现有关的需求;所提供的那些接口的细化。自考本科教材NO05面向对象方法RUP设计任务1:概括描述设计类(Outlining the Design Class)即把分析类和/或接口作为给定的输入,来勾画一个或多个设计类。当给定的输入是一个接口,那么就可以简单的、直接的指定一个提供该接口的设计类。当给定的输入是一个或多个分析类,那么所使用的方法就要依赖分析类的衍型(stereotype):如果输入的是表示永久信息的实体类,其设计经常隐含地需要使用一种特定的数据库技术;如果输入的是边界类,其设计需要使用一些特定的界面技术;如果输入的是控制类,其设计需要考虑分布问题、执行问题、事务问题。自考本科教材NO05面向对象方法RUP设计任务2:标识操作应依据分析类来标识设计类所提供的、所需要的操作,其中需要使用程序设计语言的语法(syntax)来描述所标识的操作。任务3:标识属性使用程序设计语言的语法给出属性描述任务4:标识关联和聚合任务5:标识泛化基于分析模型中分析类之间的泛化,可以发现设计模型中的很多泛化。任务6:描述方法在设计期间,对方法的规约可以使用自然语言,或适当地使用伪码。任务7:描述状态有些设计对象是受状态控制的,即它们的状态确定了在它们接受一个消息时的行为。使用一个状态图来描述一个对象的不同状态转移。自考本科教材NO05面向对象方法RUP设计活动4:子系统设计目标:确保子系统尽可能独立于其它子系统或它们的接口。确保子系统提供正确的接口。确保子系统实现了(fulfills)它的目标,即给出了该子系统提供的那些接口所定义的操作的细化。任务1:维护子系统依赖任务2:维护子系统所提供的接口任务3:维护子系统内容自考本科教材NO05面向对象方法RUP设计小结RUP的设计方法,由三部分组成:给出用于表达设计模型中基本成分的四个术语,包括:子系统设计类接口用况细化设计;规约了设计模型的语法,指导模型的表达;给出了创建设计模型的过程以及相应的指导。自考本科教材NO05面向对象方法RUP设计小结设计模型设计的主要结果是系统的设计模型,它尽量保持该系统具有分析模型的结构,并作为系统实现的输入。包括以下元素:设计子系统和服务子系统,以及它们的依赖、接口和内容。设计类(其中包括一些主动类),以及它们具有的操作、属性、关系及其实现需求。用况细化设计。设计模型视觉下的体系结构描述,其中包括对一些在体系结构方面有重要意义元素的描述。部署模型部署模型描述了网络配置,系统将分布于这个配置上,包括:节点,它们的特征以及连接;主动类到节点的初始映射;部署模型视觉下的体系结构描述,包括对那些在体系结构方面具有重要意义元素的描述。自考本科教材NO05面向对象方法RUP设计小结设计阶段的活动序号输入活动执行者输出1用况模型、补充需求、分析模型、体系结构描述分析模型角度体系结构设计体系结构设计者子系统概述、接口概述、设计类概述、部署模型概述、体系结构描述设计2用况模型、补充需求、分析模型、设计模型、部署模型设计用况用况工程师用况实现-设计、设计类概述、子系统概述、接口概述3用况实现-设计、设计类概述、接口概述、分析类完成对类设计构件工程师设计类完成4体系结构描述设计、子系统概述、接口概述设计子系统构件工程师子系统完成、接口完成自考本科教材NO05面向对象方法RUP设计小结对实现的影响由于设计模型和部署模型是以后实现和测试活动的基本输入,因此要强调的是:设计子系统和服务子系统是由实现子系统予以实现的,这些实现子系统包括一些构件,例如源代码文件、脚本以及二进制、可执行的构件等。这些实现子系统可跟踪到设计子系统。设计类将由文件化构件予以实现的,它们包括源代码。一般地,一些不同的设计类在一个单一的文件化构件中实现,尽管这依赖所使用的程序设计语言。另外,当要寻找可执行的构件时,将要使用那些描述“权重”处理的主动类。在规划实现工作时,将要使用用况细化设计,以产生一些“构造”,即系统的一个可执行的版本。每一个构造将实现一组用况细化或部分用况细化。在节点上部署构件,形成分布系统时,将使用部署模型和网络配置。自考本科教材NO05面向对象方法RUPRUP的结束语RUP是一种软件开发过程框架,基于面向对象符号体系给出了有关软件开发过程组织及实施的指导。该框架体现了三个突出特征,即以用况驱动、以以体系结构为中心以及迭代、增量式开发。RUP和UML是一对“姐妹”,构成了一种特定软件开发方法学的主体。UML作为一种可视化建模语言,给出了表达对象和对象关系的基本术语,给出了多种模型的表达工具,而RUP利用这些术语,定义了需求获取层、系统分析层、设计层、实现层,并给出了实现各层模型之间映射的基本活动以及相关的指导。自考本科教材NO05面向对象方法RUP习题简答题RUP的定义及主要特点答:RUP是一种软件开发过程框架,基于面向对象符号体系给出了有关软件开发过程组织及实施的指导。该框架体现了3个突出特征,即以用况驱动、体系结构为中心以及迭代、增量式开发。自考本科教材NO05面向对象方法RUP习题简答题演化模型与“RUP增量、迭代开发”之间关系答:RUP迭代、增量式开发是演化模型的一个变体,即规定了“大的”迭代数量4个阶段,并规定了每次迭代的目标。初使阶段:获得与特定腹部和平台无关的系统体系结构轮廓,以此建立产品功能范围;编制实例业务实例,从业务角度指出该项目的价值,减少项目主要的错误风险精华阶段:通过捕获并描述系统的大部分需求,建立系统体系结构基线的第一个版本,主要包括用况模型和分析模型,减少次要的错误风险,到该阶段未,就能够估算成本、进步,并能详细地规划构造阶段构造阶段:通过演化,形成最终的系统体系结构基线,开发完整的系统,确保产品可以开始向客户交付,即具有初始操作能力移交阶段:确保有一个实在的产品发布给用户群。期间培
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!