- 1、本文档共57页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[第讲活动图
§6.1 概述 活动图与流程图的区别: 流程图着重描述处理过程,它的主要控制结构是顺序、分支和循环,各个处理之间有严格的顺序和时间关系; 活动图描述的则是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程。 活动图能够表示并发活动的情形; 流程图做不到。 活动图是面向对象的; 流程图是面向过程的。 动作 动作是指执行原子的、不可中断的动作,并在此动作完成后通过完成转换转向另一个状态。 动作状态使用平滑的圆角矩形表示,动作状态所表示的动作写在圆角矩形内部。 动作的特点: 动作是原子的,它是构造活动图的最小单位,已经无法分解为更小的部分。 动作是不可中断的,它一旦开始运行就不能中断,一直运行到结束。 动作是瞬时的行为,它所占用的处理事件极短,有时甚至可以忽略。 动作可以有入转换,入转换既可以是动作流,也可以是对象流。动作至少有一条出转换,这条转换以内部动作的完成为起点,与外部事件无关。 动作和状态图中的状态不同,它不能有入口动作和出口动作,更不能有内部转移。 在一张活动图中,动作允许多处出现。 动作流 所有动作状态之间的转换流称之为动作流。 与状态图的转换相同,活动图的转换也用带箭头的直线表示,箭头的方向指向转入的方向。 Take book to Librarian:将书交给图书管理员 Leave Library:离开图书馆 Fine Money:缴纳罚金 完成下列循环语句的活动图。 for (i=1;i10;i++) { count(i); } 订单处理 泳道 泳道将活动图中的活动划分为若干组,区分了负责活动的对象,明确地表示了哪些活动是由哪些对象进行的。 每个活动只能明确地属于一个泳道。 泳道用垂直实线绘出,垂直线分隔的区域就是泳道。在泳道上方可以给出泳道的名字或对象(对象类)的名字,该对象(对象类)负责泳道内的全部活动。 泳道没有顺序,不同泳道中的活动既可以顺序进行也可以并发进行,动作流和对象流允许穿越分隔线。 对象流 对象流中的对象特点: 一个对象可以由多个动作操纵。 一个动作输出的对象可以作为另一个动作输入的对象。 在活动图中,同一个对象可以多次出现,它的每一次出现表明该对象正处于对象生存期的不同时间点。 完成书店售书的活动图。 Enter into bookstore:进入书店 Search for book:寻找想要的书籍 Pay for the book:付款购书 Pay 80%:如果是会员,8折购书 Pay 100%:如果不是会员,全价购书 Leave bookstore:离开书店 活动图应用 (1)为工作流建模 对工作流建模强调与系统进行交互的对象所观察到的活动。工作流一般处于系统的边界,用于可视化、详述、构造和文档化开发系统所涉及的业务流程。 (2)为对象的操作建模 活动图本质上就是流程图,它描述系统的活动、判定和分支等部分。因此,在UML中可以把活动图作为流程图来使用,用于对系统的操作建模。 求Fibonacci数列的第n个数的函数,Fibonacci数列的前两项为0和1,以后的每一个数都是前两个数之和。 long fib(long n) { long f=0,f1=0,f2=1; if(n= =0||n= =1) return n; else { for(i=2;i=n;i++) { f=f1+f2; f1=f2; f2=f; } return f; } } 优点:最适合支持并发行为,而且也是支持多线程编程的有力工具。 缺点:由于复杂度方面的限制,很难清楚的描述动作与对象之间的关系。虽然可以使用泳道、对象及对象流来进行关系的描述,但仍然没有交互图的描述简单直接。 (1)适合使用活动图的环境。 分析用例。活动图可以直观、清晰地分析用例,了解应当采取哪些动作以及这些动作之间的依赖关系。一张完整的活动图示所有用例的集成图。 理解涉及多个用例的工作流。在难于区分不同用例而对整个系统的工作过程又十分清楚时,可以先构造活动图,然后用切片技术派生用例图。 处理多线程应用。采用“分层抽象,逐步细化”的原则描述多线程。 (2)不适用活动图的情况。 显示对象间的合作。虽然可以使用泳道、对象及对象流来进行关系的描述,由于复杂度方面的限制,很难清楚的描述动作与对象之间的关系。用交互图中的时序图或协作图描述对象间的合作更为简单直观。 显示对象在生命期内的运转情况。活动图可以表示动作及活动转移,但不能显示一个对象的状态转移条件。因此,当要描述一个对象整个生命期内的运转情况时,应当使用状态图。 2 活动图建模 在建模过程中,可以参照如下步骤进行:
文档评论(0)