Visio画UML图基本操作及技巧解析

本文和大家重点讨论一下用Visio画UML图基本操作,画UML图有好多种工具,VISIO只是其中一种,VISIO的动作非常轻快.很多人都在用。下面就让我们一起来看一下具体介绍吧。

用Visio画UML图基本操作

目的

画UML图有好多种工具,VISIO只是其中一种.VISIO的动作非常轻快.很多人都在用.但是对众多的C++程序员来讲,存在着一个问题,那就是VISIO中的用语都来自面向对向,和C++程序员常用的说法有所不同.这一点令很多C++程序远很困惑.希望本文能为您解决这个问题.在我们将使用下面的例子(UMLSample.zip)来进行说明。

1.启动Visio

画UML图第一步要启动Visio,然后选择[File]-[New]-[Software]-[UMLModelDiagram]就可以进入到UML作图状态了.这时画面至少应该包含3个部分:形状窗口,模型资源管理器,和作图区域.可以通过选择[View]-[ShapesWindow]来表示和隐藏形状窗口.模型资源管理器比较麻烦,必须通过[UML]-[View]-[ModelExplorer]来进行.

2.创建各种图面

在模型资源管理器中选择[StaticMdel]-[TopPackage],点鼠标右键,从弹出菜单中选择[New]-[StaticStructureDiagram]即可创建用于制作类结构图的图面了,如果从弹出菜单中选择[New]-[SequenceDiagram]即可创建用于制作时序图的的图面.

3.设定对象的属性

设定对象的详细信息的大部分操作是通过属性对话框实现的.可以通过在对象上双击鼠标或单击鼠标右键并选择属性属性来表示属性对话框.

画UML图几种小技巧

◆改变连线的方式

在画UML图的过程中连线是最常见的操作.象下图那样,线有直角连接线和直线连接线和曲线连接线三种.

可以通过,用鼠标右键点击希望改变种类的连接线,在弹出菜单中选择适当的连接线种类.

◆扩大和缩小

我想说的不是当然我们可以通过菜单实现扩大和缩小,而是通过按住Ctrl键,在上滚/下滚鼠标的滚轮来实现扩大和缩小.

◆上下/左右滚动屏幕

除了用鼠标拖动滚动条的方法以外,用鼠标滚轮也可以上下滚动屏幕.那么左右滚动呢,你可能已经猜到了,先按下Shift键就可以了.

◆拷贝已经存在的对象

首先按下Ctrl键,用鼠标脱动对象,最后释放Ctrl键就可以了.需要注意的Ctrl键释放的时机一定要在鼠标释放之后.

◆画水平线/垂直线

按下Shift键,在拖动鼠标画线,就可以很简单的画出水平线和垂直线.其实还可以画45度的斜线.

                             Visio画UML用例图只需八步轻松实现

本节和大家学习一下如何Visio画UML用例图,UML用例图主要用来图示化系统的主事件流程,它主要用来描述客户的需求,即用户希望系统具备的完成一定功能的动作。

UML用例图简介

首先看一下UML用例图的概念,它主要用来图示化系统的主事件流程,它主要用来描述客户的需求,即用户希望系统具备的完成一定功能的动作,通俗地理解用例就是软件的功能模块,所以是设计系统分析阶段的起点,设计人员根据客户的需求来创建和解释用例图,用来描述软件应具备哪些功能模块以及这些模块之间的调用关系,用例图包含了用例和参与者,用例之间用关联来连接以求把系统的整个结构和功能反映给非技术人员(通常是软件的用户),对应的是软件的结构和功能分解。

用例是从系统外部可见的行为,是系统为某一个或几个参与者(Actor)提供的一段完整的服务。从原则上来讲,用例之间都是独立、并列的,它们之间并不存在着包含从属关系。但是为了体现一些用例之间的业务关系,提高可维护性和一致性,用例之间可以抽象出包含(include)、扩展(extend)和泛(generalization)几种关系。

Visio画UML用例图步骤:

1.在“文件”菜单上,依次指向“新建”、“软件”,然后单击“UML模型图”。

