1、UML关系

泛化(也就是我们传统意义上的继承关系)

子类继承父类,关系用extend关键字标识;

关联

可以说是一种属于关系,图中即说的是PhoneNumber类属于Master类,同时,除了一对一的关系之外,还可以用一对多、多对一、多对多的关联关系,除了单向关联之外,双向关联也是存在的;

需要注意的是,在关联关系里面,还有着两种特殊的关系:聚合和组合
聚合--体现出来的是整体与部分的关系,是一种“弱拥有”关系,部分能够脱离整体而单独存在

如上图所示,轮胎能够脱离汽车而单独存在;

组合--体现出来的是一种包含的关系,关系比聚合更强,是一种“强聚合”的关系,部分不能离开整体而单独存在

部门不能脱离掉公司而单独存在;

依赖

指一个类依赖于另一个类而存在;

上图就是指的是Person类依赖于Air类,即Person类的存在使用了Air类;

实现

一个class类实现一个interface接口;

implements关键字标识;

2、UML的9种图

1、用例图--标识一个系统中用例与参与者关系之间的图,描述系统中相关用户和系统对不同用户提供的功能和服务

用例图构成--参与者、系统边界、用例、关联

用例图主要是从用户角度,描述系统的功能;

关系

参与者和用例之间,主要就是关联关系;

参与者和参与者之间,主要是泛化关系,即某个参与者继承到某个参与者的功能;

用例和用例之间,主要有包含、泛化、扩展关系;

2、类图--若干类关联在一起,反映系统或者子系统组成结构的静态图

类图主要作用是用来描述软件系统中各个类的结构和类之间的关系

类图构成--类名、属性、操作
类的种类

实体类:

控制类:

边界类:

类图间关系--泛化、依赖、关联、实现、组合、聚合(同上面提到的各种关系)

仅仅举例泛化:

3、对象图--描述参与交互的各个对象在交互过程中某一时刻的状态

对象图表示--由对象和链组成

4、状态图--描述类的所有对象的可能的状态,以及事件发生时状态的转移条件

状态图组成元素--初始状态、终止状态、状态;

其中,圆角矩形表示状态;

状态转换

状态判定

5、活动图--描述活动的顺序,展现一个活动到另一个活动的控制流

活动图组成元素--动作、活动、动作流、分支与合并、分叉与汇合、泳道、对象流

需要注意的是,活动图是状态图的一种特殊情况;

6、时序图--描述以时间顺序组织的对象之间的交互活动

顺序图组成元素--对象、生命线、激活、消息

对象--参与交互的基本单位:

生命线--表示对象在一段时间内存在:

激活--表示一个对象执行一个动作所经历的时间段,对象接收到消息活动就开始:

消息--一条消息是一次对象间的通信:

顺序图消息类型--同步消息、异步消息、返回消息

同步消息--有阻塞等待的风险(实心箭头):

异步消息--不需要等待(直接的箭头--一半儿):

返回消息--消息指向返回的方向(虚线表示):

7、协作图--强调收发消息的对象的组织结构

协作图构成--对象、消息、链

协作图作用--表现一个类操作的实现,显示对象及其交互关系的空间组织结构

8、构件图--表示系统中构件与构件之间,以及定义的类或接口与构件之间的关系的图

构件图构成--构件、接口、依赖关系

9、部署图--用来显示系统中软件和硬件的物理架构--用来建模系统的物理部署

10、包图--描述模型中的包和所包含元素的组织方式的图。包含元素以及包之间的关系

包图作用--用来组织用例图和类图
包图所用关系--主要使用的是依赖关系和泛化关系

UML各类基础知识总结的更多相关文章

  1. UML图基础知识

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

  2. UML 建模 -- 基础知识

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

  3. UML uml基础知识

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

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

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

  5. 语义web基础知识学习

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

  6. 【数据库上】 第四讲 E-R模型基础知识

    第四讲 E-R模型基础知识 一.数据库设计过程 数据库设计的关键阶段? 各个阶段设计的主要任务? 基础条件:清楚一个应用系统的功能需求与数据需求(直接与用户交互.数据流程图示例/UML类图等) 核心阶 ...

  7. Unity3D基础知识梳理

    这段时间在做Unity的项目,这差不多是我的第一次实战啊~然后公司来了实习的童鞋要学Unity,但是我一向不靠谱啊,所以只能帮他们稍微梳理下基础的东西了啊,唉~学长只能帮你们到这里了~顺便就把自己这两 ...

  8. Bash的基础知识man手册

    Bash的基础知识man手册 由于基于Android类设备的渗透测试都是通过各类终端实现.所以掌握Shell相关操作就显得尤为重要.Bash是一个为GNU计划编写的Unix Shell本文选自基于An ...

  9. web前端基础知识及快速入门指南

    web前端基础知识及快速入门指南 做前端开发有几个月了,虽然说是几个月,但是中间断断续续的上课.考试以及其它杂七杂八的事情,到现在居然一直感觉自己虽然很多前端的知识很眼熟,却也感觉自己貌似也知识在门口 ...

  10. 1.进入debug模式(基础知识列表)

    1.进入debug模式(基础知识列表)1.设置断点 2.启动servers端的debug模式 3.运行程序,在后台遇到断点时,进入debug调试状态 ========================= ...

随机推荐

  1. WPF开发快速入门【5】DataGrid的使用

    概述 DataGrid是最常用的一种列表数据展现控件,本文介绍DataGrid的一些常用操作,包括:展示.新增.删除.修改等.以下代码基于Stylet框架实现. 数据展示 DataGrid用于对象列表 ...

  2. 莫烦tensorflow学习记录 (5)什么是过拟合 (Overfitting)

    什么是过拟合 (Overfitting) 莫烦讲的非常通俗易懂可以看看https://mofanpy.com/tutorials/machine-learning/tensorflow/intro-o ...

  3. [机器学习] 低代码机器学习工具PyCaret库使用指北

    PyCaret是一个开源.低代码Python机器学习库,能够自动化机器学习工作流程.它是一个端到端的机器学习和模型管理工具,极大地加快了实验周期,提高了工作效率.PyCaret本质上是围绕几个机器学习 ...

  4. mobile select 移动端下拉框

    官方链接 原生 js 移动端选择控件,不依赖任何库 可传入普通数组或者 json 数组 可根据传入的参数长度,自动渲染出对应的列数,支持单项到多项选择 自动识别是否级联 选择成功后,提供自定义回调函数 ...

  5. Java BigInteger类和BigDecimal()类

    BigInteger类 BigInteger 支持任意精度的整数,可以准确的表达任何大小的整数而不丢失精准度 BigInteger 位于 java.math包中 BigInteger()括号里必须是字 ...

  6. Java中Calendar类与SimpleDateFormat类的介绍

    目录 Calendar类(关于日期的一些方法) get(Calendar.XXX); get(Calendar.Year) get(Calendar.MONTH) get(Calendar.DAY_O ...

  7. echarts做饼图

    今天记录下echarts做饼图 父组件 <el-card style="height:600px ;margin-top:20px" v-loading="card ...

  8. LeetCode 451. Sort Characters By Frequency 根据字符出现频率排序 (C++/Java)

    题目: Given a string, sort it in decreasing order based on the frequency of characters. Example 1: Inp ...

  9. mysql 常用脚本语法

    mysql 常用脚本语法 创建表: CREATE TABLE test_db1.test_table1 ( id INT auto_increment NOT NULL, my_name varcha ...

  10. mongodb QuickStart Demo

    import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.cl ...