【二】、UML基础知识

UML概述

UML是一个通用的可视化建模语言,不同于编程语言,它通过一些标准的图形符号和文字来对系统进行建模。用于对软件进行描述、可视化处理、构建软件系统的文档。是一套总结了以往建模技术的经验并吸收了当今最优秀成果的标准建模方法

UML的结构

视图

  • 用户视图:以用户的观点表示系统的目标,它是所有视图的核心,该视图描述系统的需求。
  • 结构视图:表示系统的静态行为,描述系统的静态元素,如包、类与对象,以及它们之间的关系。
  • 行为视图:表示系统的动态行为,描述系统的组成元素,如对象在系统运行时的交互关系。
  • 实现视图:表示系统中逻辑元素的分布,描述系统中的文件以及它们之间的关系。
  • 环境视图:表示系统中物理元素的分布,描述系统中的硬件设备以及它们之间的关系。

  • 用例图
  • 类图、对象图、包图、组合结构图
  • 状态图、活动图、顺序图、通信图、定时图、交互概览图
  • 组件图
  • 部署图

模型元素

  • 模型元素包括事物以及事物与事物之间的关系
  • 事物是UML的重要组成部分,它代表任何可以定义的东西
  • 事物之间的关系把事物联系在一起,组成有意义的结构模型
  • 每一个模型元素都有一个与之相对应的图形元素
  • 同一个模型元素可以在不同的UML图中使用
  • 但无论在哪个图中,同一个模型元素都保持相同的意义和符号

通用机制

  • UML提供的通用机制为模型元素提供额外的注释、语义和其他信息,包括扩展机制,允许用户对UML进行扩展。

类和类图

  • 类(Class)封装了数据和行为,是面向对象的重要组成部分。
  • 是具有相同属性、操作、关系的对象集合的总称
  • 在系统中每个类具有一定的职责,职责指的是类所担任的任务,即类要完成什么样的功能,要承担什么样的义务。一个类可以有多种职责,设计得好的类一般只有一种职责
  • 类的属性即类的数据职责,类的操作即类的行为职责
  • 类图使用出现在系统中的不同类来描述系统的静态结构,它用来描述不同的类以及它们之间的关系

类的UML图示

在UML类图中,类一般由三部分组成:

  • 第一部分是类名:每个类都必须有一个名字,类名是一个字符串

按照Java语言的命名规范,类名中每一个单词的首字母均大写

  • 第二部分是类的属性:属性是指类的性质,即类的成员变量。一个类可以有任意多个属性,也可以没有属性。

按照Java语言的命名规范,属性名中的第一个单词全小写,之后每个单词首字母大写(驼峰命名法)

  • 第三部分是类的操作:操作是类的任意一个实例对象都拥有的行为,是类的成员方法。

按照Java语言的命名规范,属性名中的第一个单词全小写,之后每个单词首字母大写(驼峰命名法)

类之间的关系

关联关系

  • 关联关系是类与类之间最常用的一种关系,它是一种结构化关系,用于表示一类对象与另一类对象之间有联系。
  • 在UML类图中,用实线连接有关联关系的对象所对应的类,在使用Java、C++和C#等编程语言实现关联关系时,通常将一个类的对象作为另一个类的成员变量
  • 在使用类图表示关联关系时可以在关联线上标注角色名

  • 双向关联

  • 单向关联

  • 自关联

  • 多重性关联:多重性关联关系又称为重数性关联关系,表示两个关联对象在数量上的对应关系。在UML中,对象之间的多重性可以直接在关联直线上用一个数字或一个数字范围表示

  • 聚合关联
  • 聚合关系表示整体与部分的关系
  • 在聚合关系中,成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在
  • 在UML中,聚合关系用带空心菱形的直线表示

  • 组合关联
  • 组合关系也表示类之间整体和部分的关系,但是在组合关系中整体对象可以控制成员对象的生命周期,一旦整体对象不存在,成员对象也将不存在。
  • 成员对象与整体对象之间具有同生共死的关系。
  • 在UML中,组合关系用带实心菱形的直线表示

依赖关系

  • 依赖关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系。
  • 大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数
  • 在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。

在系统实现阶段,依赖关系通常通过三种方式来实现

  • 将一个类的对象作为另一个类中方法的参数
  • 在一个类的方法中将另一个类的对象作为其局部变量
  • 在一个类的方法中调用另一个类的静态方法

泛化关系

  • 泛化关系也就是继承关系,用于描述父类与子类之间的关系,父类又称为基类或超类,子类又称为派生类。
  • 在UML中,泛化关系用带空心三角形的直线来表示
  • 在代码实现时,使用面向对象的继承机制来实现泛化关系,在**Java语言中使用extends关键字,在C++/C#中使用冒号":"**来实现。

接口与实现关系

  • 接口之间也可以有与类之间关系类似的继承关系依赖关系
  • 接口与类之间存在一种实现关系,在这种关系中,类实现了接口,类中的操作实现了接口中声明的操作
  • 在UML中,类与接口之间的实现关系用带空心三角形的虚线来表示

