UML简述(项目立项、设计、需求整理必备)

news2025/6/10 12:34:23

UML目录

  • 前言
  • 1、UML概述
    • 1.1、基本概念
    • 1.2、UML图类型说明
    • 1.3、UML的4+1视图
  • 2、UML图详细图示
    • 2.1、类图
    • 2.2、对象图
    • 2.3、组件图
    • 2.4、部署图
    • 2.5、包图
    • 2.6、用例图
    • 2.7、状态图
    • 2.8、活动图
    • 2.9、时序图
    • 2.10、通信图(协作图)
    • 2.11、定时图(计时图)

前言

今天给大家带来

1、UML概述

1.1、基本概念

统一建模语言(UML,Unified Model Language)
在这里插入图片描述

1.2、UML图类型说明

静态图/动态图UML图类型说明
静态图(结构图)类图一组类、接口、协作和它们之间的关系。
对象图一组对象和它们之间的关系。
构件图一个封装的类和它的接口。
部署图软硬件之间的映射。
制品图系统的物理结构。
包图由模型本身分解而成的组织单元,以及它们之间的依赖关系。
组织结构图描述了一个"组合结构"的内部结构,以及他们之间的关系。
动态图(行为图)用例图系统与外部参与者的交互。
状态图状态转换变迁。
活动图类似程序流程图,并行行为。
时序图强调按时间顺序。
通信(协作)图描述了收发消息的对象的组织关系。
定时图强调实际时间。
交互概览图与活动图类似,但是它的节点是交互图。
其中时序图、通信图、定时图、交互概览图属于交互图

1.3、UML的4+1视图

在这里插入图片描述
详细描述:

视图类型作用组成使用者
逻辑视图用于描述用例视图中提出的系统功能的实现。主要关注系统内部,即描述系统的静态结构(类、对象以及它们之间的关系),也描述系统内部的动态协作关系。1、静态图:类图、对象图。

2、动态图:状态机图、时序图、活动图等。
系统分析、设计人员
实现视图主要侧重于软件模块的组织和管理。要考虑软件内部的需求,如软件开发的容易性、软件的重用和软件的通用性,要充分考虑由于具体开发工具的不同而带来的局限性。1、物理代码文件;

2、组件图。
程序员
进程视图侧重于系统的运行特性,主要关注一些非功能性的需求。进程视图强调并发性、分布性、系统集成性和容错能力,以及从逻辑视图中的主要抽象如何适合进程结构。1、状态图、活动图、通信图;系统集成人员
部署视图用于显示系统的物理配置,描述的位于节点上的运行实例的部署情况。1、部署图;系统和网络工程师
用例视图描述系统应具备的功能,关注系统外部,从系统的外部看到的系统的功能。1、用例图;最终用户

2、UML图详细图示

2.1、类图

【概念】 类图(Class Diagram)是一切面向对象方法的核心建模工具。类图描述了系统中对象的类型以及它们之间存在的各种静态关系。
【目的】用来表示类、接口以及它们之间的静态结构和关系。
【类和接口】

  1. 类(Class):在面向对象编程中,类是对现实世界中一组具有相同特征的物体的抽象。
    在这里插入图片描述
  2. 接口(Interface):接口是一种特殊的类,具有类的结构但不可被实例化,只可以被实现(继承)。
    在这里插入图片描述
    【类图中的关系】
    在这里插入图片描述
关系说明图形表示
泛化(Generalization)是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。(箭头指向父类)
在这里插入图片描述
实现(Realization)是一种类与接口的关系,表示类是接口所有特征和行为的实现。(箭头指向接口)
在这里插入图片描述
关联(Association)是一种拥有的关系,它使一个类知道另一个类的属性和方法(指向被拥有者,可以没有箭头)
在这里插入图片描述
聚合(Aggregation)是整体与部分的关系,且部分可以离开整体而单独存在。(菱形指向整体)在这里插入图片描述
组合(Composition)是整体与部分的关系,但部分不能离开整体而单独存在。(菱形指向整体)在这里插入图片描述
依赖(Dependency)是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖。(指向被使用者)在这里插入图片描述

2.2、对象图

