一:动态视图
--->动态视图是描述事物动态行为的。
--->需要注意的是:动态视图不能够独立存在,它必需特指一个静态视图活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. Gmail上不去怎么办?

    近期非常多人反映Gmail上不去.每到重大政治事件附近,国家的防火墙就会加固一些. 事实上仅仅要下一个软件就能够轻松解决Google.Gmail上不去的问题. 下载地址 下载解压后点击"我要 ...

  2. Jenkins--Run shell command in jenkins as root user?

    You need to modify the permission for jenkins user so that you can run the shell commands. You can i ...

  3. 图像处理之基础---二维卷积c实现

    http://wenku.baidu.com/link?url=4RzdmvP9sdaaUbnVEW4OyBD-g67wIOiJjKFF3Le_bu7hIiBS7I6hMcDmCXrQwsHvrsPv ...

  4. 高速修复汉澳sinox命令解释程序bash shell漏洞

    bash是linux默认命令行管理程序shell.汉澳 sinox也安装有,尽管sinox并没有默认使用bash.可是用户一旦使用就会可能被通过漏洞入侵,所以必须高速修复.尽管sinox使用freeb ...

  5. 关于打开sdk下载不了的最优秀解决方式

    使用网站:  mirrors.neusoft.edu.cn  东北大学就可以

  6. HTML5画布(基础篇11-10)

    <script type="text/javascript"> $(function(){ var s = $("#myCanvas")[0]; v ...

  7. 为什么需要onRoute函数?

    为什么需要onRoute函数? · Tencent/wepy Wiki https://github.com/Tencent/wepy/wiki/%E4%B8%BA%E4%BB%80%E4%B9%88 ...

  8. Linux C语言 网络编程(二) server模型

    前面介绍了关于连接linux服务端方式,可是服务端的资源是有限的,所以我们通常须要又一次思考,设计一套server模型来处理相应的client的请求. 第一种:并发server.通过主进程统一处理cl ...

  9. 简单Android代码混淆(转)

    代码混淆步骤: 1,project.properties中打开代码混淆功能,加入proguard.config=proguard.cfg 2,编辑proguard.cfg文件,项目没有自动生成时可手工 ...

  10. 顽石系列:Java技术面试

    顽石系列:Java技术面试 JDBC相关 1.Statement与PreparedStatement的区 别,什什么是SQL注⼊入,如何防⽌止SQL注⼊? PreparedStatement支持动态设 ...