您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 软件工程基础-第2章-顺序图与活动图
顺序图统一建模语言UnifiedModelingLanguage顺序图的定义它描述对象按时间顺序的消息交换过程,它体现出系统用例的行为。顺序图的符号顺序图有四个主要的标记符:•活动对象•生命线•激活•消息顺序图的符号(续)•活动对象活动对象可以是系统的参与者或者任何有效的系统对象。对象是类的实例,它使用包围名称的矩形框来标记。名称带下划线,顺序图中对象的标记符如下图所示。顺序图的符号(续)•生命线顺序图中垂直方向代表时间维,时间流逝的方向为自顶向下。靠近顶部的消息发生的时间要比靠近底部的消息早。因此,顺序图是两维的。自左至右的维数代表对象的布局,自顶向下的维数代表时间的流逝。每个对象的生命线都是一条从对象向下的虚线。表示对象的存在时间。顺序图的符号(续)•激活在生命线上的窄矩形条被称为激活(activation).激活表示该对象正在执行某个操作。激活矩形的长度表示出激活的持续时间.顺序图的符号(续)•消息消息用来说明顺序图中不同活动对象之间的通信。它可在一个对象需要取消不同对象的进程时或者需要向另一个对象提供服务时,使用消息。消息从活动对象生命线到接收对象生命线的箭头表示。箭头上面标记要发送的消息,如下图所示。顺序图的符号(续)消息的限定消息可以包含条件以便限制它们只在满足条件时才能发送。条件显示在消息名称上面的方括号中。右图示例演示了如何建立一个顺序图来显示登录尝试。如果登录失败,会在放弃登录之前重试一次,如下图所示。顺序图的符号(续)在UML中,总共有4种消息,如下图所示。消息的种类同步消息返回消息异步消息简单消息顺序图的符号(续)(1)同步消息同步消息(synchronousmessage)代表一个操作调用的控制流。同步消息的发送者把控制传递给消息的接收者,然后暂停活动,等待消息接收者的应答,收到应答后才继续自己的操作。顺序图的符号(续)同步消息顺序图的符号(续)(2)异步消息异步消息(Asynchronousmessage)用于控制流在完成前不需要中断的情况。异步消息的发送者把控制传递给消息的接收者,然后继续自己的活动,不需等待接收者返回信息或控制。下面示例演示了如何在登录文件的情况下使用异步消息。顺序图的符号(续)异步消息顺序图的符号(续)(3)简单消息如果所有的消息都是同步或者异步消息,那么为什么还要简单消息呢?因为有时候我们不关心消息是同步还是异步,此外在高层分析中,有时候没有必要指定一个消息是同步的还是异步的。如下面的示例所示。顺序图的符号(续)简单消息顺序图的符号(续)(4)返回消息返回消息(returnmessage)表示从过程调用返回.如果是从过程调用返回,则返回消息是隐含的,所以返回消息可以不用画出来.对于非过程调用,如果有返回消息,必须明确表示出来.顺序图的符号(续)返回消息1.创建对象创建对象的标记符如下图中的示例所示。有一个主要步骤用来把“create”消息发送给对象实例。对象创建之后就会具有生命线,就像顺序图中的任何其他对象一样。现在可以像顺序图中的其他对象那样来使用该对象发送和接收消息。在处理新创建的对象,或者处理顺序图中的任何其他对象时,都可以发送“destroys”消息来删除对象。若要想说明某个对象被销毁,需要在被销毁对象的生命线上放一个X字符。顺序图的其他技术顺序图的其他技术创建对象顺序图的其他技术2.分支和从属流有两种方式来修改顺序图的控制流:使用分支和使用从属流。这两种方式很相似,各自的标记符略微不同。控制流的改变是由于不同的条件导致控制流走向不同的道路。顺序图的其他技术分支允许控制流走向不同的对象,如下图所示。顺序图的其他技术注意消息的开始位置是相同的,分支消息的结束“高度”也是相等的。这说明在下一步中,其中之一将会执行,如下图所示。顺序图的其他技术从属流还允许控制流根据条件改变,但是只允许控制流改变为相同对象的另一条生命线分支,如下图所示。顺序图的其他技术在下面的示例中,Editor在用户删除文件或者保存文件时向Filesystem发送一条消息。显然,Filesystem将会执行两种完全不同的活动,并且每一个工作流都需要独立的生命线,如下图所示。顺序图的其他技术图书馆业务系统•图书馆这个业务系统需要向借书者提供以下的服务:•1、接受借书请求。•2、提示借书者提供所要借的图书名称•3、接受借书者提供的图书名称•4、查找书名•5、查找副本•6、提示借书者给出借书者信息•7、接受借书者给出的借书者信息•8、核对借书者信息并记录借阅信息•9、将图书送出,提示借书者拿走图书图书馆借书顺序图:借书者:图书馆1:要求借书2:请给出书名3:给出书名4:查找书名5:查找副本6:请给出借书者信息7:给出借书者信息9:请把书拿走8:核对借书者信息•借书者到图书馆里选择了喜欢的图书之后,将选定的图书名称和借书者信息交给图书管理员,要求图书管理员办理借书手续,图书管理员使用图书管理系统登记所借图书的借阅资料。•首先,图书管理员向图书借阅登记输入图书名称和借书者信息,请图书借阅登记处理借书登记业务,图书借阅登记请图书信息卡查找所借的图书是否存在,•如果该图书存在,则请图书副本检查该图书是否还有副本,如果有,进行下面的工作;图书借阅登记请借书者信息核对该信息是否有效,如果有效,图书借阅登记将登记相应的借书者信息、图书信息卡和图书副本。处理完成后,提示图书管理员登记完毕,图书管理员将借书者所要借的图书交给借书者,借书者拿着图书离开图书馆。图书馆借书系统(2):借书人:图书管理员:图书借阅登记:图书信息卡:图书副本:借书人信息1:请求借书服务3:请给出所借图书名称4:请接受图书名称5:查找图书信息6:查找图书信息7:查找副本信息8:请给出借书人信息9:请接受借书人信息13:请拿走图书10:请核对借书人信息11:请核对借书人信息12:登记借书信息2:请求借书登记第2章活动图•活动图–活动图的定义–活动图的符号–活动图中的条件活动图的定义活动图是一种用于描述系统行为的模型视图,它可用来描述过程(业务过程、工作流、事件流等)中的活动及其迁移。简单地讲,活动图是“OO流程图”.活动图是用来建模不同区域的工作如何彼此交互。类似于流程图。活动图的定义活动图能够附加在如下建模元素中以描述该元素的行为。•用例•类•接口•组件•节点活动图的定义活动图的主要应用1.描述用例的行为活动图对用例描述尤其有用,它可建模用例的工作流,显示用例内部和用例之间的路径;它也可以向读者说明需要满足什么条件用例才会有效,以及用例完成后系统保留的条件或者状态。活动图的定义2.理解工作流程活动图对理解业务处理过程十分有用。可以画出描述业务工作流的活动图与领域专家进行交流,明确业务处理操作是如何进行的,将会有怎样的变化。3.描述复杂过程的算法在这种情况下使用的活动图不过是UML版的程序流程图,常规的顺序、分支过程在活动图中都能得到充分的表现。活动图的符号活动图保留了许多传统的流程图的特征,它包含如下元素。•活动•操作•状态•转移•对象流•分叉•决策•联结活动图的符号1.活动活动在活动图中,用来指示要完成某项工作的动作或表示工作流的步骤。其UML标记符是一个带有圆角的矩形,如下图所示。在确定活动名称时应该恰当地命名,选择准确描述所发生动作的几个词。例如,SaveFile或者CreateNewDocument就是比较恰当的活动名称,而Run或者Update对读者而言是不完整的名称。2.操作可以用操作在活动中增加更多详细的步骤。操作是活动中执行的小步骤。在下列情况下发生:•进入活动时发生的操作,标有entry字样。•活动进行时发生的操作,直到离开活动,标有do字样。•离开活动时发生的操作,标有exit字样。•特定事件发生时的操作,标有event字样和事件名。操作是可选的,但提供的详细信息有助于后面完成系统设计。如果包括操作,则其在活动内显示,不管其属于上面哪一类。下面是带操作的活动例子。活动图的符号活动图的符号活动图的符号3.状态状态的标记符与活动类似,也是带圆角的矩形,但状态的圆角比较小,如下图所示。状态通常使用一个指示系统当前状态的单词或者短语来标识。例如,Stopped是一个状态,而stop则是一个活动。UML包含两个特殊状态,即开始状态和结束状态。开始状态以实心黑点表示,结束状态以带有圆圈的实心黑点表示。活动图的符号注意:每一个活动图只能有一个开始状态,但是可以有无数个结束状态。如下图所示:活动图的符号活动图的符号4.转移转移用来指示一种状态到另一个状态的控制流。它们可以显示活动之间或者状态之间的控制流。转移的标记符是带开放箭头的实线,如下图所示。活动图的符号综合运用现在已经学习了活动图的4种主要标记符,下面综合运用这些标记来生成一个活动图,如下图所示。活动图的符号5.决策决策是基于判断条件选择控制流继续的方向。决策的UML符号是一个小菱形标记符,然后从这里再按条件控制分支转移到满足条件的活动,如下图所示。活动图的符号例描述教师记录学生成绩用例的活动图活动图的符号学习活动图中的其他标记符1.泳道泳道可以使活动图非常整洁,因为它们在很大程度上增强了活动图的可读性。泳道使用几个大矩形框表示,如右图所示。活动图的符号下面示例显示了一个在Teacher和WebInterface泳道之间交叉转移控制流的活动图。如果没有泳道,该活动图就无法说明Teacher使用了Logon、ChooseStudent和ChangeStudentInfo活动,WebInterface使用ValidateUser、RetrieveStudentInfo和PersistUserInfo活动,如下图所示。活动图的符号活动图的符号2.分叉和联结分叉用来表示并行活动的分支处理,联结用来把并行活动的汇集到同步处理。分叉和联结在UML中的表示方法相似,都用粗黑线表示。分叉具有一个转移入口,两个或者多个转移出口。分岔描述了单向处理控制流分成了多个控制流。联结与此相反,联结具有两个或者多个转移入口,只有一个出口。联结描述了不同的处理控制流合并到一起形成一个单向处理,如下图所示。活动图的符号如果一个处理在其他处理之前到达了联结,它将会等待,直到所有的处理都准备好之后才会向联结传递控制权。活动图的符号左例演示了分叉中的一个处理时间长于另一个的情况。当然,这完全是由每一个处理中的活动数假定的。由于我们不知道每一个活动有多长,因此不能保证哪一个首先完成。为此,我们在让用户访问应用程序之前插入了一个联结,以便确保两个独立的处理彼此连接在一起。活动图的符号3.对象流活动可以输入和输出对象,并可以修改对象状态。我们能够在活动图上用对象流表示这些。如下图所示。活动图的符号活动图的建模活动图的建模
本文标题:软件工程基础-第2章-顺序图与活动图
链接地址:https://www.777doc.com/doc-4663482 .html