UML1——用图说话

news2025/3/10 15:09:42

目录

一、前言

二、使用工具

三、UML面对对象

四、UML图标

4.1 事物

 4.2 关系

4.3 关系线数字

4.4 关系图示例

五、UML开发思路


一、前言

不管是系统项目工程师,还是开发人员,熟悉使用UML都必不可少。UML 是一种为面向对象开发系统的产品进行说明、可视化、和编制文档的标准语言;它是一种模型语言也是面对对象的分析和设计的继任者,能集成UML的IDE工具可以生成各式各样的编程语言,如C++,Java等。在设计产品系统架构,与客户进行需求确认,UML使得需求清晰明了。

二、使用工具

Drawio, 可以绘制各种流程图,UML图包括活动图、时序图、状态图、SysMl系统模型图、Uml图统一模型图。

PowerDesigner

Eclipse UMLet

VS Enterprise

三、UML面对对象

类图是使用面向对象的社会最流行的 UML 图。它描述了在一个系统中的对象和他们的关系,能够让我们在正确编写代码以前对系统有一个全面的认识。

对象:数据、控制数据的方法。数据包括对象的状态、属性,可能包含其他类对象。它代表一个实体的基本构建块

类:对具有相同特点或者方法的归纳为一个类别

抽象:不同类进一步提炼出相同的方法

封装:将数据绑定在一起,隐藏外部世界的机制

继承:对已有类进行扩展,派生新的类

多态:同样的方法以不同的方式存在,比如参数个数,参数类型

面向对象的分析的最重要的目的是要设计一个系统来识别对象,因此设计要确定一个系统中的对象,确定它们之间的关系,做一个设计,使用面向对象的语言可以转换为可执行文件。

  • 三个基本模块:事务,关系,图
  • 四种事务   
    1. 结构事务:类,接口,协作,用例,活动类,组件,节点
    2. 行为事务:交互,状态机
    3. 分组事务:包
    4. 注释事务:注释
  • 四种关系
    1. 依赖
    2. 关联
    3. 实现
    4. 泛化
  • 十种图
    1. 用例图:从用户角度描述系统功能,指出各功能的操作者,来捕捉系统的动态性质
    2. 类图:表示系统的静态视图,是唯一可以直接映射到面向对象的语言UML图
    3. 对象图:看作是类图在某一时刻的实例
    4. 包图
    5. 部署图:从系统工程师的角度设计节点间的关系,是应用软件开发的一个组成部分
    6. 活动图:是一种特殊的状态图,它对于系统的功能建模特别重要,强调对象间的控制流程。描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动
    7. 状态图:着重描述从一个状态到另一个状态的流程,主要有外部事件的参与
    8. 序列图:显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互
    9. 协作图:描述对象间的协作关系,显示对象间的动态合作关系
    10. 组件图:包括物理组件,如库,档案,文件夹等,从实施的角度使用元件图表示整个系统

四、UML图标

 UML主要有事物,关系和图;书屋是实体抽象化的最终结果,是UML构建块最重要的组成部分,包括结构事物、行为事物、分组事物、注释事物。

4.1 事物

类指具有相同属性、方法、关系和语义的对象集合。

 接口指类或组件所提供的服务,描述了类或组件对外的可见动作

 协作定义了元素之间的相互作用

 用例定义了执行者(系统外部和系统交互的人)和被考虑的系统之间的交互来实现一个业务目标

 组件描述了物理系统一部分

 节点可以被定义为在运行时存在的物理元素

 交互被定义为一种行为,包括一组元素之间的消息交换来完成特定的任务。

 状态机由一系列对象的状态组成,表示一个对象在其生命周期的状态

 分组事物可以看作一个盒子,模型可以在其中被分解。只有一种分组事物“包”,存在于开发阶段,而组件在运行时存在。

 注释用于捕捉UML模型元素的言论,说明和注释

 4.2 关系

UML类图各符号含义 :类图基本符号可拆分为虚线,箭头,实线,空心右三角,实心右三角,空心菱形和实心菱形,符号顺序代表了类与类之间关系的耦合度越向右耦合度越高

理解记忆: 一般箭头指向被关系的一方。

虚线:是一种约束

实线:是一种关联,连接

箭头:一般

空心箭头:具体

实心箭头:更具体

各种关系的强弱顺序:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖 

依赖关系:两个事物之间语义联系,相互影响;类之间的联结;元素A的变化会影响元素B,但反之不成立,那么B和A的关系是依赖关系,B依赖A;如人和车的关系;举个例子,如某人要过河,则人与船的关系就是依赖,人过河之后,与船的关系就解除了,因此是一种弱的连接。在代码层面,为类B作为参数被类A在某个方法中使用。人箭头指向船

