一:动态视图
--->动态视图是描述事物动态行为的。
--->需要注意的是:动态视图不能够独立存在,它必需特指一个静态视图活uml元素,说明在静态视图规定的事物结构下它们的动态行为。
--->动态视图:活动图,状态图,时序图,协作图
 
二:活动图
--->活动图描述了为了完成某一个目标需要做的活动以及这些活动的执行顺序。
--->uml中有两个层面的活动图,一种用于描述用例场景,叫[用例活动图],另一种用于描述对象交互,叫[对象活动图]。
--->在面向对象的眼中是没有业务流程这种东西的,所谓流程只不过是在某个外部力量推动下对象之间相互交流的一个过程,它只是“瞬时”的。如果从活动图的观点来描述业务,实际上是不能直接看到对象是如何发挥作用的。这样在观念上很容易导致对象独立性被破坏。因为面向对象要求对象越独立,封装度越高越好,可是面向对象越纯粹,我们越难以理解这些对象将会干什么。正所谓上帝什么都能做,但其实它什么也没有做。所以我们面临一个这样的矛盾,既要保持面向对象观点中对象的独立性,又要保持现实世界中业务目标的过程化描述。活动图的引入解决了业务目标过程化描述,但也给对象分析造成了混乱。因此,在使用活动图时,要保持清醒的头脑,活动图只是我们用来描述业务目标的达成过程,并借此发现对象的工具。他不是我们的分析目标,也不是编程的依据,它只是对象的应用场景之一。我们使用活动图来描述用例场景,帮助我们认识问题领域,从问题领域中发现关键对象,然后经应该把活动图中的流程忘掉,而专心研究关键对象的特性。
 
 
三:用例活动图
--->用例活动图是最经常使用的。用例表达了参与者的一个目标。
--->起始点:标记业务流程的开始。一个活动图,活着说一个业务流程有且仅有一个起始点。
--->活动:是业务流程中一个执行单元
--->判断:判断根据某个条件进行决策,执行不同的流程分支。
--->同步:同步分为同步起始和同步汇合。同步起始表示它开始多个支流并行执行。同步汇合表示多个支流同时到达后再执行后续活动。
--->结束点:表示业务流程的终止。一个活动图活着说一个业务流程,可以有一个或多个结束点。
--->基本流:表示最主要,最频繁使用的,默认的业务流程分支。
--->支流:表示不经常使用的,由某个条件触发的,非默认的业务流程分支。
--->异常流:表示非正常的,不是业务目标期待的,容错性的,处理意外情况的业务流程分支
--->组合活动:可以用嵌套的活动来表示。不过这种方式会导致活动图太复杂而不清晰,建议不使用。
 
 
四:对象活动图
--->对象活动图用于展示对象的交互。
--->根据查询商品的对象交互过程绘制出对象活动图。
--->用对象活动图来描述对象交互的感觉并不是那么清晰。实际工作中没什么理由使用它,有更好的工具绘制对象几乎图。例如:状态图,时序图,协作图。
 
 
 
五:泳道
--->顾名思义,就像一个游泳运动员只能在一个泳道里比赛一样。一个对象也只能在一个业务历程中担任一个(或一类)的职责。泳道代表了一个特定的类,人,部门,层次等对象的职责区,这些对象在业务流程中负责执行的活动集合合成了他们的职责。 
--->解决了活动图不能描述对象职责的遗憾。
 
 
五:业务场景建模
--->业务场景建模,就是以客户代表作为泳道,以从业务主角处获取业务用例作为活动来编排活动图。这种活动图对我们获取正确的业务用例作有很好的帮助。
(1)帮助发现业务用例
(2)帮助检查业务用例粒度
(3)帮助检查业务主角
(4)帮助检查业务用例
六:用例场景建模
--->获得业务用例之后,我们得到了参与者的业务目标,我们通过用例场景来说明如何达到业务目标。
--->我们经常以业务主角和业务工人作为泳道,以工作单元作为活动来编排活动图来描述用例场景。
--->这种活动图对我们获得概念用例,角色和业务对象(业务实体)有着很好的帮助。
(1)帮助发现概念用例(工作单元)。
  如果发现多个用例场景中类似的工作单元经常出现,就可以考虑将她抽象出来。在根据情况采用包含,扩展或者泛化关系将其连接到基本用例(即他们所贡献的业务用例)
(2)帮助发现角色
  通常,一个泳道(业务主角活业务工人)可以定义一个角色。但是如果多个用例场景中发现同一个或同一类工作单元(活动)位于不同泳道,即被不同的业务主角或业务工人使用,那么应该考虑为这些使用了同一活动的业务主角活业务工人抽象出更高级别的角色。
(3)帮助发现业务实体
  如上图,我们会发现所有活动都有着相同的命名规则:动词+名词。这些名词就是很好的业务实体(对象)的来源。如:机票,登机牌。
(4)帮助建立领域模型。
  领域模型描述哪些对业务有着重要意义的业务对象,如果在同一个或多个用例场景的不同活动中发现某个名词重复出现。那么应当对这个名词给予重视。它很可能就是一个关键的业务对象。这个业务对象在不同活动中的状态以及它与活动图中其他名词之间的关系很可能就决定了业务的结构。绘制出这个结构就能获得领域模型。
 

