1、UML简介

  UML(Unidied Modeling Language)为面向对象软件设计提供统一的,标准的,可视化的建模语言。适用于以用例为驱动,以体系结构为中心的软件设计全程

2、UML模型的构成

  事务(Things):UML建模中最基本的构成元素,具有代表性的成分的抽象

  关系(Relationships):关系把事务紧密联系在一起

  图(Diagrams):图是事务和关系的可视化表示

3、事务

  UML包含4中事务:构件事务,行为事务,分组事务,注释事务

  3.1 构件事务

    UML建模的静态部分,表述概念或者物理元素,主要包括如下几种:

    类:具有相同属性、相同操作、相同关系、相同语义的对象的描述

    接口:描述元素的外部可见行为(服务集合的定义说明)

    协作:描述一组事务的相互作用的集合

    用例:代表一个系统或者系统一部分行为,是一组动作序列的集合

    构件:系统中物理存在,可替换的部件

    节点:运行时存在的物理元素

    另外:参与者、信号应用,文档库,页表都是上述基本事务的变体

  3.2 行为事务

    UML建模的动态部分,描述跨越空间和时间的行为

    交互:实现某功能的一组构件事务之间的消息的集合,涉及消息、运动序列、链接

    状态机:描述事务或者交互在生命周期内响应事件所经历的状态序列

  3.3 分组事务

    UML建模图的组织部分,描述事务的组织结构

    包:把元素组织成组的机制

  3.4 注释事务

    UML模型的解释部分,用来对模型中的元素进行说明,解释

    注解:对元素进行约束或者解释的符合

4、关系

  4.1 泛化(generalization):带三角箭头的实线,箭头指向父类

    可以说成是继承关系,它指定类子类如何特化父类的属性、行为

  4.2 实现(realization): 带三角箭头的虚线,箭头指向接口  

    是一种类与接口的关系,表示类是接口所有属性和行为的实现 

  4.3 关联(association):带普通箭头的实线,指向被拥有者

    是一种结构关系,表示拥有关系,它使一个类知道另一个类的属性和方法

    关联是可以双向的(可以两个箭头或者没有),单项的关联有一个箭头

  4.4 聚合(Aggregation):带空心菱形的实线,菱形指向整体

    是整体与部分的关系,并且部分可以脱离整体单独存在(汽车和轮胎)

    聚合也是关联的一种,是强关联

  4.5 组合(Composition):待实心的菱形实现,菱形指向整体

    是整体与部分的关系,但是部分不能脱离整体,整体的对象负责代表部分的对象的生命周期

  4.6 依赖(dependency):带普通箭头的虚线,指向使用者

    是一种使用关系,既一个类的实现需要另一个类的协助,所以尽量不要使用双向依赖(方法参数,静态方法)

  

5、图

  用例图

    从用户角度描述系统功能,是用户所能观察到的系统功能的模型图,用例是系统中的一个功能单元

  类图

    描述系统中类的静态结构,不仅定义系统中的类,表示类之间的关系(关联,依赖),也包括类的内部结构(属性,行为)。

    类图是以类为中心来组织的,类图中的其他元素或者属于类或者类相关联

  对象图

    对象图是类图的实例,几乎使用与类图完全相同的标识,他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。

  顺序图

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

    顺序图的一个用途是用例表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应一个类操作或引起状态转换的触发事件。

  协作图

    协作图描述对象建的协作关系,协作图跟顺序图相似,显示对象间的动态合作关系,除了显示信息交互外,协作图还显示对象以及它们之间的关系

    协作图的一个用途表示类操作的实现

  状态图

    状态图是一个类对象所可能经历的所有历程的模型图,状态图由对象的各个状态和连接这些状态的转换组成

  活动图

    活动图是状态图的一个变体,用来描述执行算法的工作流程中涉及的活动

    活动图描述了一组顺序或者并发的活动。

  构件图  

    结构图为系统的构件建模型(构件既构造应用软件单元),还包括各个构件之间的依赖关系,以便通过这些依赖关系来估计对系统构件的修改给系统可能带来的影响

  部署图

    部署图描述位于节点实例上运行构件实例的安排,节点是一组运行资源,如计算机,设备或存储器。这个视图允许评估分配结果和资源分配

6、各个UML图的关系

  需求分析:用例图-顺序图

  BD(基本设计):用例文档-用例图-类图-顺序图

  FD/DD(结构设计/详细设计):类图-顺序图

