UML总结

零:学习链接

UML_哔哩哔哩_bilibili

一:UML概述

二:类图

类图(Class Diagram)是统一建模语言(UML)中一种重要的图形表示,用于描述系统中的类及其之间的关系。它是面向对象设计中常用的工具,可以帮助开发者理解系统结构和组件之间的互动。

UML类的表示

  1. 类名

    • 位于矩形的顶部,通常使用加粗字体。类名首字母大写,其他字母通常小写。
  2. 属性

    • 位于矩形的中间部分,列出类的属性。属性前可以添加访问修饰符:
      • 可见性修饰符概述:用“#”表示,意味着可以在该类及其子类中访
      • 公开(public):用“+”表示,意味着可以被任何类访问。
      • 私有(private):用“-”表示,意味着只能在该类内部访问。
      • 保护(protected):用“#”表示,意味着可以在该类及其子类中访问。
      • 包级(package):用“~”表示,意味着只能在同一包内访问。
    • 每个属性可以包含类型信息,格式为 属性名: 类型
  3. 方法

    • 位于矩形的底部,列出类的方法。方法的表示与属性相似,格式为 方法名(参数列表): 返回类型

继承关系

在UML(统一建模语言)中,类继承关系通常通过特定的符号表示。以下是一些关键概念和符号:

  1. 继承(泛化)

    • 表示父类与子类之间的关系。
    • 用一个带空心三角形的实线连接父类和子类,三角形指向父类。
  2. 实现

    • 表示一个类实现了一个接口。
    • 用带空心三角形的虚线表示,三角形指向接口。

  1. 多重继承

    • 如果一个子类继承自多个父类,使用多个实线箭头连接各个父类。
  2. 抽象类

    • 抽象类通常用斜体字体表示,表示不能直接实例化的类。
  3. 接口

    • 接口通常用“<<interface>>”标签标注,以便区分与普通类。

实现关系

依赖关系

关联关系

聚合关系

组合关系

三:用例图

用例图是UML(统一建模语言)中一种用于表示系统功能的图示工具,主要用于展示系统的用户(或称为“参与者”)与系统之间的交互关系。用例图能够帮助分析和定义系统的需求,尤其是在系统的早期设计阶段。

用例图的主要组成部分

  1. 参与者(Actors)

    • 代表与系统交互的用户或其他系统。
    • 可以是具体的人、组织或外部系统。
    • 在图中通常用一个小人形象或方框表示。
  2. 用例(Use Cases)

    • 表示系统提供的功能或服务。
    • 通常用椭圆形表示,并标注功能名称。
  3. 关系

    • 关联(Association):参与者与用例之间的连接线,表示交互关系。
    • 扩展(Extend):用来表示某个用例在特定条件下可以扩展其他用例,通常用带箭头的虚线表示。
    • 包含(Include):表示一个用例包含另一个用例的功能,通常用带箭头的虚线表示。

用例图的用途

  • 需求分析:帮助开发团队理解系统功能和用户需求。
  • 沟通工具:作为开发人员、客户和其他利益相关者之间的沟通桥梁。
  • 文档化:为系统的功能提供清晰的文档,便于后续的设计和开发。

用例图元素

四:状态图

状态图(State Diagram)是UML(统一建模语言)中的一种行为图,用于描述对象在其生命周期中的各种状态及状态之间的转换。它主要用于建模具有明显状态变化的对象,如在某个特定条件下可能会改变的对象的行为。

状态图的主要组成部分

  1. 状态(State)

    • 代表对象在某一时刻的状况。
    • 状态用圆角矩形表示,状态名称通常在其中。
  2. 初始状态(Initial State)

    • 表示对象生命周期的开始状态。
    • 用一个实心圆表示。
  3. 终止状态(Final State)

    • 表示对象生命周期的结束状态。
    • 用一个带圈的实心圆表示。
  4. 转换(Transition)

    • 表示状态之间的变化,通常由箭头表示。
    • 可以附带事件、条件或动作描述,如“事件/动作”格式。
  5. 事件(Event)

    • 导致状态转换的外部或内部条件。
  6. 条件(Guard)

    • 在转换发生前需要满足的条件,通常写在方括号中。

五:活动图

活动图(Activity Diagram)是UML(统一建模语言)中用于描述系统中活动流和控制流的图示工具。它特别适合于展示业务流程、工作流或系统中的动态行为。

活动图的主要组成部分

  1. 活动(Activity)

    • 表示系统中的一个动作或任务,通常用圆角矩形表示,活动名称写在其中。
  2. 初始节点(Initial Node)

    • 表示活动的起始点,用一个实心圆表示。
  3. 终止节点(Final Node)

    • 表示活动的结束点,用一个带圈的实心圆表示。
  4. 控制流(Control Flow)

    • 表示活动之间的顺序关系,通常用箭头表示,指示活动的执行顺序。
  5. 决策节点(Decision Node)

    • 表示基于条件的分支,通常用菱形表示,箭头指向不同的活动,附带条件表达式。
  6. 合并节点(Merge Node)

    • 将多个控制流合并为一个,通常用菱形表示。
  7. 并行活动(Fork和Join)

    • Fork:表示活动的并行分支,通常用一条水平或垂直的线表示。
    • Join:表示并行活动的合并,通常用一条水平或垂直的线表示。

