面向对象的可视化建模培训教程82课件_第1页
面向对象的可视化建模培训教程82课件_第2页
面向对象的可视化建模培训教程82课件_第3页
面向对象的可视化建模培训教程82课件_第4页
面向对象的可视化建模培训教程82课件_第5页
已阅读5页,还剩267页未读 继续免费阅读

下载本文档

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

文档简介

面向对象的可视化建模培训教程[UML和RationalRose/C++Ver4.x]目录表简介ROSE提供的不同视图配置用户界面问题描述问题需求描述UseCases建立Actors,UseCase和UseCase图建立序列图建立协同图包和类建立类、包和模版重新分配类和包建立类图目录表关系关联和聚合关系的建立反向关系的建立操作和属性建立并验证类的属性和操作继承继承关系的建立使用类指南建立类对象行为状态转换图的建立简介主题:介绍你将可以:讨论ROSE支持的不同视图列出每一种视图案的图形配置ROSE用户界面什么是RationalRose? RationalRose是一种工具,它可以在Rose建模中提供建立、视图、修改和操作组件的能力Rose运行环境WindowsNT,Windows95UNIX(Solaris,HP/UX,AIX,DECUnix)Rose支持Unified、Booch、OMT标记法RationalRose中的视图在Rose中有四种视图UseCase视图包、Actor、UseCase、对象、消息和关系逻辑视图包、类、状态和关系组件视图包、组件和依附关系拓扑视图节点和关系UseCase视图在UseCase中的元素可以在多个图形中被浏览在UseCase视图中可以包含以下的图形UseCase图包、actors、usecase和关系相互作用图(序列图或协同图)对象和消息UseCase图形UseCase图形描述了一个系统应该执行的什么或应该有什么外部系统它描述了存在的actors(外部系统)、usecase(该系统应该执行什么)以及它们的关系UseCase图性形可以描述该系统中部分或全部的usecase逻辑视图在逻辑视图中的元素可以有一种或多种图形来表示逻辑视图可以包含以下的图形类图包、类和类的关系状态图状态、事件和转换关系类图类图描绘的系统的静态视图它描述了系统逻辑设计中存在的包、类异己它们间的关系类图可以代表该系统中部分或全部的类结构在模型中有一些典型的类图状态图状态图描述了:给定类的状态转换空间导致状态转换的事件导致状态改变的动作为类的重要动态行为建立状态转换图拓扑视图在拓扑视图中的元素可以在拓扑图形中被浏览拓扑视图只能包含一个拓扑图形拓扑视图描述了一个系统在物理设计阶段进程处理的分配情况进程图描述了节点连接Rose用户界面Rose的组成标准工具条图形工具条浏览区文档窗口图形窗口规格说明书状态条RationalRose界面标准工具条浏览区文档描述窗口状态条图形工具条图形窗口Rose的浏览区Rose的浏览区描述了原本的视图模型,并且提供了在每一种视图的组件间进行访问的功能“+”表示该图标为折叠图“-”表示该图标已被完全扩展开该浏览区可以可见或不可见Docked位置有边界范围浮动可移动到任何位置浏览区完全扩展树折叠树固定浏览窗口文档窗口文档窗口为所选择的项和图形提供建立、浏览或修改文档的能力当不同的选项和图形被选择时,进允许一个文档窗口被更新文档窗口可视或被隐藏固定或浮动可固定的文档窗口ROSE选项一般选项字体、备份文件的使用、存储命令图形显示属性、操作、可视化、控制焦点、交互图序列号、未定义的注释、自动重设大小注释定义注释——UML,Booch,OMT工具条工具条显示与定制代码产生建立、修改、删除代码产生的性质设定数据定义语言建立、修改、删除数据定义语言产生的性质设定练习:定制用户界面设置用户界面显示工具条显示浏览窗口和文档窗口显示状态条将图形和文档窗口字体设置为Arial10号设置统一的缺省注释显示操作符号不显示属性不显示操作关闭控制焦点存储改变并且退出课程登记实例课程登记问题描述每学期开始学生需要一份课程表,它包含本学期所提供的课程列表及每门课程的相关信息。比如:导师名称、科系、必要条件、课程时间、上课地点,可以帮助学生作出合理的决定新系统规定学生可以选择四门必修课程。此外,他还要选择两门候补课程以防某门课程人员满额或被取消。每门课程人数不得多余10人或少余3人。一旦学生完成登记过程,登记系统将信息传入记费系统以便计算学生在本学期的学费数额/课程登记问题描述导师需要随时访问系统,知道有那一门课程需要任教。他也可以了解他的课有那些学生每学期开始,学生有一段试听时间,学生可以改变所选课程内容。在这段时间学生必须可以访问系统随时更改课程选项UseCases主题:UseCases你将可以建立Actors和UseCases建立UseCase图描述UseCase什么是UseCase?UseCase是所用系统的规格方式在响应外部Actor触发时,系统所执行的功能UseCase提供了一种手段捕获系统需求专业人士和最终用户间的连接测试系统注释:Usecase名称浏览窗口中的UseCases什么是Actor?Actor是一些人或事:可以激或系统交互信息可以对系统进行输入可以从系统被动的接受信息通过调查发现Actor直接使用系统的人系统的维护人员系统使用的外设需要与此系统想连的其它系统在浏览窗口中的Actor什么是UseCase图?UseCase图说明了系统和它的Actors系统发展了的UsecasesActor和Usecase间的交互课程登记实例的UseCase图描述UseCase UseCases被描述在简短的描述UseCase的高级描述事件流程运行过程中的执行序列课程登记实例的简洁描述课程登记实例的事件流程当学生敲入id号时UseCase开始,系统检测id号是否合法并且提示学生选择本学期或下一学期。在学生选择完毕后,系统会提示学生其它选项:建立课程表浏览课程表修改课程表删除课程添加课程学生表示选项均已完成。系统则打印学生课程表,通知学生登记完毕。系统将该学生的记费信息传入收费系统以便处理课程登记实例的事件流程其它流程如果输入非法id号,系统不允许访问。如果企图建立的学期课程表已存在,系统将会提示进行其它选择建立课程表 学生输入4个主课程号和2个候补课程号。学生提出课程要求,然后:

1.检查该课程是否满足学生要求 2.如果该课程开放,将学生加入课程名单其它流程

如果主课程无效,则系统将替换另一课程课程登记实例时间流程浏览课程表学生对学期所选课程的要求信息,以及学生所选课程信息,包括:课程名称、课程号、每周上课次数、上课时间和上课地点等修改课程表——删除所选课程学生指示删除所选课程,系统检查是否超过最终修改日期。如果没有过期,则系统删除学生所选课程,系统通知学生处理完毕课程登记实例事件流程修改课程表——加入新课程 学生指示要加入新的课程,系统检查是否超出最终修改日期,如果没有,系统则: 1.是否超过最大课程数量 2.检查所选课程是否满足必要条件 3.如果该课程开放,将学生加入课程名单中建立事件流程为usecase建立的事件流程被包含在一个与usecase关联的外部文档中。练习:UseCase图形为我们在第8页建立的课程登记系统建立usecase图形练习:证明UseCases为“维护课程信息”的usecase建立简短的描述和事件流程usecase提供以下功能建立、修改和删除学期课程建立、修改和删除学期提供的课程在提供的课程被建立前,教授要选择所教的课程包含在登记员的有效打印列表中如果教授不能对所提供的课程任教,则此门课程取消包和类主题:包和类你将可以:建立类你可以给类建立stereotypes建立包重新配置类建立类图查找类类是具有相同结构和行为的对象的集合stereotype事建模元素的新类型,这种建模元素扩展了metamodel的语义每个类最少有一种stereotypes在分析中有三种普通的stereotypes实体类模型信息和相关行为广泛的永久的独立于它的环境边界类系统环境和内部工作见的模型关联控制类一个或多个模型控制行为规格查找类Usecases可以对查找实体和边界类型进行检查最初,给每一个usecase建立一个控制类控制类可以作为分析过程被归并例子:课程登记的UseCase边界类登记表格、计划表、计费界面、AddDrop课程表实体类课程、提供课程、学生计划、学生信息控制类登记管理用Browser建立类当一个类被发现,它就被加到浏览器中证明类一旦类被建立,它应该被定义定义是原文,它包含类的责任和目的描述类的规格说明类的规格说明包含类的额外信息加入Stereotypes类的Stereotypes可以被加到模型中什么是包包含一些类的主要模型它可以组合在包中帮助模型管理包是一个逻辑类或其它包的集合我们发现可以把登记系统中的类放在三个包中界面、人和学校事件登记系统包包的规格说明包的规格说明包含有关包的额外信息证明包一旦包被建立,它应被定义定义的原文描述了包的目的定义被加在文档窗口中将类移入包中一旦包被建立,合适的类被重新分配在包中什么是类图逻辑试图有包和类组成在逻辑视图中,类图是包含类部分(或所有)类和包的视图通常可以有许多类图类图拖拽工具条主类图逻辑视图最初包含一个视图该图形被称为Main主类图是逻辑视图中典型的高级包视图登记系统的主类图在包中进行浏览每个包一般都有自己的主类图该图形一般展现包中的“公众”类其它包中的类可以和它关联公众类连接在分析后加入类图学校事件包中的主类图额外的类图需要时可以加入额外的类图它们展现了模型中包和类的另一种“视图”例子:方案中多个类的视图包中“私人”类的视图一个或多个类的视图及它们的属性和操作inheritancehierarchy视图学校事件包中的额外类图展现Stereotypes类的stereotype可以展现在类图中删除包和类如果从浏览器中删除包和类,它将从模型中被删除如果从类图中删除包和类,它只会在类图中消失而仍然保留在模型中练习:在逻辑视图中加包将下列包和描述加入逻辑视图中人员——登记系统相关的人员信息学校的物件——登记系统的组成信息界面——actor访问的界面信息练习:重新分配类将类重新分配到合适的包中练习:维护课程的逻辑视图将上述三个包加入逻辑视图的main视图中练习:为包建立Main类图为每一个包建立Main类图练习:额外的类图为学校物件建立额外的类图图形名称:课程信息类:课程和提供的课程对象的相互作用主题:对象相互作用你将可以:建立序列图建立协同图什么是方案(Scenarios)方案是UseCase的实例每一个UseCase都有一个方案网主方案(happydayscenarios)所有都很好次方案除了主方案以外的部分方案可以在交互图中被描述有两中类型的交互图序列图协同图序列图序列图描述了在时间上对象交互的安排图形展现了多个交互对象信息交流的序列序列图包含对象的生命线按顺序对象间的信息交流控制焦点(可选的)建立序列图序列图工具条选择工具文本注释注释指示对象消息反身消息什么是对象对象是一种概念、抽象或具有明确的边界的事情和应用目标对象是具有:状态行为特性序列图中的每一条垂直线代表一个外部actor或系统中的对象建立对象在序列图中可以用不同的方式代表actor和对象Actor对象和类类对象对象规格说明用序列图建立一个新类随着序列图的继续发展,也可以发现新的类相关的类在交互图中建立的类可以被放置在UseCase视图中它们可以和逻辑视图中的类相关建立消息对象通过消息进行合作消息是一个从发送者指向接受者的箭头可以为消息选择编号OR反身消息对象可以与自身合作可以以一种反身消息进行描述消息规格说明移动消息当发现更多的信息,已存在的消息可以被移动插入消息可以在序列图中的任何位置插入新的消息控制焦点控制焦点代表对象中焦点控制流程的相关时间它代表对象指挥消息的时间注释注释可以附属在序列图中的任何实体上协同图协同图是方案定的另外一种图形代表协同图可以独立地被建立直接从序列图中建立协同图的工具条建立对象在协同图中有不同的方式代表actors和对象对象间的链接链接为提供了对象间通信的路径它允许对象进行交谈链接规格说明建立消息对象通过消息进行合作消息是一个从发送者指向接受者的箭头可以为消息选择编号建立消息可以用同一个箭头描述多个消息同一个类的多个对象消息可以发送给同一个类的多个对象这些可以通过堆栈对象图标来实现反身消息对象可以同自己进行合作它可以通过反身消息来描述移动或插入消息在协同图中消息不能被移动或插入序列图必须被使用过程转换序列图移动或插入需要的消息转换回协同图数据(对象)流程在图中可以描述数据的返回值只能描述重要的数据返回注释注释可以被附属在协同图的任何一个实体上关系主题:关系你将可以能:建立关联和聚合关系用名称、角色和多种指示增加关系建立反身关系加入强制关系关联和聚合UseCase可以检测并决定两个类之间是否应该存在关系只要两个对象可以互相识别,它们就可以通信关联和聚合为通信提供了一条途径关联是两个间的非直接连接聚合是关联的一种强制模式它描述整体与部分之间的关系关联还是聚合?如果两个对象通过整体和部分的关系具有紧密的边界这种关系称为聚合如果两个对象通常被人为是独立的这种关系称为关联关系和类图包中的Main类图一般包含:包中的公众类其它包中的类可以跟它进行通话的类其它包中的类和公众类进行通信如果需要,关系则被加入另外一个图形关联名称关联或聚合可以被命名通常是动词或动词短语角色名称在类间的关联中角色表示目的或能力通常是名词或名词短语多种指示 每一个关联和聚合的尾布都包含多种指示在关系中指示多个对象的编号零或多0..*一或多1..*零或一0..1指定范围2..7只有一1反身关系在反身关系中,同一个类中的多个对象可以有许多合作方式Course0..*0..*Pre-requisite约束约束是一种必须被维持的条件的表达方式用弯曲的线表示强制1..*{Orderedbyemployeeid}ProfessorDepartment1..*isamemberofisheadof{Subset}关联规格说明更新类图一旦关联或聚合被建立,其它类图也可以被更新,以便展现关系包的关系包之间存在从属关系包之间的关系意味着,该包中的类可以和其它包中的类进行通信练习:关系使用建立课程和产生目录的交互图:在类间加入关系在需要时加入多种指示、角色名称、关联名称和强制关系在包间加入关系操作和属性主题:操作和属性你将可以能:为类建立操作和属性验证操作和属性在类图上显示操作和属性什么是操作类具体表达一套责任,这种责任定义了类中对象的行为类的责任通过操作被执行操作应该执行一种简单的功能操作和交互图在序列图或协同图中显示的消息通常是类的操作(消息接收者)从一个边界类发消息到另一个边界类可以通过一个图形用户界面(GUI)来实现,它通常是不成熟的操作它可以通过GUI建立者的性能被实现在序列图中将消息映射到操作中在协同图中将消息映射到操作中浏览器一旦在交互图中建立操作,消息会自动被加入逻辑视图的类中建立操作的其它方式操作可以在方案图中单独被建立通过浏览器在类图中通过类的规格说明例子:在次方案中包含的操作不能在序列图或协同图中描述内部(帮助)操作用浏览器管理操作操作可以通过浏览器被建立、拷贝、移动和删除在类图中建立操作操作可以通过类图被建立通过类的规格说明建立操作通过类的规格说明建立操作操作规格说明验证操作操作名称应该有一定风格规范提供跨项目的一致性引导多个可维持的模块和代码操作的明明应该可以西安市它的结果,而不是执行操作后的步骤例子:getGrade()、insteadofcalculateGrade()操作应从接受者的愿望命名,而不是发送者每一个操作应该有一个清晰简明的定义为操作加入文档资料一旦操作被建立,它应该被描述在类图中显示操作操作可以在类图中被显示显示操作信号操作信号也可以被显示如果争论类型和缺省值没有被输入,Rose将用argtype作为缺省值练习:继承建立一个称为登记用户的超类为登记用户类建立学生信息和教授信息子类将一个普通的属性或操作移动到新的超类中必要时重新分配关系必要时加入强制信息联系:继承在人员属性和操作类图中显示新类展现所有的属性和操作不显示任何关系对象行为主题:对象行为你将可以能:建立状态转换图包含状态转换动作和活动嵌套状态什么是状态转换图状态转换图用于描述给定类的发展历史,导致状态转换的事件和导致状态改变的活动对象状态是对象可以存在的可能条件为类的重要动态行为建立状态转换图状态转换工具条选择工具文本注释注释锚状态初始状态终止状态转换反身转换什么是状态状态是对象可以存在的可能条件状态转换状态转换是从最初状态到成功状态的改变反身状态转换反身状态转换是一种初始状态等于成功状态的转换状态转换规格状态转换Arguments伴随一个事件的数据就是一个argument警戒(Guarded)状态转换通过警戒(guard)的使用,转换可以形成条件活动活动是伴随事件转换的操作发送事件事件可以触发传送另一个事件起始状态起始状态是对象的最初状态只能有一个起始状态终止状态终止状态是对象最后的状态可以没有终止状态,也可以存在多个终止状态状态规格说明状态活动类型简单状态用自由格式文本代表发生的事件发送事件一个活动出发下一个事件状态活动规格说明状态中的活动通过关键词的输入,活动被放置在先前状态中活动被输入直到从状态中退出通过关键词do,活动被放置在先前的状态中活动从状态中退出通过输入关键词exit,活动被放置在先前状态中嵌套状态嵌套状态可以用于将复杂的图形简单化历史历史信息提供了返回最近可访问状态的能力通过在超类中加入历史图标(H+圆圈)展现历史信息。历史练习:状态转换图为下页描述的提供课程类建立状态转换图课程提供类的状态图结构主体:结构 你将可以能:了解4+1视图的模型建立UseCaseView建立LogicalView建立ProcessView建立DeploymentView建立ImplementationView4+1视图结构模型LogicalViewFunctionalityImplementationViewSoftwareManagementReuse,PortabilityProcessViewPerformanceAvailablityFaultToleranceDeploymentViewPerformanceAvailablityFaultToleranceScalabilityDeliveryandInstallationUseCaseViewUnderstandabilityUsability最终用户系统集成者软件工程者系统工程者UseCase视图UseCase和UseCase报表涉及:功能性、必要功能、执行在项目计划中扮演的角色,驱动系统测试,用户文档在Rose4.0中:usecase图(在UseCaseView的文件夹中)UseCaseView逻辑视图在类中分解,在包中组合类建筑上重要的类涉及:功能性、行为、结构的使用、设计模式在Rose4.0中:类图LogicalView例子:逻辑视图例子:UseCaseView逻辑视图在类中分解,在包中组合类建筑上重要的类涉及:功能性、行为、结构的使用、设计模式在Rose4.0中:类图例子:逻辑视图例子:逻辑视图过程视图在过程、任务、现程和交互结构中分解涉及:相关时间问题,响应时间,平行,分发、冗余在Rose4.0中:协同图或组件图例子:过程视图扩展视图将系统分解为节点和软件组件和过程到节点的映射提供系统结构上的软件透视涉及:远程通信、分发、一致性、缩放比例、执行、冗余、有效性在Rose4.0中:扩展视图例子:扩展视图实现视图分解成模型、子系统、层和子系统与层间的界面涉及:软件开发,配置管理,发布决策,代码差异,团队组织,契约,获得代码和原始代码的封装在Rose4.0中:组件视图(在Component文件夹中)例子:实现视图例子:实现视图详细设计主题:详细设计你将可以能:在Rose模型中加入详细设计加入设计级类指定关联和聚合指定聚合牵制指定操作信号指定属性数据类型和初始值更新交互图展现消息同步选项设计边界类在分析期间,高级边界类被定义在设计期间,用户界面设计被完成窗口设计窗口数量处理用户时间通常使用一个GUI建立器通过逆向工程,结果可以被传输到Rose中加入设计级类在设计期间,类被加入以简化系统实现Utility类的加入提供了可以在多种背景下使用的公共服务包(如:数学运算)类的加入可以包装非面向对象的库和应用类的加入帮助执行一些需要的功能模型的合并可以解决设计问题Stereotypes可以用于传达类的目的更新逻辑视图图形交互图被更新在domain类和被加入的实现类间展现交互操作由于附加的设计类修改交互操作类图被更新加入新包类间的新关系由于附加的设计类,关系可以被删除由于附加的设计类,包中的关系可以被修改更新组件视图图形加入包组件图被更新附加包附加包的关系包的关系可以被改变建立一个课程方案的实现类登记者必须输入id号以便启动方案id号一旦被确认就可以访问系统被称为id列表的类被加入到系统中CouseForm和id列表间的关系被加入模型中更新类图更新协同图设计关系在设计期间,关系被完善导航--每种关系都被检测以便确定是否需要双向导航可视化链接--可视化链接加入到协同图中,以便帮助在关系中精练决定Containment--byvalueorbyreferncecontainmentisdecidedMultiplicity--re-visitmultiplicityforeachendofarelationshipandspecifycontainersformultiplicityofmorethanoneParameterizedClasses--additionofparameterizedclassesformultiplicitygreaterthanone建立一个课程方案的关系设计Relatedclasses DesignDecisionManagecurriculumFormDependencyrelationshipandIDList (localvisibility)ManageCurriculumFormAggregationbyvalueCourseForm(fieldvisibility)CourseFormandDependencyrelationshipCourseManager (parametervisibility)CourseManagerandDependencyrelationshipTransactionmanager(globalvisibility)CourseManagerandDependencyrelationshipCourse(localvisibility)CourseOffering Aggregationbyreference (fieldvisibility)Relatedclasses DesignDecisionTransactionManager DependencyrelationshipandCourse (parametervisibility)TransactionManger DependencyrelationshipandDbCourse (localvisibility)DBCourseand DependencyrelationshipCourse (parametervisibility)TransactionManager DependencyrelationshipDBOffering (localvisibility)DBOfferingand DependencyrelationshipCourseOffering (parametervisibility)建立一个课程方案的关系设计输出控制输出控制展现了保护级为属性获取或设置方法(缺省=private)为关联获取或设置方法(缺省=public)类的操作(缺省=public)输出控制选项Public--可访问类的成员和类的实例Protected--可访问类的成员和所有子类的成员Private--可访问类的成员和友元Implementation--可访问类的成员浏览器中的输出控制属性和操作的输出控制中是以图标的形式显示在浏览器中为一个或多个Multiplicity进行设计多余一个的Multiplicity一般在使用容器类时被设计容器类的实例是其它对象的集合普通容器类包括:Sets,lists,dictionaries,stacks,queues,…容器类经常用parameterizedclasses来实现把参数类加入模型中参数类可以被加入模型中用于说明多余一个的Multiplicitydesign属性设计在分析阶段,充分的指出属性名称属性表述必须在设计阶段被完成选项的缺省类型必须被分配到每一个属性中Built-indatatype(e.g.,int,float)User-defineddatatype(e.g.,enum)User-definedclass设计属性类的属性类的属性对于类的所有实例都是有效的在C++中,这是一个静态属性操作设计在设计阶段,每一个操作的信号被决定操作要旨操作转换类型设计操作类的操作类的操作对于类的所有实例都有效在C++中,这是一个静态操作DesigningforInheritance在设计期间,inheritancehierarchiesarerefinedto:SuperclassesaremadeabstractclasseswhereappropriateOperationsaremadevirtualorpurevirtualtosupportpolymorphismMultipleinheritancehierarchiesarechangedtosupportvirtualbaseclasseswhereappropriate抽象类抽象类没有实例可视化和纯可视化操作可视化操作可以被子类中的操作所限制纯可视化操作不包含代码--代码必须有子类提供可视化基类确保公共基类的拷贝是可继承的,当它起源于中级基类,公共基类被成为可视的消息同步协同图被更新以便描述消息同步策略Simple--单线程控制Synchoronous--当客户端发送一个消息到接收者并且接收者接受这个消息的操作过程Balking--如果接收者可以立刻接收消息,客户端仅发送一个消息Timeout--如果接收者不能在规定时间内处理消息,客户端放弃该消息Asynchronous--客户端发送一个消息到接收者,无须等待响应即可处理或继续执行消息同步练习:设计在下页用协同图为产生目录方案做设计决定在设计过程中,图形中的可视化操作将有所帮助学期课程列表在CourseList类中被建立建立目录协同图RationalApproach的对象技术软件开发的趋势特别的软件过程瀑布是的开发模式项目重要性源代码的实现线性不可逆功能数据模型数据模型/类的驱动过程集中的结构连续的过程利用反复的、增长的开发资源重用的重要性可视化建模的开发基于组件的开发对象建模UseCase/Scenario驱动过程分布式客户/服务器结构UML和UML对象过程设计支持软件开发的趋势UnifiedModelingLanguageUML被用于对象过程中UML是一种标准的建模语言或标记法帮助模型的沟通和浏览UML不是一个过程定义无须指定软件工程中被使用或开发的模型的步骤和活动对象的过程使用UML作为计划:用于表达通过过程而产生的模型对象过程的特性模型的顺序和内容;artifacts被产生活动被有序的执行对于每一个artifact,工作者都有责任UML的过程组件和模型需求抓取过程组件需求抓取的目的:关于系统应该做什么这一问题使用户与商业用户达成一致需求抓取导致Use-Case模型什么是Use-Case模型系统要完成的任务(usecase)和系统的确范围(actor)模型use-case模型包括:ActorsUsecases需求抓取的工作流分析和设计过程组件分析和设计的目的:描述系统如何实现usecase建立一个可以弹性变更的系统建立稳定的软件结构建立一个输入实现和测试活动的规格说明分析和设计导致设计模型什么是设计模型设计模型包含:类设计包Use-Case实现此模型描述在实现时系统是如何被认识的设计模型是源代码的抽象在usecase中定义基本的对象分析设计阶段的工作流实现过程组件实现的目的:在组件术语中实现类和对象在实现子系统术语中定义组件组织测试单元开发组件建立可执行系统实现导致实现建模什么是实现模型实现模型包含:组件实现子系统组件包括可释放组件,如:executables由可释放组件产生的组件,正如:源代码实现中的工作流测试过程组件测试目的检验对象之间的交互检验软件中所有组件的集成检验所有需求被正确的实现定义并且确保在系统扩展前缺陷被指明测试系统可以被发布测试导致测试建模什么是测试模型测试模型包括:测试用例测试过程测试用例可以通过一个或多个测试过程被实现测试过程可以实现一个或多个测试用例UseCase是定制测试用例的主要部分测试的工作流课程登记用例学习课程登记问题描述在每学期开始,学生需要一份课程目录,包括本学期提供的课程列表和所提供的课程信息(如:教授名、科系、首要条件、时间、地点,这些可以帮助学生作出课程选择新学期允许学生选择四门所提供的课程。此外,学生可以选择两门备选课程,以防主课满额或被取消。每门课程人数不能超过10人少于3人。一旦学生登记课程完成,登记系统将信息传送到记帐系统,以便学生可以交纳本学期的费用。课程登记问题描述教授可以访问联机系统,以便获取交课信息。它也需要了解该课的学生情况每一学期,有一段时间,学生可以修改所选课程。在这段时期,学生必须可以访问系统需求抓取课程登记问题的UseCase图证明UseCaseUseCase报表中描述的UseCase包括:简短描述usecase高级描述事件流程执行期间的操作序列建立UseCase报告UseCase的UseCase报告包含链接到UseCase的外部文档课程登记者简短描述usecase通过一个学生驱动,提供学生建立、删除、修改和浏览指定学期课程信息的能力事件流程预定义没有主流程当学生输入id号是usecase开始,系统检验学生id号合法并提示学生选择本学期或下一学期。学生输入选择的学期,系统提示学生选择活动:建立、浏览、修改、打印、删除、或退出。CREAT,A-1:建立新的课程流程被执行REVIEW,A-2:浏览课程流程被执行MODIFY,A-3:修改课程流程被执行PRINT,A-4:打印课程流程被执行DELETE,A-5:删除课程流程被执行QUIT,usecase结束课程登记另一个流程A-1:建立新的课程系统显示空的课程屏幕。学生输入4门主课程好和2门备选课程号(E-3)。学生提交课程要求,系统回检查每一个被选举权主课程的必要条件(E-4),如果此门课程开放,并将学生加入其中(E-5)。系统打印课程表(E-6)和帐单信息到记帐系统进行处理(E-7)。UseCase重新开始A-2:浏览课程系统为学生登记的所有课程检索并显示下列信息:课程名、课程号、课程提供号、时间、地点等。当用户指示浏览完毕,UseCase重新开始课程登记A-3:修改课程系统检查是否超出修改日期范围(E-9)。系统为学生登记所有课程检索(E-10)并显示下列信息:课程名、课程号、时间、地点等,系统提示用户选择活动:删除课程、加课程或退出。如果活动被选择删课程,(A-6):删除课程被执行加课程,(A-7):加课程被执行退出,系统打印课程表(E-6),UseCase重新开始A-4:打印课程系统打印课程表(E-6),UseCase重新开始课程登记A-5:删除课程表系统检索(E-8)并显示当前课程信息,系统要求用户证实删除信息,如果接受,课程被从系统中删去,如果课程未被证实,操作被取消,UseCase重新开始A-6:删除课程学生输入删除课程号,系统要求用户证实删除信息,如果接受,课程表被从系统中删去,如果课程未被证实,操作被取消,UseCase重新开始A-7:加课程学生输入所加课程号。系统检查必要条件和状态(E-4)并且,如果课程开放(E-5)将学生加入课程中,UseCase交互流程重新开始登记课程另外的流程E-1:非法用户id号输入,用户可以重新输入id号或中断UseCaseE-2:非法学期号输入,用户可以重新输入学期号或中断UseCaseE-3:非法课程号输入,用户可以重新输入课程号或中断UseCaseE-4:用户不满意所有的必要需求,用户通知课程不被计划,如果可能交互课程被代替,UseCase继续。E-5:用户所选的课程被取消,如果可能交互课程被代替,UseCase继续。E-6:课程表不能被打印,信息被存储,通知用户信息需重新提交,UseCase继续E-7:系统存储所有帐单信息并重新将其提交到记帐系统,UseCase继续E-8:系统不能检索课程信息。UseCase在最初开始E-9:系统通知用户课程表不能被修改,UseCase在最初开始发现对象和类发现类类是具有相同结构和行为的对象的集合Stereotype是模型元素的新类型,它可以扩展可变模型的语义每个类最多有一个stereotype在分析中有三种不同的stereotype实体类该类的模型信息和相关行为与周围环境相独立边界类在系统周围与模型内部之间可以进行模型通信的类控制类该类的模型控制和行为明确到一个或多个UseCases中发现类UseCase检测并查找实体类和边界类最初,一个UseCase建立一个控制类控制类在分析过程中可以被归并例如:课程登记UseCase边界类RegistrationForm,ScheduleForm,billingInterface,AddDropCourseForm实体类Course,CourseOffering,StudentSchedule,StudentInformation控制类RegistrationManager什么是方案方案是UseCase的一个实例每个UseCase拥有一个方案网主方案所有都很好次方案除了主方案以外的方案也可以用交互图表示有两种类型的交互图序列图协同图UseCase实现:建立课程方案UseCase实现:建立课程方案建立类图发现包大多数模型包含许多类他们可以组合在包中用于模型管理包是类和其它包的逻辑集合我们发现可以将登记系统中的类放入三个包中接口、人员和学校事件登记系统的主类图对象行为课程类的嵌套状态的状态转换图历史(登记格式类)的嵌套状态软件结构结构和包由分析进入设计时,软件结构被完成每一个结构元素被加入到逻辑视图中作为包例如:数据库通信错误处理需要时加入关系更新主类图从逻辑模型移到物理模型系统的物理特点在此时被开发并被定位物理视图组件视图描绘包、组件和它们的关系展现多个组件图拓朴视图展现节点间的关系展现一个拓朴图主组件图组件视图最初包含一个组件视图主的组件视图在结构组件视图中是一个高级包包之间的依赖关系通过依附关系展现每一个包都可以被打开看它的内部信息简单的主组件视图组件模型Rose可以用于建立可执行文件和库不能为这种组件类型产生代码拓朴模型拓朴视图展现节点和系统间的有效的通信路径节点中进程的分配拓朴视图包含一个图形进程进行是一个控制线程的执行大的系统可以被分为多个过程进程在节点上运行进程调度类型可以通过处理器被确定在进程图中Preemptive(缺省)-高优先权可以先于低优先权的进程执行Nonpreemptive-直到加入放弃控制,当前进程才停止Cyclic-从一个进程到另一个进程的控制路径Executive-运算控制进程调度Manual-通过系统外界用户,进程被调度详细设计详细设计建模事件设计边界类设计控制类设计实体类虚构设计级类一些数学类设计模式精炼整个系统模型设计关系在设计期间,关系被考虑成熟Navigation-每种关系被检测以便确认是否需要导航关系Linkvisibility-可视化链接被加入协同图中帮助精炼关系决定Refinement-关联可以在依附关系中被成熟Containment-通过值和参数,包含被决定Multiplicity-re-visitmultiplicityforeachendofarelationshipandspecifycontainersformultiplicityofmorethanoneParameterizedClasses-additonofparameterizedclassesformultiplicitygreaterthanone消息同步协同图被更新以便展现消息的同步决策Simple-单线程控制Synchronous-当客户端发送消息到接收端并且接收端接受消息,操作可以继续Balking-如果接收端立刻准备接受消息,发送端可以发送消息timeout-如果接收端不能在指定时间内处理消息,发送端放弃该消息Asynchronous-发送端给接收端送出消息后,无需等待响应即可继续执行RationalRoseC++的双向工程从Rose系统模型中产生C++代码从C++代码中逆向出模型循环迭代的系统开发双向工程设计更新和双向工程在保护区外界基于资源进行编辑代替最初模型的反向工程初始图结构的保存代码必须被重新产生在反复循环中结算循环同步模型和代码(包含注释)依靠手工、自动或使用Rose变化来完成Rose/C++的双向工程总结:RationApproach工程解决方案的成功OO分析、设计和可视化建模中心结构UseCase驱动团队开发和多用户的支持代码产生逆向工程双向公程循环迭代的开发方式模型与代码的同步增加资源重用 增长可维护性iUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTl!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&

温馨提示

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

评论

0/150

提交评论