1、目录表v简介ROSE提供的不同视图配置用户界面v问题描述问题需求描述vUse Cases建立Actors,Use Case 和Use Case 图建立序列图建立协同图v包和类建立类、包和模版重新分配类和包建立类图目录表v关系关联和聚合关系的建立反向关系的建立v操作和属性建立并验证类的属性和操作v继承继承关系的建立使用类指南建立类v对象行为状态转换图的建立目录表v结构建立4+1的视图模型v详细设计叠代包的建立用设计阶段的信息(如:导航、抑制操作、属性数据类型、操作信号和信息同步选项)更新模型v双向工程简介主题:介绍v你将可以:讨论ROSE支持的不同视图列出每一种视图案的图形配置ROSE用户界面什
2、么是Rational Rose?vRational Rose 是一种工具,它可以在Rose建模中提供建立、视图、修改和操作组件的能力vRose 运行环境Windows NT,Windows 95UNIX(Solaris,HP/UX,AIX,DEC Unix)vRose支持Unified、Booch、OMT标记法什么是Rose建模?vRose“建模”代表问题域和系统软件每一种模型都包含在建模中提供可视化组件和操作组件的视图、图形和规格说明书v每一种基础元素有多种视图在Rose“建模”中,每一个对象都被描绘Rose在“建模”中保证了一致的语义描述Rational Rose中的视图v在Rose中有四
3、种视图Use Case 视图v包、Actor、Use Case、对象、消息和关系逻辑视图v包、类、状态和关系组件视图v包、组件和依附关系拓扑视图v节点和关系Use Case视图v在Use Case中的元素可以在多个图形中被浏览v在Use Case视图中可以包含以下的图形Use Case图v包、actors、use case和关系相互作用图(序列图或协同图)v对象和消息Use Case图形vUse Case图形描述了一个系统应该执行的什么或应该有什么外部系统它描述了存在的actors(外部系统)、use case(该系统应该执行什么)以及它们的关系Use Case图性形可以描述该系统中部分或全部
4、的use case交互图v交互图描述了系统在逻辑设计中存在的对象及其间的关系它可以代表系统中对象的结构vRose中包含两种交互图,它们对同一交互操作提供了不同的浏览视角序列图v按时间顺序排列对象交互操作协同图v围绕对象及其间的链接关系组织对象的交互操作逻辑视图v在逻辑视图中的元素可以有一种或多种图形来表示v逻辑视图可以包含以下的图形类图v包、类和类的关系状态图v状态、事件和转换关系类图v类图描绘的系统的静态视图它描述了系统逻辑设计中存在的包、类异己它们间的关系类图可以代表该系统中部分或全部的类结构v在模型中有一些典型的类图状态图v状态图描述了:给定类的状态转换空间导致状态转换的事件导致状态改变
5、的动作v为类的重要动态行为建立状态转换图组件视图v组件视图中的元素可以在一个或多个组件图形中被浏览v组件图形描述了在系统物理设计中组件中类和对象的分配情况组件图可以代表系统中部分或全部的组件结构v组件图形描述了包组件依赖关系拓扑视图v在拓扑视图中的元素可以在拓扑图形中被浏览拓扑视图只能包含一个拓扑图形v拓扑视图描述了一个系统在物理设计阶段进程处理的分配情况v进程图描述了节点连接Rose用户界面vRose的组成标准工具条图形工具条浏览区文档窗口图形窗口规格说明书状态条Rational Rose界面标准工具条浏览区文档描述窗口状态条图形工具条图形窗口Rose 标准工具条vRose的工具条独立于当前
6、打开的图形窗口界面建立新的模型存储模型或目录复制打印浏览文档浏览交互图浏览拓扑图浏览前一幅图放大取消操作打开已存在的模型剪切粘贴内容感知帮助浏览类图浏览组件图浏览双亲图缩小缺省窗口Rose的浏览区vRose的浏览区描述了原本的视图模型,并且提供了在每一种视图的组件间进行访问的功能“+”表示该图标为折叠图“-”表示该图标已被完全扩展开v该浏览区可以可见或不可见Dockedv位置有边界范围浮动v可移动到任何位置浏览区完全扩展树折叠树固定浏览窗口浮动浏览窗口文档窗口v文档窗口为所选择的项和图形提供建立、浏览或修改文档的能力v当不同的选项和图形被选择时,进允许一个文档窗口被更新v文档窗口可视或被隐藏固
7、定或浮动可固定的文档窗口浮动的文档窗口配置用户界面vROSE用户界面可以被定制显示或不显示工具条从工具条上添加或删除按钮显示或不显示浏览窗口显示或不显示文档窗口使工具条、浏览窗口或文档窗口固定或浮动ROSE选项v一般选项一般选项字体、备份文件的使用、存储命令v图形图形显示属性、操作、可视化、控制焦点、交互图序列号、未定义的注释、自动重设大小v注释注释定义注释UML,Booch,OMTv工具条工具条工具条显示与定制v代码产生代码产生建立、修改、删除代码产生的性质设定v数据定义语言数据定义语言建立、修改、删除数据定义语言产生的性质设定练习:定制用户界面v设置用户界面显示工具条显示浏览窗口和文档窗口
8、显示状态条将图形和文档窗口字体设置为Arial 10号设置统一的缺省注释显示操作符号不显示属性不显示操作关闭控制焦点存储改变并且退出课程登记实例课程登记问题描述v每学期开始学生需要一份课程表,它包含本学期所提供的课程列表及每门课程的相关信息。比如:导师名称、科系、必要条件、课程时间、上课地点,可以帮助学生作出合理的决定v新系统规定学生可以选择四门必修课程。此外,他还要选择两门候补课程以防某门课程人员满额或被取消。每门课程人数不得多余10人或少余3人。一旦学生完成登记过程,登记系统将信息传入记费系统以便计算学生在本学期的学费数额/课程登记问题描述v导师需要随时访问系统,知道有那一门课程需要任教。
9、他也可以了解他的课有那些学生v每学期开始,学生有一段试听时间,学生可以改变所选课程内容。在这段时间学生必须可以访问系统随时更改课程选项主题:Use Casesv你将可以建立Actors和Use Cases建立Use Case图描述Use Case什么是Use Case?vUse Case是所用系统的规格方式在响应外部Actor触发时,系统所执行的功能vUse Case提供了一种手段捕获系统需求专业人士和最终用户间的连接测试系统v注释:Use case 名称浏览窗口中的Use Cases什么是Actor?vActor是一些人或事:可以激或系统交互信息可以对系统进行输入可以从系统被动的接受信息v通
10、过调查发现Actor直接使用系统的人系统的维护人员系统使用的外设需要与此系统想连的其它系统在浏览窗口中的Actor什么是Use Case图?vUse Case图说明了系统和它的Actors系统发展了的Use casesActor和 Use case间的交互课程登记实例的Use Case图描述Use CasevUse Cases被描述在简短的描述vUse Case 的高级描述事件流程v运行过程中的执行序列课程登记实例的简洁描述课程登记实例的事件流程v当学生敲入id号时Use Case开始,系统检测id号是否合法并且提示学生选择本学期或下一学期。在学生选择完毕后,系统会提示学生其它选项:建立课程表
11、浏览课程表修改课程表v删除课程v添加课程v学生表示选项均已完成。系统则打印学生课程表,通知学生登记完毕。系统将该学生的记费信息传入收费系统以便处理课程登记实例的事件流程v其它流程如果输入非法id号,系统不允许访问。如果企图建立的学期课程表已存在,系统将会提示进行其它选择v建立课程表学生输入4个主课程号和2个候补课程号。学生提出课程要求,然后:1.检查该课程是否满足学生要求2.如果该课程开放,将学生加入课程名单v其它流程如果主课程无效,则系统将替换另一课程课程登记实例时间流程v浏览课程表学生对学期所选课程的要求信息,以及学生所选课程信息,包括:课程名称、课程号、每周上课次数、上课时间和上课地点等
12、v修改课程表删除所选课程学生指示删除所选课程,系统检查是否超过最终修改日期。如果没有过期,则系统删除学生所选课程,系统通知学生处理完毕课程登记实例事件流程v修改课程表加入新课程学生指示要加入新的课程,系统检查是否超出最终修改日期,如果没有,系统则:1.是否超过最大课程数量2.检查所选课程是否满足必要条件3.如果该课程开放,将学生加入课程名单中建立事件流程v为use case建立的事件流程被包含在一个与use case关联的外部文档中。练习:Use Case图形v为我们在第8页建立的课程登记系统建立use case图形练习:证明Use Casesv为“维护课程信息”的use case建立简短的描
13、述和事件流程use case提供以下功能v建立、修改和删除学期课程v建立、修改和删除学期提供的课程v在提供的课程被建立前,教授要选择所教的课程包含在登记员的有效打印列表中v如果教授不能对所提供的课程任教,则此门课程取消主题:包和类v你将可以:建立类你可以给类建立stereotypes建立包重新配置类建立类图查找类v类是具有相同结构和行为的对象的集合vstereotype事建模元素的新类型,这种建模元素扩展了metamodel的语义每个类最少有一种stereotypesv在分析中有三种普通的stereotypes实体类v模型信息和相关行为广泛的永久的独立于它的环境边界类v系统环境和内部工作见的模
14、型关联控制类v一个或多个模型控制行为规格查找类vUse cases可以对查找实体和边界类型进行检查v最初,给每一个use case建立一个控制类控制类可以作为分析过程被归并v例子:课程登记的Use Case边界类v登记表格、计划表、计费界面、AddDrop 课程表实体类v课程、提供课程、学生计划、学生信息控制类v登记管理用Browser建立类v当一个类被发现,它就被加到浏览器中证明类v一旦类被建立,它应该被定义定义是原文,它包含类的责任和目的描述类的规格说明v类的规格说明包含类的额外信息加入Stereotypesv类的Stereotypes可以被加到模型中什么是包v包含一些类的主要模型v它可以
15、组合在包中帮助模型管理v包是一个逻辑类或其它包的集合v我们发现可以把登记系统中的类放在三个包中界面、人和学校事件登记系统包包的规格说明v包的规格说明包含有关包的额外信息证明包v一旦包被建立,它应被定义定义的原文描述了包的目的v定义被加在文档窗口中将类移入包中v一旦包被建立,合适的类被重新分配在包中什么是类图v逻辑试图有包和类组成v在逻辑视图中,类图是包含类部分(或所有)类和包的视图通常可以有许多类图类图拖拽工具条主类图v逻辑视图最初包含一个视图该图形被称为Mainv主类图是逻辑视图中典型的高级包视图登记系统的主类图在包中进行浏览v每个包一般都有自己的主类图v该图形一般展现包中的“公众”类v其它
16、包中的类可以和它关联公众类连接v在分析后加入类图学校事件包中的主类图额外的类图v需要时可以加入额外的类图v它们展现了模型中包和类的另一种“视图”v例子:方案中多个类的视图包中“私人”类的视图一个或多个类的视图及它们的属性和操作inheritance hierarchy视图学校事件包中的额外类图展现Stereotypesv类的stereotype可以展现在类图中删除包和类v如果从浏览器中删除包和类,它将从模型中被删除v如果从类图中删除包和类,它只会在类图中消失而仍然保留在模型中练习:在逻辑视图中加包v将下列包和描述加入逻辑视图中人员登记系统相关的人员信息学校的物件登记系统的组成信息界面actor
17、访问的界面信息练习:重新分配类v将类重新分配到合适的包中练习:维护课程的逻辑视图v将上述三个包加入逻辑视图的main视图中练习:为包建立Main类图v为每一个包建立Main类图练习:额外的类图v为学校物件建立额外的类图图形名称:课程信息类:课程和提供的课程主题:对象相互作用v你将可以:建立序列图建立协同图什么是方案(Scenarios)v方案是Use Case的实例v每一个Use Case都有一个方案网主方案(happy day scenarios)v所有都很好次方案v除了主方案以外的部分v方案可以在交互图中被描述v有两中类型的交互图序列图协同图序列图v序列图描述了在时间上对象交互的安排v图形
18、展现了多个交互对象信息交流的序列v序列图包含对象的生命线按顺序对象间的信息交流控制焦点(可选的)建立序列图序列图工具条选择工具文本注释注释指示对象消息反身消息什么是对象v对象是一种概念、抽象或具有明确的边界的事情和应用目标v对象是具有:状态行为特性v序列图中的每一条垂直线代表一个外部actor或系统中的对象建立对象v在序列图中可以用不同的方式代表actor和对象Actor对象和类类对象对象规格说明用序列图建立一个新类v随着序列图的继续发展,也可以发现新的类相关的类v在交互图中建立的类可以被放置在Use Case视图中它们可以和逻辑视图中的类相关建立消息v对象通过消息进行合作v消息是一个从发送者
19、指向接受者的箭头v可以为消息选择编号OR反身消息v对象可以与自身合作v可以以一种反身消息进行描述消息规格说明移动消息v当发现更多的信息,已存在的消息可以被移动插入消息v可以在序列图中的任何位置插入新的消息控制焦点v控制焦点代表对象中焦点控制流程的相关时间它代表对象指挥消息的时间注释v注释可以附属在序列图中的任何实体上协同图v协同图是方案定的另外一种图形代表v协同图可以独立地被建立直接从序列图中建立协同图的工具条建立对象v在协同图中有不同的方式代表actors和对象对象间的链接v链接为提供了对象间通信的路径它允许对象进行交谈链接规格说明建立消息v对象通过消息进行合作v消息是一个从发送者指向接受者
20、的箭头v可以为消息选择编号建立消息v可以用同一个箭头描述多个消息同一个类的多个对象v消息可以发送给同一个类的多个对象v这些可以通过堆栈对象图标来实现反身消息v对象可以同自己进行合作v它可以通过反身消息来描述移动或插入消息v在协同图中消息不能被移动或插入v序列图必须被使用v过程转换序列图移动或插入需要的消息转换回协同图数据(对象)流程v在图中可以描述数据的返回值只能描述重要的数据返回注释v注释可以被附属在协同图的任何一个实体上主题:关系v你将可以能:建立关联和聚合关系用名称、角色和多种指示增加关系建立反身关系加入强制关系关联和聚合vUse Case可以检测并决定两个类之间是否应该存在关系v只要两
21、个对象可以互相识别,它们就可以通信v关联和聚合为通信提供了一条途径v关联是两个间的非直接连接v聚合是关联的一种强制模式它描述整体与部分之间的关系关联还是聚合?v如果两个对象通过整体和部分的关系具有紧密的边界这种关系称为聚合v如果两个对象通常被人为是独立的这种关系称为关联关系和类图v包中的Main类图一般包含:包中的公众类v其它包中的类可以跟它进行通话的类其它包中的类和公众类进行通信v如果需要,关系则被加入另外一个图形关联名称v关联或聚合可以被命名通常是动词或动词短语角色名称v在类间的关联中角色表示目的或能力通常是名词或名词短语多种指示v每一个关联和聚合的尾布都包含多种指示在关系中指示多个对象的
22、编号零或多0.*一或多1.*零或一0.1指定范围2.7只有一1反身关系v在反身关系中,同一个类中的多个对象可以有许多合作方式Course0.*0.*Pre-requisite约束v约束是一种必须被维持的条件的表达方式用弯曲的线表示强制1.*Ordered by employee idProfessorDepartment1.*is a member ofis head ofSubset关联规格说明更新类图v一旦关联或聚合被建立,其它类图也可以被更新,以便展现关系包的关系v包之间存在从属关系v包之间的关系意味着,该包中的类可以和其它包中的类进行通信练习:关系v使用建立课程和产生目录的交互图:在类
23、间加入关系在需要时加入多种指示、角色名称、关联名称和强制关系在包间加入关系操作和属性主题:操作和属性v你将可以能:为类建立操作和属性验证操作和属性在类图上显示操作和属性什么是操作v类具体表达一套责任,这种责任定义了类中对象的行为类的责任通过操作被执行v操作应该执行一种简单的功能操作和交互图v在序列图或协同图中显示的消息通常是类的操作(消息接收者)v从一个边界类发消息到另一个边界类可以通过一个图形用户界面(GUI)来实现,它通常是不成熟的操作它可以通过GUI建立者的性能被实现在序列图中将消息映射到操作中在协同图中将消息映射到操作中浏览器v一旦在交互图中建立操作,消息会自动被加入逻辑视图的类中建立
24、操作的其它方式v操作可以在方案图中单独被建立通过浏览器在类图中通过类的规格说明v例子:在次方案中包含的操作不能在序列图或协同图中描述内部(帮助)操作用浏览器管理操作v操作可以通过浏览器被建立、拷贝、移动和删除在类图中建立操作v操作可以通过类图被建立通过类的规格说明建立操作v通过类的规格说明建立操作操作规格说明验证操作v操作名称应该有一定风格规范提供跨项目的一致性引导多个可维持的模块和代码v操作的明明应该可以西安市它的结果,而不是执行操作后的步骤例子:getGrade()、instead of calculateGrade()v操作应从接受者的愿望命名,而不是发送者v每一个操作应该有一个清晰简明
25、的定义为操作加入文档资料v一旦操作被建立,它应该被描述在类图中显示操作v操作可以在类图中被显示显示操作信号v操作信号也可以被显示如果争论类型和缺省值没有被输入,Rose将用argtype作为缺省值练习:继承v建立一个称为登记用户的超类v为登记用户类建立学生信息和教授信息子类将一个普通的属性或操作移动到新的超类中v必要时重新分配关系v必要时加入强制信息联系:继承v在人员属性和操作类图中显示新类展现所有的属性和操作不显示任何关系主题:对象行为v你将可以能:建立状态转换图包含v状态v转换v动作和活动v嵌套状态什么是状态转换图v状态转换图用于描述给定类的发展历史,导致状态转换的事件和导致状态改变的活动
26、v对象状态是对象可以存在的可能条件v为类的重要动态行为建立状态转换图状态转换工具条选择工具文本注释注释锚状态初始状态终止状态转换反身转换什么是状态v状态是对象可以存在的可能条件状态转换v状态转换是从最初状态到成功状态的改变反身状态转换v反身状态转换是一种初始状态等于成功状态的转换状态转换规格状态转换Argumentsv伴随一个事件的数据就是一个argument警戒(Guarded)状态转换v通过警戒(guard)的使用,转换可以形成条件活动v活动是伴随事件转换的操作发送事件v事件可以触发传送另一个事件起始状态v起始状态是对象的最初状态只能有一个起始状态终止状态v终止状态是对象最后的状态可以没有
27、终止状态,也可以存在多个终止状态状态规格说明状态活动类型v简单状态用自由格式文本代表发生的事件v发送事件一个活动出发下一个事件状态活动规格说明状态中的活动v通过关键词的输入,活动被放置在先前状态中活动被输入直到从状态中退出v通过关键词do,活动被放置在先前的状态中活动从状态中退出v通过输入关键词exit,活动被放置在先前状态中嵌套状态v嵌套状态可以用于将复杂的图形简单化历史v历史信息提供了返回最近可访问状态的能力v通过在超类中加入历史图标(H+圆圈)展现历史信息。历史练习:状态转换图v为下页描述的提供课程类建立状态转换图课程提供类的状态图结构主体:结构v你将可以能:了解4+1视图的模型建立Us
28、e Case View建立Logical View建立Process View建立Deployment View建立Implementation View4+1视图结构模型Logical ViewFunctionalityImplementation ViewSoftware ManagementReuse,PortabilityProcess ViewPerformanceAvailablityFault ToleranceDeployment ViewPerformance AvailablityFault Tolerance ScalabilityDelivery and Install
29、ationUse Case ViewUnderstandabilityUsability最终用户系统集成者软件工程者系统工程者Use Case 视图vUse Case和Use Case 报表v涉及:功能性、必要功能、执行v在项目计划中扮演的角色,驱动系统测试,用户文档v在Rose 4.0中:use case 图(在Use Case View的文件夹中)Use Case View逻辑视图v在类中分解,在包中组合类v建筑上重要的类v涉及:功能性、行为、结构的使用、设计模式v在Rose 4.0中:类图Logical View例子:逻辑视图例子:Use Case View逻辑视图v在类中分解,在包中组
30、合类v建筑上重要的类v涉及:功能性、行为、结构的使用、设计模式v在Rose 4.0中:类图过程视图v在过程、任务、现程和交互结构中分解v涉及:相关时间问题,响应时间,平行,分发、冗余v在Rose 4.0中:协同图或组件图例子:过程视图扩展视图v将系统分解为节点和软件组件和过程到节点的映射v提供系统结构上的软件透视v涉及:远程通信、分发、一致性、缩放比例、执行、冗余、有效性v在Rose 4.0中:扩展视图实现视图v分解成模型、子系统、层和子系统与层间的界面v涉及:软件开发,配置管理,发布决策,代码差异,团队组织,契约,获得代码和原始代码的封装v在Rose 4.0中:组件视图(在Component
31、文件夹中)主题:详细设计v你将可以能:在Rose模型中加入详细设计v加入设计级类v指定关联和聚合v指定聚合牵制v指定操作信号v指定属性数据类型和初始值v更新交互图展现消息同步选项设计边界类v在分析期间,高级边界类被定义v在设计期间,用户界面设计被完成窗口设计窗口数量处理用户时间v通常使用一个GUI建立器通过逆向工程,结果可以被传输到Rose中加入设计级类v在设计期间,类被加入以简化系统实现Utility类的加入提供了可以在多种背景下使用的公共服务包(如:数学运算)类的加入可以包装非面向对象的库和应用类的加入帮助执行一些需要的功能模型的合并可以解决设计问题vStereotypes可以用于传达类的
32、目的更新逻辑视图图形v交互图被更新在domain类和被加入的实现类间展现交互操作由于附加的设计类修改交互操作v类图被更新加入新包类间的新关系由于附加的设计类,关系可以被删除由于附加的设计类,包中的关系可以被修改更新组件视图图形v加入包v组件图被更新附加包附加包的关系包的关系可以被改变建立一个课程方案的实现类v登记者必须输入id号以便启动方案vid号一旦被确认就可以访问系统v被称为id列表的类被加入到系统中vCouseForm和id列表间的关系被加入模型中设计关系v在设计期间,关系被完善导航-每种关系都被检测以便确定是否需要双向导航可视化链接-可视化链接加入到协同图中,以便帮助在关系中精练决定C
33、ontainment-by value or by refernce containment is decidedMultiplicity-re-visit multiplicity for each end of a relationship and specify containers for multiplicity of more than oneParameterized Classes-addition of parameterized classes for multiplicity greater than one建立一个课程方案的关系设计vRelated classes De
34、sign DecisionvManagecurriculumForm Dependency relationship and IDList (local visibility)vManageCurriculumForm Aggregation by value CourseForm (field visibility)vCourseForm and Dependency relationship CourseManager (parameter visibility)vCourseManager and Dependency relationship Transactionmanager (g
35、lobal visibility)vCourseManager and Dependency relationship Course (local visibility)vCourseOffering Aggregation by reference (field visibility)vRelated classesDesign DecisionvTransactionManager Dependency relationship and Course (parameter visibility)vTransactionManger Dependency relationship and D
36、bCourse(local visibility)vDBCourse and Dependency relationship Course (parameter visibility)vTransactionManager Dependency relationship DBOffering(local visibility)vDBOffering and Dependency relationship CourseOffering (parameter visibility)建立一个课程方案的关系设计输出控制v输出控制展现了保护级为属性获取或设置方法(缺省=private)为关联获取或设置方
37、法(缺省=public)类的操作(缺省=public)v输出控制选项Public-可访问类的成员和类的实例Protected-可访问类的成员和所有子类的成员Private-可访问类的成员和友元Implementation-可访问类的成员浏览器中的输出控制v属性和操作的输出控制中是以图标的形式显示在浏览器中为一个或多个Multiplicity进行设计v多余一个的Multiplicity一般在使用容器类时被设计容器类的实例是其它对象的集合v普通容器类包括:Sets,lists,dictionaries,stacks,queues,v容器类经常用parameterized classes来实现把参数
38、类加入模型中v参数类可以被加入模型中用于说明多余一个的Multiplicity design属性设计v在分析阶段,充分的指出属性名称v属性表述必须在设计阶段被完成v选项的缺省类型必须被分配到每一个属性中Built-in data type(e.g.,int,float)User-defined data type(e.g.,enum)User-defined class设计属性类的属性v类的属性对于类的所有实例都是有效的在C+中,这是一个静态属性操作设计v在设计阶段,每一个操作的信号被决定操作要旨操作转换类型设计操作类的操作v类的操作对于类的所有实例都有效在C+中,这是一个静态操作Design
39、ing for Inheritancev在设计期间,inheritance hierarchies are refined to:vSuperclasses are made abstract classes where appropriatevOperations are made virtual or pure virtual to support polymorphismvMultiple inheritance hierarchies are changed to support virtual base classes where appropriate抽象类v抽象类没有实例可视化和
40、纯可视化操作v可视化操作可以被子类中的操作所限制v纯可视化操作不包含代码-代码必须有子类提供可视化基类v确保公共基类的拷贝是可继承的,当它起源于中级基类,公共基类被成为可视的消息同步v协同图被更新以便描述消息同步策略Simple-单线程控制Synchoronous-当客户端发送一个消息到接收者并且接收者接受这个消息的操作过程Balking-如果接收者可以立刻接收消息,客户端仅发送一个消息Timeout-如果接收者不能在规定时间内处理消息,客户端放弃该消息Asynchronous-客户端发送一个消息到接收者,无须等待响应即可处理或继续执行消息同步练习:设计v在下页用协同图为产生目录方案做设计决定
41、在设计过程中,图形中的可视化操作将有所帮助学期课程列表在CourseList类中被建立建立目录协同图Rational Approach的对象技术软件开发的趋势v特别的软件过程v瀑布是的开发模式v项目重要性v源代码的实现v线性不可逆v功能数据模型v数据模型/类的驱动过程v集中的结构 连续的过程利用 反复的、增长的开发 资源重用的重要性 可视化建模的开发 基于组件的开发 对象建模 Use Case/Scenario驱动过程 分布式客户/服务器结构UML和和UML对象过程设计支持软件开发的趋势对象过程设计支持软件开发的趋势Unified Modeling LanguageUML被用于对象过程中vUM
42、L是一种标准的建模语言或标记法帮助模型的沟通和浏览vUML不是一个过程定义无须指定软件工程中被使用或开发的模型的步骤和活动v对象的过程使用UML作为计划:用于表达通过过程而产生的模型v对象过程的特性模型的顺序和内容;artifacts被产生活动被有序的执行对于每一个artifact,工作者都有责任UML的过程组件和模型需求抓取过程组件v需求抓取的目的:关于系统应该做什么这一问题使用户与商业用户达成一致v需求抓取导致Use-Case模型什么是Use-Case模型v系统要完成的任务(use case)和系统的确范围(actor)模型vuse-case模型包括:ActorsUse cases需求抓取
43、的工作流分析和设计过程组件v分析和设计的目的:描述系统如何实现use case建立一个可以弹性变更的系统建立稳定的软件结构建立一个输入实现和测试活动的规格说明v分析和设计导致设计模型什么是设计模型v设计模型包含:类设计包Use-Case实现v此模型描述在实现时系统是如何被认识的v设计模型是源代码的抽象v在use case中定义基本的对象分析设计阶段的工作流实现过程组件v实现的目的:在组件术语中实现类和对象在实现子系统术语中定义组件组织测试单元开发组件建立可执行系统v实现导致实现建模什么是实现模型v实现模型包含:组件实现子系统v组件包括可释放组件,如:executables由可释放组件产生的组件
44、,正如:源代码实现中的工作流测试过程组件v测试目的检验对象之间的交互检验软件中所有组件的集成检验所有需求被正确的实现定义并且确保在系统扩展前缺陷被指明测试系统可以被发布v测试导致测试建模什么是测试模型v测试模型包括:测试用例测试过程v测试用例可以通过一个或多个测试过程被实现v测试过程可以实现一个或多个测试用例vUse Case是定制测试用例的主要部分测试的工作流课程登记用例学习课程登记问题描述v在每学期开始,学生需要一份课程目录,包括本学期提供的课程列表和所提供的课程信息(如:教授名、科系、首要条件、时间、地点,这些可以帮助学生作出课程选择v新学期允许学生选择四门所提供的课程。此外,学生可以选
45、择两门备选课程,以防主课满额或被取消。每门课程人数不能超过10人少于3人。一旦学生登记课程完成,登记系统将信息传送到记帐系统,以便学生可以交纳本学期的费用。课程登记问题描述v教授可以访问联机系统,以便获取交课信息。它也需要了解该课的学生情况v每一学期,有一段时间,学生可以修改所选课程。在这段时期,学生必须可以访问系统需求抓取课程登记问题的Use Case图证明Use CasevUse Case报表中描述的Use Case包括:简短描述vuse case高级描述事件流程v执行期间的操作序列建立Use Case报告vUse Case的Use Case报告包含链接到Use Case的外部文档课程登记
46、者v简短描述use case通过一个学生驱动,提供学生建立、删除、修改和浏览指定学期课程信息的能力v事件流程预定义v没有主流程v当学生输入id号是use case开始,系统检验学生id号合法并提示学生选择本学期或下一学期。学生输入选择的学期,系统提示学生选择活动:建立、浏览、修改、打印、删除、或退出。CREAT,A-1:建立新的课程流程被执行REVIEW,A-2:浏览课程流程被执行MODIFY,A-3:修改课程流程被执行PRINT,A-4:打印课程流程被执行DELETE,A-5:删除课程流程被执行QUIT,use case结束课程登记v另一个流程A-1:建立新的课程v系统显示空的课程屏幕。学生
47、输入4门主课程好和2门备选课程号(E-3)。学生提交课程要求,系统回检查每一个被选举权主课程的必要条件(E-4),如果此门课程开放,并将学生加入其中(E-5)。系统打印课程表(E-6)和帐单信息到记帐系统进行处理(E-7)。Use Case 重新开始A-2:浏览课程v系统为学生登记的所有课程检索并显示下列信息:课程名、课程号、课程提供号、时间、地点等。当用户指示浏览完毕,Use Case重新开始课程登记vA-3:修改课程系统检查是否超出修改日期范围(E-9)。系统为学生登记所有课程检索(E-10)并显示下列信息:课程名、课程号、时间、地点等,系统提示用户选择活动:删除课程、加课程或退出。如果活
48、动被选择v删课程,(A-6):删除课程被执行v加课程,(A-7):加课程被执行v退出,系统打印课程表(E-6),Use Case重新开始vA-4:打印课程系统打印课程表(E-6),Use Case重新开始课程登记vA-5:删除课程表系统检索(E-8)并显示当前课程信息,系统要求用户证实删除信息,如果接受,课程被从系统中删去,如果课程未被证实,操作被取消,Use Case重新开始vA-6:删除课程学生输入删除课程号,系统要求用户证实删除信息,如果接受,课程表被从系统中删去,如果课程未被证实,操作被取消,Use Case重新开始vA-7:加课程学生输入所加课程号。系统检查必要条件和状态(E-4)并
49、且,如果课程开放(E-5)将学生加入课程中,Use Case交互流程重新开始登记课程v另外的流程E-1:非法用户id号输入,用户可以重新输入id号或中断Use CaseE-2:非法学期号输入,用户可以重新输入学期号或中断Use CaseE-3:非法课程号输入,用户可以重新输入课程号或中断Use CaseE-4:用户不满意所有的必要需求,用户通知课程不被计划,如果可能交互课程被代替,Use Case 继续。E-5:用户所选的课程被取消,如果可能交互课程被代替,Use Case 继续。E-6:课程表不能被打印,信息被存储,通知用户信息需重新提交,Use Case继续E-7:系统存储所有帐单信息并重
50、新将其提交到记帐系统,Use Case 继续E-8:系统不能检索课程信息。Use Case 在最初开始E-9:系统通知用户课程表不能被修改,Use Case 在最初开始发现对象和类发现类v类是具有相同结构和行为的对象的集合vStereotype是模型元素的新类型,它可以扩展可变模型的语义每个类最多有一个stereotypev在分析中有三种不同的stereotype实体类v该类的模型信息和相关行为与周围环境相独立边界类v在系统周围与模型内部之间可以进行模型通信的类控制类v该类的模型控制和行为明确到一个或多个Use Cases中发现类vUse Case检测并查找实体类和边界类v最初,一个Use C