<十五>UML核心视图动态视图之活动图的更多相关文章

  1. 【UML】-NO.42.EBook.5.UML.1.002-【UML 大战需求分析】- 活动图 (Activity Diagram)

    1.0.0 Summary Tittle:[UML]-NO.42.EBook.1.UML.1.002-[UML 大战需求分析]- 活动图 Style:DesignPattern Series:Desi ...

  2. <十八>UML核心视图动态视图之协作图

    一:协作图 --->描述了对象间交互的一种模式.它通过对象之间的连接和它们相互发送的消息来显示参与交互的对象 --->协作图可以有对象和主角实例,以及描述它们之间关系和交互的连接和消息.通 ...

  3. <十六>UML核心视图动态视图之状态图

    一:状态图 --->状态图显示一个状态机. --->状态机用于对模型元素的动态性进行建模.更具体地说,就是对系统行为中受事件驱动的方面进行建模. --->通常使用状态图来说明业务角色 ...

  4. <十四>UML核心视图静态视图之类图和包图

    一:类图(行为类和实体类) --->类图用于展示系统中的类及其相互之间的关系 --->概念层类图 --->说明层类图   二:概念层类图 --->概念层的观点认为:在这个层次的 ...

  5. <十七>UML核心视图动态视图之时序图

    一:时序图 --->时序图是用于描述按时间顺序排列的对象之间的交互模式. --->它按照参与交互的对象所具有的“生命线”和他们相互发送的消息来显示这些对象. --->时序图包含对象和 ...

  6. ABP源码分析三十五:ABP中动态WebAPI原理解析

    动态WebAPI应该算是ABP中最Magic的功能之一了吧.开发人员无须定义继承自ApiController的类,只须重用Application Service中的类就可以对外提供WebAPI的功能, ...

  7. python接口自动化测试十五:解决密码动态,无法登录情况

    解决问题:每次密码都是变化的,无法通过账号密码登录 (总不能每次去fiddler复制吧????) 解决思路: 1.先用selenium调用浏览器(不会selenium的自己想办法了), 2.登录后从浏 ...

  8. Thinking in UML 学习笔记(四)——UML核心视图之活动图

    在UML中活动图的本质就是流程图,它描述了为了完成某一个目标需要做的活动以及这些互动的执行顺序.UML中有两个层面的活动图,一种用于描述用例场景,另一种用于描述对象交互. 活动图只是我们用来描述业务目 ...

  9. ****** 五十 ******、软设笔记【UML分析和意义】-类图、对象图、状态图、活动图、顺序图、协作图、构件图、部署图,动静态模式

    一.类图(Class Diagram) 描述一组类.接口.协作已经它们之间的图,用来显示系统中各个类的静态结构图. 类之间的关系(relationship) *依赖(dependency) *泛化(g ...

随机推荐

  1. 【Java项目实战】——DRP之HTML总结

    在DRP的学习之中,又将之前BS的内容又一次复习了一遍,借着复习的机会将BS的各个部分再又一次总结一下.今天来总结一下HTML. 在学习BS之后就进入了权限系统的开发之中,可是仍然发现非常多代码不会不 ...

  2. iOS开发系列--让你的应用“动”起来【转载】

    概览 原文链接:http://www.cnblogs.com/kenshincui/p/3972100.html 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥i ...

  3. 黑名单机制来临,你的应用还好么?Android P DP2最新兼容性报告出炉

    5月9日,谷歌面向全球开发者发布了 Android P Beta,即 Android P DP2. 华为终端开放实验室第一时间对TOP1000主流应用兼容性进行测试,那么在版本兼容性方面各主流应用有何 ...

  4. js获取和设置属性的方法

    function square(num){    var total = num*num;//局部变量    return total;}var total = 50;//全局变量var number ...

  5. 多媒体开发之---h264 图像参数级语义

    (四)图像参数集语义 pic_parameter_set_rbsp( ) {       // pic_parameter_set_id 用以指定本参数集的序号,该序号在各片的片头被引用.    pi ...

  6. android shareSDK 微博分享案例

    android shareSDK 微博分享案例 ShareSDK APP_KEY 219b1121fc68 腾讯微博 key 801517904 secret bfba83ae253c8f38dabe ...

  7. 前端要给力之:语句在JavaScript中的值

    文件夹 文件夹 问题是语句有值吗 那么说你骗我咯 有啥米用呢 研究这个是不是闲得那个啥疼 ES5ES6有什么差异呢 结论是ES6是改了规则但更合理 最后不不过if语句 这两天在写语言精髓那本书的第三版 ...

  8. 【BZOJ2096】[Poi2010]Pilots 双指针+单调队列

    [BZOJ2096][Poi2010]Pilots Description Tz又耍畸形了!!他要当飞行员,他拿到了一个飞行员测试难度序列,他设定了一个难度差的最大值,在序列中他想找到一个最长的子串, ...

  9. 【BZOJ2666】[cqoi2012]组装 贪心

    [BZOJ2666][cqoi2012]组装 Description 数轴上有m个生产车间可以生产零件.一共有n种零件,编号为1~n.第i个车间的坐标为xi,生产第pi种零件(1<=pi< ...

  10. JavaScript中实现继承

    今天即兴研究了下JS,查阅了相关资料 ,发现Js中没有"子类"和"父类"的概念,也没有"类"(class)和"实例"(i ...