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. php连接mySql数据库 示例

    <?php header("content-type:text/html;charset=utf-8"); error_reporting(E_ALL); /* 连接数据库- ...

  2. 为什么Linux 实例执行 df 和 du 查看磁盘时结果不一致

    问题现象 执行 df -h 查看 ECS Linux 实例文件系统使用率,可以看到 /dev/xvdb1 磁盘占用了约27G,挂载目录为 /opt . 进入到 /opt 目录执行 du -sh ,显示 ...

  3. WannaMine4.0查杀方法

    病毒现象 扫描爆破内网基于445端口的SMB服务 服务器出现卡顿.蓝屏 服务器主动访问恶意域名:totonm.com.cake.pilutce.com:443 病毒处置 删除关键病毒文件:C:\Win ...

  4. Objective-C编程 — 并行编程

    多线程 线程的基本概念 线程 (thread)是进程(process)A 内假想的持有 CPU 使用权的执行单位.一般情况下,一个进程 只有一个线程,但也可以创建多个线程并在进程中并行执行.应用在执行 ...

  5. css3新增边框、阴影、边框、背景、文本、字体

    css3和css有什么区别?简单来讲css3是css(层叠样式表)技术的升级版本,css3新特征有很多,例如圆角效果.图形化边界.块阴影与文字阴影.使用RGBA实现透明效果.渐变效果.使用@Font- ...

  6. JavaScript之BOM基础

    BOM(Browser Object Model)也叫浏览器对象,它提供了很多对象,用于访问浏览器的功能.但是BOM是没有标准的,每一个浏览器厂家会根据自己的需求来扩展BOM对象.本文主要以一些简单的 ...

  7. Happycorp:1 Vulnhub Walkthrough

    靶机链接: https://www.vulnhub.com/entry/happycorp-1,296/ 网络主机扫描::: 主机端口扫描: NFS文件系统,尝试挂载试试 mount -t nfs 1 ...

  8. Linux学习Day3:新手必须掌握的Linux命令(二)

    今天学习的命令都是运维工作中经常要用到的,非常实用,必须要用心学习,争取把这些命令烂熟于心,具体内容如下: 一.系统状态监测命令 1.ifconfig命令 用于获取网卡配置与网络状态等信息. [roo ...

  9. Linux部署MongoDB

    下载安装包 打开网站 https://www.mongodb.com/download-center/community查找与Linux版本一致的MongoDB安装包.我这里选择安装包格式为tgz压缩 ...

  10. Java虚拟机——JVM

    一.JVM整体架构 1.JVM(Java虚拟机):指以软件的方式模拟具有完整硬件系统功能.运行在一个完全隔离环境中的完整计算机系统,是物理机的软件实现.常用的虚拟机有VMWare.Virtual Bo ...