一:动态视图
--->动态视图是描述事物动态行为的。
--->需要注意的是:动态视图不能够独立存在,它必需特指一个静态视图活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. Spring学习十三----------Spring AOP的基本概念

    © 版权声明:本文为博主原创文章,转载请注明出处 什么是AOP -面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术 -主要的功能是:日志记录.性能统计.安全控制.事务处理. ...

  2. 使用css counter来美化代码片段的样式

    博客园默认的代码片段样式不太美观,特别是复制代码时会把前面的行号也复制下来,操作起来比较麻烦.最近看到一种使用CSS计数器来美化代码片段的方法,于是研究了一下计数器的使用,在此做个笔记. 这是官网的例 ...

  3. 有两个好友A和B,住在一片长有蘑菇的由n*m个方格组成的草地,A在(1,1),B在(n,m)。现在A想要拜访B,由于她只想去B的家,所以每次她只会走(i,j+1)或(i+1,j)这样的路线,在草地上有k个蘑菇种在格子里(多个蘑菇可能在同一方格),问:A如果每一步随机选择的话(若她在边界上,则只有一种选择),那么她不碰到蘑菇走到B的家的概率是多少?

    第二种方法:首先分析题意,可用概率的方法来计算,做了好几道百度的题目,觉得大多数是再考概率论,所以首先要弄懂题意,最后做题前把公式写出来,这样编码时才能游刃有余. 本题中下面的第一种用迭代枚举的方法来 ...

  4. iOS打包(ipa包)

    1.打开XCode打开project文件.选择Product,再点击Archive. 2.鼠标右键点击Shoe In Finder 3.鼠标右键选择"显示包内容" 4.鼠标左键双击 ...

  5. Redis单台的安装部署及集群部署

    Redis是一种高级key-value数据库.它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富.有字符串,链表,集 合和有序集合.支持在服务器端计算集合的并,交和补集(diff ...

  6. 史上最浅显易懂的Git教程1

    工作区(Working Directory)就是你在电脑里能看到的目录, 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库. Git的版本库里存了很多东西,其中最重要的就是称为stag ...

  7. iOS文档预览功能教程

     本文转载至 http://blog.csdn.net/devday/article/details/6580444   文档iosuinavigationcontrollerextensionmic ...

  8. Vue 填坑系列(持续更新...)

    1.遇到页面显示不更新,数据已更新情况 vue-cli中: this.$nextTick(function () { this.x=x; })     以js引入vue的网页中: this.$set( ...

  9. HttpPost (URLConnection)传参数中文乱码

    client.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 1000000); client.getParams( ...

  10. Greedy Function Approximation:A Gradient Boosting Machine

    https://statweb.stanford.edu/~jhf/ftp/trebst.pdf page10 90% to 95% of the observations were often de ...