浅谈UML中常用的几种图

Update Time:2019-3-3 Author:要你命三千又 三千 type:笔记整理

浅谈UML中常用的几种图

  • 1.UML简介
  • 2.UML常见图分类
  • 3.用例图
  • 浅谈UML中常用的几种图——类图
  • 第三次作业---画类图
  • 浅析UML之时序图
  • 协作图(Collaboration Diagram)—UML图
  • UML之状态图
  • UML—组件图、配置图

1.UML简介

统一建模语言(Unified Modeling Language,UML)又称标准建模语言,是始于1997年的一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。
  *注:OMG, Object Management Group 对象管理组织

2.UML常见图分类

UML从考虑系统的不同角度出发,定义了用例图、类图、对象图、包图、状态图、活动图、序列图、协作图、构件图、部署图等10种图。
  常见的UML图有用例图(Use Case Diagram)、类图(Class Diagram)和序列图(Sequence Diagram)。下面也将主要阐述这三种UML图.

3.用例图

用例图,展现了一组用例、参与者(actor)以及它们之间的关系。用例图从用户角度描述系统的静态使用情况,用于建立需求模型。
参与者(Actor)
  在系统外部与系统直接交互的人或事物。需要注意以下两点:
  1)参与者是角色而不是具体的人,它代表了参与者在与系统打交道的过程中所扮演的角色。所以在系统的实际运作中,一
个实际用户可能对应系统的多个参与者。不同的用户也可以只对应于一个参与者,从而代表同一参与者的不同实例。
  2)参与者作为外部用户(而不是内部)与系统发生交互作用,是它的主要特征。
  在UML中,参与者使用如图所示的一个小人表示:
这里写图片描述
用例(Use Case)
  系统外部可见的一个系统功能单元。系统的功能由系统单元所提供,并通过一系列系统单元与一个或多个参与者之间交换的消息所表达。用椭圆表示,椭圆中的文字简述系统的功能:
这里写图片描述
子系统(Subsystem)
用来展示系统的一部分功能,这部分功能联系紧密。
浅谈UML中常用的几种图_第1张图片
关系(Relationship)
  常见关系类型有关联、泛化、包含和扩展。
  以上各关系在uml图中的表示方式,如下表所示:
  
浅谈UML中常用的几种图_第2张图片
  a. 关联(Association)
  表示参与者与用例之间的通信,任何一方都可发送或接受消息。
  【箭头指向】:指向消息接收方
这里写图片描述
  b. 泛化(Inheritance)
  就是通常理解的继承关系,子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。
  【箭头指向】:指向父用例
浅谈UML中常用的几种图_第3张图片
  c. 包含(Include)
包含关系用来把一个较复杂用例所表示的功能分解成较小的步骤。
  【箭头指向】:指向分解出来的功能用例
浅谈UML中常用的几种图_第4张图片
  d. 扩展(Extend)
  扩展关系是指用例功能的延伸,相当于为基础用例提供一个附加功能。
  【箭头指向】:指向基础用例
浅谈UML中常用的几种图_第5张图片
包含(include)、扩展(extend)、泛化(Inheritance) 的区别:
  条件性:泛化中的子用例和include中的被包含的用例会无条件发生,而extend中的延伸用例的发生是有条件的;
  直接性:泛化中的子用例和extend中的延伸用例为参与者提供直接服务,而include中被包含的用例为参与者提供间接服务。
  对extend而言,延伸用例并不包含基础用例的内容,基础用例也不包含延伸用例的内容。
  对Inheritance而言,子用例包含基础用例的所有内容及其和其他用例或参与者之间的关系;
类图关系的学习:
一、依赖关系(Dependence)
依赖关系(Dependence):假设A类的变化引起了B类的变化,则说名B类依赖于A类。
• 依赖关系(Dependency) 是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系。大多数情况下,依 赖关系体现在某个类的方法使用另一个类的对象作为参数。
• 在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。
浅谈UML中常用的几种图_第6张图片

1.public class Driver  
2.    public void drive(Car car)  
3.        car.move();  
4.public class Car  
5.    public void move()  
6.        ......  

浅谈UML中常用的几种图——类图

在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)
1. 泛化(Generalization)
【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。
【箭头指向】:带三角箭头的实线,箭头指向父类
浅谈UML中常用的几种图_第7张图片
  2. 实现(Realization)
【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现.
【箭头指向】:带三角箭头的虚线,箭头指向接口
浅谈UML中常用的几种图_第8张图片

3. 关联(Association)
【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。
【代码体现】:成员变量
【箭头及指向】:带普通箭头的实心线,指向被拥有者
浅谈UML中常用的几种图_第9张图片

    上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。 
    下图为自身关联: 

