Visio2010过程建模系列
一、Visio2010绘制上下文数据流图
二、Visio 绘制功能分解图
三、Visio 绘制事件分解图 四、Visio 绘制事件图 五、Visio 绘制时序图 六、Visio 绘制活动图 七、Visio 绘制系统图 1
Visio2010绘制上下文数据流图
首先先让我们明确一下为什么要绘制上下文数据流图?
对于程序员来说,我们要知道:整个系统中,哪一些是要我们编程解决的,哪一些不用。上下文数据流图,就是用来建立初始的项目范围的。
上下文数据流图的几个符号:
外部代理:是与系统交互的外部的人员、组织部门、其他系统或者其他组织,也称为外部实体。简单的说,就是跟我们这个系统打交道的东西。可以是人,可以是系统。一般用矩形表示。
系统:就是你现在想要做的系统。
数据存储:其实就是用来存储信息的。可视为数据库,文件等存储介质都属于这类。 步骤:
1、区分内部和外部
2、系统需要响应什么业务事务 3、系统必须产生什么响应 4、确定外部存储
说明:
2
下面我将以一个团购系统为例,讲解如何构建一个上下文数据流图。 团购系统购物子系统用例图
用Visio2010创建上下文数据流图模版 1、选择模版
3
2、选择数据流图
4
3、看到工具栏
5
构建上下文数据流图
1、区分内部和外部
让我们从用例中识别出可能的外部代理。可以看出外部代理分别是供应商,会员,管理员,游客。内部:购物子系统
6
2、系统需要响应什么业务事务
构建上下文数据流图是为了区分系统的边界。所以,我们将对一些响应过程进行抽象。
3、系统必须产生什么响应。其中画红圈的部分,是系统响应。
7
4、确定外部存储
由于购物子系统没有涉及到外部存储,所以这一步就跳过了。
至此,上下文数据流图已经完成。
Visio 绘制功能分解图
为什么要绘制功能分解图?
对于编程人员来说,具体分配任务的时候,必须知道自己要做什么,必须了解系统的大体框架。功能分解图可以帮助我们理清程序的框架,便于大局观的掌握。
用Visio2010创建功能分解图
1、选择模版
8
2、选择基本框图,以便后面使用里面的图形进行功能分解图的绘制。
3、常用的图形符号。正方形代表系统或功能。
9
创建功能分解图
以团购系统为例,创建功能分解图
团购系统子系统和人员
10
步骤
1
、确定根元素,其实就是团购系统
2、确定子系统
3、细化子系统(以用户管理子系统为例)
注:这里因为篇幅考虑,只细化一个子系统的功能。
11
自此,功能分解图已经大体绘制完毕。
Visio 绘制事件分解图
用Visio2010建立事件分解图的方法跟建立功能分解图方法一致。
请点击Visio2010建立功能分解图
为什么要建立事件分解图
功能分解图中的功能都是比较大块的抽象功能,而一个功能往往由几个事件组合而成,所以我们需要添加一些事件处理以细化功能。这也是为了后面绘制详细的事件图和基本图做一个提纲式的东西。
以团购系统的购物子系统为例,建立事件分解图 下图为购物子系统用例图
12
其实建立事件分解图挺简单的,基本上就是将用例里面的功能写下来。
红框处是事件分解图与功能分解图不同的地方,其实就是进一步细化功能,为后面的事件图做一个大纲。
13
Visio 绘制事件图
为什么要绘制事件图?
对程序员来说,我们需要知道一个事件(或者一个函数)需要由什么驱动(或者由什么对象传递参数进来),处理后的结果要给谁(比如返回结果给一个对象,或者数据库的增删改)。事件图就是描述一个事件的上下文的数据流图。事件图中明确地指出输入来源和输出来源。
如何用Visio2010绘制事件图?
1、因为事件图本质上是数据流图中的一种。所以选择数据流模型图。
2、因为所涉及到的概念跟数据流上下文图一样,概念不清楚的,请点击这里
创建事件图
下面以团购系统的购物子系统为例进行讲解。
14
因为要跟数据库打交道,数据库中的表名。因为类图太大,对我们的分析过程也没有什么太大的帮助,这里就不放上类图了。
用户信息表UserInfo :存储用户的基本信息和对应的用户类型。 订单供应商对应表SaleList:对应供应商和他的订单。 权限表:Authority
订单表PurchaseRecords :主要记录一个订单中的商品和购买用户,订单的相关信息。 商品表GoodInfo :主要记录商品的相关信息。 评价表Comment :主要记录一件商品中对应的评论。
开始创建事件图。
步骤
1、区分内部和外部
2、事件需要响应什么对象的请求 3、事件必须输出什么结果和目的地
15
下面就是我们做出的事件图。(因为比较简单,这里只给出步骤,不进行步骤的分解。)这是提交订单的事件图。
可以看出事件图和上下文数据流图还是相似的。
但是,上下文数据流图针对的是整个系统,外部代理是跟整个系统打交道的会员,供应商等。 事件图针对的是某一个事件,外部代理是跟这个事件有关的人或系统内部的对象。
另外,事件图更加细致,已经细化到要跟系统内的某个对象,数据库中的某一张表打交道的程度了。
Visio 绘制时序图
为什么要绘制时序图?
我们编码的时候,知道有的用例的业务逻辑按照比较确定的时间先后顺序进行展开。这时候,我们就需要知道我们设计的系统中的不同类之间传递消息(可以认为是不同对象函数间的调用)要按照怎么样的顺序、传递什么消息、返回什么消息。这时候用时序图是最好不过的了。
时序图的定义:
时序图是描述消息时间顺序的交互图。在图形上,时序图是一张表,其中显示的对象沿横轴排列,从左到右分布在图的顶部;而消息则沿纵轴按时间顺序排序。创建时序图时,以能够使图尽量简洁为依据布局。
16
用visio
建立时序图
1、选择模版
2、常见符号
17
时序图创建步骤
1、确定交互过程的上下文; 2
、识别参与过程的交互对象; 3、为每个对象设置生命线;
4、从初始消息开始,依次画出随后消息;
5、考虑消息的嵌套,标示消息发生时的时间点,则采用FOC (focus of control); 6、说明时间约束的地点。
下面以团购系统的取消订单为例。
Visio 绘制活动图
为什么要绘制活动图?
18
当我们真正地进入了编码阶段,我们写程序的时候需要按照一定的业务逻辑来组织我们的代码。这就要求我们要细化一个用例所需要涉及的业务流程。活动图用来描述一个业务过程或一个用例的顺序流。
用Visio2010绘制活动图
1、选择模型
2、常用的符号。Visio2010中工具栏对活动图常用的符号都已经有中文描述,这里不再一一介绍。
19
3、至此创建活动图模版的工作就完成了。
活动图实质上是一个特殊的工作流模型。
用活动图对工作流建模步骤:
1、识别工作流的目标:
2、确定从起始状态到终止状态工作流的前置条件和后置条件;
3、定义并识别为实现目标而必须发生的活动和状态,按逻辑顺序将它们放进模型图,并对它们命名; 4、定义并画出所有要在模型图中创建和修改的对象,将这些对象和活动同对象流连接起来; 5、按泳道决定谁(who )或什么(what )将对执行这些活动和状态负责; 6、从主流程开始,用转换符号连接所有的元素 ;
7、在流程可能要分裂出一个候补流(alternate flow)的地方放置一个判断;
8、评估模型图,看是否有并发工作流,如果有,用同步表示分叉(forking )和结合(joining ); 9、在每个模型元素的规范窗口中设置动作、触发器和监护条件
下面我们将以团购系统的会员修改订单的用例进行活动图的绘制。
20
Visio 绘制系统图
为什么要绘制系统图?
之前我们已经绘制过了事件图,但是现实生活中一个个的事件并不是孤立的,我们有必要将他们整合到一起,以便于定义我们整个系统。
如何用Visio 绘制系统图?
请参照这里
绘制系统图的步骤
其实就是将事件图串起来就形成了系统图。
主要就是将各个事件图之间外部代理,数据存储整合,删除冗余。
21
22
Visio2010过程建模系列
一、Visio2010绘制上下文数据流图
二、Visio 绘制功能分解图
三、Visio 绘制事件分解图 四、Visio 绘制事件图 五、Visio 绘制时序图 六、Visio 绘制活动图 七、Visio 绘制系统图 1
Visio2010绘制上下文数据流图
首先先让我们明确一下为什么要绘制上下文数据流图?
对于程序员来说,我们要知道:整个系统中,哪一些是要我们编程解决的,哪一些不用。上下文数据流图,就是用来建立初始的项目范围的。
上下文数据流图的几个符号:
外部代理:是与系统交互的外部的人员、组织部门、其他系统或者其他组织,也称为外部实体。简单的说,就是跟我们这个系统打交道的东西。可以是人,可以是系统。一般用矩形表示。
系统:就是你现在想要做的系统。
数据存储:其实就是用来存储信息的。可视为数据库,文件等存储介质都属于这类。 步骤:
1、区分内部和外部
2、系统需要响应什么业务事务 3、系统必须产生什么响应 4、确定外部存储
说明:
2
下面我将以一个团购系统为例,讲解如何构建一个上下文数据流图。 团购系统购物子系统用例图
用Visio2010创建上下文数据流图模版 1、选择模版
3
2、选择数据流图
4
3、看到工具栏
5
构建上下文数据流图
1、区分内部和外部
让我们从用例中识别出可能的外部代理。可以看出外部代理分别是供应商,会员,管理员,游客。内部:购物子系统
6
2、系统需要响应什么业务事务
构建上下文数据流图是为了区分系统的边界。所以,我们将对一些响应过程进行抽象。
3、系统必须产生什么响应。其中画红圈的部分,是系统响应。
7
4、确定外部存储
由于购物子系统没有涉及到外部存储,所以这一步就跳过了。
至此,上下文数据流图已经完成。
Visio 绘制功能分解图
为什么要绘制功能分解图?
对于编程人员来说,具体分配任务的时候,必须知道自己要做什么,必须了解系统的大体框架。功能分解图可以帮助我们理清程序的框架,便于大局观的掌握。
用Visio2010创建功能分解图
1、选择模版
8
2、选择基本框图,以便后面使用里面的图形进行功能分解图的绘制。
3、常用的图形符号。正方形代表系统或功能。
9
创建功能分解图
以团购系统为例,创建功能分解图
团购系统子系统和人员
10
步骤
1
、确定根元素,其实就是团购系统
2、确定子系统
3、细化子系统(以用户管理子系统为例)
注:这里因为篇幅考虑,只细化一个子系统的功能。
11
自此,功能分解图已经大体绘制完毕。
Visio 绘制事件分解图
用Visio2010建立事件分解图的方法跟建立功能分解图方法一致。
请点击Visio2010建立功能分解图
为什么要建立事件分解图
功能分解图中的功能都是比较大块的抽象功能,而一个功能往往由几个事件组合而成,所以我们需要添加一些事件处理以细化功能。这也是为了后面绘制详细的事件图和基本图做一个提纲式的东西。
以团购系统的购物子系统为例,建立事件分解图 下图为购物子系统用例图
12
其实建立事件分解图挺简单的,基本上就是将用例里面的功能写下来。
红框处是事件分解图与功能分解图不同的地方,其实就是进一步细化功能,为后面的事件图做一个大纲。
13
Visio 绘制事件图
为什么要绘制事件图?
对程序员来说,我们需要知道一个事件(或者一个函数)需要由什么驱动(或者由什么对象传递参数进来),处理后的结果要给谁(比如返回结果给一个对象,或者数据库的增删改)。事件图就是描述一个事件的上下文的数据流图。事件图中明确地指出输入来源和输出来源。
如何用Visio2010绘制事件图?
1、因为事件图本质上是数据流图中的一种。所以选择数据流模型图。
2、因为所涉及到的概念跟数据流上下文图一样,概念不清楚的,请点击这里
创建事件图
下面以团购系统的购物子系统为例进行讲解。
14
因为要跟数据库打交道,数据库中的表名。因为类图太大,对我们的分析过程也没有什么太大的帮助,这里就不放上类图了。
用户信息表UserInfo :存储用户的基本信息和对应的用户类型。 订单供应商对应表SaleList:对应供应商和他的订单。 权限表:Authority
订单表PurchaseRecords :主要记录一个订单中的商品和购买用户,订单的相关信息。 商品表GoodInfo :主要记录商品的相关信息。 评价表Comment :主要记录一件商品中对应的评论。
开始创建事件图。
步骤
1、区分内部和外部
2、事件需要响应什么对象的请求 3、事件必须输出什么结果和目的地
15
下面就是我们做出的事件图。(因为比较简单,这里只给出步骤,不进行步骤的分解。)这是提交订单的事件图。
可以看出事件图和上下文数据流图还是相似的。
但是,上下文数据流图针对的是整个系统,外部代理是跟整个系统打交道的会员,供应商等。 事件图针对的是某一个事件,外部代理是跟这个事件有关的人或系统内部的对象。
另外,事件图更加细致,已经细化到要跟系统内的某个对象,数据库中的某一张表打交道的程度了。
Visio 绘制时序图
为什么要绘制时序图?
我们编码的时候,知道有的用例的业务逻辑按照比较确定的时间先后顺序进行展开。这时候,我们就需要知道我们设计的系统中的不同类之间传递消息(可以认为是不同对象函数间的调用)要按照怎么样的顺序、传递什么消息、返回什么消息。这时候用时序图是最好不过的了。
时序图的定义:
时序图是描述消息时间顺序的交互图。在图形上,时序图是一张表,其中显示的对象沿横轴排列,从左到右分布在图的顶部;而消息则沿纵轴按时间顺序排序。创建时序图时,以能够使图尽量简洁为依据布局。
16
用visio
建立时序图
1、选择模版
2、常见符号
17
时序图创建步骤
1、确定交互过程的上下文; 2
、识别参与过程的交互对象; 3、为每个对象设置生命线;
4、从初始消息开始,依次画出随后消息;
5、考虑消息的嵌套,标示消息发生时的时间点,则采用FOC (focus of control); 6、说明时间约束的地点。
下面以团购系统的取消订单为例。
Visio 绘制活动图
为什么要绘制活动图?
18
当我们真正地进入了编码阶段,我们写程序的时候需要按照一定的业务逻辑来组织我们的代码。这就要求我们要细化一个用例所需要涉及的业务流程。活动图用来描述一个业务过程或一个用例的顺序流。
用Visio2010绘制活动图
1、选择模型
2、常用的符号。Visio2010中工具栏对活动图常用的符号都已经有中文描述,这里不再一一介绍。
19
3、至此创建活动图模版的工作就完成了。
活动图实质上是一个特殊的工作流模型。
用活动图对工作流建模步骤:
1、识别工作流的目标:
2、确定从起始状态到终止状态工作流的前置条件和后置条件;
3、定义并识别为实现目标而必须发生的活动和状态,按逻辑顺序将它们放进模型图,并对它们命名; 4、定义并画出所有要在模型图中创建和修改的对象,将这些对象和活动同对象流连接起来; 5、按泳道决定谁(who )或什么(what )将对执行这些活动和状态负责; 6、从主流程开始,用转换符号连接所有的元素 ;
7、在流程可能要分裂出一个候补流(alternate flow)的地方放置一个判断;
8、评估模型图,看是否有并发工作流,如果有,用同步表示分叉(forking )和结合(joining ); 9、在每个模型元素的规范窗口中设置动作、触发器和监护条件
下面我们将以团购系统的会员修改订单的用例进行活动图的绘制。
20
Visio 绘制系统图
为什么要绘制系统图?
之前我们已经绘制过了事件图,但是现实生活中一个个的事件并不是孤立的,我们有必要将他们整合到一起,以便于定义我们整个系统。
如何用Visio 绘制系统图?
请参照这里
绘制系统图的步骤
其实就是将事件图串起来就形成了系统图。
主要就是将各个事件图之间外部代理,数据存储整合,删除冗余。
21
22