UML 建模 -- 基础知识的更多相关文章

  1. UML图基础知识

    一.UML简述 类是面向对象系统中最重要的构造块.类图显示了一组类.接口.协作以及他们之间的关系,通过类图,我们能够很好的掌握类与类之间的关系. 首先给出一幅UML类图,此图来源于<大话设计模式 ...

  2. 【Microstation】三维建模基础及软件入门到精通实验教程目录

    @ 目录 1. 专栏简介 2. 专栏地址 3. 专栏目录 1. 专栏简介 MicroStation是一款非常不错的二维和三维设计软件,由奔特力(Bentley)工程软件系统有限公司开发的一款软件.在C ...

  3. UML uml基础知识

    uml基础知识 一.了解: uml是Unified Modeling Language的缩写,意思是统一建模语言或标准建模语言. UML规范用来描述建模的概念有,类(对象的).对象.关联.职责.行为. ...

  4. 推荐一本书:《UML面向对象建模基础》

    http://www.cnblogs.com/onlytiancai/archive/2006/10/13/528205.html 以前对UML呀,感觉用不上,不知道都干啥的,也就是知道有个用例图.类 ...

  5. 【二】、UML基础知识——图图解乾坤

    [二].UML基础知识 UML概述 UML是一个通用的可视化建模语言,不同于编程语言,它通过一些标准的图形符号和文字来对系统进行建模.用于对软件进行描述.可视化处理.构建软件系统的文档.是一套总结了以 ...

  6. 使用Code First建模自引用关系笔记 asp.net core上使用redis探索(1) asp.net mvc控制器激活全分析 语言入门必学的基础知识你还记得么? 反射

    使用Code First建模自引用关系笔记   原文链接 一.Has方法: A.HasRequired(a => a.B); HasOptional:前者包含后者一个实例或者为null HasR ...

  7. 使用Visio进行UML建模

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

  8. 语义web基础知识学习

    最近找了一本书,<语义web技术基础>----Pascal Hitzler等编著的.因为最近在看关于自然语言处理的一些东西,就顺带翻了一下,做一点学习笔记,方便以后查看. 本书的作者 Pa ...

  9. JAVA相关基础知识

    JAVA相关基础知识 1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分, ...

随机推荐

  1. ASP.NET Core MVC 中实现中英文切换

    哈喽..大家好 很久没有更新了,今天就来一篇最近开发用到的功能,那就是中英文切换,这个实际上也不是高大上,先说一下原理,在.NET Core框架中给我们提供了全球化的类,叫做Localization, ...

  2. Linux设备中的UUID

    UUID简介 UUID为系统中的存储设备提供唯一的标识字符串,不管这个设备是什么类型的.如果你在系统中启动的时候,使用盘符挂载时,可能找不到设备而加载失败,而使用UUID挂载时,则不会有这样的问题.( ...

  3. 用Docker部署自己的JupyterHub

    [话在前头] 用 Docker 部署 JupyterLab 感觉是部署 JupyterLab 最方便的方式了,官方提供了很多可选的镜像,也可以自己从 jupyter/base-notebook 中继续 ...

  4. Webpack 中 file-loader 和 url-loader 的区别

    如果我们希望在页面引入图片(包括img的src和background的url).当我们基于webpack进行开发时,引入图片会遇到一些问题. 其中一个就是引用路径的问题.拿background样式用u ...

  5. Java中的合并与重组(上)

    通过优锐课核心java学习笔记中,我们可以看到,码了很多专业的相关知识, 分享给大家参考学习. 虽然在Git中合并和重组是相似的,但它们具有两种不同的功能. 要保持自己的历史记录整洁或完整,这是你应该 ...

  6. The server cannot be started because one or more of the ports are invalid. Open the server editor and correct the invalid ports.

    在eclipse里运行jsp文件最初迟迟没有反应,重启报了这个错误,tomcat的端口设置有问题.需要打开服务器设置一下端口号. 点击Servers,如果没有这一项,按照Window-Show Vie ...

  7. Django request对象与ORM简介

    form表单 form表单默认是以get请求提交数据的 http://127.0.0.1:8000/login/?username=admin&password=123 action参数 1. ...

  8. 聊聊spring之贯穿全局的重要对象BeanDefinition

    BeanDefinition 在 spring 中贯穿始终,spring 要根据 BeanDefinition 对象来实 例化 bean,只要把解析的标签,扫描的注解类封装成 BeanDefiniti ...

  9. Ubuntu18.04下配置深度学习开发环境

    在Ubuntu18.04下配置深度学习/机器学习开发环境 1.下载并安装Anaconda 下载地址:https://www.anaconda.com/distribution/#linux 安装步骤: ...

  10. day 17 初始递归

    递归函数 了解什么是递归 : 在函数中调用自身函数 最大递归深度默认是997/998 —— 是python从内存角度出发做的限制 能看懂递归 能知道递归的应用场景 初识递归 —— 算法 —— 二分查找 ...