浅谈UML中常用的几种图_第10张图片
4. 聚合(Aggregation)
【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。
聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。
【代码体现】:成员变量
【箭头及指向】:带空心菱形的实心线,菱形指向整体

浅谈UML中常用的几种图_第11张图片
5. 组合(Composition)
【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。
组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。
【代码体现】:成员变量
【箭头及指向】:带实心菱形的实线,菱形指向整体
6. 依赖(Dependency)
【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.
【代码表现】:局部变量、方法的参数或者对静态方法的调用
【箭头及指向】:带箭头的虚线,指向被使用者
浅谈UML中常用的几种图_第12张图片

    各种关系的强弱顺序:
    泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖 
    下面这张UML图,比较形象地展示了各种类图关系:

浅谈UML中常用的几种图_第13张图片
  转自:http://blog.csdn.net/tianhai110/article/details/6339565
uml练习题

第三次作业—画类图

1.-根据下面的陈述画出类图
1)学生包括本科生、研究生两种。
2)研究生的一部分利用课余时间担任助教。
3)教师包括讲师和教授两种。
4)一名助教可以为一位讲师或一位教授助课,一位讲师只能有一名助教,一位教授可以有5名助教。
参考答案:
浅谈UML中常用的几种图_第14张图片
2.—按如下描述画出一个自治机器人的类图。这张图的焦点是聚集在那些让机器人在路上行走的机制所对应的类上。你可以发现一个虚类Motor和两个从它派生出来的类: SteeringMotor和MainMotor。这两个类都从它的父亲Motor继承了五个方法:move()、stop()、resetCounter()、statues()、distance()。这两个类又是另一个类Driver的一部分。类PathAgent 和Driver有一个1对1的关系,和CollisionSensor有1对n的关系。
【问题:】综上所述请你用UML来绘制分析类图。
参考答案:
浅谈UML中常用的几种图_第15张图片

浅析UML之时序图

   时序图别称为顺序图、序列图,在我的大致印象中时序图是以时间为主线,有生命线的动态视图,主要描述的对象是对象。是交互图的一种。主要的作用是表达设计者心中对于未来程序在运作时的对象协作建模,验证软件领域模型的正确性,为程序员提供编码的蓝图。

(一)概念
1,定义:
时序图是以时间为序的表示方法,主要用来描述对象之间的时间顺序。将交互关系表示为二维图的。纵轴为时间,横轴为在协作中各个独立的对象。对象存在时用一条虚线表示,当对象的过程处于激活状态是,生命线是一个双道线。消息用从一个对象的生命线到另一个对象生命线的箭头表示。箭头以时间顺序在图中从上到下排列。如下图:
浅谈UML中常用的几种图_第16张图片
2,四个元素(对象,生命线,消息,激活)
(1)对象
对象的概念就不多说了,就是类的实例化,在系统中随便都可以找到一个对象,因为我们使用的是基于OO编程的VB。
(2)生命线
表示对象的存在存在多久的时间
(3)消息
对象之间的单路通信,人有人的语言,机器有机器的语言,人和机器都是靠消息传递信息和指令的。
消息的类型大致有:同步与异步,返回、阻止和超时。
(4)激活
表示这个时间,对象实现操作。时序图是将交互关系表示为二维图的。纵轴为时间,横轴为在协作中各个独立的对象。对象存在时用一条虚线表示,当对象的过程处于激活状态,生命线是一个双道线。消息用从一个对象的生命线到另一个对象生命线的箭头表示。箭头以时间顺序在图中从上到下排列。
(二)建模
主要是按时间顺序对控制流建模
(三)实例
首先要分析用例的正常流
,学生刷卡上机
,系统记录学生上机时间,同时显示学生的基本信息
,此时的学生信息时系统更新
,系统根据学生上机时长和类别计算上机费用
,系统保存学上上机信息。
,学生下机
,系统记录时间,跟新数据库
,数据库更新,反馈学生信息
,系统根据学生上机和下机时间、类别计算上机费用
,系统保存学生上机费用
然后开始画图:
)创建时序图
)添加对象并设置对象属性,持续性
)添加消息(消息的编号,显示或取消激活显示)
如图:(图片有错,不提供参考)

浅谈UML中常用的几种图_第17张图片
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tsj11514oo/article/details/38179121

协作图(Collaboration Diagram)—UML图

协作图(Collaboration Diagram /Communication Diagram,也叫合作图)是一种交互图(interaction diagram),强调的是发送和接收消息的对象之间的组织结构。一个协作图显示了一系列的对象和在这些对象之间的联系以及对象间发送和接收的消息。对象通常是命名或匿名的类的实例,也可以代表其他事物的实例,例如协作、组件和节点。使用协作图来说明系统的动态情况。
下面这张图介绍协作图的基本内容:

