一、概念

UML-Unified Model Language 统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。作为一个支持模型化和软件系统开发的图形化语言,UML为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。

UML规范用来描述建模的概念有:类(对象的)对象关联职责行为接口用例顺序协作,以及状态

二、分类

在UML系统开发中有三个主要的模型: 
功能模型: 从用户的角度展示系统的功能,包括用例图。 
对象模型: 采用对象,属性,操作,关联等概念展示系统的结构和基础,包括类图对象图包图。 
动态模型: 展现系统的内部行为。 包括序列图活动图状态图

UML定义了5类,10种模型图

五种类图定义:

用例图:从用户角度描述系统功能,并指各功能的操作者。

静态图:包括类图,包图,对象图。

    类图:描述系统中类的静态结构

    包图:是包和类组成的,表示包与包之间的关系,包图描述系统的分层结构

    对象图:是类图的实例

行为图:描述系统动态模型和对象组成的交换关系。包括状态图和活动图

    活动图:描述了业务实现用例的工作流程

    状态图:是描述状态到状态控制流,常用于动态特性建模

交互图:描述对象之间的交互关系

    顺序图:对象之间的动态合作关系,强调对象发送消息的顺序,同时显示对象之间的交互

    合作图:描述对象之间的协助关系

实现图:描述系统的实际体系结构安排

    配置图:定义系统中软硬件的物理体系结构

十种图定义:

UML包括用例图类图构件图部署图顺序图协作图状态图活动图

(1)类图(Class Diagram)。展现了一组对象、接口、协作和它们之间的关系。类图描述的是一种静态关系,在系统的整个生命周期都是有效的,是面向对象系统的建模中最常见的图。

(2)对象图(Object Diagram)。展现了一组对象以及它们之间的关系。对象图是类图的实例,几乎使用与类图完全相同的标示。

(3)用例图(UseCase Diagram)。展现了一组用例、参与者(actor)以及它们之间的关系。用例图从用户角度描述系统的静态使用情况,用于建立需求模型。

(4)交互图。用于描述对象间的交互关系,由一组对象和它们之间的关系组成,包含它们之间可能传递的消息。交互图又分为序列图和协作图,其中序列图描述了以时间顺序组织的对象之间的交互活动;协作图强调收发消息的对象的结构组织。

(5)状态图(State Diagram)。由状态、转换、事件和活动组成,描述类的对象所有可能的状态以及事件发生时的转移条件。通常状态图是对类图的补充,仅需为那些有多个状态的、行为随外界环境而改变的类画状态图。

(6)活动图(Active Diagram)。一种特殊的状态图,展现了系统内一个活动到另一个活动的流程。活动图有利于识别并行活动。

(7)组件图(Component Diagram)。展现了一组组件的物理结构和组件之间的依赖关系。部件图有助于分析和理解组件之间的相互影响程度。

(8)部署图(Deployment Diagram)。展现了运行处理节点以及其中的组件的配置。部署图给出了系统的体系结构和静态实施视图。它与组件图相关,通常一个节点包含一个或多个构建。

(9)包图((Package Diagram))。包图描述系统的分层结构。在UML1.1版本中,包图不再看作一种独立的模型图。

三、十种模型图具体描述

1.类图(概念类图Class Diagram/Conceptual Class Diagram / Domian Model)

类图是描述系统中的类,以及各个类之间的关系的静态视图。能够让我们在正确编写代码以前对系统有一个全面的认识。类图是一种模型类型,确切的说,是一种静态模型类型。类图表示类、接口和它们之间的协作关系

2.活动图(Activity Diagram)

描述用例要求所要进行的活动,以及活动间的约束关系,有利于识别并行活动。能够演示出系统中哪些地方存在功能,以及这些功能和系统中其他组件的功能如何共同满足前面使用用例图建模的商务需求。

3.状态图(状态机图State Diagram/State Machine Diagram)

