收藏 分销(赏)

系统动态建模活动图.ppt

上传人:精*** 文档编号:14507672 上传时间:2026-10-02 格式:PPT 页数:79 大小:1.18MB 下载积分:10 金币
下载 相关
系统动态建模活动图.ppt_第1页
第1页 / 共79页
系统动态建模活动图.ppt_第2页
第2页 / 共79页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,第5章 系统动态建模-活动图,2026/10/2,1,理解:活动图的作用,掌握:活动图建模的方法,教学要求,2026/10/2,2,5.1,活动图的概念,5.2,活动图的表示,5.3,活动图分类,5.4,构建活动图,小结,2026/10/2,3,活动(,Activity,),是做某件事情的状态,它可以是现实世界中的一项工作,如写文章、修机器等;或者是执行某个软件的例行程序,如运行对象类中的一个操作等。,活动图是一种表述业务过程以及工作流的技术。它可以用来对业务过程,工作流建模,也可以对用例实现,甚至是对程序实现进行建模。活动图与流程图的最主要的区别在于,活动图能够标识活动的并行行为。,5.1,定义活动图,2026/10/2,4,活动,是某件事情正在进行的状态。,它既可以是现实生活中正在进行的某一项工作,(,写文章、维修机器等,),也可以是软件系统中正在运行的某个类对象的一个操作。,活动具体表现为由一系列动作组成的执行过程。,将各种活动以及不同活动之间的转换用图形进行表示,就构成了活动图。,5.1,定义活动图,2026/10/2,5,活动图描述了活动的顺序,展现从一个活动到另一个活动的控制流。,活动图在本质上是一种流程图。但与流程图又有区别。,5.1,定义活动图,2026/10/2,6,活动图与流程图的区别,活动图描述系统使用的活动、判定点和分支,看起来和流程图没什么两样,并且传统的流程图所能表示的内容,大多数情况下也可以使用活动图表示,但是两者是有区别的,不能将两个概念混淆。,2026/10/2,7,活动图与流程图的区别,流程图着重描述处理过程,它的主要控制结构是顺序、分支和循环,各个处理过程之间有严格的顺序和时间关系,活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程。,2026/10/2,8,活动图能够表示并发活动的情形,而流程图不能。,活动图是面向对象的,而流程图是面向过程的。,活动图与流程图的区别,2026/10/2,9,5.2,活动图的表示,1.,活动图,活动图是描述系统或业务的一序列活动构成的控制流,它描述了系统从一种活动转换到另一种活动的整个过程。,例如,有一个表示某公司销售过程的一张活动图,,图,8-1,就是描述这一业务过程的活动图。,图,8-1,活动图,2026/10/2,10,5.2,活动图的表示,2.,活动图的作用,活动图常用来描述业务或软件系统的活动轨迹,描述了系统的活动控制流程。我们常用活动图对业务过程,、工作流和,用例实现,进行建模。,3.,活动图的组成元素,活动图的元素包括初始节点,、终点、,活动节点,、转换、分支、,分岔与汇合,。其中,转换、分支、,分岔与汇合,把多个活动节点连接在一起。,4.,活动图与交互图,活动图和交互图是,UML,中对系统动态方面建模的两种主要形式,交互图强调对象与对象之间的交互消息,而活动图则强调的是从活动到活动的控制流程,2026/10/2,11,1.,活动图的元素,活动起点,活动,分叉,汇合,活动终点,分支,合并,2026/10/2,12,1,、活动的概念,表示工作流过程中命令的执行或活动的进行。,2,、活动的符号,一、活动(动作),2026/10/2,13,2,、活动的符号,在下图中列出的就是一些可能的活动节点描述,可能用文字描述活动节点,可能用表达式描述活动节点,可能用消息描述活动节点。,图活动节点,2026/10/2,14,二、状态,开始状态,结束状态,2026/10/2,15,一个活动图中开始状态能否有多个?结束状态能否有多个?,2026/10/2,16,注意:,一个活动图中只能有一个开始状态,一个活动图中可以有多个结束状态,2026/10/2,17,三、转移(动作流),活动之间、活动与状态之间的转换。,2026/10/2,18,四、分支与合并,在实际应用中,有三种活动控制流,它们是顺序结构、分支结构、循环结构当从一个活动节点到另一个活动节点的转换需要条件时,常用分支与监护条件来表示活动的分支结构,分支是用菱形表示的,它有一个进入转换(箭头从外指向分支符号),一个或多个离开转换(箭头从分支符号指向外)。而每个离开转换上都会有一个监护条件,用来表示满足某种条件时才执行该转换。,一个合并有两个带条件的入转换和一个出转换,合并表示从对应的分支开始的条件行为的结束。,2026/10/2,19,1,、分支,根据条件的取值决定动作的流向。,2026/10/2,20,2026/10/2,21,2026/10/2,22,分支的两种表示方法,2026/10/2,23,2,、合并,合并将两条路径连接到一起,合并成一条路径。,2026/10/2,24,提示:判断节点与合并节点的符号相同,2026/10/2,25,五、分叉和汇合,在实际应用中,如果活动的转换是有条件的,我们就用分支与监护条件来表示转换,如果一些活动是并发执行的,我们就用分叉和汇合来表示并发活动。分叉线和汇合线都使用加粗的水平线或垂直线段表示。,2026/10/2,26,1,、分叉,用于将一个控制流分为两个或多个并发运行的分支。,2026/10/2,27,2026/10/2,28,2,、汇合,用于将两个或多个控制流,合并到一起,形成一个单向控制流。,如果一个控制流在其他控制流到达之前到达了连接,它将会等待,直到所有控制流都到达了才会向连接传递控制权。,2026/10/2,29,2026/10/2,30,(,1,)分叉:每个分叉可以有一个输入转换和两个或多个输出转换,每个转换都可以是独立的控制流。,(,2,)汇合:当两个或多个并发控制流都达到汇合点后,活动流程才能进入下一个活动节点,分岔用来表示两个或者多个并发活动的分支;而汇合则用于同步这些并发活动的分支,当且仅当所有的并发分支,(,活动,),都到达汇合点后,活动流程才能进入下一个活动节点。,2026/10/2,31,活动图课堂练习,大家画一下用,word,创建一个文件的活动图,使用该活动图对这一过程进行建模。,打开,新建,保存文件名,输入内容,选择是否需要图形软件,保存,打印,2026/10/2,32,2026/10/2,33,练习2:学生选课,学生进入选课系统,提交自己的用户名和密码,系统验证用户名,如果用户名不存在,给出提示结束,如果用户名存在,检查学生输入的密码,如果密码不正确,给出提示结束,如果密码正确,系统显示课程列表,学生选择要选修的课程,学生提交所选的课程,系统对选课进行验证,并给出确认提示,学生确认后,系统保存所选课程,系统提示操作成功,学生退出选课系统,2026/10/2,34,进入学生选,课系统,提交用户名,和密码,系统验证用,户名,验证用户密,码,有,系统显示课,程列表,学生选择要,选修的课程,系统验证并确认,所选课程,保存所选课,程,退出学生选,课系统,没有,提交所选课,程,不正确,正确,冲突,不冲突,2026/10/2,35,练习:销售合同从签订到履约的过程,销售合同签订后,要进行核对。如果发现错误,则终止履约;如果没有错误,则要核对货物清单确定是否有货,还要核对付款单确定对方是否已经付款,只有这两项都完成,才可以发货。如果无货或对方尚未付款,则终止履约。,2026/10/2,36,2026/10/2,37,课堂练习,学生请假流程,1,、学生请假须先经班主任同意;,2,、班主任在准假时,如学生请假时间超越审批权限,还要请系办审批,经系办审批后,系办将假条存根留下,事后转班主任存查。,3,、学生请假获准后,应立即报告班长,以便班长向任课教师报告。,2026/10/2,38,2026/10/2,39,5.3 活动图分类,按照活动图表示的信息不同,将活动图分为:简单活动图、标识泳道的活动图、标识对象流的活动图、复合活动图。,2026/10/2,40,简单活动图,图5-8 就是一个描述订单处理的简单活动图,这个图既没有标识活动的执行者,也没有标识活动执行过程中,创建了哪些对象。其中,每个活动都是简单的活动。,2026/10/2,41,图,5-8,订单处理,2026/10/2,42,ATM,机“登录”用例的活动图,2026/10/2,43,1.,借阅者的活动图,图书馆管理系统,2026/10/2,44,2.,图书管理员的活动图,图书馆管理系统,2026/10/2,45,3.,系统管理员维护借阅者帐户的活动图,图书馆管理系统,2026/10/2,46,4.,系统管理员进行书目信息维护的活动图,图书馆管理系统,2026/10/2,47,也要识别在操作执行过程中必须保存的信息.,例:一个名为“招聘处理”的扩展区域,活动具体表现为由一系列动作组成的执行过程。,在实际应用中,如果活动的转换是有条件的,我们就用分支与监护条件来表示转换,如果一些活动是并发执行的,我们就用分叉和汇合来表示并发活动。,3 标识对象流的活动图,左边泳道中的所有活动的执行者是窗口;,5 标识参数的活动图,例:一个名为“招聘处理”的扩展区域,(2)汇合:当两个或多个并发控制流都达到汇合点后,活动流程才能进入下一个活动节点,而每个离开转换上都会有一个监护条件,用来表示满足某种条件时才执行该转换。,掌握:活动图建模的方法,如果传入的参数合法,那么将输出参数利息值(accrual);,在交互图中,利用“信号”可以增加活动图的可读性。,“餐馆订餐”系统的用例图,(3)如果没有冲突,则系统添加新课程,提示课程添加成功。,活动图在本质上是一种流程图。,4a1b 如果回答“是”,预约将被输入,并附有一个警告标志,4a1a 如果回答“否”,用例将不进行预约而终止,5.,系统管理员维护书籍信息的活动图,图书馆管理系统,2026/10/2,48,5.3.2,标识泳道的活动图,为了有效地表示各个活动由谁负责的信息,可以通过泳道,(Swim Lane),来实现。例如,在图,8-9,的活动图中,活动的执行者包括窗口和打印机,因此可以将其分成二个泳道。左边泳道中的所有活动的执行者是窗口;右边泳道中的所有活动的执行者是打印机。,每个泳道用一条垂直的线将它们分开,并且每个泳道都必须有一个唯一的名称,例如本例中的窗口和打印机。从图中可以看出,每个活动节点,分支必须只属于一个泳道,而转换,分岔与汇合是可以跨泳道的。通过泳道,不仅体现了整个活动控制流,还体现出了每个活动的实施者。,2026/10/2,49,另外,如果输出产生异常对象,则可以在符号边上标注一个空心三角形。,5 标识参数的活动图,4a1b 如果回答“是”,预约将被输入,并附有一个警告标志,在“小张”这个泳道中,两个控制流中只有一个会控制流会执行。,一个活动图中可以有多个结束状态,图 扩展区域与并发行为示例,在实际应用中,有三种活动控制流,它们是顺序结构、分支结构、循环结构当从一个活动节点到另一个活动节点的转换需要条件时,常用分支与监护条件来表示活动的分支结构,5 标识参数的活动图,在UML中,我们可以在活动图中标识一个对象的角色,状态和属性值的变化,它的表示方法如图8-10所示。,用活动图对业务流程建模时,活动图中,每一条泳道表示一个职责单位(可以是个人,也可以是一个部门),每个泳道的执行者(或职责人)体现了职能部门的工作职责、业务范围、部门之间的交互关系。,系统管理员维护借阅者帐户的活动图,这时,在活动图中标明参数,使活动图表示更多的信息。,当一个活动图很复杂,我们可以把其中的一组相关活动看作一个子活动图,这时,在嵌套活动图中,用子活动图的简图代替子活动图。,图8-9 标识泳道的活动图,我们可以将子图单独放在一个图中详细说明它的活动,然后,在嵌套活动图引用子活动图。,5.3.2 标识泳道的活动图,获取打印机数据,设置打印页面,传送打印数据,打印文件,初始化打印机,保存页面参数数据,接收并保存打印数据,执行打印命令,:窗口,:打印机,图,8-9,标识,泳道的活动图,2026/10/2,50,5.3.2,标识对象流的活动图,在活动图中,存在这样一些现象:一种情况是,可能存在一些对象进入一个活动节点,经过活动处理,修改了对象的状态;另一种情况是,活动节点创建或删除了一些对象;一些情况是,输出一些对象。在这些活动中,对象与节点活动是紧密相关的,用户可以在活动图中把相关的对象标识出来,即标识哪些对象进入活动节点,哪些对象从活动节点中输出,这对编程具有现实意义。,在,UML,中,我们可以在活动图中标识一个对象的角色,状态和属性值的变化,它的表示方法如图,8-10,所示。,图,8-10,活动图中的对象表示法,2026/10/2,51,5.3.3 标识对象流的活动图,2026/10/2,52,5.3.3,标识对象流的活动图,在图,8-11,中,标识了一些关键的对象流,对象的状态也在图中作了标识:,(,1,)当“用户下订单”时,将创建一个,Order,类的实例,用来存放订单的信息,该,Order,类还包含着相应的,OrderItem,(针对每个产品一条),(,2,)当“生成送货单”时,将根据,Order,类的实例创建多个,DeliverOrder,(送货单)的实例。,(,3,)当“修改订单项状态”之后,,DeliverOrder,对象的状态将变成,finished,。,2026/10/2,53,5.3.3,标识对象流的活动图,当然,在这张活动图中实际上还蕴藏着许多对象流,例如:,(,1,)当“收款”后,,Order,类的实例的状态就变成了“已付款”。,(,2,)当“修改订单项状态”后,,Order,类中部分订单项的状态就变成了“已送货”。,(,3,)当用户取消或订单超过时限时,,Order,类的状态就将成为,Cancel,。,在实际应用中,绘制活动图时并不一定需要将所有的对象流都标识出来,这样会使活动图变得复杂、混乱。在实际建模中,只对重要的对象进行描述。,2026/10/2,54,5.3.4,标识信号的活动图,在交互图中,利用“信号”可以增加活动图的可读性。信号是表示两个对象之间进行异步通讯的方式,当一个对象接收到一个信号时,将触发信号事件。,2026/10/2,55,5.3.4,标识信号的活动图,1,信号,在活动图中,有三种信号元素,它们是:发送信号,接收信号和时间信号,其表示方法如图,8-12,所示。,(,1,)时间信号:时间信号是用来表示随着时间的流逝而自动发出的信号,时间信号表示,当时间到达某个特定的时刻时,就会触发时间事件,例如每天,10,点时,闹钟开始响铃,,10,点钟发出响铃的信号就是时间信号。,(,2,)发送信号:也就是发出一个异步消息,对于发送者而言,就是发送信号;对于接收到这种消息的目标而言,就是“接收信号。,(,3,)接收信号:就是接收者收到的一个外部信号。,图,8-12,三种信号的表示法,2026/10/2,56,5.3.4,标识信号的活动图,2,活动图中标识时间信号,例如小张去必胜客饭店吃饭,发现要排队等待,他决定如果,15,分钟还轮不到,就到隔壁的肯德基吃饭,这时就可以通过上述的符号来表示小张吃饭的活动。图,8-13,中假设小张排在最前面。,在“小张”这个泳道中,两个控制流中只有一个会控制流会执行。在时间信号发生之间,收到当必胜客饭店发出“有空位”信号,小张接收到“有空位”信号时,小张才会执行“进入必胜客”的活动;否则小张会执行“进入肯德基”的活动。,2026/10/2,57,5.3.4 标识信号的活动图,图,8-13,信号在活动图中的应用,2026/10/2,58,5.3.5,标识参数的活动图,一个方法可以包含多个参数,一个活动节点也可能带有多个参数。在绝大多数情况下,并不需要在活动图上标明参数信息,如果打算标明每个活动节点执行前,需要输入哪些参数,活动节点执行后,需要输出哪些参数,以及活动节点执行后,要进行的错误处理。这时,在活动图中标明参数,使活动图表示更多的信息。,1,参数,参数是一个对象节点,用一个小矩形框表示。参数分三种:输入参数,输出参数,错误参数。参数都标识在活动节点的边界上,输入参数标识在活动节点的左边界上;输出参数和错误参数标识在活动节点的右边界上。参数有名称和序号,我们把参数名称和号标识在参数节点的旁边。如图,8-14,所示。,2026/10/2,59,5.3.5,标识参数的活动图,在图,8-14,中,它表示活动“计算利息”节点将接受三个输入参数:本金,(principal),、利率,(rate),、年限(,year,);如果传入的参数合法,那么将输出参数利息值(,accrual,);如果输入了错误的参数,则产生异常。,在这个例子中,在小矩形中添加箭头符号,以区别输入参数和输出参数的不同。可以直接在参数边上标注表示参数顺序的数字。例如在本图中,,principal,、,rate,和,year,分别是第,1,、,2,、,3,个参数。另外,如果输出产生异常对象,则可以在符号边上标注一个空心三角形。,图,8-14,标识活动节点的输入参数和输出参数,2026/10/2,60,5.3.6,标识扩展区的活动图,在活动图中,有时需要表示一个活动需要多次执行的情况。例如在图,8-8,中,有三个活动节点“供应商送货”,“修改订单项状态”以及分支“所有订单项已送货完毕”都需要多次执行。由于一个订单对应多个“送货单”,因此在图,8-8,中,通过“分支”来表示其循环控制流,这样表示活动,并不准确。在图,8-15,中,我们采用了扩展区来表示活动节点的循环执行。,2026/10/2,61,5.3.6 标识扩展区的活动图,图,8-15,用扩展区表示活动节点的循环执行,2026/10/2,62,例:一个名为“招聘处理”的扩展区域,图,扩展区域与并发行为示例,招聘处理,求职申请,检查申请资料,审定聘用资格,面试,人事安排,申请表,聘用,不聘,聘用表,2026/10/2,63,5.3.7,嵌套活动图,如果一个活动图又包含了子活动图,则称这种图为嵌套活动图,(,也称为主活动图,),。当一个活动图很复杂,我们可以把其中的一组相关活动看作一个子活动图,这时,在嵌套活动图中,用子活动图的简图代替子活动图。我们可以将子图单独放在一个图中详细说明它的活动,然后,在嵌套活动图引用子活动图。图,8-15,是一个嵌套活动图,其中的收款,(,活动,),又是一个子活动图,子活动图的详细说明如图,8-16,所示。,图,8-16,子活动图,说明:一般来说,我们在嵌套活动图中,用叉齿符号的子图,(,子活动图的简图,),来代替子活动图。,2026/10/2,64,组合活动,“,发货,”,用一个子活动图表示,它有自己的初始状态、终结状态和判定分支。,Home,2026/10/2,65,5.4,构建活动图,活动图主要应用对两个方面建模:一是在业务分析阶段,对工作流程进行建模;二是在系统分析和设计阶段,对操作流程进行建模。,2026/10/2,66,5.4.1 对工作流程建模,用活动图对业务流程建模时,活动图中,每一条泳道表示一个职责单位(可以是个人,也可以是一个部门),每个泳道的执行者,(,或职责人,),体现了职能部门的工作职责,、,业务范围,、部门,之间的交互关系。,说明:矩形代表活动,菱形代表判断,平行线代表并行操作,带箭头线代表活动流,每个大列代表一个职能部门,最左边的每个分块代表业务阶段。,2026/10/2,67,5.4.1,对工作流程建模,使用活动图来对工作流程进行建模时,应该遵循以下一些主要原则:,1,从整个工作流中,选出一部分能体现高层职责的部门,并为每个重要的职责部门创建一条泳道,2,标识工作流初始节点的前置条件和活动终点的后置条件,以便有效地找出工作流的边界。,3,从该工作流的初始节点开始,找出随时间推动的动作和活动,并在活动图中把它们标识成活动节点,4,将复杂的活动或多次出现的活动用一个或多个子活动图的引用节点表示,然后为每个被引用的子活动图绘制出的详细活动图。,5,找出连接这些活动节点的转换,首先从工作流的顺序开始,然后考虑分支,接着再考虑分岔和汇合,6,如果标识出工作流中重要的对象,则也可以把对象流加入到活动图中,7,若工作流中有重复执行的活动,我们采用扩展区来表示循环活动,2026/10/2,68,例:一个表示软件开发的精化阶段的工作流的活动图,如图所示。它不是一个完全的活动图,在图中没有泳道和对象流,但它是现实的软件开发工作流的,一个简化,的可视化的描述。,Home,2026/10/2,69,5.4.2,对操作流程建模,在系统设计期间,我们用活动图对对象的职责进行建模,这时,这时,每一个对象占据一个泳道,而活动是该对象的成员方法。,在系统分析设计阶段,采用带泳道的活动图的情况较少,因为顺序图会更好地体现对象间的交互关系。活动图更适合于对其流程进行概述,最常用的场景是通过活动图对用例描述中的事件流进行建模。当用例的事件流较复杂,分支较多时,一张清晰明了的活动图能够帮助开发人员更好地理解程序的逻辑。,2026/10/2,70,5.4.2,对操作流程建模,用活动图对操作进行建模时,应遵循以下原则:,寻找操作所涉及的属性,包括操作的参数、返回类型、所属类的属性以及某些邻近的类识别该操作的初始节点的前置条件和活动终点的后置条件。也要识别在操作执行过程中必须保存的信息,.,从该操作的初始节点开始,标识随着时间发生的活动,并在活动图中将它们表示为活动节点如果需要,使用分支来说明条件语句及循环语句仅当操作属于一个主动类时,才在必要时用分岔和汇合来说明并行的控制流程,2026/10/2,71,5.5.1,如何建模活动图,(,1,)定义活动图范围,确定开始、结束状态。,(,2,)添加活动,建模主路径。,(,3,)寻找分支和并行的情况,建模扩展路径。,(,4,)根据需要划分游泳道。,2026/10/2,72,“餐馆订餐”系统的用例图,2026/10/2,73,“记录预约”用例的事件路径如下:,1接待员输入要预约的日期,2系统显示该日的预约,3有一张合适的餐桌可以使用,接待员输入顾客的姓名和 号码、预约的时间、用餐人数和餐桌号,3a 没有合适的餐桌可以使用,3a1 用例终止,4系统记录并显示该预约,4a 输入的预约人数多于餐桌能容纳的人数,4a1 系统发出一个警告信息,询问用户是否想要继续预约,4a1a 如果回答“否”,用例将不进行预约而终止,4a1b 如果回答“是”,预约将被输入,并附有一个警告标志,2026/10/2,74,建模主事件流,2026/10/2,75,建模扩展事件流,2026/10/2,76,划分游泳道后的活动图,2026/10/2,77,小结,本章首先讲解了活动节点、初始节点和活动终点、转换、分支与监护条件、分岔与汇合等基本建模元素;逐步引出了泳道、对象流等控制流逻辑 然后,分别介绍简单活动图、标识泳道的活动图、标识对象流的活动图、标识信号的活动图、标识扩展区的活动图、标识参数的活动图、标识嵌套活动图,最后,概括地说明了活动图的绘制要点,并结合对工作流建模和对操作建模之间的异同,2026/10/2,78,练习:,1,画活动图表示如下“自动售货机”的工作过程:顾客向机器投币;系统检查钱币的数量;系统显示可购买的饮料种类;顾客选择想买的饮料;如果机器无法送出饮料,则系统提示顾客想购买的饮料缺货,要求顾客重新选择饮料,否则系统送出饮料;最后,顾客得到饮料。,2,试画出,ATM,自动取款机“取款”用例的活动图。,3,对选课系统中的,Add Course,(添加课程)设计和制作活动图,将管理员输入课程信息作为起始的活动,内容如下:,(,1,)管理员输入信息。,(,2,)系统验证是否和已有课程冲突。,(,3,)如果没有冲突,则系统添加新课程,提示课程添加成功。,(,4,)系统重新进入管理主界面,显示所有课程。,(,5,)结束。,2026/10/2,79,
展开阅读全文

开通  VIP、SVIP  下载更划算
下载10份以上建议开通 VIP 会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        关注我们

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服