关联关系:元素间的结构化关系,是一种弱关系,是类与类之间的联结,它使一个类知道另一个类的属性和方法,可以单向也可以双向;如唐僧和徒弟是师徒关系; 实线,箭头

 泛化关系:可以被定义为一个专门的元件与一个广义的元素,描述了对象世界的继承关系。实线,空心箭头

 实现关系:类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约。元素A定义一个约定,元素B实现这个约定,则B和A的关系是Realize,B realize A。这个关系最常用于接口(操作,执行函数)。uml中用空心箭头和虚线表示,箭头指向定义约定的元素。

 聚合关系:描述一组对象之间连接的结构关系,整体和部分间结构关系。聚合暗示着整体在概念上处于比局部更高的一个级别,而关联暗示两个类在概念上位于相同的级别。聚合关系是关联关系的一种,是强的关联关系。

组合关系:组合是聚合关系的变种,表示元素间更强的组合关系。如果是组合关系,如果整体被破坏则个体一定会被破坏,而聚合的个体则可能是被多个整体所共享的,不一定会随着某个整体的破坏而被破坏。组合也叫合成,是非共享的,虽然局部不一定要随整体的销毁而被销毁,但整体要么负责保持局部的存活状态,要么负责将其销毁,用一句话说是同生共死。如Employee和TimeCard,公司和部门。

4.3 关系线数字

 关系线上的数字含义:表示被连接方跟自己(数字)的关系。

多重性有哪些表示?

  • 1:        表示1个

  • 0..*:    表示任意多个( ≥0)(*可以换成n)

  • *:       表示任意多个( ≥0)

  • 1..*:    表示1个或多个(≥1)

  • 0..1:    表示0个或1个

  • 5..11:   表示5-11个

  • 1,3,8: 表示个1或3个或8个

  • 0,3..8: 表示0个或3-8个

4.4 关系图示例

五、UML开发思路

设计:系统设计包括类,接口和协作。 UML类图,对象图支持。

实现:实现定义的组件组装在一起,使一个完整的物理系统。 UML组件图是用来支持实施的角度。

处理:流程定义了系统的流动,可以使用活动图。因此,在设计中所用的相同的元件也可用来支持当前角度看。

部署:部署代表物理节点的硬件系统构成。 UML部署图是用来支持这个角度来看

参考:

UML概述_w3cschool

认识SysML图 | Enterprise Architect 用户指南 (uml.com.cn)

UML图及其含义_半路出家de程序猿的博客-CSDN博客_uml图标含义

UML学习笔记(4)——类图之间的关系 - 爱码网 (likecs.com)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2月刚上岸字节跳动测试岗面经

这时候发应该还不算太晚,金三银四找工作的小伙伴需要的可以看看。 一、测试工程师的工作是什么? 测试工程师简单点说就是找bug,然后反馈给开发人员,不要小看这个工作。 首先很明显的bug开发人员有时候自己就能找到,测…

一文2000字从0到1学习接口自动化测试必备知识(建议收藏)

在所有的测试中,接口测试是必不可少的一项。有效且覆盖完整的接口测试,不仅能保障新功能的开发质量,还能让开发在修改功能逻辑的时候有回归的能力,同时也是能优雅地进行重构的前提。编写接口测试要遵守哪些原则?测试代…

Python读取文字并点击对应的图片

本来想写了一大堆今天遇到的需求,想想还是删了,我直接说出本文的功能,读取A列的Excel(全是名字),然后点击名字所对应的图片: 名字所对应的图片 直接看视频,是不是你想要的结果! 我循环了三次&a…

【JAR包打包为EXE】javafx/java项目(适用jdk1.8)通过Gradle插件打包为exe,包含jre,客户机无需安装JDK(含代码)

前言: 通常在采用javafx或tornadofx等框架编写的桌面软件后,若要分发给客户机进行使用,就需要先在目标客户机安装合适版本的JDK,对于客户机来说并不需要关注这一步骤,这也增加了多台客户机分发及使用的成本&#xff0…

宾语从句it做形式主语的句子

It代替从句作形式主语的常见句型 一、it 代替连词 that 引导的从句作形式主语。 1、it be 过去分词 that 从句: It’s said that Tom has come back from abroad . It was reported that dozens of children died in the accident . 可用于该句型的过去分词还有&#xf…

Qt学习2-Qt Creator新建项目小tips(哔站视频学习记录)

放送两个小tips: 1、MinGW和MSVC的区别 QT学习笔记(二):QT MinGW 和 MSVC 编译方式_Leon_Chan0的博客-CSDN博客 2、如何安装QT对应版本的MSVC (1)问题描述:Qt5.12.8支持MSVC2015和MSVC2017,但是系统安装的是Visual…

大数据技术——函数式编程基础