2.在树视图中,右击要包含用例图的包或子系统,再指向“新建”,然后单击“用例图”。

此时会出现一个空白页,而且“UML用例”模具也会显示在最顶部。工作区将“用例”显示为水印。树视图将添加一个表示该图表的图标。

注释如果看不见树视图,请在“UML”菜单中指向“视图”,然后单击“模型资源管理器”。

3.将“系统边界”形状拖到绘图页上。

使用系统边界形状

在用例图中指示系统边界

4.Visio画UML用例图时要从“用例”模具中将“用例”形状拖出并放在系统边界内,然后将“参与者”形状拖到系统边界外。

使用用例形状

使用参与者形状

5.使用“通信”形状指出用例和参与者之间的关系。

使用通信形状

指出参与者和用例之间的关系

6.Visio画UML用例图时需要通过“使用”和“扩展”形状,指出用例之间的关系。
指出两个用例之间的使用关系,指出两个用例之间的扩展关系

7.双击任意形状(“系统边界”形状除外),打开其“UML属性”对话框,您可以在其中添加名称、特性、操作和其他属性。

8.保存该图表。

UML建模中绘制UML用例图行之有效的办法

本节和大家学习一下UML用例图的画法,主要包括UML用例图三要素和用例图之间的关系等内容,相信通过本节的学习你对UML用例图的画法一定会有所认识。下面请看详细介绍。

UML建模中UML用例图的画法

最近在用RationalRose画功能的用例图,总结一下用例图的画法吧,其中的线条都是有特定含义的。

UML用例图设计三要素

1,参与者

2,用例

3,关系

参与者和用例都没有啥好说的,我们就说关系吧。

1参与者之间的关系,用的最多的就是泛化(继承)的关系。

2参与者和用例之间的关系

一个实箭头,表示主动和被动的关系。如上图参与者和用例之间的关系。体现的是一种操作的关联关系。

3UML用例图中用例之间关系

用例之间的关系主要用的是3种关系即包含,扩展,泛化。

3.1UML用例图的包含关系(include)

实箭头加<include>

表达意思:被包含用例的事件流会被插入到基础用例的事件流中。

举出一个实例:

ATM中查询,取款,转帐都会有一个打印回执,我们就可以把“打印回执”做为一个用例提取出来,而原来的查询,取款,转账三个用例都会包含这个用例。一般的画法是多个用例公共的包含一个用例。

3.2UML用例图的扩展关系(extend)

实箭头加<extend>,

表达意思:扩展用例的事件流在一定条件下按照扩展点插入到基础用例的事件流中,即根据一定的条件来判断是否要插入到基础用例的事件流中,并且扩展点可以用多个。

举一个实例:

如基本通话这个用例上可以有”呼叫等待”,”呼叫转移”的扩展的功能用例。如果对方通话正忙着,可以用呼叫等待,如果对方不方便接电话,也可以用呼叫转移。

3.3UML用例图的泛化关系

空三角实箭头

表达意思:代表一般于特殊的关系。它的意思和面向对象程序设计中的继承的概念是类似的。继承关系

举一个实例:

订票是一个很泛化的用例,具体的用例可以是电话订票,网上订票等。

补充一下,如果想给一个用例加一些注释,更能方便交流和理解。我们的画法是用一个注释组件图和一个虚线连接。如下图

UML用例图三大关系揭秘

本文向大家介绍一下UML用例图,UML用例图描述了一组用例,参与者以及他们之间的关系,用例图包括以下几个部分:用例(Case),参与者(Actor).依赖,泛化和关联关系。下面请看详细介绍。

UML用例图概要

UML用例图就是软件产品外部特性描述的视图,他从用户的角度而不是开发者的角度来描述软件产品的需求,分析软件产品所需的功能和行为.

UML用例图描述了一组用例,参与者以及他们之间的关系,用例图包括以下几个部分:

用例(Case),参与者(Actor).依赖,泛化和关联关系.

UML用例视图中的参与者与系统外部的一个实体(可以是任何人或事物),他以某种方式参与了用例的执行过程,