【概念】对象图(Object Diagram)是类图的一个实例,是系统在某个时间点的详细状态的快照。
【目的】用来表示两个或者多个对象之间在某一时刻之间的关系。
在这里插入图片描述

2.3、组件图

【概念】描绘了系统中组件提供的、需要的接口、端口等,以及它们之间的关系。
【目的】用来展示各个组件之间的依赖关系。
在这里插入图片描述

2.4、部署图

【概念】部署图(Deployment Diagram)描述了系统内部的软件如何分布在不同的节点上。
【目的】用来表示软件和硬件的映射关系。
在这里插入图片描述

2.5、包图

【概念】描绘了系统在包层面上的结构设计(多个类或组件组成了一个子系统,就可以将它们放到一个包中)。
【目的】用来表示包和包之间的依赖关系。

2.6、用例图

【概念】用例图是指由参与者、用例,边界以及它们之间的关系,构成的用于描述系统功能的视图。
【目的】用来描述整个系统的功能。
【特点】

  1. 用户角度描述系统功能;
  2. 参与者是外部触发因素(包括用户、组织、外部系统,时间);
  3. 用例是功能单元。

【关系】
1.包含关系:如图,其中这个提取出来的公共用例B称为抽象用例,原始用例A称为基本(基础)用例。当可以从两个或两个以上的用例提出公共行为时,应该使用包含关系来表示它们。
在这里插入图片描述这里表示B这个用例其实属于A,但是为了提出公共行为,才拉出来

  1. 扩展关系:如图,如果一个用例明显混合了两种或以上的不同场景,即根据情况可能发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例;
    在这里插入图片描述这里简单说就是A和B原本是在一个用例下,但是这一个用例描述两个功能不明确,拆分称A和B,一般A是常用的功能,作为基础用例

  2. 泛化关系:表示子用例继承父用例所有结构、行为和关系。

【建模流程】

  1. 识别参与者(必须);
  2. 合并需求获得用例(必须);
  3. 细化用例描述(必须);
  4. 调整用例模型(可选);
    在这里插入图片描述
    【用例规约】用例名称、用例ID、角色、用例说明、前置条件、基本事件流、其他事件流、异常事件流、后置条件
    在这里插入图片描述

2.7、状态图

【概念】状态图(State Diagram)对一个单独对象的行为建模,指明对象在它的整个生命周期里,响应不同事件时,执行相关事件的顺序。
【目的】对类描述的补充,用于展现此类对象所具有的可能状态,以及某些事件发生时状态转移情况。
在这里插入图片描述
在这里插入图片描述

2.8、活动图

【概念】描述了具体业务用例的实现流程。
【目的】用来表示用例实现的工作流程。
在这里插入图片描述

2.9、时序图

【概念】序列图(Sequence Diagram)根据时间序列展示对象如何进行协作。它强调对象之间发消息发送接收的顺序,同时显示对象之间的交往。
【目的】通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。
在这里插入图片描述
组合片段用来解决交互执行的条件和方式,它允许在序列图中直接表示逻辑组件,用于通过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。

组合片段共有13种,名称及含义如下:

片段类型名称说明
Opt选项包含一个可能发生或可能不发生的序列。可以在临界中指定序列发生的条件。
Alt抉择包含一个片段列表,这些片段包含备选消息序列。在任何场合下只发生一个序列。可以在每个片段中设置—个临界来指示该片段可以运行的条件。else 的临界指示其他任何临界都不为 True 时应运行的片段。 如果所有临界都为 False 并且没有 else,则不执行任何片段。
Loop循环片段重复一定次数。可以在临界中指示片段重复的条件。Loop 组合片段具有Min 和Max 属性,它们指示片段可以重复的最小和最大次数。默认值是无限制。
Break中断如果执行此片段,则放弃序列的其余部分。 可以使用临界来指示发生中断的条件。
Par并行并行处理。片段中的事件可以交错。
Critical关键用在 Par 或 seq 片段中。指示此片段中的消息不得与其他消息交错。
Seq弱顺序有两个或更多操作数片段。涉及同一生命线的消息必须以片段的顺序发生。如果消息涉及的生命线不同,来自不同片段的消息可能会井行交错。
Strict强顺序有两个或更多操作数片段。这些片段必须技给定顺序发生。
Consider考虑指定此片段描述的消息列表。其他消息可发生在运行的系統中,但对此描述来说意义不大。在Messages属性中键入该列表。
Ignore忽略此片段未描述的消息列表。这些消息可发生在运行的系统中,但对此描述来说意义不大。在Messages属性中键入该列表。
Assert断言操作数片段指定唯一有效的序列。通常用在 Consider 或 Ignore 片段中。
Neg否定此片段中显示的序列不得发生。通常用在 Consider 或 Ignore 片段中。

