欢迎来到天天文库
浏览记录
ID:20547114
大小:722.00 KB
页数:23页
时间:2018-10-13
《uml-06-活动图》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、可视化建模与UML大连理工大学城市学院软件工程教研室教学安排一、基础部分专题一:UML概述专题二:面向对象基础与UML的组成二、UML模型图专题三:类图、对象图、包图专题四:用例图★讨论课专题五:交互图(顺序图、协作图)专题六:活动图专题七:状态图专题八:部署图与配置图★讨论课三、提升部分专题九:统一过程和迭代开发专题十:正向工程与逆向工程四、答辩主要内容什么是活动图(ActivityDiagram)活动图的特性活动图的用途活动图中的基本概念怎样绘制活动图什么是活动图(ActivityDiagram)?活动图描述了从活动到活动的流。活动图从本质上说,是一个流程图,它显示出
2、一个过程的各个步骤。活动图是UML中对系统动态方面建模的图之一。活动图的用途活动图对表示并发行为很有用。活动图的应用非常广泛,包括:1.对系统的工作流(workflow)建模,即对系统的业务过程建模。(UseCase分析)2.对具体的操作建模,描述计算过程的细节。活动图中的基本概念activity(活动):动作状态和活动状态transition(转移)swimlane(泳道)branch(分支)forkandjoin(分叉和汇合)objectflow(对象流)案例:乘坐电梯的活动图1、用户(user)想乘电梯,按下电梯外的按钮(Pressbutton)。2、如果电梯在当前
3、楼层,则电梯门打开(Openthedoor);否则,电梯移到当前楼层(Liftmovetothecurrentfloor),然后电梯门打开。3、电梯门打开后,用户进入(enter),电梯门关闭(closethedoor)4、用户按想去的楼层按钮(Pressdesiredfloorbutton)5、电梯移到那个楼层(Gotothefloor)6、电梯门打开(Thedooropen),用户离开(leave)7、电梯门关闭(close)。动作状态对象的动作状态是活动图最小单位的构造块,表示原子动作。动作有三个特点:原子性,即不能被分解为更小部分;不可中断的,即一旦开始就必须运行
4、到结束瞬时的,即动作状态所占用的处理时间通常是极短的,甚至是可以被忽略的。活动状态相比动作状态,活动状态能够被进一步分解,它的活动可以由其他的活动图表示。活动状态不是原子的,可以被中断。在UML中,动作状态和活动状态的图标没有区别。分支(branch)(判定)分支表示在不同的判断结果下执行不同的路径。注意,在所有的输出转换中,监护条件不能重叠,而且它们应该覆盖所有的可能性。表示分支的方法:分叉和汇合(forkandjoin)(并发路径)在建模的时候可能会遇到对象在运行时存在两个或多个并发运行的控制流;在UML中可以使用“分叉”把路径分为两个或多个的并发运行控制流,然后使用
5、“汇合”同步这些并发流。从概念上说,分叉的每一个控制流都是并发的,但实际中,这些流可以是真正的并发,也可以是时序交替的。分叉和汇合的例子对象流(objectflow)在活动图中可以出现对象。对象可以作为活动的输入或输出。Anobjectflowonanactivitydiagramrepresentstherelationshipbetweenanactivityandtheobjectthatcreatesit(asanoutput)orusesit(asaninput).对象流的例子泳道(Swimlane)泳道将一个活动图中的活动状态分组,每一组表示负责那些活动的业务
6、组织。在泳道活动图中,泳道区分了活动的不同职责,每一个活动都只能明确的属于一个泳道。说明:每个泳道代表一个责任区。使用泳道的例子怎样绘制活动图下面这些步骤描述了绘制活动图的基本任务,这些任务都以迭代的方式执行。1.确定活动图的范围。2.增加起点和终点。3.添加活动4.添加活动间的转变5.添加决策点6.找出可并行活动之处Example(方法handleThread的源代码)为操作建模PublicvoidhandleThread(intstate){for(inti=0;i7、t.START){if(controls[i]instanceofCustomControls){((CustomControls)controls[i]).start();}}elseif(state==CustomControlsContext.STOP){if(controls[i]instanceofCustomControls){((CustomControls)controls[i]).stop();}}}}Example(方法handleThread的源代码)为操作建模课堂练习学生请假流程1、学生请假须先经班主任
7、t.START){if(controls[i]instanceofCustomControls){((CustomControls)controls[i]).start();}}elseif(state==CustomControlsContext.STOP){if(controls[i]instanceofCustomControls){((CustomControls)controls[i]).stop();}}}}Example(方法handleThread的源代码)为操作建模课堂练习学生请假流程1、学生请假须先经班主任
此文档下载收益归作者所有