用例是一个叙述型文档,用来描述参与使用系统,完成某个事情时发生的顺序.

UML用例图间关系:

1.泛化关系(Generalization):

用例的泛化关系与类的泛化关系相似,即在用例泛化中,子用例表示父用例的特殊形式,子用例从父用例继承了行为和属性,还可以添加行为和属性,改变已继承的行为.

2.包含关系(Include):

包含关系把几个用例的公共步骤分离成一个被包含的用例,用例间的包含关系允许包含提供者用例的行为到客户用例中.把包含用例称为客户用例,被包含用例称为提供者用例.包含用例提供功能给客户用例,

3扩展关系(Extend):

是把新行为插入到已有用例中的方法.基础用例提供了一组扩展点..这些扩展点可以添加新的行为.而扩展用例提供了一组插入片段.这些片段能插入到基础用例的扩展点

UML用例图实例解析

本文和大家重点讨论一下UML用例图实例的应用,UML用例图包含了用例和参与者,用例之间用关联来连接以求把系统的整个结构和功能反映给非技术人员(通常是软件的用户),对应的是软件的结构和功能分解。

UML用例图

用例图主要用来图示化系统的主事件流程,它主要用来描述客户的需求,即用户希望系统具备的完成一定功能的动作,通俗地理解用例就是软件的功能模块,所以是设计系统分析阶段的起点,设计人员根据客户的需求来创建和解释用例图,用来描述软件应具备哪些功能模块以及这些模块之间的调用关系,UML用例图包含了用例和参与者,用例之间用关联来连接以求把系统的整个结构和功能反映给非技术人员(通常是软件的用户),对应的是软件的结构和功能分解。

用例是从系统外部可见的行为,是系统为某一个或几个参与者(Actor)提供的一段完整的服务。从原则上来讲,用例之间都是独立、并列的,它们之间并不存在着包含从属关系。但是为了体现一些用例之间的业务关系,提高可维护性和一致性,用例之间可以抽象出包含(include)、扩展(extend)和泛(generalization)几种关系。

共性:都是从现有的用例中抽取出公共的那部分信息,作为一个单独的用例,然后通后过不同的方法来重用这个公共的用例,以减少模型维护的工作量。

1、包含(include)

包含关系:使用包含(Inclusion)用例来封装一组跨越多个用例的相似动作(行为片断),以便多个基(Base)用例复用。基用例控制与包含用例的关系,以及被包含用例的事件流是否会插入到基用例的事件流中。基用例可以依赖包含用例执行的结果,但是双方都不能访问对方的属性。

UML用例图中包含关系对典型的应用就是复用,也就是定义中说的情景。但是有时当某用例的事件流过于复杂时,为了简化用例的描述,我们也可以把某一段事件流抽象成为一个被包含的用例;相反,用例划分太细时,也可以抽象出一个基用例,来包含这些细颗粒的用例。这种情况类似于在过程设计语言中,将程序的某一段算法封装成一个子过程,然后再从主程序中调用这一子过程。 

例如:业务中,总是存在着维护某某信息的功能,如果将它作为一个用例,那新建、编辑以及修改都要在用例详述中描述,过于复杂;如果分成新建用例、编辑用例和删除用例,则划分太细。这时包含关系可以用来理清关系。

2、扩展(extend)

扩展关系:将基用例中一段相对独立并且可选的动作,用扩展(Extension)用例加以封装,再让它从基用例中声明的扩展点(ExtensionPoint)上进行扩展,从而使基用例行为更简练和目标更集中。UML用例图中扩展用例为基用例添加新的行为。扩展用例可以访问基用例的属性,因此它能根据基用例中扩展点的当前状态来判断是否执行自己。但是扩展用例对基用例不可见。

对于一个扩展用例,可以在基用例上有几个扩展点。

例如,系统中允许用户对查询的结果进行导出、打印。对于查询而言,能不能导出、打印查询都是一样的,导出、打印是不可见的。导入、打印和查询相对独立,而且为查询添加了新行为。因此可以采用扩展关系来描述:

3、泛化(generalization)

UML用例图中泛化关系:子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。在实际应用中很少使用泛化关系,子用例中的特殊行为都可以作为父用例中的备选流存在。

例如,业务中可能存在许多需要部门领导审批的事情,但是领导审批的流程是很相似的,这时可以做成泛化关系表示:

上面是我参考的一篇文章,觉得将三种关系的区别讲得很清晰,在此基础上结合自己的系统,对项目(在线购物系统)的用例做了整体的描绘。

深入剖析UML用例图关系中包含 扩展和泛化之间的联系

UML用例图中包含(include)、扩展(extend)和泛化(generalization)三种关系详解

共性:都是从现有的用例中抽取出公共的那部分信息,作为一个单独的用例,然后通后过不同的方法来重用这个公共的用例,以减少模型维护的工作量。

1、包含(include)

UML用例图的包含关系:使用包含(Inclusion)用例来封装一组跨越多个用例的相似动作(行为片断),以便多个基(Base)用例复用。基用例控制与包含用例的关系,以及被包含用例的事件流是否会插入到基用例的事件流中。基用例可以依赖包含用例执行的结果,但是双方都不能访问对方的属性。

UML用例图包含关系对典型的应用就是复用,也就是定义中说的情景。但是有时当某用例的事件流过于复杂时,为了简化用例的描述,我们也可以把某一段事件流抽象成为一个被包含的用例;相反,用例划分太细时,也可以抽象出一个基用例,来包含这些细颗粒的用例。这种情况类似于在过程设计语言中,将程序的某一段算法封装成一个子过程,然后再从主程序中调用这一子过程。 
例如:业务中,总是存在着维护某某信息的功能,如果将它作为一个用例,那新建、编辑以及修改都要在用例详述中描述,过于复杂;如果分成新建用例、编辑用例和删除用例,则划分太细。这时包含关系可以用来理清关系。

2、扩展(extend)

UML用例图的扩展关系:将基用例中一段相对独立并且可选的动作,用扩展(Extension)用例加以封装,再让它从基用例中声明的扩展点(ExtensionPoint)上进行扩展,从而使基用例行为更简练和目标更集中。扩展用例为基用例添加新的行为。扩展用例可以访问基用例的属性,因此它能根据基用例中扩展点的当前状态来判断是否执行自己。但是扩展用例对基用例不可见。

对于一个扩展用例,可以在基用例上有几个扩展点。

例如,系统中允许用户对查询的结果进行导出、打印。对于查询而言,能不能导出、打印查询都是一样的,导出、打印是不可见的。导入、打印和查询相对独立,而且为查询添加了新行为。因此可以采用扩展关系来描述:

3、泛化(generalization)

UML用例图的泛化关系:子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。在实际应用中很少使用泛化关系,子用例中的特殊行为都可以作为父用例中的备选流存在。
例如,业务中可能存在许多需要部门领导审批的事情,但是领导审批的流程是很相似的,这时可以做成泛化关系表示:

上面是我参考的一篇文章,觉得将三种关系的区别讲得很清晰,在此基础上结合自己的系统,对项目(在线购物系统)的用例做了整体的描绘。

