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. VFP的13个SPT函数

    Visual FoxPro 中内置了13个以SQL开头的函数,我们把它们称为SPT函数.就是这13个函数完成了Visual FoxPro的所有的SQL Pass Though功能.从功能上看,我们可以 ...

  2. Django (一) 基础

    创建项目 创建app     python manager.py startapp app01 修改.添加url from django.conf.urls import url,include fr ...

  3. Linux高级系统恢复技术

    一,MBR毁坏: 查看系统分区在那: 毁坏MBR: 如果没有重启动,可以直接恢复: 如果重启之后就不可启动系统,需要恢复系统: 出现这样的情况: force off关机,使用光盘启动,添加一个镜像光盘 ...

  4. NAT 地址转换

    NAT功能        NAT不仅能解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机.1.宽带分享:这是 NAT 主机的最大功能.解决IP4地址短缺的问题 ...

  5. Chrome Vue Devtools插件安装和使用

    安装:fq后在chrome应用商店搜索 Vue Devtools并安装,安装成功后浏览器右上角有vue的图标 安装完毕后,打开含有vue框架的网站,这是vue图标会变亮,进入开发者工具,再右侧vue选 ...

  6. ES6学习笔记(一):轻松搞懂面向对象编程、类和对象

    目录 面向过程编程P OP(Process oriented programming) 面向对象编程OOP(Object Oriented Programming) 总结 @ 面向过程编程P OP(P ...

  7. golang单元测试简述

      Golang中内置了对单元测试的支持,不需要像Java一样引入第三方Jar才能进行测试,下面将分别介绍Golang所支持的几种测试: 一.测试类型   Golang中单元测试有功能测试.基准测试. ...

  8. 如何利用border书写三角形,建议考虑正方形

    网页做三角形图片,你还在拿ps调整吗?out了,老铁,来和我一起脑海畅想一个正方形是由4个等腰直角三角形构成,然后我想保留上边的三角形,那下边.左边.右边的三角形就没了(设置背景色transparen ...

  9. 记一次Postgres CPU爆满故障

    问题描述 公司项目测试环境调用某些接口的时候,服务器立即崩溃,并一定时间内无法提供服务. 问题排查 服务器配置不够 第一反应是服务器需要升配啦,花钱解决一切!毕竟测试服务器配置确实不高,2CPU + ...

  10. 《Git 从入门到体系》- 写给自己的话

    我听过的对我很有冲击力的观点是:知识不成体系就是垃圾.这个观点不一定对,但是却是给我的冲击很大. 我记得以前在咖啡馆和一个博士医生聊天,他提出了这个观点:知识不成体系就是垃圾.听了这个观点我很想反驳他 ...