《第3章3.3活动图课件》由会员分享,可在线阅读,更多相关《第3章3.3活动图课件(52页珍藏版)》请在金锄头文库上搜索。
1、业务流程分析工具-活动图通过UML中的活动图,可以帮助我们进行用户业务流程建模,帮助我们站在用户的视角上进行业务分析。在业务流程建模中,我们关注的是用户进行某项业务的执行步骤。 活动图(Activity Diagram)的概念和内容1 活动图的内容2 活动图的用途3 活动图的建模技术什么是活动图什么是活动图( (Activity Activity Diagram)Diagram)? ?活动图描述了从活动到活动的流。活动图从本质上说,是一个流程图,它显示出一个过程的各个步骤。活动图与流程图的区别活动图与流程图的区别(1)流程图着重描述处理过程,它的主要控制结构是顺序、分支和循环,各个处理过程之间
2、有严格的顺序和时间关系;而活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程。(2)活动图能够表示并发活动的情形,而流程图不能。(3)活动图是面向对象的,流程图是面向过程的。 .1 活动图的内容活动图是UML中描述系统动态行为的图之一,它用于展现参与行为的类的活动或动作。UML中,图形上活动图里的活动用圆角矩形表示活动图的主要内容是:1. 动作状态2. 活动状态3. 动作流4. 分支(Branch)5. 分叉和汇合6. 泳道7. 对象流活动图符号表示动作状态动作流分支(判定条件)分叉和汇合(表示并发和同步)泳道 .2 活动图的用途活动图用于对系统的动态行
3、为建模。在对一个系统建模时,通常有两种使用活动图的方式:(1)为工作流建模(2)为对象的操作建模 3活动图的建模技术在系统建模过程中,活动图能够被附加到任何建模元素,以描述其行为,这些元素包括用例、类、接口、组件、节点、协作、操作和方法。在建模过程中,读者可以参照以下步骤进行:(1)识别要对其工作流进行描述的类;(2)对动态状态建模;(3)对动作流建模;(4)对对象流建模;(5)对建模结果进行精化和细化。一个活动图的例子用一个活动图表示一下考试的过程。思考一下:你们每次参加考试的过程是怎么样的?一个考试的过程1.开始2.学生进入考场。3.监考教师核对检查证件,发试卷。4.学生对号入座。5.学生
4、开始答题。6.学生交卷。7.监考教师收取试卷。8.结束活动图的表示这个活动图的活动发起者有学生和监考教师,为了更好的表达动作发起者,可在活动图中用“泳道”(Swimlane),泳道也叫 “分区”(Partition)。加入泳道之后图书管理系统的业务流程建模根据访谈分析业务流程借书流程1.图书管理员得到学生出示的借书证2.图书管理员得到学生递给他的书3.进行借书信息登记画出活动图还书流程1.得到图书信息2.查阅借书信息表3.登记归还借阅管理流程我们绘制了借阅管理的活动图之后,发现无法更清楚的描绘用户的业务情况,这说明 我们需要对办理借阅证这个动作状态和借阅证遗失补办这个动作状态进行进一步细化进一
5、步细化。办理借阅证办理借阅证借阅证遗失补办借阅证遗失补办图书管理流程同样的,图书管理中的三个动作状态也需要进一步细化。图书报废处理图书入库图书遗失处理别忘了加上必要的注释借阅管理办理借阅证借阅证遗失补办图书管理图书入库图书报废处理图书遗失处理“餐馆订餐”系统的用例图33“记录预约”用例的事件路径如下: 1接待员输入要预约的日期2系统显示该日的预约3有一张合适的餐桌可以使用,接待员输入顾客的姓名和电话号码、预约的时间、用餐人数和餐桌号 3a 没有合适的餐桌可以使用 3a1 用例终止34“记录预约”用例的事件路径如下:4系统记录并显示该预约4a 输入的预约人数多于餐桌能容纳的人数 4a1 系统发出
6、一个警告信息,询问用户是否要继续预约 4a1a 如回答“否”,用例将不进行预约而终止 4a1b 如回答“是”,预约将被输入,并附有一个 警告标志建模主事件流建模扩展事件流划分泳道后的活动图对象流对象流(object flow)(object flow)在活动图中可以出现对象。对象可以作为活动的输入或输出。 An object flow on an activity diagram represents the relationship between an activity and the object that creates it (as an output) or uses it (as
7、 an input).在UML中,可以在活动图中标识一个对象的角色,状态和属性值的变化,它的表示方法如图所示。对象流的例子对象流的例子对象流的例子对象流的例子3 标识对象流的活动图(1)当“用户下订单”时,将创建一个Order类的实例,用来存放订单的信息,该Order类还包含着相应的OrderItem(针对每个产品一条)(2)当“生成送货单”时,将根据Order类的实例创建多个DeliverOrder(送货单)的实例。(3)当“修改订单项状态”之后,DeliverOrder对象的状态将变成finished。本次小结在本次课中,我们学习了以下知识:利用用例图进行业务建模的知识利用活动图进行业务流
8、程建模的知识在领域分析中,我们可以根据与用户访谈的结果,进行业务用例建模,并为每个业务用例进行业务流程建模,帮助我们获取和分析用户实际业务情况,为下一步进行需求分析做准备。练习1描述早上起床活动如下:闹钟响后经过一番心理斗争上课还是不上课,想到这节课已经缺勤好几次,再不去可能会挂掉,迫于无奈起床,洗漱去上课;或者昨天通宵上网打游戏,实在困的不行了,决定睡懒觉,找个同学帮忙答到,继续睡觉。请画出早上起床的活动图练习2学生请假流程1、学生请假须先经班主任同意;2、班主任在准假时,只能批准少于等于3天的假期,如学生请假时间超越审批权限,还要请系办审批,经系办审批后,系办将假条存根留下,事后转班主任存
9、查。3、学生请假获准后,应立即报告班长,以便班长向任课教师报告。画出请假的活动图练习3:乘坐电梯的活动图1、 用户(user)想乘电梯,按下电梯外的按钮(Press button)。2、如果电梯在当前楼层,则电梯门打开(Open the door);否则,电梯移到当前楼层(Lift move to the current floor),然后电梯门打开。3、电梯门打开后,用户进入(enter),电梯门关闭(close the door)4、用户按想去的楼层按钮(Press desired floor button)5、电梯移到那个楼层(Go to the floor)6、电梯门打开(The do
10、or open),用户离开(leave)7、电梯门关闭( close)。乘客 电梯按下按钮电梯移到当前楼层电梯在当前楼层否则电梯开门进入电梯电梯关门按下目标楼层按钮开往目标楼层电梯开门离开电梯电梯关门画出乘客乘电梯的活动图练习4用活动图描述起泡排序算法。标识信号的活动图利用“信号”可以增加活动图的可读性。信号是表示两个对象之间进行异步通讯的方式,当一个对象接收到一个信号时,将触发信号事件。在活动图中,有三种信号元素:发送信号,接收信号和时间信号。(1)时间信号:时间信号是用来表示随着时间的流逝而自动发出的信号,时间信号表示,当时间到达某个特定的时刻时,就会触发时间事件,例如每天10点时,闹钟开
11、始响铃,10点钟发出响铃的信号就是时间信号。(2)发送信号:也就是发出一个异步消息,对于发送者而言,就是发送信号;对于接收到这种消息的目标而言,就是“接收信号。(3)接收信号:就是接收者收到的一个外部信号。例:活动图中标识时间信号例如小张去必胜客饭店吃饭,发现要排队等待,他决定如果15分钟还轮不到,就到隔壁的肯德基吃饭,这时就可以通过上述的符号来表示小张吃饭的活动。图中假设小张排在最前面。在“小张”这个泳道中,两个控制流中只有一个控制流会执行。在时间信号发生之间,收到当必胜客饭店发出“有空位”信号,小张接收到“有空位”信号时,小张才会执行“进入必胜客”的活动;否则小张会执行“进入肯德基”的活动。