六: 时序图

时序图(Sequence Diagram)是UML(统一建模语言)中一种用于描述对象之间交互的图示,特别关注时间顺序。它展示了对象之间如何通过消息传递进行交互,通常用于描述系统的动态行为。

时序图的主要组成部分

  1. 参与者(Actor)

    • 表示与系统交互的外部实体(如用户、系统等),通常在图的最左侧用小人图标表示。
  2. 对象(Object)

    • 参与交互的类或实例,通常在图中用矩形表示。
  3. 生命线(Lifeline)

    • 表示对象在交互过程中的存在,通常是从对象底部向下延伸的一条虚线。
  4. 消息(Message)

    • 表示对象之间的交互,通过箭头表示。消息可以是同步消息、异步消息、返回消息等,箭头的样式和方向指示消息的类型。
  5. 激活(Activation)

    • 表示对象在某个时间段内处于活跃状态,通常用矩形在生命线上表示。
  6. 自消息(Self-Message)

    • 对象向自身发送的消息,用箭头指向自身。

 

 

 

七:组件图

组件图的主要组成部分

  1. 组件(Component)

    • 表示系统中的一个模块或部分,通常用矩形表示,顶部有一个小矩形,表示这是一个组件。
  2. 接口(Interface)

    • 表示组件提供的服务或功能,通常用圆形或半圆形表示。接口可以通过一个带有小黑点的线连接到组件。
  3. 连接器(Connector)

    • 用于表示组件之间的通信关系,通常用带有箭头的直线表示。
  4. 依赖关系(Dependency)

    • 表示一个组件依赖于另一个组件,通常用带箭头的虚线表示,箭头指向被依赖的组件。
  5. 包(Package)

    • 用于组织和分组组件,可以用一个带有标签的矩形表示,里面包含多个组件。

八:部署图

部署图(Deployment Diagram)是UML(统一建模语言)中用于描述系统的物理部署结构的图示。它展示了系统的硬件组件(节点)以及这些组件之间的关系,主要用于表现系统的运行环境。

部署图的主要组成部分

  1. 节点(Node)

    • 表示物理设备或计算资源,如服务器、工作站、路由器等,通常用立方体或三维盒子表示。
  2. 组件(Component)

    • 系统中的软件部分,可以是应用程序、库、服务等,通常表示为矩形,并放置在节点内部。
  3. 关系(Relationship)

    • 用于表示节点之间或组件与节点之间的连接关系,通常用线表示。
  4. 接口(Interface)

    • 表示节点或组件提供的服务,通常用一个小圆形表示,并连接到相应的节点或组件。
  5. 设备(Artifact)

    • 物理文件或数据,通常表示为文档图标或类似的符号,可以与节点或组件关联。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/904123.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

大数据-198 数据挖掘 机器学习理论 - scikit-learn 归一化 距离的惩罚

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

Ubuntu UFW防火墙规则与命令示例大全

在服务器安全领域&#xff0c;防火墙是守护网络安全的坚实盾牌。UFW&#xff08;Uncomplicated Firewall&#xff09;&#xff0c;即“不复杂的防火墙”&#xff0c;是一个运行在iptables之上的防火墙配置工具&#xff0c;它为Ubuntu系统默认提供了一个简洁的命令行界面&#x…

(蓝桥杯C/C++)——常用库函数

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 一、 二分查找 1.二分查找的前提 2.binary_ search函数 3.lower_bound和upper_bound 二、排序 1.sort概念 2.sort的用法 3.自定义比较函数 三、全排列 1.next p…

iOS Swift5算法恢复——HMAC

demangle的时候看到了CryptoSwift&#xff0c;HMAC&#xff0c;于是写一个helloworld&#xff0c;用于对照。 sudo gem install cocoapods pod init pods文件&#xff0c;注意要标注静态链接&#xff1a; # Uncomment the next line to define a global platform for your p…

为什么架构设计禁止IP直连?

什么是IP直连&#xff1f; IP直连指应用程序直接在代码中硬编码IP地址&#xff0c;比如&#xff0c;连接mysql数据库的数据库链接&#xff0c;如下的定义方式&#xff0c;就属于IP直连。 这种写法在开发环境中很常见&#xff0c;但是&#xff0c;在正式生产环境中&#xff0c;…

Java Deeplearning4j:实现文本分类

🧑 博主简介:历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c=1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,高并发设计,Springboot和微服务,熟悉Linux,ESXI虚拟化以及云原生Docker和K8s,热衷于探索科…

Java程序设计:spring boot(10)——单元测试

1 pom.xml 测试依赖添加 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId> </dependency> 2 Service业务方法测试 以 UserService 为例&#xff0c;src/test/java ⽬录下添…