浅谈UML中常用的几种图_第18张图片

      下面一张图是一个协作图的实例,创建课程的协作图:

浅谈UML中常用的几种图_第19张图片

      由于协作图和时序图在语意上是相通的,所以可以互相转换,下面是利用ROSE把上面的协作图转换成的时序图的实例:

浅谈UML中常用的几种图_第20张图片

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shan9liang/article/details/671973

UML之状态图

1.概述:
状态图(Statechart Diagram)主要用于描述一个特定的对象的所有可能状态以及由于各种事件的发生而引起的状态之间的转换。
2.构成要素:
状态图由状态、转移和事件组成。联合使用状态和转移可以更好地建模它们,有时需要包含决策点和同步条来显示更高层次的细节信息。
2.1状态(States):
在对象的生命周期中满足某些条件、执行某些活动或等待某些事件的一个条件或状况。所有的对象都有状态,状态是对象执行了一系列活动的结果,当某个事件发生后,对象的状态将发生变化。
浅谈UML中常用的几种图_第21张图片
状态图中可以包含0个多个开始状态,也可以包含多个结束状态。模型不必同时具有开始和结束状态,因为模型可以总是运行,从不停止。
2.2转移(Transitions):
两个状态之间的一种关系,表示对象将在第一个状态中执行一定的动作并在某个特定事件发生或某个特定条件满足时进入第二个状态。
浅谈UML中常用的几种图_第22张图片
2.3事件:
使状态发生变化的某时刻发生的动作或活动,用来指示是什么触发了转移从而导致状态发生了改变。事件通常在从一个状态到另一个状态的转移路径上直接指定。
2.4判断:
判断点通过对事件判断分组转移到各自方向,提高了状态图的可视性。
浅谈UML中常用的几种图_第23张图片
2.4同步:
使用同步和活动图一样是为了说明并发工作流的分叉与联合。
浅谈UML中常用的几种图_第24张图片
3.机房实例(注册部分):浅谈UML中常用的几种图_第25张图片
4.总结:
状态图重点在与描述对象的状态及其状态之间的转移,与活动图区别在于状态图注重的是行为的结果,活动图更注重是行为的动作。
活动图(Activity Diagram)—UML图(四)
2011年08月26日 16:13:47
阅读数:8135
“活动图”可通过一系列操作将业务流程或软件进程以工作流的形式显示出来。这些操作可以由人、软件组件或计算机来执行。
使用活动图可以描述多种类型的流程,如下:
1、用户和您的系统之间的业务流程或工作流。
2、某一用例中执行的步骤。
3、软件协议,即允许在组件间进行的交互序列。
4、软件算法。
下面用一张图来介绍活动图的基本内容
浅谈UML中常用的几种图_第26张图片
下面是用rose 和 onenote结合画的一张活动图的实例,基本囊括了活动图的重要元素。
浅谈UML中常用的几种图_第27张图片

UML—组件图、配置图

2018年02月06日 10:58:01
阅读数:334
【前言】
组件图和配置图是面向对象系统的物理建模时使用的两种图。
组件图:描述软件组件以及组件之间的关系。

组件图元素:组件、接口、依赖关系
组件:是定义良好接口的物理实现单元,遵从同一组接口,提供实现物理的可替换的部分。
接口:一个类提供另一个类的一组操作。
依赖关系:一种使用关系(这里不做详解)

构件与结构之间关系:
构件与构件之间关系:依赖
构件与其对应接口之间关系:实现
导出接口:组件实现的接口,由提供操作的组件提供
导入接口:访问服务的组件使用导入接口
机房收费系统组件图:机房收费系统引用控件与报表生成器,导出EXcel,打印报表,通过代码与数据库连接实时更新数据。
浅谈UML中常用的几种图_第28张图片
配置图:描述系统硬件的物理结构以及如何将软件部署在硬件上。用于对系统的实现视图建模,主要是为了描述系统各个物理组成部分的分布、提交、安装过程。
组成元素:节点、关系
机房收费系统部署图:
浅谈UML中常用的几种图_第29张图片
以上就我我对部署图和组件图的理解,UML的九种图就总结完了,总会有缺点,希望大家指出建议,您的建议就是我收到的最好的礼物!
csdn 的博客编辑页面,应该有直接切换HTML与Markdown 的按钮才对,干嘛藏起来,如果是没藏起来,反正在编辑页面没看见,切换按钮,我在设置里找到的,算是提个意见。蓝瘦,香菇
github上的地址

你可能感兴趣的:(设计模式)