信息系统分析与设计InformationSystemAnalysisandDesign1/33内容6信息系统分析与设计InformationSystemAnalysisandDesign2/33活动图简介建模一序列活动建模可选的动作过程建模重复的活动建模并行的活动使用活动图技术关键点信息系统分析与设计InformationSystemAnalysisandDesign3/33简介活动图活动图被用来建模复杂的活动活动图类似于状态图,但状态图是关注状态和状态之间的转换。然而,在活动图中所有的状态都是活动(即正在做某事的状态),它们之间的转换是通过完成该活动而不是外部的事件来触发的。活动图表示了在过程中的内部的控制流。它们能被用于在不同层次建模处理过程,如在组织中的高层工作流,在用例中发生事情的细节(作为用例描述的一个取代方法),或者它们能定义一个操作的工作细节(作为过程定义的一个变通方法)。活动图能用来表示顺序、选择和循环(在早期的所有程序中的结构),它们也能表示在一些地方不同的活动能被并行地执行。信息系统分析与设计InformationSystemAnalysisandDesign4/33建模一序列活动当租借一辆自行车时,计算租金的操作图6.1表示了在Wheels类图中的Bike类Bike类的操作之一是‘getCharges()’,但是这个类图仅记录了该操作的名称,没有关于发生在‘getCharges’操作中的任何细节。这些细节可以以操作定义或一个活动图来定义。图6.2表示了一个描述在‘getCharges()’操作中涉及的行动序列的活动图。信息系统分析与设计InformationSystemAnalysisandDesign5/33建模可选的动作过程执行两者选一的行动过程活动图的优点之一是它们对不同的行动过程和决定哪个执行过程的条件进行建模。图6.4表示了‘Issuebike’用例的初始活动图。虽然这个图描述了当一辆自行车被租借时发生地处理序列,但它仅涉及Wheels系统的新顾客的情景。在老顾客的情况下,每次当顾客租借自行车时输入顾客的细节是效率不高的,并且是使人困惑的;系统所需要做的仅仅是确认记录中的顾客细节是正确的。图6.5表示了‘Issuebike’用例完善后的活动图,其满足了新的和老的顾客的需要。如同在状态图,对判断保障条件是否满足时基本的,而且对二者选一的处理分支处的保障条件是强制性互斥的(例如,一位顾客不能既是新顾客,又是老顾客)信息系统分析与设计InformationSystemAnalysisandDesign6/33建模重复的活动执行重复的活动除了顺序(参见图6.4)和选择(图6.5)活动外,活动图也能对重复活动建模,重复活动是指一个或多个活动需要重复执行。图6.6表示了当Wheels得首席机械师Naresh在将若干辆不同的自行车登记到系统中时所发生地事情。对每辆自行车,Naresh必须输入其细节,并指定一个编号;这些活动被重复,直到所有的自行车被登记。图6.6中的活动图表示了重复的循环,并在方括号内表示了保障条件‘[morebikestoadd]’。信息系统分析与设计InformationSystemAnalysisandDesign7/33建模并行的活动执行并行地活动事实上,在一个活动图中所绘制的过程经常没有覆盖并行执行活动的可能性,这些活动先前是顺序执行的。图6.7表示了用例‘Handlebikereturn’的初始活动图。活动‘Checkbike’和‘Checkreturndate’能并行地表示在活动图中,如同在图6.8中的完善图所示。在图6.8中,上面的同步条表示一旦作为单独的进入转换活动(‘Findhiredetails’)完成,出去转换(‘Checkreturndate’和‘Checkbikefordamage’)可以以任意次序执行。下面的同步条表示单个出去的转换仅仅在所有进入的活动被完成后才触发。图6.9表示了‘Handlebikereturn’用例的一个修改后的版本,其包括了选择和并行活动。该图现在表示了当一辆自行车租借超时或返还时损坏时,所发生地一切。信息系统分析与设计InformationSystemAnalysisandDesign8/33使用活动图-1泳道(Swimlanes)泳道表示哪个代理,人或对象是对一组活动负有责任。在开发的早期,我们仅仅考虑在处理过程中发生什么,而不关心何人或何物对一个特定的活动负责实际上是非常有帮助的。然而,随后对每项活动能确定何人、何物、或系统中的哪个对象来执行这些活动室非常有帮助的。我们能通过将图分解到垂直的区域来添加这些信息到活动图中,这些垂直区域被称作泳道。泳道用线条相互分开,在每个泳道顶部标有负责该泳道中的这组活动的人、组织或对象的名称。信息系统分析与设计InformationSystemAnalysisandDesign9/33使用活动图-2泳道(续)图6.10表示了‘Handlebikereturn’用例的活动图(同图6.9比较)。在图6.10中,泳道被添加来提供关于谁执行该用例中的各种活动的信息。我们从图6.10中可以看出何人或何物执行构成‘Handlebikereturn’用例的不同活动。顾客负责将自行车返还给商店;接待员输入顾客的姓名;计算机则进行找出租借细节、检查返还日期、如果必要则计算超出费用,以及计算返回的押金金额等活动;机械师负责检查自行车是否损坏,计算发现损坏的修理费用;最后,接待员将剩余的押金返还给顾客。信息系统分析与设计InformationSystemAnalysisandDesign10/33使用活动图-3在系统开发中使用活动图活动图帮助在不同层次细节上可视化系统的功能,帮助开发人员和客户之间的沟通。活动图能在开发的起始阶段绘制,来帮助开发人员和客户分析商业工作流程和获得对正在系统中进行的事情的共同理解。在这个阶段,活动图提供讨论的有用载体,帮助开发人员、客户和用户可视化系统的功能。活动图表示能并行执行的活动的能力在高层商业建模中是特别有用的,因为图形的绘制能帮助确定潜在的并行处理,甚至在当前这些活动是被顺序地执行的地方。信息系统分析与设计InformationSystemAnalysisandDesign11/33使用活动图-4在系统开发中使用活动图(续)并行过程的表示在某些类型的系统中是特别有用,诸如实时系统,在这些系统中获得和任务的同步时系统功能的核心。一旦系统用例被确定,活动图能用来描述涉及到取得用例目标的步骤,表示这些活动,以及它们发生地顺序。最后,当开发进入类、类的属性和操作已被确定的阶段时,活动图是一个描述操作是如何工作的有用方法,特别是这些操作是基于负责的算法的时候。信息系统分析与设计InformationSystemAnalysisandDesign12/33技术关键点-1建模重复当我们讨论在活动图中的重复的时候,我们表示了如何利用活动之间的循环来对其进行建模(参见图6.6)。在一个活动上利用多重符号*表示重复也是可能的,当存在图形有可能变得混乱时,这种方法是有用的。图6.11表示了一个活动图的局部,该图描述了当Wheels商店经理AnniePrice检查每辆自行车的保险是否到期时所发生地事情。在活动‘Checkbikeinsurancedetails’的多重符号表示这个活动重复直到所有自行车的细节都被检查为止。信息系统分析与设计InformationSystemAnalysisandDesign13/33技术关键点-2省略菱形判断符号使用菱形符号来表示导向活动图中不同的行动过程不是强制性的,虽然使用菱形时,通过图形的不同路径常常是更加清楚。图6.12表示了图6.5(‘Issuebike’用例的活动图)中一个部分的两个不同版本,一个带有菱形判断符号,一个则没有。将图形划分一个图形中相关活动的子集能被圈住并标识如图6.13中所示,图中同处理顾客细节相关的活动被被表示成一个带有自己起始状态和终止状态的小部分。以这种方式对活动图进行划分有助于整个图形的可读性,并且也支持重用、因为主图中的这一小部分能被用于任何涉及处理顾客细节的活动图中。信息系统分析与设计InformationSystemAnalysisandDesign14/33技术关键点-3对象流在一个活动图中包括有关一个活动需要的来自一个特定对象的输入,或者一个对象是如何被一个活动的输出所影响的信息通常是有用的。以这种方式,在活动图中表示的过程能被联接到它的输入和输出。有时一个对象的名称被用作一个活动的名称,如图6.14中所示。.然而,这种活动和对象之间的联接通常通过在活动图中包括相关的对象以及对象流的流入或流出关联活动来表示。如果一个对象为一个活动提供输入,就绘制一个从对象到该活动的对象流(虚箭头)。如果一个活动产生或更新一个对象,就绘制一个从活动到该对象的对象流。信息系统分析与设计InformationSystemAnalysisandDesign15/33技术关键点-4对象流(续)图6.15是‘Issuebike’用例的活动图(参见图6.5),但包括了涉及到该用例的对象和将它们联接到特定活动的对象流。在一个对象的状态被一个活动改变的情况下,这能被表示在图6.16中对象的标签上,其表示了活动‘Updatecustomerrecord’室如何更新相关的顾客对象的。在对象流能暗示对象之间的转换的地方,它们之间的转换可以被省略。这能在图6.17中的a和b中看到,其表示了‘Issuebike’用例的局部。图6.17a中包括了在活动‘Paycharge’和‘Issuereceipt’之间的转换;在图6.17b中这种转换被Payment对象和联接该对象到该活动的对象流所取代。信息系统分析与设计InformationSystemAnalysisandDesign16/33图6.1在Wheels类图中的Bike类信息系统分析与设计InformationSystemAnalysisandDesign17/33图6.2“getCharges()”操作的简单活动图信息系统分析与设计InformationSystemAnalysisandDesign18/33图6.3活动图的符号信息系统分析与设计InformationSystemAnalysisandDesign19/33图6.4“Issuebike”用例的初始活动图信息系统分析与设计InformationSystemAnalysisandDesign20/33图6.5表示了可变化行动的“Issuebike”用例的活动图信息系统分析与设计InformationSystemAnalysisandDesign21/33图6.6表示重复活动的活动图信息系统分析与设计InformationSystemAnalysisandDesign22/33图6.7“Handlebikereturn”用例的初始活动图信息系统分析与设计InformationSystemAnalysisandDesign23/33图6.8表示了并行活动的“Handlebikereturn”用例的活动图信息系统分析与设计InformationSystemAnalysisandDesign24/33图6.9“Handlebikereturn”用例的修改后的活动图,其表示了并行活动和选择信息系统分析与设计InformationSystemAnalysisandDesign25/33图6.10修改后的“Handlebikereturn”用例的活动图,其利用附加的泳道来表示了不同活动的责任人信息系统分析与设计InformationSystemAnalysisandDesign26/33图6.11表示了如何利用多重符号*来指示一个活动的重复的活动图的选择信息系统分析与设计InformationSystemAnaly