注释

实例——命令模式

【二】、UML基础知识——图图解乾坤的更多相关文章

  1. UML uml基础知识

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

  2. ERP-非财务人员的财务培训教(一.二)------财务基础知识

    二.基本财务管理知识 第一节 财务管理基础知识(一) 财务与会计的关系 会计的基础知识 (一) 财务与会计的关系 财务与会计的内涵 1.会计 会计工作主要是解决三个环节的问题: 会计凭证 会计账簿 会 ...

  3. C#基础知识之图解TCP IP》读书笔记

    一.网络基础知识 1. 计算机使用模式的演变 2.协议 协议就是计算机与计算机之间通过网络实现通信事先达成的一种“约定”.这种“约定”使那些由不同厂商的设备.不同的CPU以及不同的操作系统组成的计算机 ...

  4. [Windows驱动开发](二)基础知识——数据结构

    本节主要介绍驱动开发的一些基础知识. 1. 驱动程序的基本组成 1.1. 最经常见到的数据结构 a. DRIVER_OBJECT驱动对象 // WDK中对驱动对象的定义 // 每个驱动程序都会有一个唯 ...

  5. VBS学习日记(二) 基础知识

    VBScript 基础知识 一.变量 1.全部单引號后面的内容都被解释为凝视.(在vbsedit中ctrl+m凝视,反凝视ctrl+shift+m) 2.在 VBScript 中,变量的命名规则遵循标 ...

  6. Java 8实战之读书笔记二:基础知识

    好记性不如烂笔头,整理一些个人觉得比较重要的东西. 一.基础知识 第1章 为什么要关心Java 8 Java 8提供了一个新的API(称为"流", Stream),它支持许多处理数 ...

  7. [Java面试二]Java基础知识精华部分.

    一:java概述(快速浏览): 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒.PDA等的微处理器: 1994年将Oak语言更名 ...

  8. 【UML】UML基础知识

    UML简介     统一建模语言(UML)是一个通用的可视化建模语言,用于对软件进行描述.可视化处理.构造和建立软件系统制品的文档.     它记录了对必须构造的系统的决定和理解,可用于对系统的理解. ...

  9. Solr学习之二-Solr基础知识

    一 基本说明 简单来说Solr是基于Lucene的高性能的,开源的Java企业搜索服务器.Solr可以看作一个Web app,运行在tomcat或Jetty这类HTTP服务器上, 底层是一个基于Luc ...

随机推荐

  1. spring boot的日常配置

    配置篇 #数据库连接配置msql spring.datasource.url:jdbc:mysql://127.0.0.1:3306/test spring.datasource.username: ...

  2. Windows Terminal入门

    目录 0.引言 1.简易安装 2.初识WT 3.初识Settings 3.1全局配置 3.2每一个终端配置 3.3配色方案 3.4键位绑定 4.连接云服务器 5.连接WSL 6.玩转Emoji 0.引 ...

  3. List自定义排序 (例子省份排序)

    //待排序集合 List<String> list=new ArrayList<String>(); list.add("辽宁"); list.add(&q ...

  4. laravel脚手架搭建项目问题之生产环境element-ui组件字体图标显示错误问题

    问题描述: 1.element-ui组件使用的是npm安装 2.npm scripe模式开发 3.使用git命令行工具开发 3.开发环境下图标正常显示 4.生产环境下图标显示不正常 分析原因: 图标文 ...

  5. 使用requests模块的网络编程

    python操作网络,也就是打开一个网站,或者请求一个http接口,本篇是介绍使用request模块的使用方式. 在使用requests模块之前需要先安装,在cmd中输入:pip install re ...

  6. iOS--->运行程序屏幕上下有黑边

    iOS--->运行程序屏幕上下有黑边 原因是LaunchImage没有设置好,图片等尺寸没有和对应的手机屏幕大小适配导致. 解决方法 就是要增加启动图片,把屏幕拉伸,匹配好每个机型的屏幕大小,这 ...

  7. 上线前一个小时,dubbo这个问题可把我折腾惨了

    前因 那是一个月黑风高的夜晚,不管有没有圆圆的月亮,都无法解救要加班的我.这就是苦涩的人生啊! 那天正好是春节回家的日子,定了晚上的票,然后还是上线的日子. 测试在做回归测试的时候,发现一个老功能报错 ...

  8. MySQL Router单点隐患通过Keepalived实现

    目录 一.介绍 二.环境准备 三.安装步骤 3.1下载软件包,解压 3.2源码安装 3.3配置keepalived 3.4修改keepalived配置文件 3.5启动keepalived 3.6查看V ...

  9. python sqlalchemy mysql 自动映射

    SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作 简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果 ...

  10. Kotlin Android项目静态检查工具的使用

    Kotlin Android项目静态检查工具的使用 Kotlin Android项目可用的静态检查工具: Android官方的Lint, 第三方的ktlint和detekt. 静态检查工具 静态检查工 ...