描述类的对象所有可能的状态,以及事件发生时状态的转移条件。可以捕获对象、子系统和系统的生命周期。他们可以告知一个对象可以拥有的状态,并且事件(如消息的接收、时间的流逝、错误、条件变为真等)会怎么随着时间的推移来影响这些状态。一个状态图应该连接到所有具有清晰的可标识状态和复杂行为的类;该图可以确定类的行为,以及该行为如何根据当前的状态变化,也可以展示哪些事件将会改变类的对象的状态。状态图是对类图的补充

4.用例图(Use Case Diagram)

描述角色以及角色与用例之间的连接关系。说明的是谁要使用系统,以及他们使用该系统可以做些什么。一个用例图包含了多个模型元素,如系统、参与者和用例,并且显示这些元素之间的各种关系,如泛化、关联和依赖。

5.序列图(顺序图Sequence Diagram)

序列图是用来显示你的参与者如何以一系列顺序的步骤与系统的对象交互的模型。顺序图可以用来展示对象之间是如何进行交互的。顺序图将显示的重点放在消息序列上,即强调消息是如何在对象之间被发送和接收的。

6.协作图(通讯图Communication Diagram)

和序列图相似,显示对象间的动态合作关系。可以看成是类图和顺序图的交集,协作图建模对象或者角色,以及它们彼此之间是如何通信的。如果强调时间和顺序,则使用序列图;如果强调上下级关系,则选择协作图;这两种图合称为交互图。

7.对象图(设计类图Object Diagram/Design Class Diagram)

与类图极为相似,它是类图的实例,对象图显示类的多个对象实例,而不是实际的类。它描述的不是类之间的关系,而是对象之间的关系

8.包图(Package Diagram)

包图用于描述系统的分层结构,由包或类组成,表示包与包之间的关系。

9.组件图(构件图Component Diagram)

描述代码构件的物理结构以及各种构建之间的依赖关系。用来建模软件的组件及其相互之间的关系,这些图由构件标记符和构件之间的关系构成。在组件图中,构件是软件单个组成部分它可以是一个文件,产品、可执行文件和脚本等

10.部署图(配置图Deployment Diagram)

是用来建模系统的物理部署。例如计算机和设备,以及它们之间是如何连接的。部署图的使用者是开发人员、系统集成人员和测试人员。部署图用于表示一组物理结点的集合及结点间的相互关系,从而建立了系统物理层面的模型。

 

三、十种模型图对比

这十种模型图各有侧重
  1:用例图侧重描述用户需求,
  2:类图侧重描述系统具体实现;
描述的方面都不相同:
  1:类图描述的是系统的结构,
  2:序列图描述的是系统的行为;
抽象的层次也不同:
  1:构件图描述系统的模块结构,抽象层次较高,
  2:类图是描述具体模块的结构,抽象层次一般,
  3:对象图描述了具体的模块实现,抽象层次较低。
在有的文献书籍中,将这九种模型图分为三大类:
  结构分类动态行为模型管理
  1:结构分类包括用例图、类图、对象图、构件图和部署图,
  2:动态行为包括状态图、活动图、顺序图和协作图,
  3:模型管理则包含类图。