Visio画UML用例图相关推荐

  1. 四步轻松实现用Visio画UML类图

    原文链接:四步轻松实现用Visio画UML类图 四步轻松实现用Visio画UML类图 本节和大家一起学习一下用Visio画UML类图的方法,主要有四个步骤,这里和大家分享一下,相信通过本节的学习,你对 ...

  2. Visio画UML类图

    用Visio画UML类图 1.首先创建一个类图.接下来我们要做一下准备工作,因为我们这里用了PSDK中的POINT类型,在种数据类型在visio数据类型中找不到,所以我们先得追加这个数据类型.为了便于 ...

  3. Visio画UML图基本操作及技巧解析

    Visio如何添加枚举类型 1.  新建DataType 2. 选择DataType -> Property -> Stereotype -> enumeration 3. 添加其他 ...

  4. 使用Visio画UML图(Java)

    2019独角兽企业重金招聘Python工程师标准>>> 1.全面认识UML类图元素:http://cqujsjcyj.iteye.com/blog/387546 2.类UML2:ht ...

  5. startuml如何画流程图_实例介绍用Visio画UML流程图方法

    本文和大家重点讨论一下用Visio画UML流程图方面的内容,通过实例 向大家介绍,相信通过本文的虚席你对用Visio画UML流程图有所了解. 用Visio画UML流程图 在一次会议中看到有个同事在讲解 ...

  6. 用visio画UML序列图

    2019独角兽企业重金招聘Python工程师标准>>> 今天尝试使用visio画了一个序列图. 话不多说,先打开visio,新建一个UML序列. 先新建几个对象生命线 加入几个激活 ...

  7. VISIO画UML时,框图锁定保护不能调整大小

    使用Visio绘制UML时序图 但是if/else结构的"交互操作数"框图只能调节高度,不能调节宽度. 锁定框图,宽度不能改变. ** 修改选项 ** 文件----选项----高级 ...

  8. 使用Visio画UML模型

    Microsoft Office Visio"UML 模型图" 模板为创建复杂软件系统的面向对象的模型 (模型:建模系统的一种抽象表示,它从特定的视角并在某一抽象级别上指定建模系统 ...

  9. visio uml 画java类图_用visio画UML类图

    对于画类图的工具很多,曾经学过用starUML画类图,但这个是用于Java语言的,对于用vs编程C++语言,个人感觉用visio会好一点.以下用以前面的俄罗斯方块游戏中的一个Block类为例来讲述 c ...

  10. visio画uml类图添加自定义数据类型

    类图(Class Diagram): 类图是面向对象系统建模中最常用和最重要的图,是定义其它图的基础.类图主要是用来显示系统中的类.接口以及它们之间的静态结构和关系的一种静态模型. 类图的3个基本组件 ...

最新文章

  1. 我的FizzBuzz和一点感想
  2. 在asp.net中使用加密数据库联接字符串
  3. ACL 2020 | 知识库问答的多跳复杂问题查询图生成
  4. 无监督学习和监督学习的区别
  5. java mvc模式_Java MVC模式
  6. css --- [小结]让盒子水平垂直居中的解决方案
  7. 微信公众号无需二次登录_您无需两次解决问题-您需要一个设计系统
  8. Spark基础学习笔记06:搭建Spark On YARN模式的集群
  9. android imageview图片崩溃,android - setImageResource导致应用程序崩溃 - 堆栈内存溢出...
  10. python 排序统计滤波器_数字图像处理的python实现(8)——中值滤波
  11. visio画图复制粘贴到word_用VISIO画图 复制完之后粘贴到word中为什么只显示下面一部分?...
  12. stm32—光敏电阻传感器的初步使用
  13. 树莓派4B安装windows xp windows 95( windows xp windows 95 for raspberry pi 4B)
  14. oracle用imp导入dmp文件
  15. M0、M1、M2、M3、M4
  16. 软件测试中的黑盒与白盒测试
  17. java计算机毕业设计基于微信小程序的校园外卖订餐系统APP
  18. 凯文.都迪的超级记忆力训练教程
  19. 【论文笔记】A Survey on Federated Learning: The Journey From Centralized to Distributed On-Site...(综述)
  20. 关于switch-case的用法细节及其特殊用法

热门文章

  1. PHP获取每月第一天与最后一天
  2. 服务器上qq打不开网页,能上qq打不开网页的解决方法
  3. 能上QQ微信,打不开网页
  4. 点歌机显示歌库服务器未能连接,快速解决常见的六种KTV点歌设备突发故障
  5. 阴历阳历相互转换c代码
  6. 概率论由相关性求数学期望和方差的公式_概率论笔记2--离散随机变量、数学期望和方差...
  7. E45: ‘readonly‘ option is set (add ! to override)
  8. html5 blockquote,HTML5 Blockquote引用区块使用实例
  9. 使用consul注册中心要求服务以自定义instance-id形式注册
  10. matlab反双曲函数表达,matlab求反正切