面向对象的分析设计 活动图 交互图.ppt_第1页
面向对象的分析设计 活动图 交互图.ppt_第2页
面向对象的分析设计 活动图 交互图.ppt_第3页
面向对象的分析设计 活动图 交互图.ppt_第4页
面向对象的分析设计 活动图 交互图.ppt_第5页
免费预览已结束,剩余61页可下载查看

下载本文档

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

文档简介

系统动态建模,活动是某件事情正在进行的状态。活动在状态机中表现为一个由一系列动作组成的非原子的执行过程。活动图是一种描述系统行为的图,它用于展现参与行为的类所进行的各种活动的顺序关系。活动图用来表示完成一个操作所需要的活动,或者是一个用例实例的活动。活动图特别合适描述动作流和并发处理行为。需求分析阶段,用活动图来对用例具体实现的过程(流程)进行描述。活动图与状态图都是状态机的表现形式。,客户需求分析中的活动图,活动图作为UML为软件对象的动态行为建模的一种手段,其侧重点在于描述控制在活动之间的流动,因此,它也可以看成是一种流程图。作为流程图,它主要有两种用途,第一是为业务流程建模;第二是为对象的特定操作建模。,活动图的作用,当活动图用来为业务流程建模时,它所起的作用主要是:为软件系统的需求分析提供一种视化、交流和建档的手段。这时,可以利用泳道代表不同的业务部门,用活动代表不同的业务步骤。在转入系统建造阶段时,根据泳道的划分,确立相应的协同,并可以用相应的交互和交互图来对软件的动态行为进行细化,并为软件的逻辑设计打下基础。,作为流程图,活动图还可以为对象的特定操作执行流程进行建模。这时,活动图是软件动态行为的较深层的抽象,可以根据活动图的定义,对对象的操作的进行程序编码。从这个意义上说,活动图也可以看作对交互图中描述的交互的细化。交互图定义对象之间的配合,活动图定义这些配合的实现。,2.描述工程组织过程,1.描述工作流,软件对象的动态行为是由一个个的动作构成的。动作是状态机内原子的计算的执行。所谓原子,指的是构成动态行为的最小单位,动作的执行是不可打断的,动作的执行时间是可以忽略的。在活动图中,对动态行为的建模是通过附加在状态中的动作实现的。,(1)、动作状态,UML使用专门的图形符号代表动作状态和活动状态,此图形符号是一个上下为平行直边,两侧用圆弧连接的图形框。对于动作状态,其动作就写在图形框内。UML对动作没有规定严格的语法,因此可以用一文本串描述动作,也可以用任何一种程序设计语言的语句的语法书写动作文本串。,(2)、活动状态,在UML里,活动是软件对象非原子的计算的执行。活动可以被进一步地分解为一系列的动作。在活动状态机里,如果全部用动作状态来描述对象的动态行为,那么产生的活动图将由许多十分细小的动作状态组成,使得活动图过于繁杂。在大多数的情况下,软件对象的动态行为可以用一系列的子过程来表达,而不需要细化至每个原子的计算。,(3)、无触发变迁,无触发变迁又称为完成变迁。它在活动状态机里用于为动作的自动执行建模。在UML里,完成变迁是不包含触发事件的变迁。如果无触发变迁的起始状态是一个简单状态(即不包含子状态的状态)那么此变迁在起始状态的入口动作和状态活动执行完毕之后被激发;如果起始状态是一个复合状态,那么此变迁在复合状态的内嵌状态机都到达结束状态后被激发。之后,源状态的出口动作被执行;状态机转入变迁的目标状态。,4、分支,条件判断是最基本的程序结构,它代表软件对象在不同的判断结果的条件下,所执行的不同动作。作为为非反应型对象的动态行为进行建模的建模手段,活动图提供了描述这种程序结构的建模元素,这就是分支(branch)。分支是状态机的一个建模元素,它代表由一个触发事件在不同的触发条件下激发的多个变迁。,分支在活动图上用一个菱形表示,它包括至少一个输入变迁和多个输出变迁,其中的输出变迁都是带触发条件的完成变迁,触发条件的书写格式可以是一个布尔表达式。,分支的输出变迁可以多于两个,当分支的输入变迁被激发后,分支的各输出变迁的触发条件必须有一个求值为真,否则状态机的执行将被冻结。为了避免状态机被冻结的情形出现,5、循环,在活动图里引入了分支以后,可以以它为基础描述其它的程序结构。例如,下面的c语言的循环语句,就可以用下图的活动图表示。for(i=1;i10;i+)Action(i);,6、分解和汇合,在状态机图中,并发的控制流的建模使用:并发子状态。在活动图中,使用的表示方法是:分解(fork)和汇合(join)在UML里,分解表示一个控制流被分解为两个或多个并发执行的控制流。汇合代表两个或多个控制流的同步。只有当所有的控制流都到达汇合点之后,控制才继续向下流动。,在分解和汇合的表示使用的是:同步条(synchronizationbar)。同步条是一个粗的水平线。当同步条表示分解时,可以有:一个转入变迁,两个或多个转出变迁当同步条用来表示汇合时,它可以有两个或多个转入变迁,一个转出变迁。其中的转入变迁代表同步之前的多个并发控制流,图分解和汇合,7、泳道,活动图可以用来表达软件对象的比较复杂的动态行为。这些动态行为可能是模拟现实世界的某个机构的各业务部门的运作情况;也可能是一个复杂的算法,这算法可能需要由软件系统中的多个协同共同实现。(协同指的是多个类的对象共同工作,以提供单个类的的对象单独工作不能提供的动态行为),在UML里,对在语义上互相关联的活动状态的子集的划分,是使用泳道(swimlane)实现的。泳道是活动图里对其中的活动按照其职责上的关联进行的划分。泳道在活动图内是一系列的垂直的隔断,这也是泳道这个名字的由来。在活动图里,泳道区分了其中的活动的不同职责。在有泳道的活动图中,每一活动都属于且只属于一个泳道。带有泳道的活动图也可以在软件开发的需求分析阶段用来为业务部门的业务流程(businessmodel)的建模上,这时,泳道可以代表业务流程中的一个业务部门。,图5,交互模型建模,利用顺序图和合作图可以有效地帮助人们观察和分析系统的交互行为。顺序图和合作图是系统行为视图的组成部分。顺序图主要用来描述对象之间信息交换时的时间顺序合作图主要描述系统对象之间如何协作共同完成系统功能要求。顺序图和合作图可以相互转化。,交互模型建模中的消息,消息分为四种控制流:(1)简单消息:表示控制流。(2)同步消息:它是一种嵌套的控制流。操作调用。(3)异步消息:它是异步控制流。消息的发送者在发送消息后就继续执行,不等待消息的处理。(4)返回消息:表示控制流从过程调用的返回。,顺序图建模,顺序图用来描述对象间的交互行为。它注重消息的时间顺序,即对象间消息的发送和接收的顺序。顺序图还揭示了一个特定场景的交互,即系统执行期间发生在某个时间点的对象之间的特定交互,它适合于描述实时系统中的时间特性和时间约束。,UML系统建模与分析设计,顺序图的组成成分,(1)对象:顺序图中所包含的每个对象用一个对象框(短式)表示,对象名需带下划线。对象框一般位于顺序图的顶部,而新创建的对象出现在创建消息发送的时间点的位置交互频繁的对象尽量靠拢对整个交互活动进行初始化的对象放在图的最左边;执行者用人形符号表达过程中对象改变了属性值、状态或是角色,则应在改变点处出现该对象的图符副本,并注明变化,顺序图的组成成分(con.1),(2)生存线:对象框下画的一条垂直虚线,称为该对象的生存线,表示对象的生存时间。生存线从对象的创建开始到释放,其生存期多长,虚线就多长。生存线表示该对象处于休眠期,等待消息的激活。,顺序图的组成成分(con.2),(3)激活期:对象生存线上的一个细长方形框,表示该对象的激活时间段,即活动期间。当一个休眠对象接收到消息,该对象开始活动,称为激活激活展示了某时间点哪个对象能够响应或发送消息,执行动作或活动一个激活的对象要么执行自己的代码,要么等待另一个对象的返回激活期的上端与开始时间齐平,下端与完成时间齐平,顺序图的组成成分(con.3),(4)消息:对象之间消息的发送和接收用两个对象生存线(激活期)之间的消息箭头线。简单消息表示消息类型未知或与类型无关,或是一个同步消息的返回同步消息表示发送对象必须等待接收对象完成消息的处理后才能继续执行异步消息表示发送对象在消息发送后继续执行,而不等待接收对象的返回消息传送延迟可用倾斜的箭头表示,表示消息发送后需经历一段延迟时间才被接收,顺序图的组成成分(con.4),对象的创建和撤销(con.1),对象的创建,对象的创建和撤销(con.2),如果要撤销一个对象,只要在其生命线终止点放置一个“X”符号即可,该点通常是对删除或取消消息的回应。,顺序图建模技术,设置交互的语境。通过识别对象在交互中扮演的角色,设置交互的场景。为每个对象设置生命线。从引发某个消息的对象开始,在生命线之间画出从顶到底依次展开的消息,显示每个消息的特性(如参数)。如果需要可视化消息的嵌套或实际计算发生时的时间点,可以用激活修饰每个对象的生命期。如果需要说明时间或空间的约束,可以用时间标记修饰每个消息,并附上合适的时间和空间约束。如果需要更形式化的说明某控制流,可以为每个消息附上前置和后置条件。,用例:借书参与者:管理员,借阅者基本事件流:1.借阅者带着借书证和书来到柜台。2.管员输入借阅者的借书证编码。3.系统检查借阅者的合法性。4.系统显示借阅者的信息。5.系统检查借阅者的借阅信息。6.管员输入所借图书的条码。7.系统显示所借图书的信息,并登记图书。管员重复67步,直到结束。8.系统登记借阅者的本次借阅信息,并显示。扩展事件流:3a.借阅者身份非法,则提示,本次拒借。5a.该借阅者所借图书中有超期的,则提示,本次拒借。5b.该借阅者所借图书数量超过了上限,则提示,本次拒借。,实例:图书馆借书处理的顺序图,实例:图书馆借书处理的顺序图,教学进程,识别交互过程。读者在借书时,先由管理员把借书证上的读者编号扫描给系统,系统检查这个读者的借书证合法信息,如果不合法,则系统给出提示,如果正确系统返回读者的身份信息,以及读者的借阅信息。如果读者借书数量没有超过借书的上限,则把要借书的图书编号输入系统,系统登记借书信息,并返回借书成功信息,借书过程完成。,实例:图书馆借书处理的顺序图,教学进程,识别参与交互过程的对象;,教学进程,绘制借书处理类图,实例:图书馆借书处理的顺序图,教学进程,为每一个对象设置生命线,并确定对象的存在期限;从引发交互的初始消息开始,在对象生命线上依次画出交互的消息绘制顺序图,协作图,1概述2对象、链和消息3时序图(顺序图)与协作图的互换4协作图建模技术5实例,1概述,协作图描述的是和对象结构相关的信息。协作图的用途是表示一个类操作的实现。协作图对交互中有意义的对象和对象之间的链建模。在UML中,协作图用几何排列来表示交互作用中的对象和链,附在链的箭头代表消息,消息的发生顺序用消息箭头处的编号来说明。,1概述,协作图示例:,2对象、链和消息,协作图包含了3个元素:对象(Object)链(Link)消息(Message),2.1对象,协作图与时序(顺序)图中的对象的概念是一样,只不过在协作图中,无法表示对象的创建和撤销,所以对于对象在图中的位置没有限制。,2.2链,协作图中链的符号和对象图中链所用的符号是一样的,即一条连接两个类角色的实线。为了说明一个对象如何与另一个对象连接,可以在链的末路上附上一个路径构造型。,2.3消息,协作图中的消息类型与时序图中的相同,只不过为了说明交互过程中消息的时间顺序,需要给消息添加顺序号。顺序号是消息的一个数字前缀,是一个整数,由1开始递增,每个消息都必须由唯一的顺序号。可以通过点表示法代表控制的嵌套关系。嵌套可以具有任意深度。与时序图相比,协作图可以显示更为复杂的分支。,顺序消息序号的标识,UML系统建模与分析设计,嵌套消息序号的标识,3时序图与协作图的互换,时序图与协作图都表示对象之间的交互作用,只是它们的侧重点有所不同:时序图描述了交互过程中的时间顺序,但没有明确地表达对象之间的关系。协作图描述了对象之间的关系,但时间顺序必须从顺序号获得。两种图的语义是等价的,可以从一种形式的图转换成另一种形式的图,而不丢失任何信息。,4协作图建模技术,设置交互的语境。通过识别对象在交互中扮演的角色,设置交互的场景。对每个对象设置初始特性。描述对象之间可能有信息沿着它传递的链。从引起交互的消息开始,适当地设置其顺序号,然后将随后的每个消息附到适当的链上。如果需要说明时间或空间约束,可以用时间标记修饰这个消息,并附上合适的时间和空间约束。如果需要更形式化地说明这个控制流,可以为每个消息附上前置和后置条件。,用例:借书参与者:管理员,借阅者基本事件流:1.借阅者带着借书证和书来到柜台。2.管员输入借阅者的借书证编码。3.系统检查借阅者的合法性。4.系统显示借阅者的信息。5.管员输入所借图书的条码。6.系统显示所借图书的信息,并登记图书。管员重复45步,直到结束。7.系统显示借阅者的本次借阅信息。8.借书结束。扩展事件流:3a.借阅者身份非法,则提示,本次拒借。3b.该借阅者有所借图书已经超期,则提示,本次拒借。3c.该借阅者有欠款未还,则显示还款信息,本次拒借。5a.图书已被别人预借,则提示,本次拒借。,用例描述。,若系统有处理欠款和图书预借功能,则需如何修改?,实例:图书馆借书处理的协作图,设置交互的语境。识别参与交互过程的对象;管理员、读者、界面、系统、图书、借书记录,确定对象之间的链,以及链上的消息;,从引发交互的初始消息开始,将随后每个消息附在相应的链上;如果需要,可以给消息增加时间约束,以及前置条件和后置条件。,实例:图书馆借书处理的协作图,顺序图与协作图的异同,顺序图:从用例到类,顺序图使你可以可视化地对系统逻辑建模。对象、类和参与者都在顺序图中进行了描述。理解分析阶段的基本逻辑,在设计阶段详细将其突出出来。,状态图,状态图,组成:状态(State)转换(Transition)初始状态(StartState)终结状态(EndState)判定

温馨提示

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

评论

0/150

提交评论