UML建模综述的更多相关文章

  1. 三大UML建模工具Visio、Rational Rose、PowerDesign的区别

    本文源自http://developer.51cto.com/art/201006/207993.htm UML建模工具Visio .Rational Rose.PowerDesign的比较   RO ...

  2. 本节向大家介绍一下UML建模误区

    本节向大家介绍一下UML建模误区,这里向大家介绍九个误区,希望通过本节的学习,你对UML建模有清晰的认识,以免在以后使用过程中产生不必要的麻烦.下面让我们一起来看一下这些建模误区吧. UML建模误区 ...

  3. UML建模类型(转载)

    区分UML模型, UML建模用于不同类型的不同的图.有三个重要类型的UML建模: 结构建模: 系统结构建模捕捉静态功能.它们包括下列各项: 类图 对象图 部署图 包图 复合结构图 组件图 结构模型代表 ...

  4. 使用Visio进行UML建模

    http://www.qdgw.edu.cn/zhuantiweb/jpkc/2009/rjkf/xmwd/Visio_UmlModel.htm#_Toc80417837 内容提纲: 1.VISIO中 ...

  5. UML建模文章总结

    一.为什么要学习UML UML是Unified Modeling Language(统一建模语言)的简称.UML是对软件密集型系统中的制品进行可视化.详述.构造和文档化的语言.制品{Artifact} ...

  6. 五个免费UML建模工具推荐

    UML工具很多是商用的,价格不菲:而免费的UML建模工具,功能完善的很少.以下推荐的是五个免费的UML建模工具,相对而言还算功能比较不错. 1.免费UML建模工具推荐:JUDE – community ...

  7. UML建模系列文章总结

    本文转载:http://www.cnblogs.com/ywqu/tag/UML建模/ 本人总结: UML类图按照关系分为三大类:继承关系.拥有关系.整体与部分的关系. 继承关系:泛化.实现 拥有关系 ...

  8. EA UML 建模——类图

    Enterprise Architect(EA) 是一个功能比较强悍的建模工具,本篇文章仅使用其 UML 建模功能,其他更多功能,可以Google. 一.简单梳理C#中类与类.类与接口.接口与接口的关 ...

  9. Enterprise Architect UML 建模之活动图

    EA(Enterprise Architect) UML 建模之活动图   一.活动图的概念作用 活动图本质上是一种流程图,它描述活动的序列,即系统从一个活动到另一个活动的控制流. 活动图的作用:描述 ...

随机推荐

  1. Appium|Locator Strategy ... is not supported for this session

    appim server log InvalidSelectorError: Locator Strategy 'xpath,//android.widget.TextView[@resource-i ...

  2. java_八大数据类型

    一.整型 1.byte  1个字节(8位--一个字节占8位)-128~127 2.short  2个字节  -32768~32767 3.int      4个字节(常用) 4.long   8个字节 ...

  3. RxJava事件流变换者--操作符

    对于Rxjava来说,操作符是它的一个非常重要的概念,如官网: 而上节上也贴了一下都有哪些操作符,其实还不少,所以有必要仔细学习一下关于操作符这块的东东,那操作符在Rxjava中扮演着什么样的角色呢, ...

  4. 最简单之安装azkaban

    一,拉取源码构建 git clone https://github.com/azkaban/azkaban.git cd azkaban; ./gradlew build installDist 二, ...

  5. 多机部署lnmp-1

    第一台部署Nginx [root@lnmp ~]# cat /etc/yum.repos.d/nginx.repo[nginx]name=nginx repobaseurl=http://nginx. ...

  6. 01windows7下安装rabbitmq

     1.直接双击rabbitmq-server-3.6.10.exe,会提示你缺少Erlang安装包,问你是否下载,点击是就可以了,因为我自己下载,我就直接先安装otp_win64_20.0.exe,直 ...

  7. windows下常用cmd命令

    CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本.文件系统版本)1. appwiz.cpl:程序和功能 2. calc:启动计算器 3. certmgr. ...

  8. flutter flutter_cupertino_date_picker 时间插件的用法

    https://blog.csdn.net/sinat_37255207/article/details/100041023 https://github.com/wuzhendev/flutter- ...

  9. while循环与do. . . while循环语句

    ㈠导入 向页面中输出连续的数字 var n = 1; document.write(n++ +"<br />"); ㈡while循环 ⑴循环语句:通过循环语句可以反复的 ...

  10. on(events,[selector],[data],fn) 在选择元素上绑定一个或多个事件的事件处理函数

    on(events,[selector],[data],fn) 概述 在选择元素上绑定一个或多个事件的事件处理函数.大理石平台精度等级 on()方法绑定事件处理程序到当前选定的jQuery对象中的元素 ...