函数定义与使用定义函数最通用的方法是作为某个类或者对象的成员,这种函数被称为方法。其定义的基本语法为:def 方法名(参数列表):结果类型方法体}字面量包括整数字面量、浮点数字面量、布尔型字面量、字符字面量、字符串字面量、符号字面量、函数字面量…

hdfs的读写数据流程

读: (1)客户端通过DistributedFileSystem向NameNode请求下载文件,NameNode通过查询元数据,找到文件块所在的DataNode地址。 (2)挑选一台DataNode(就近原则,然后随机&…

学习机器学习应该看哪些书籍?

机器学习是一种人工智能技术,它通过利用计算机算法和数学模型,使计算机系统能够自动从数据中学习,从而不断改进其性能。它是一种数据驱动的方法,可以让计算机从经验中学习,而无需明确地编程。具体来说,机器…

python学习——【第一弹】

前言 Python是一种跨平台的计算机程序设计语言,是ABC语言的替代品,属于面向对象的动态类型语言,最初被设计用于编写自动化脚本,随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。 从这篇…

怎样成为一名黑客:六个方法让你无所不能

黑客这个名字一直是伴随着互联网发展而来,给大家的第一印象就是很酷,而且技术精湛,在网络世界里无所不能。目前几乎所有的公司企业甚至国家相关部门都会争相高薪聘请技术精湛的黑客作为互联网机构的安全卫士,所以黑客也是很多人比…

【老王读Spring Transaction-7】一个数据源的事物管理配置 与 多数据源的事物管理配置

前言 大多数 Spring 应用程序只有一个数据源,只需要一个事务管理器(TransactionManager)。 但是在多个数据源的情况下,我们就需要在一个应用程序中配置多个独立的事务管理器。 我们可以通过 Transactional 的 value 或 transactionManager 属性来指定让…

shell数值计算

P23 回顾shell基础知识 shell执行多条命令 一行内,分号分割多条命令。比如cd /tmp ;echo hello ;cd - 其中cd -为回到此行命令开始前的目录多行echo和转义字符 双引号里输出$n等特殊字符时,实用\转义,来原样输出字符单引号中字符不进行替换&…

ES6的简单使用

1.ES6基本介绍1996 年 11 月,JavaScript 的创造者 Netscape 公司,决定将 JavaScript 提交给标准化组织 ECMA,希望这种语言能够成为国际标准。次年,ECMA 发布 262 号标准文件(ECMA-262)的第一版,…

Vue表单数据修改与删除

学习来源:视频p6 书接上文 目录页面修改修改对话框视频教程的做法后端提供接口前端调用接口修改完成后提交删除功能后端开设接口前端调用最终成果展示页面修改 将之前的 BookManage 页面的按钮改为想要的功能 可以注意到修改按钮的标签以及绑定了事件 handleClick…

RK3568核心板以太网大数据测试报告-万象奥科

1. 测试对象HD-RK3568-IOT 底板基于HD-RK3568-CORE工业级核心板设计(双网口、双CAN、5路串口),接口丰富,适用于工业现场应用需求,亦方便用户评估核心板及CPU的性能。适用于工业自动化控制、人机界面、中小型医疗分析器…

docker环境下docker-compose一键式搭建fastdfs文件存储服务系统

前言 本节内容我们使用docker-compose一键式搭建一套fastdfs服务,实现docker环境下的文件存储服务,在开始本节内容之前,我们需要提前安装好docker和docker-compose环境。fastdfs是一套分布式的文件存储服务系统,主要有tracker和s…

pipenv的基本使用

一. pipenv 基础 pipenv安装: pip install pipenvpipenv常用命令 pipenv --python 3 # 创建python3虚拟环境 pipenv --venv # 查看创建的虚拟环境 pipenv install 包名 # 安装包 pipenv shell # 切换到虚拟环境中 pip list # 查看当前已经安装的包&#xff0…

地方征信平台第2讲:河北省征信

河北省征信有限公司,注册成立于2022年12月25日,注册资本6330万元人民币。股东及持股比例如下:河北省惠信大数据科技服务有限公司、35.1975%。唐山国控集团有限公司、14.22%。石家庄城控投资集团有限责任公司、 10.8215%。石家庄市国有资本经营…

【017】筛选数据并整理(筛选、返回行号、清除全部数据)_#VBA

自动化办公1. 筛选1.1 在某一基础上筛选1.2 多条件筛选2. 返回行号3. 删除某列重复数据4. 删除当页全部数据5. 求和6. 复制黏贴6.1 第一种6.2 第二种6.2 第三种7. 全部数据1. 筛选 主要使用的命名方式如下 ActiveSheet.Range("$A$1:$L$41500").AutoFilter Field:1,…