您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 6-系统动态建模-活动图
2020/3/151第6章系统动态建模-活动图2020/3/152理解:活动图的作用掌握:活动图建模的方法教学要求2020/3/1536.1活动图的概念6.2活动图的表示6.3活动图分类6.4构建活动图小结2020/3/154活动(Activity)是做某件事情的状态,它可以是现实世界中的一项工作,如写文章、修机器等;或者是执行某个软件的例行程序,如运行对象类中的一个操作等。活动图是一种表述业务过程以及工作流的技术。它可以用来对业务过程,工作流建模,也可以对用例实现,甚至是对程序实现进行建模。活动图与流程图的最主要的区别在于,活动图能够标识活动的并行行为。6.1定义活动图2020/3/155活动是某件事情正在进行的状态。它既可以是现实生活中正在进行的某一项工作(写文章、维修机器等)也可以是软件系统中正在运行的某个类对象的一个操作。活动具体表现为由一系列动作组成的执行过程。将各种活动以及不同活动之间的转换用图形进行表示,就构成了活动图。6.1定义活动图2020/3/156活动图描述了活动的顺序,展现从一个活动到另一个活动的控制流。活动图在本质上是一种流程图。但与流程图又有区别。6.1定义活动图2020/3/157活动图与流程图的区别活动图描述系统使用的活动、判定点和分支,看起来和流程图没什么两样,并且传统的流程图所能表示的内容,大多数情况下也可以使用活动图表示,但是两者是有区别的,不能将两个概念混淆。2020/3/158活动图与流程图的区别找饮料[没有咖啡]把咖啡放入滤器往容器里加水拿茶杯将滤器放入机器开机器冲咖啡倒咖啡喝饮料拿可乐[发现咖啡][发现可乐][没有可乐]⑴流程图着重描述处理过程,它的主要控制结构是顺序、分支和循环,各个处理过程之间有严格的顺序和时间关系活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程。2020/3/159找饮料[没有咖啡]把咖啡放入滤器往容器里加水拿茶杯将滤器放入机器开机器冲咖啡倒咖啡喝饮料拿可乐[发现咖啡][发现可乐][没有可乐]⑵活动图能够表示并发活动的情形,而流程图不能。⑶活动图是面向对象的,而流程图是面向过程的。活动图与流程图的区别2020/3/15106.2活动图的表示1.活动图活动图是描述系统或业务的一序列活动构成的控制流,它描述了系统从一种活动转换到另一种活动的整个过程。例如,有一个表示某公司销售过程的一张活动图,图8-1就是描述这一业务过程的活动图。图8-1活动图2020/3/15116.2活动图的表示2.活动图的作用活动图常用来描述业务或软件系统的活动轨迹,描述了系统的活动控制流程。我们常用活动图对业务过程、工作流和用例实现进行建模。3.活动图的组成元素活动图的元素包括初始节点、终点、活动节点、转换、分支、分岔与汇合。其中,转换、分支、分岔与汇合把多个活动节点连接在一起。4.活动图与交互图活动图和交互图是UML中对系统动态方面建模的两种主要形式,交互图强调对象与对象之间的交互消息,而活动图则强调的是从活动到活动的控制流程.2020/3/15121.活动图的元素Activity1Activity2Activity3Activity4Activity5Activity6Activity7活动起点活动分叉汇合活动终点分支合并2020/3/15131、活动的概念表示工作流过程中命令的执行或活动的进行。2、活动的符号一、活动(动作)2020/3/15142、活动的符号在下图中列出的就是一些可能的活动节点描述,可能用文字描述活动节点,可能用表达式描述活动节点,可能用消息描述活动节点。图活动节点2020/3/1515二、状态开始状态结束状态2020/3/1516一个活动图中开始状态能否有多个?结束状态能否有多个?2020/3/1517注意:一个活动图中只能有一个开始状态一个活动图中可以有多个结束状态2020/3/1518三、转移(动作流)活动之间、活动与状态之间的转换。AB2020/3/1519四、分支与合并在实际应用中,有三种活动控制流,它们是顺序结构、分支结构、循环结构.当从一个活动节点到另一个活动节点的转换需要条件时,常用分支与监护条件来表示活动的分支结构.分支是用菱形表示的,它有一个进入转换(箭头从外指向分支符号),一个或多个离开转换(箭头从分支符号指向外)。而每个离开转换上都会有一个监护条件,用来表示满足某种条件时才执行该转换。一个合并有两个带条件的入转换和一个出转换,合并表示从对应的分支开始的条件行为的结束。2020/3/15201、分支根据条件的取值决定动作的流向。2020/3/15212020/3/15222020/3/1523闹钟响吃早餐接着睡觉(饿了)(没饿)闹钟响吃早餐接着睡觉(饿了)(没饿)分支的两种表示方法2020/3/15242、合并合并将两条路径连接到一起,合并成一条路径。2020/3/1525提示:判断节点与合并节点的符号相同2020/3/1526五、分叉和汇合在实际应用中,如果活动的转换是有条件的,我们就用分支与监护条件来表示转换,如果一些活动是并发执行的,我们就用分叉和汇合来表示并发活动。分叉线和汇合线都使用加粗的水平线或垂直线段表示。2020/3/15271、分叉用于将一个控制流分为两个或多个并发运行的分支。2020/3/15282020/3/15292、汇合用于将两个或多个控制流合并到一起形成一个单向控制流。如果一个控制流在其他控制流到达之前到达了连接,它将会等待,直到所有控制流都到达了才会向连接传递控制权。2020/3/1530做完工作放松听歌2020/3/1531(1)分叉:每个分叉可以有一个输入转换和两个或多个输出转换,每个转换都可以是独立的控制流。(2)汇合:当两个或多个并发控制流都达到汇合点后,活动流程才能进入下一个活动节点.分岔用来表示两个或者多个并发活动的分支;而汇合则用于同步这些并发活动的分支,当且仅当所有的并发分支(活动)都到达汇合点后,活动流程才能进入下一个活动节点。2020/3/1532ATM机“登录”用例的活动图2020/3/15336.3活动图分类按照活动图表示的信息不同,将活动图分为:简单活动图、标识泳道的活动图、标识对象流的活动图、复合活动图。2020/3/15346.3.1简单活动图图6-8就是一个描述订单处理的简单活动图,这个图既没有标识活动的执行者,也没有标识活动执行过程中,创建了哪些对象。其中,每个活动都是简单的活动。2020/3/1535图6-8订单处理2020/3/15366.3.2标识泳道的活动图为了有效地表示各个活动由谁负责的信息,可以通过泳道(SwimLane)来实现。例如,在图6-9的活动图中,活动的执行者包括窗口和打印机,因此可以将其分成二个泳道。左边泳道中的所有活动的执行者是窗口;右边泳道中的所有活动的执行者是打印机。泳道将活动图的活动状态分组,每一组表示负责那些活动的业务组织,直接显示动作在哪一个业务组织中执行。每一个活动都只能明确地属于一个泳道。每个泳道用一条垂直的线将它们分开,并且每个泳道都必须有一个唯一的名称,例如本例中的窗口和打印机。从图中可以看出,每个活动节点,分支必须只属于一个泳道,而转换,分岔与汇合是可以跨泳道的。通过泳道,不仅体现了整个活动控制流,还体现出了每个活动的实施者。2020/3/15376.3.2标识泳道的活动图获取打印机数据设置打印页面传送打印数据打印文件初始化打印机保存页面参数数据接收并保存打印数据执行打印命令:窗口:打印机图6-9标识泳道的活动图2020/3/1538例:一个网上商店处理顾客订货的活动图示例,如图所示。Home图顾客订货处理的活动图2020/3/1539泳道(Swimlance)代表对象对活动的责任。泳道把活动图中的活动划分为若干组,并把这些组指定给对象,这些对象必须履行该组所包括的活动。泳道明确表示哪些活动是由哪些对象进行的。在活动图上泳道用垂直实线划出,垂直线分隔的区域就是泳道。在泳道上方给出泳道的名字或对象(对象类)名字,该对象(对象类)负责泳道内的全部活动。例:右图在上图的基础上增加了3个泳道:“顾客服务”、“处理订货”、“财务结算”。Home图泳道示例2020/3/15406.3.2标识对象流的活动图在活动图中,存在这样一些现象:一种情况是,可能存在一些对象进入一个活动节点,经过活动处理,修改了对象的状态;另一种情况是,活动节点创建或删除了一些对象;一些情况是,输出一些对象。在这些活动中,对象与节点活动是紧密相关的,用户可以在活动图中把相关的对象标识出来,即标识哪些对象进入活动节点,哪些对象从活动节点中输出,这对编程具有现实意义。在UML中,我们可以在活动图中标识一个对象的角色,状态和属性值的变化,它的表示方法如图5-10所示。图5-10活动图中的对象表示法2020/3/15416.3.3标识对象流的活动图2020/3/15426.3.3标识对象流的活动图在图5-11中,标识了一些关键的对象流,对象的状态也在图中作了标识:(1)当“用户下订单”时,将创建一个Order类的实例,用来存放订单的信息,该Order类还包含着相应的OrderItem(针对每个产品一条)(2)当“生成送货单”时,将根据Order类的实例创建多个DeliverOrder(送货单)的实例。(3)当“修改订单项状态”之后,DeliverOrder对象的状态将变成finished。2020/3/15436.3.3标识对象流的活动图当然,在这张活动图中实际上还蕴藏着许多对象流,例如:(1)当“收款”后,Order类的实例的状态就变成了“已付款”。(2)当“修改订单项状态”后,Order类中部分订单项的状态就变成了“已送货”。(3)当用户取消或订单超过时限时,Order类的状态就将成为Cancel。在实际应用中,绘制活动图时并不一定需要将所有的对象流都标识出来,这样会使活动图变得复杂、混乱。在实际建模中,只对重要的对象进行描述。2020/3/15446.3.4标识信号的活动图在交互图中,利用“信号”可以增加活动图的可读性。信号是表示两个对象之间进行异步通讯的方式,当一个对象接收到一个信号时,将触发信号事件。2020/3/15456.3.4标识信号的活动图1.信号在活动图中,有三种信号元素,它们是:发送信号,接收信号和时间信号,其表示方法如图5-12所示。(1)时间信号:时间信号是用来表示随着时间的流逝而自动发出的信号,时间信号表示,当时间到达某个特定的时刻时,就会触发时间事件,例如每天10点时,闹钟开始响铃,10点钟发出响铃的信号就是时间信号。(2)发送信号:也就是发出一个异步消息,对于发送者而言,就是发送信号;对于接收到这种消息的目标而言,就是“接收信号’。(3)接收信号:就是接收者收到的一个外部信号。图5-12三种信号的表示法2020/3/15466.3.4标识信号的活动图2.活动图中标识时间信号例如小张去必胜客饭店吃饭,发现要排队等待,他决定如果15分钟还轮不到,就到隔壁的肯德基吃饭,这时就可以通过上述的符号来表示小张吃饭的活动。图5-13中假设小张排在最前面。在“小张”这个泳道中,两个控制流中只有一个会控制流会执行。在时间信号发生之间,收到当必胜客饭店发出“有空位”信号,小张接收到“有空位”信号时,小张才会执行“进入必胜客”的活动;否则小张会执行“进入肯德基”的活动。2020/3/15476.3.4标识信号的活动图图5-13信号在活动图中的应用2020/3/15486.3.5标识参数的活动图一个方法可以包含多个参数,一个活动节点也可能带有多个参数。在绝大多数情况下,并不需要在活动图上标明参数信息,如果打算标明每个活动节点执行前,需要输入哪些参数,活动节点执行后,需要输出哪些参数,以及活动节点执行后,要进行的错误处理。这时,在活动图中标明参数,使活动图表示更多的信息。1.参数参数是一个
本文标题:6-系统动态建模-活动图
链接地址:https://www.777doc.com/doc-4369511 .html