xshell上使用lrzsz工具通过串口传输文件

注意事项 最好加"-E" 选项&#xff0c;这样不会覆盖现有的同名文件。

人工智能与数据安全:Facebook如何应对隐私挑战

在数字时代&#xff0c;数据隐私和安全成为了用户和企业关注的核心问题。作为全球最大的社交媒体平台之一&#xff0c;Facebook面临着日益严峻的隐私挑战。近年来&#xff0c;频繁发生的数据泄露事件和对用户隐私的质疑&#xff0c;使得Facebook在保护用户数据方面倍感压力。为…

MPSK(BPSK/QPSK/8PSK)调制解调的Matlab仿真全套

一、概述 MPSK(BPSK、QPSK、8PSK)等是常用的相位调制方式,本文对数据获取、比特流组织、基带调制、上变频发送、添加噪声、接收下变频、基带解调、数据还原等过程进行仿真。 模块化、通用化设计,将函数分为(1)数据读取转比特流;(2)基带调制【参数控制调制类型】;(…

Python实现全国岗位招聘信息可视化分析(源码+论文+部署讲解)

项目源码&数据源获取 利用Python实现全国岗位招聘信息可视化分析 项目背景&#xff1a; 1.为企业招聘决策提供科学的依据和参考&#xff0c;可以帮助人力资源部门、招聘机构和求职者了解当前的就业形势、行业趋势和人才需求&#xff0c;从而做出更明智的招聘和求职决策。…

【c语言】运算符汇总(万字解析)

&#x1f31f;&#x1f31f;作者主页&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所属专栏&#xff1a;C语言 目录 前言 一、c语言运算符的分类 二、各运算符的功能及使用 1. 算数运算符 - * / % 2. 位运算符 二进制和进制转换 二进制转十进制 十进制…

C# OpenCvSharp DNN UNet 推理

目录 效果 模型 项目 代码 下载 效果 模型 Inputs ------------------------- name&#xff1a;data tensor&#xff1a;Float[1, 3, 256, 256] --------------------------------------------------------------- Outputs ------------------------- name&#xff1a;p…

C语言中的位操作

第一章 变量某位赋值与连续赋值 寄存器 | 值 //例如&#xff1a;a 1000 0011b a | (1<<2) //a 1000 0111 b 单独赋值 a | (3<<2*2) // 1011 0011b 连续赋值 第二章 变量某位清零与连续清零 寄存器 & ~&#xff08;&#xff09; 值 //例子&#xff1a;a …

【宠物狗狗数据集】 犬类品种识别 宠物狗检测 深度学习 目标检测(含数据集)

一、背景意义 随着人们对宠物狗的喜爱日益增加&#xff0c;犬种的多样性也逐渐受到重视。狗狗不仅是家庭的好伴侣&#xff0c;更在多个领域中发挥着重要作用&#xff0c;如导盲、搜救、疗愈等。因此&#xff0c;准确识别和分类各种犬种显得尤为重要。传统的犬种识别方法往往依赖…

【ROS 基础教学系列】ROS话题(Topic)通信

ROS 基础教学系列-ROS话题(Topic)通信 文章目录 ROS 基础教学系列-ROS话题(Topic)通信前言一、话题通讯模型二、Topic Hello World2.1 创建并初始化功能包2.2 确定Topic名称及消息格式2.3 实现发布者与订阅者&#xff08;C版&#xff09;2.4 实现发布者与订阅者&#xff08;Pyt…

大东方码险引领彩票行业新纪元:全球保险巨头携手共创新篇章

在全球经济多元化发展的今天,彩票行业作为兼具娱乐与公益特性的特殊市场,正迎来前所未有的变革机遇。面对这一广阔且充满潜力的市场前景,大东方保险——这一国际保险业的领航者,凭借其深厚的行业影响力和技术优势,携手安盛集团、富卫保险、法通保险、永明保险、泰禾保险、亚洲保…

逆向 解密接口信息附Demo(二)

目录 前言1. 加密2. 解密 前言 原先写过另外一篇&#xff0c;推荐阅读&#xff1a;逆向 解密接口信息&#xff08;附Demo&#xff09; 下文以 https://login1.scrape.center/ 进行讲解&#xff0c; 1. 加密 登录过程中可以使用断点进行一步一步排查 或者在js文件中搜索enco…

Linux安装es和kibana

安装Elasticsearch 参考文档&#xff1a;https://www.elastic.co/guide/en/elasticsearch/reference/current/targz.html#targz-enable-indices 基本步骤下载包&#xff0c;解压&#xff0c;官网提示&#xff1a; wget https://artifacts.elastic.co/downloads/elasticsearc…

如何选择适合自己的 Python IDE

集成开发环境&#xff08;IDE&#xff09;是指提供广泛软件开发能力的软件应用程序。IDE 通常包括源代码编辑器、构建自动化工具和调试器。大多数现代 IDE 都配备了智能代码补全功能。在本文中&#xff0c;你将发现目前市场上最好的 Python IDE。 什么是 IDE&#xff1f; IDE…