2.10、通信图(协作图)

【概念】通信图(Communication Diagram)描述了收发消息的对象的组织关系,强调对象之间的合作关系而不是时间顺序。
【目的】用来显示不同对象的关系。
在这里插入图片描述

2.11、定时图(计时图)

【概念】时序图被用来显示随时间变化,一个或多个元素的值或状态的更改。也显示时控事件之间的交互和管理它们的时间和期限约束。
【目的】用于展示交互过程中的真实事件信息,具体描述对象状态变化的时间以及维持特定状态的时间段。
在这里插入图片描述

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

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

相关文章

08 |「Fragment 」

前言 实践是最好的学习方式,技术也如此。 文章目录 前言一、简介1、是什么2、为什么要有 Fragment3. Fragment 详细解释 二、Fragment 与 Activity 的直观理解三、Fragment 的创建1、Fragment 的创建方式2、Fragment 的增删替查1) 替换(常见&…

哪个牌子宠物空气净化器好?质量好的宠物空气净化器推荐

即使我们很爱自家的宠物,但我们也无法否认处理房间里飘荡的宠物毛发和皮屑,以及那些令人不快的气味(比如地毯上的意外和垃圾桶里的气味)的挑战。对于过敏患者来说,这几乎是无法忍受的。寻找有效的方法来减少这些问题对…

电子邮件怎么发送?如何发送匿名电子邮件?

电子邮件发送的详细步骤?电子邮件的发送方式有哪些? 掌握如何发送电子邮件,尤其是如何发送匿名电子邮件,对于保护个人隐私、进行安全交流具有重要意义。下面,AokSend就来详细探讨一下电子邮件的发送方法以及如何发送匿…

转录组总结

1. 软件安装 2.转录组分析步骤: ① 建立环境 #建立python2.7的环境,大部分的转录组信息都需要在Python2的环境下进行 conda create -n py2env python2.7 source activate py2env ② 获取fastqc报告 #单个报告 fastqc -t 15 /home/yinwen/biosoft/DN…

17-Java解释器模式 ( Interpreter Pattern )

Java解释器模式 摘要实现范例 解释器模式(Interpreter Pattern)实现了一个表达式接口,该接口解释一个特定的上下文 这种模式被用在 SQL 解析、符号处理引擎等 解释器模式提供了评估语言的语法或表达式的方式,它属于行为型模式 …

数据库(mysql)-新手笔记-基本知识点(1)

基本概念 数据库 Database :存储数据的容器 表 Table : 在数据库中存储的基本结构,它由行和列组成 行 Row : 表中的一条记录 列 Column : 表中的字段,定义了数据的类型和约束 数据类型 数据值 如 INT(整型),FLAOT(浮点型) ,DECIMAL (精确小数点) 字符串 如 VARCHAR(可变长度字…

Linux第68步_旧字符设备驱动的一般模板

file_operations结构体中的函数就是我们要实现的具体操作函数。 注意: register_chrdev()和 unregister_chrdev()这两个函数是老版本驱动使用的。现在新字符设备驱动已经不再使用这两个函数,而是使用Linux内核推荐的新字符设备驱动API函数。 1、创建C…

更快更强,Claude 3全面超越GPT4,能归纳15万单词

ChatGPT4和Gemini Ultra被Claude 3 AI模型超越了? 3月4日周一,人工智能公司Anthropic推出了Claude 3系列AI模型和新型聊天机器人,其中包括Opus、Sonnet和Haiku三种模型,该公司声称,这是迄今为止它们开发的最快速、最强…

NLP:自定义模型训练

书接上文,为了完成指定的任务,我们需要额外训练一个特定场景的模型 这里主要参考了这篇博客:大佬的博客 我这里就主要讲一下我根据这位大佬的博客一步一步写下时,遇到的问题: 文中的cfg在哪里下载? 要不…

Jellyfin影音站点搭建并结合内网穿透实现远程观看本地影视资源

文章目录 1. 前言2. Jellyfin服务网站搭建2.1. Jellyfin下载和安装2.2. Jellyfin网页测试 3.本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5. 结语 1. 前言 随着移动智能设备的普及,各种各样的使用需求也被开发出来&…

国创证券|沪指震荡微跌,资源股集体拉升,黄金概念持续活跃

7日早盘,两市股指盘中震动下探,创业板指、科创50指数跌超1%,北证50指数跌逾2%;北向资金小幅流出。 截至午间收盘,沪指跌0.16%报3035.04点,深证成指跌0.68%,创业板指跌1.48%,科创50指…

基于redis实现用户登陆

因为session有数据共享问题,不同tomcat服务器中的session不能共享,之后负载均衡就无法实现。所以我们用redis代替session。redis可以被多个tomcat服务器共享,redis基于内存。 之前的session可以看做登陆凭证,本次登陆凭证由sessi…

【Redis】Redis的应用场景

📝个人主页:五敷有你 🔥系列专栏:Redis ⛺️稳中求进,晒太阳 Redis的应用场景: 限流 要求10s内只能访问一次 RequestMapping("xian")public String xianLiu(String sign){String sign1 …

allure怎么生成测试报告简单方法

方法一:import pytest pytest.main([‘-s’,‘./执行文件名.py’,‘–alluredir’,‘./result’]) 方法二:os.system(‘allure generate result -o report --clean’) 1、点击index.html,右上角选择浏览器打开 2、查看界面化测试报告

前端vue项目,引入PingFang SC字体

一,首先需要先获取PingFang SC字体,如果你有 请直接跳到第二步 链接:https://pan.baidu.com/s/1nkmV59kT_hvjK4yPJn1cJA 提取码:n0s1 二,将下载好的PingFang SC字体,放在项目的和样式一起的文件下,如下图 然后再创建一个fonts.scss文件(引入的时候注意路径是否正确)…

企业如何实现跨部门和员工之间的高效沟通协同?

在当今高度竞争和信息化的商业环境中,企业内部各部门和员工之间的沟通协同效率直接影响到企业的整体运营效果。那么,企业如何实现各部门和员工之间的高效沟通协同呢? 一、建立有效沟通机制与明确部门职责 要实现各部门和员工间的高效协同&…

第三方软件测试报告有效期是多久?专业软件测试报告获取

第三方软件测试报告是在软件开发过程中,由独立的第三方机构对软件进行全面测试和评估后发布的报告。这些第三方机构通常是与软件开发商和用户无关的专业技术机构,具备丰富的测试经验和专业知识。    第三方测试报告具有以下几个好处:   …

PolarDB for PostgreSQL-概述

阿里云数据库的概述 本篇罗列了一些知识点和结构。 日志 2. 同步复制:下降20% 异步复制:数据丢失风险, 部署 1.示例: vim polarx.toml 1.测试主库和备库数据一致性 备库是否一致性读 一个节点荡掉,提供服务。 GMS CN…

selenium等待机制

selenium等待机制 影响元素加载的外部因素1.计算机的性能2.服务器的性能3.浏览器的性能4.网络因素 强制等待1.强制等待2.页面加载超时机制 隐性等待显性等待1.WebDriverWait类2.WebDriverWait类提供的方法untileuntile_not显性等待的语法格式 3.expected_conditions模块方法exp…

Docker本地部署Redis容器结合内网穿透实现无公网ip远程连接

文章目录 前言1. 安装Docker步骤2. 使用docker拉取redis镜像3. 启动redis容器4. 本地连接测试4.1 安装redis图形化界面工具4.2 使用RDM连接测试 5. 公网远程访问本地redis5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定TCP地址远程访问 前言 本文主要介绍如何在Ub…