一:动态视图
--->动态视图是描述事物动态行为的。
--->需要注意的是:动态视图不能够独立存在,它必需特指一个静态视图活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. Pandoc PDF 中文

    最近终于又决定(^_^)使用reStructuredText写文档了,输出PDF时的中文问题必须要解决下. 安装环境 sudo apt install texlive texlive-latex-ex ...

  2. IPv4地址(一)概述

    IPv4地址的长度是多少? IPv4地址是如何表示的? IPv4地址的构成以及每一部分所起到的作用和占的位数特点? IPv4地址长度为32位. IPv4地址分为两部分:网络号和主机号 网络号部分惟一地 ...

  3. A和B是好友,他们经常在空闲时间聊天,A的空闲时间为[a1 ,b1 ],[a2 ,b2 ]..[ap ,bp ]。B的空闲时间是[c1 +t,d1 +t]..[cq +t,dq +t],这里t为B的起床时间。这些时间包括了边界点。B的起床时间为[l,r]的一个时刻。若一个起床时间能使两人在任意时刻聊天,那么这个时间就是合适的,问有多少个合适的起床时间?

    // ConsoleApplication5.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<vector> ...

  4. 编写mipsel mt7620 Led驱动(一)

    1.看原理图中知芯片上66引脚控制一个LED 2.在Datasheet中找出GPIO pin 3.在ProgrammingGuid  System Contrl中找到GPIO控制寄存器地址: 4.控制 ...

  5. Erlang 在erlang项目中使用protobuf

    protobuf是google的一个序列化框架,类似XML,JSON,其特点是基于二进制,比XML表示同样一段内容要短小得多,还可以定义一些可选字段,广泛用于服务端与客户端通信.文章将着重介绍在erl ...

  6. 爬虫学习一系列:urllib2抓取网页内容

    爬虫学习一系列:urllib2抓取网页内容 所谓网页抓取,就是把URL地址中指定的网络资源从网络中读取出来,保存到本地.我们平时在浏览器中通过网址浏览网页,只不过我们看到的是解析过的页面效果,而通过程 ...

  7. 多媒体开发之---h264 高度和宽度获取

    ( School of Computer Science & Technology, Soochow University,SuZhou 215006:) Abstract: H.264 is ...

  8. HDU 5374 Tetris (2015年多校比赛第7场)

    1.题目描写叙述:点击打开链接 2.解题思路:本题要求模拟俄罗斯方块游戏.然而比赛时候写了好久还是没过. 后来补题发现原来是第四步的逻辑实现写错了... 题目中要求假设一整行能够消除,那么仍然运行该步 ...

  9. iOS 使用 Core Plot 绘制统计图表入门

     本文转载至 http://blog.csdn.net/zhibudefeng/article/details/7677457   iOS(iPhone/iPad) 下图形组件有两个有名的,s7gra ...

  10. 公网yum 源地址

    1. centos5.*  公网yum 源地址 [root@web ~]# cd /etc/yum.repos.d/[root@web yum.repos.d]# wget -O /etc/yum.r ...