使用Visio画UML模型
Microsoft Office Visio“UML 模型图” 模板为创建复杂软件系统的面向对象的模型 (模型:建模系统的一种抽象表示,它从特定的视角并在某一抽象级别上指定建模系统。) 提供全面的支持。
1.用例图
在开发项目的早期阶段,使用用例图 (用例:在用例图中,当主角使用系统来完成某一进程时所发生的一组事件的表示方式。通常,用例是相当大的进程,而不是单个步骤或事务。) 来描述实际活动和动机。可以在随后的各个阶段对该用例图进行细化,以反映用户界面和设计细节。
定义系统边界 (系统边界:在用例图中,围绕用例的指示系统的边界。通过拖动“系统边界”形状上的选择手柄,可以调整系统边界的大小。) 可确定系统内部和外部之间的界限。
参与者 (主角:在用例图中,外部对象所充当的角色的表示法。因此,一个物理对象可以用几个主角表示。通信关系指示主角以何种方式参与到用例中来。) 代表外部对象所扮演的角色。一个对象可以扮演若干角色,因此可由若干参与者来代表。
通信关系 (通信关系:在用例图中,定义某个主角如何参与用例的关系。您可以将箭头添加到关系上来指示信息流动的方向。) 用于阐明用例中参与者的参与情况。
用例 (用例:在用例图中,当主角使用系统来完成某一进程时所发生的一组事件的表示方式。通常,用例是相当大的进程,而不是单个步骤或事务。) 是参与者通过系统完成一个过程时发生的一组事件。通常,用例是较大的过程,而不是单个步骤或事务。
2.静态结构图
使用静态结构图 (静态结构图:显示模型的静态结构的图表;也就是存在的元素(例如类和类型)、这些元素的内部结构及其相互关系。) 来创建概念图或类图,概念图用于表示实际概念以及概念之间的关系,类图用于将软件系统分解为各个部分。
要将特性 (特性:类所含的数据定义。类的结构由其特性加以说明。特性的默认语法为:可见性名称:类型表达式=初始值 {属性字符串}) 、操作 (操作:可以要求执行某个类的实例的服务。类的行为由一组操作表示。每一操作均具有一个名称和一组参数。) 和其他属性添加到类 (类:在静态结构图中,具有类似的结构、行为和关系的对象集。类在类(静态结构)图中声明,代表所建模的系统中的概念。) 形状,请双击该形状,打开“UML 类属性”对话框。
双击某个关联可以添加修饰,如多重性 (多重性:可参与到特定关系中的对象个数,它用单个数字或从下限到上限的范围来表示。最常见的多重性是 1、*(表示 0..无穷大)和 0..1。) 和导向性 (导向性:从多边形到点,导向性指示可从多边形获知关于其所有点的信息,但不能从点上获知关于多边形的信息。在关联上,导向性用箭头来指示。) 。
除了此处所示的名称和类型外,特性还可以包括可见性 (可见性:一个元素对另一个元素可见或引用另一个元素的能力。如果一个元素要向另一个元素发送消息,后者对于前者必须是可见的。) ,这是一个初始值;特性还可指定范围是类还是实例。
如果要传达详尽的编程规范,则需要在图表中完整定义操作的参数 (参数:可以更改、传递或返回的未绑定变量。参数可以包括通信的名称、类型和方向。参数用于指定操作、消息、事件和模板等。) 。
3.包图
使用包 (包:在 UML 中用类似于文件夹的符号表示的模型元素的组合。系统中的每个元素都只能为一个包所有,一个包可嵌套在另一个包中。) 图将系统中的相关元素分组。一个包中可以含有下属包、图或单个元素。
4.活动图
使用活动图 (活动图:状态图的一个特例,其中所有的状态都是动作状态,并且转换是由源状态中动作的完成触发的。) 来描述方法的内部行为,并表示由内部生成的动作驱动的流。
对象的初始状态 (状态 (UML):在状态图或活动图中,对象满足某个条件、执行某个动作或等待某个事件期间所处的状况。) 是图表中任何事件都未对该对象起作用时的状态。
动作状态 (动作状态:在活动图中,指具有内部动作且至少有一个传出转换参与了完成该内部动作的显式事件的状态类型。) 是一种代表已完成活动的状态。
当动作状态的内部动作完成时即会从该动作状态进行转换 (转换 (UML):在状态图或活动图中,两个状态或动作状态之间或状态与其自身之间(复杂转换有多个源和/或目标状态)的关系。) 。
要指示必须先完成各个并行活动然后才发生下一个活动,请使用连接转换。
双击来自动作状态的状态转换可对其加注监护 (临界:在状态图或活动图中,指定事件何时发生的条件。无论其事件何时引发,都只对临界计算一次。) 条件和动作表达式标签。
要指示可同时发生的活动,请使用叉形状态转换。
最终状态表示该图表所表示的情况中的活动已结束。
5.状态图
使用状态图 (状态图:状态机的表示方式,它附加于类或方法,描述该类对外部激励的响应。) 来显示一个对象在其生命期内经历的各个状态的顺序。
对象的初始状态 (状态:主角表现出特定行为的时间段。) 是图表中任何事件都未对该对象起作用时的状态。
状态代表对象 (对象:表示目录服务类的视图。对象表示特定的网络资源并具有为其属性指派的值。) 生命周期中的某一瞬间。双击“状态”形状可添加名称并列出其内部动作和活动。
转换 (转换:从一种状态转换成另一种状态的允许途径。) 指示作为对事件的响应结果,对象将从一种状态转换到另一种状态并执行某个动作。
触发状态转换的事件 (事件:在状态图或活动图中,触发转换的事件。在正处于给定的状态或动作状态时,对象会等待事件进入其他状态。) 在状态转换字符串中命名。双击一个状态转换,除事件签名以外,还可用字符串为其加注监护条件 (临界:在状态图或活动图中,指定事件何时发生的条件。无论其事件何时引发,都只对临界计算一次。) 、动作表达式等标签。
6.序列图
使用序列图 (序列图:一种交互图,显示参与特定交互操作的对象及其按时间顺序交换的消息。) 来显示参与交互的参与者 (主角:在用例图中,外部对象所充当的角色的表示法。因此,一个物理对象可以用几个主角表示。通信关系指示主角以何种方式参与到用例中来。) 或对象 (对象:在其他应用程序中创建并导入、嵌入或链接到 Visio 绘图内的信息。对象一词用于表示来自其他应用程序的对象和 OLE 对象。) ,以及这些参与者或对象生成的按时间顺序排列的事件 (事件:Visio 中发生的事件,如更改形状公式或删除页等。) 。
序列图中的纵向维代表时间,按时间先后依次向下排序。横向维代表不同的参与者或对象。
对象 (对象:表示目录服务类的视图。对象表示特定的网络资源并具有为其属性指派的值。) 被表示为对象生命线 (对象生命线:在序列图中,某个对象存在于特定时期的表示方式。如果对象是在图表中所示的时间段内创建或破坏的,则生命线会在相应的点上停止或开始。) ,即:即它们在特定时间的存在状态。调整线的长度可以指示对象已创建还是已消亡。
箭头表示对象之间的消息 (消息:在序列图中,传达信息并导致某个动作的对象之间的通信。消息用水平箭头表示。) 。对象也可以向自己发送消息。
向生命线添加一个激活点 (激活:在序列图中,对象或主角正在执行动作的时段。激活用细长的矩形表示。) (也称为控制的焦点)以指示对象执行动作的时段。
返回的消息用虚线表示。
7.协作图
使用协作图 (协作图:显示某组对象如何为了由一个用例描述的一个系统事件而与另一组对象进行协作的交互图。) 来显示对象角色之间的关系,如:为实现某个操作或结果在对象间交换的一组消息。
在分类器角色 (分类器角色:协作角色的一种类型。它是协作中的某个对象的槽,用只显示名称空间的类矩形符号表示。) 形状中,对象的 (对象:在其他应用程序中创建并导入、嵌入或链接到 Visio 绘图内的信息。对象一词用于表示来自其他应用程序的对象和 OLE 对象。) 指定器字符串下加有下划线,以指示该对象是一个实例。您还可在冒号之前加入对象名。
链接(即关联角色 (关联角色:协作角色的一种类型,它描述两个分类器角色之间的关系。它由两个类角色元素之间的路径表示,可以包括相应关联的带下划线的名称。) )指示关系;如果有箭头,还同时指示导向性 (导向性:从多边形到点,导向性指示可从多边形获知关于其所有点的信息,但不能从点上获知关于多边形的信息。在关联上,导向性用箭头来指示。) 。
双击一个链接,再单击“消息”可以定义沿链接传递的消息。需要根据嵌套的调用对过程消息编号。
第一条消息始终来自图表中包括的上下文之外。
8.组件图
使用组件图 (组件图:显示代码本身的结构的实现图。从组件图中,您可以了解各软件组件(如源代码文件或动态链接库)之间的编译器和运行时依赖关系。) 将系统划分为内聚性组件,并显示代码本身的结构。
在组件图中,组件 (组件:在组件图和部署图中,组件指系统中的可分配实现单元。例如,组件可以代表代码的物理模块(源、二进制或可执行文件)或人力系统中的业务文档。) 是通用类型而非实例。要显示组件实例,请使用部署图 (部署图:显示运行时系统的结构的实现图。从部署图中,您可以了解到软件和硬件组件之间的物理关系以及处理节点的组件分布情况。) 。
依赖关系 (依赖关系:两个元素之间的关系,它指示对目标元素的更改可能导致源元素的更改。) 指示客户组件在某种程度上依赖于供应商组件。
9. 部署图
使用部署图 (部署图:显示运行时系统的结构的实现图。从部署图中,您可以了解到软件和硬件组件之间的物理关系以及处理节点的组件分布情况。) 来显示运行时系统的结构,并传达以下相关信息,即如何配置和部署构成应用程序的软硬件元素。
在部署图中,节点 (节点:在部署实现图中,表示某个正在处理的资源的运行时物理对象。节点通常都是计算设备,但也可以表示人力资源或机械处理资源。) 可以代表通用类型或特定实例。
将组件 (组件:在组件图和部署图中,组件指系统中的可分配实现单元。例如,组件可以代表代码的物理模块(源、二进制或可执行文件)或人力系统中的业务文档。)和 对象 (对象:表示目录服务类的视图。对象表示特定的网络资源并具有为其属性指派的值。) 实例放入某个节点实例内即指示这些组件和对象驻留在该节点上。
通过依赖关系 (依赖关系:两个元素之间的关系,它指示对目标元素的更改可能导致源元素的更改。) (有时还要借助接口 (接口:在不指定内部结构的情况下,指定类、组件、包或其他元素的外部可见操作。接口只有操作,没有特性、状态或关联。) )可以连接各组件。您可以使用构造型 (构造型:用法区别的表示方式。构造型是现有元素的子类,具有与该元素相同的特性和关系,但目的和可能的附加约束不同。) 来指示确切的依赖关系。
使用Visio画UML模型的更多相关文章
- 四步轻松实现用Visio画UML类图
本节和大家一起学习一下用Visio画UML类图的方法,主要有四个步骤,这里和大家分享一下,相信通过本节的学习,你对Visio画UML类图的步骤一定会有所了解. 用Visio画UML类图 对于画类图的工 ...
- 用Visio画UML顺序图
1.顺序图 顺序图又称为时序图,顾名思义,它着重表现的是对象间消息传递的时间顺序.顺序图描述的对象也是一个用例,即一组行为操作,而它表现的是这组行为的先后关系(纵坐标),以及每个行为是属于哪个对象的( ...
- Visio画UML类图、序列图 for Java
参考文档: 1.百度搜索: 怎样用Visio 2007画C++类图 连接 https://jingyan.baidu.com/article/9f7e7ec07286e16f281554f7.html ...
- visio画UML用例图没有include关系的解决方法
今天用Microsoft Visio画用例图时,发现visio UML用例里面找不到include关系,即“箭头”+“<>” 这个组件,后来终于发现一个可行的解决办法: 首先:打开Micr ...
- 用Visio画UML用例图
1.用例图 用例图描述参与者所理解的系统功能.主要元素是用例和参与者. 用例图的4个基本组件:参与者(Actor).用例(Use Case).关系(Relationship)和系统. 下面以银行储蓄系 ...
- 【转】Visio画用例模型图竟然没有include关系
转自:http://blog.csdn.net/shuixin536/article/details/8289746 由于电脑上没有安装Rose,因此决定用visio来画UML中的用例模型图,在绘制的 ...
- 如何画UML,几种简单的模型分析
如何画UML 前言 UML 类 类的关系 1.依赖关系 2.继承关系 3.实现关系 4.关联关系 5.聚合关系 6.组合关系 总结 参考 如何画UML 前言 最近在学习设计模式,其中不免涉及到 UML ...
- 使用Visio进行UML建模
http://www.qdgw.edu.cn/zhuantiweb/jpkc/2009/rjkf/xmwd/Visio_UmlModel.htm#_Toc80417837 内容提纲: 1.VISIO中 ...
- VISO画UML用例图添加Include关系的方法
VISO画UML用例图添加Include关系的方法 今天用Microsoft Visio 2007画用例图时,发现visio UML用例里面找不到include关系,查到一个可行的解决办法: 1)创 ...
随机推荐
- Shell字符串操作
@1:子串削除 ${string#substring} 从$string 的开头位置截掉最短匹配的$substring. ${string##substring} 从$string 的开头位置截掉最长 ...
- junit在idea中的使用(1)--理论篇
感觉本文前部分配置太过繁琐,大家可以参考我的这篇文章http://www.cnblogs.com/SuMeng/p/8279879.html(junit在IDEA中使用--实践篇),用添加maven ...
- HBase基本知识介绍及典型案例分析
本次分享的内容主要分为以下五点: HBase基本知识: HBase读写流程: RowKey设计要点: HBase生态介绍: HBase典型案例分析. 首先我们简单介绍一下 HBase 是什么. HBa ...
- 无线路由:关于WDS,Repeater等模式的说明
转:http://blog.csdn.net/lizhiqiang5846/article/details/38397803 当今如果不用无线路由连接宽带似乎是很不popular了,当然Wifi/WL ...
- HTML5_CSS3实现iOS Path菜单
在线演示 本地下载
- hadoop实战项目:查找相同字母组成的字谜
前面我们学习了MapReduce编程思想和编程示例,那么本节课程同学们一起操练操练,动手完成下面的项目. 项目需求 一本英文书籍包含成千上万个单词或者短语,现在我们需要在大量的单词中,找出相同字母组成 ...
- groupby和agg的使用
先来看一段代码: 分析下groupby和agg的联合使用: reset_index()表示重新设置索引 agg传进来的统计特征: 按照A这一列作聚合,C这一列作统计 注意:df = df.groupb ...
- MySQL实习训练1
[转载]http://www.cnblogs.com/AndrewXu/p/4779648.html 1. 打开cmd,输入,回车 mysql -uroot -p -P3306 -h127. 1)-u ...
- Python安装setuptools时报Compression requires the (missing) zlib
装机员为您提供Python安装setuptools时报Compression requires the (missing) zlib的文章咨询供您阅读,如何使用Python安装setuptools时报 ...
- Struts2全局异常处理
1.在struts.xml中配置全局异常处理 在Action中抛出异常,此异常可以是action自己抛的,也可以是Service抛出来的,都会跳转到全局异常中,只有在当前Action中配置域全局异常返 ...