软考UML图 -- ( 类图,对象图,用例图,序列图,通信图,状态图,活动图,构件图,部署图)

news2024/11/26 1:49:21

文章目录

  • 一、UML统一建模语言
  • 二、关系
  • 三、UML图
    • 1. 类图
    • 2. 对象图
    • 3. 用例图
    • 4. 序列图(顺序图)—— 交互图
    • 5. 通信图 —— 交互图
    • 6. 状态图
    • 7. 活动图
    • 8. 构件图(组件图)
    • 9. 部署图
    • 10. 总结


一、UML统一建模语言

  1. UML由3个要素构成:UML,的基本构造块、支配这些构造块如何放置在一起的规则和运用与整个语言的一些公共机制。
  2. UML, 的词汇表包含3种构造块:事物、关系和图。事物是对模型中最具有代表性的成分的抽象;关系把事物结合在一起:图聚集了相关的事物。

二、关系

UML中有4种关系:依赖、关联、泛化和实现

  1. 依赖。
    依赖是两个事物间的语义关系,其中一个事物(独立事物)发生变化会影响另一个事物(依赖事物)的语义。在图形上,把一个依赖画成一条可能有方向的虚线
    在这里插入图片描述
    A依赖于B,B被A依赖
  2. 关联。
    关联是一种结构关系,它描述了一组聚集是一种特殊类型的关联,它描述了整体和部分间的结构关系。关联和聚集的图形化表示如图。在关联上可以标注重复度(Multiplicity)和角色(Role)。
    在这里插入图片描述
    聚集:描述了整体和部分间的结构关系
    ①聚合:部分和整体的生命周期不一致,整体消失了,部分仍然存在,部分可以脱离整体存在。
    在这里插入图片描述
    ②组合:部分和整体的生命周期一致,整体消失了,部分也消失了,部分不可以脱离整体存在。(注意:实心的菱形)
    在这里插入图片描述
  3. 泛化
    泛化是一种特殊/一般关系,特殊元素(子元素)的对象可替代一般元素(父元素)的对象。用这种方法,子元素共享了父元素的结构和行为。在图形上,把一个泛化关系画成一条带有空心箭头的实线,它指向父元素。
    在这里插入图片描述
    子类继承父类,父类泛化子类
  4. 实现
    实现是类元之间的语义关系,其中一个类元指定了由另一个类元保证执行的契约。在两种情况下会使用实现关系:一种是在接口和实现它们的类或构件之间;另一种是在用例和实现它们的协作之间。在图形上,把一个实现关系画成一条带有空心箭头的虚线。
    在这里插入图片描述
  5. 关联多重度
    (1)单向关联,有向
    在这里插入图片描述
    (2)关联名
    (3)关联类
    在这里插入图片描述

三、UML图

9种:类图、对象图、用例图、序列图、通信图、状态图、活动图、构件图、部署图。序列图、通信图均被称为交互图。

1. 类图

在这里插入图片描述
(1)类指类名
属性:【- id:int】【权限修饰符 类名:数据类型】

+ public 共有的
- private 私有的
# protected 受保护的
~ package 包

(2)系统使用类的方法

①对系统词汇建模
②对简单的协作建模
③对逻辑数据库模式建模

类图:一组对象,接口,协作和他们之间的关系

2. 对象图

对象图展现了某一时刻一组对象以及它们之间的关系,描述了在类图中所建立的事物的实例的静态快照。对象图一般包括对象和链。
在这里插入图片描述

在这里插入图片描述

3. 用例图

用例图展现了一组用例、参与者(Actor)以及它们之间的关系。
用例之间的扩展关系(<>)和包含关系(<>),参与者和用例之间的关联关系,用例与用例以及参与者与参与者之间的泛化关系。
在这里插入图片描述
(1)包含关系(用例和用例之间的关系)
一个用例包含另一个用例
在这里插入图片描述
(2)扩展关系(用例和用例之间的关系)
一个用例执行的时候,可能发生一些特殊情况或可选情况,这个用例就是这个用例的扩展用例
在这里插入图片描述
(3)泛化关系(参与者与参与者之间的关系,用例与用例之间的关系)
在这里插入图片描述
(4)关联(参与者与用例之间的关系)
(5)当系统的静态用例视图建模时,可以使用用例图的方式
①对系统的语境建模
②对系统的需求建模
(6)用例:将系统的一个功能描述成一系列事件

4. 序列图(顺序图)—— 交互图

(1)交互图用于对系统的动态方面进行建模。交互图由一组对象和它们之间的关系组成,包含它们之间可能传递的消息。
(2)序列图是强调消息时间顺序的交互图。通信图是强调接收和发送消息的对象的结构组织的交互图。
(3)序列图是场景的图形化表示,描述了以时间顺序组织的对象之间的交互活动。形成序列图时,首先把参加交互的对象放在图的上方,沿水平方向排列。通常把发起交互的对象放在左边,下级对象依次放在右边。然后,把这些对象发送和接收的消息沿垂直方向按时间顺序从上到下放置。
在这里插入图片描述
(4)序列图有对象生希线。对象生命线是一条垂直的虚线,表示一个对象在一段时间内存在。
(5)控制焦点:是一个瘦高的矩形。矩形的顶部表示动作的开始,底部表示动作的结束(可以由一个返回消息来标记)。还可以通过将另一个控制焦点放在它的父。
(6)生命周期:create开始,destory结束

5. 通信图 —— 交互图

在这里插入图片描述
(1)通信图(协作图):强调收发消息的对象的结构组织。通信图强调参加交互的对象的组织。
(2)首先要将参加交互的对象作为图的顶点,然后把连接这些对象的链表示为图的弧,最后用对象发送和接收的消息来修饰这些链。
(3)通信图有顺序号。为表示一个消息的时间顺序,可以给消息加一个数字前缀(从1号消息开始),在控制流中,每个新消息的顺序号单调增加(如2、3等)。为了显示嵌套,可使用带小数点的号码(1表示第一个消息:1.1表示嵌套在消息1中的第一个消息,1.2 表示嵌套在消息1中的第二个消息,等等)。沿同一个链可以显示许多消息(可能发自不同的方向),并且每个消息都有唯一的一个顺序号。
(4)序列图和通信图是同构的,它们之间可以相互转换。
(5)通信图,对象之间的消息流及顺序

6. 状态图

(1)状态图展现了一个状态机它由状态、转换、事件和活动组成。状态图关注系统的动态视图,对于接口、类和协作的行为建模尤为重要,强调对象行为的事件顺序
(2)状态和活动
①状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。既改变状态,又做动作。
②状态主要有:初态(即初始状态)、终态(即最终状态)和中间状态。状态之间为状态转换,用一条带箭头的线表示。带箭头的线上的事件发生时,状态转换开始(有时也称之为转换“点火”或转换被“触发”)。
在这里插入图片描述
一张状态图中只能有一个初态,而终态可以没有,也可以有多个。
③活动表(活动):活动名/动作表达式
在这里插入图片描述
经常使用三种标准事件:entry,exit,do
entry:入口动作,进入状态,立即执行
exit:出口动作,退出状态,立即执行
do:内部活动,占有有限时间,并可以中断的工作
(3)事件
①事件是在某个特定时刻发生的事情,它是对引起系统做动作或从一个状态转换到另一个状态的外界事件的抽象。
②事件就是引起系统做动作或(和)转换状态的控制信息。

在这里插入图片描述
④转换包含两个状态:原状态和目标状态,转换还包含事件,监护条件,动作
⑤事件触发转换(迁移)
⑥活动(动作)可以在状态内执行,也可以在状态转换(迁移)时进行
⑦监护条件是一个布尔表达式,事件说明,监护条件,为真则发生转换;无事件说明,监护条件为真则为真
在这里插入图片描述
(4)组合状态(超状态),嵌套状态(子状态)
(5)状态图是对反应型对象建模
这些动态方面可以包括出现在系统体系结构的任何视图中的任何一种对象的按事件排序的行为,这些对象包括类(各主动类)、接口、构件和结点。

7. 活动图

在这里插入图片描述
(1)活动图是一种特殊的状态,它展现了在系统内从一个活动到另一个活动的流程。
活动图专注于系统的动态视图,它对于系统的功能建模特别重要,并强调对象间的控制流程。
(2)使用活动图的方式:对工作流建模,对操作建模

8. 构件图(组件图)

在这里插入图片描述
(1)构件图展现了一组构件之间的组织和依赖。
(2)构件图专注于系统的静态实现视图。它与类图相关,通常把构件映射为一个或多个类、接口或协作。
(3)部署,组件之间的关系类似于依赖

9. 部署图

(1)部署图是用来对面向对象系统的物理方面建模的方法
(2)静态图
(3)部署图展现了系统软硬件之间的关系,在实施阶段使用
(4)立体图,>表示制品。

10. 总结

  • 静态建模:类图、对象图、用例图
  • 动态建模:序列图(顺序图,时序图)、通信图(协作图)、状态图、活动图
  • 物理建模:构件图(组件图)、部署图
  • 交互图:序列图(顺序图,时序图)、通信图(协作图)

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

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

相关文章

Linux 外设驱动 应用 1 IO口输出

从这里开始外设驱动介绍&#xff0c;这里使用的IMX8的芯片作为驱动介绍 开发流程&#xff1a; 修改设备树&#xff0c;配置 GPIO1_IO07 为 GPIO 输出。使用 sysfs 接口或编写驱动程序控制 GPIO 引脚。编译并测试。 这里假设设备树&#xff0c;已经配置好了。不在论述这个问题…

PDF转JPG神器!这四款软件让你轻松搞定文档转换

尊敬的朋友们&#xff0c;您是否曾在数字办公和娱乐的海洋中&#xff0c;遭遇过因格式问题而一筹莫展的时刻&#xff1f;比如&#xff0c;手头有一份绝美的PDF文件&#xff0c;却想将其转换为JPG图片格式&#xff0c;好让它能在你的社交圈中大放异彩&#xff1b;别急&#xff0…

自然语言处理-语言转换

文章目录 一、语言模型二、统计语言模型1.含义与方法2.存在的问题 三、神经语言模型1.含义与方法2.one-hot编码3.词嵌入-word2vec4.模型的训练过程 四、总结 自然语言处理&#xff08;NLP&#xff09;中的语言转换方法主要涉及将一种形式的语言数据转换为另一种形式&#xff0c…

IDEA创建、导入、删除maven项目

全局配置&#xff1a; 1.File->Close Project 2.Customize->All settings 3. Apply 4.选择JRE版本->Apply 5.选择字节码版本->Apply->OK 全局配置结束 创建maven项目&#xff1a; 1.File->New->Module 2.Build system选择Maven GroupId&#xff1a…

Django学习笔记十三:优秀案例学习

Django CMS 是一个基于 Django 框架的开源内容管理系统&#xff0c;它允许开发者轻松地创建和管理网站内容。Django CMS 提供了一个易于使用的界面来实现动态网站的快速开发&#xff0c;并且具有丰富的内容管理功能和多种插件扩展。以下是 Django CMS 的一些核心特性和如何开始…

智能医疗:Spring Boot医院管理系统开发

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常适…

手术器械检测系统源码分享

手术器械检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

【Nacos入门到实战十三】Nacos配置管理:配置优先级与加载顺序解读

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

Thinkphp/Laravel基于vue的金融理财产品销售系统设计与实现Vscode毕业设计成品源码.

目录 技术栈和环境说明具体实现截图设计思路关键技术课题的重点和难点&#xff1a;框架介绍数据访问方式PHP核心代码部分展示代码目录结构解析系统测试详细视频演示源码获取 技术栈和环境说明 采用PHP语言开发&#xff0c;开发环境为phpstudy 开发工具notepad并使用MYSQL数据库…

allegro 替换过孔

操作步骤如下 1.选择操作对象&#xff08;需要替换的过孔&#xff09;&#xff0c;右键–>Repace……–>Selected…… 2.在弹出的窗口中选择最终需要的过孔既可以

2024系统分析师考试---数据仓库相关概念

前言&#xff1a; 传统的操作型数据库主要面向业务的&#xff0c;所执行的操作基本上也是联机事务处理&#xff0c;随着企业规模的增长&#xff0c;历史积累的数据越来越多&#xff0c;如何利用历史数据来为未来决策服务&#xff0c;就显得越来越重要了&#xff0c;而数据仓库就…

微信小程序开发问题记录

文章目录 一&#xff0c;全局文件配置windows title不起作用 一&#xff0c;全局文件配置windows title不起作用 全局配置中配置窗口导航栏标题不生效。 但是页面使用的导航栏插件配置的title能生效。

source insight 的开源替代

source insight 的开源替代——sourcetrail&#xff0c;开源地址&#xff1a;https://github.com/CoatiSoftware/Sourcetrail Sourcetrail 是一个交互式源代码浏览器&#xff0c;它通过为代码编制索引并收集有关其结构的数据来简化现有源代码中的导航。然后&#xff0c;Sourcet…

图吧工具箱

图吧工具箱202309绿色版自动解压程序R2.exe&#xff0c;永久有效 链接&#xff1a;https://pan.baidu.com/s/1M6TI7Git8bXOzZX_qZ3LJw?pwdzked 提取码&#xff1a;zked

Java中常用的线程工具(JUC)

多线程 多线程 基本概念 CAS (Compare-And-Swap&#xff0c;比较并交换)&#xff0c;是一种用于实现多线程同步的原子操作。主要原理&#xff1a;1.比较内存中的某个位置的当前值和预期值 2.交换如果当前值与预期值相等&#xff0c;则将该位置的值更新为新值&#xff0c;否则…

ZYNQ:Petalinunx构建工程

资料准备 1、xsa 文件&#xff1a;top_020.xsa&#xff08;使用vivado 2024.1制作&#xff09; 2、设置 Petalinux &#xff08;2024.1&#xff09;环境变量&#xff1a;sptl 创建 petalinux 工程 构建工程 petalinux-create -t project --template zynq -n project配置…

Linux--IO模型与高级IO重要概念

什么是IO&#xff1f; IO是指计算机系统与外部世界进行数据交换的过程。在计算机中&#xff0c;IO通常用于与外部设备通信&#xff0c;这些设备包括键盘、鼠标、打印机、显示器、网络等。通过IO操作&#xff0c;计算机系统可以接收来自外部设备的输入数据&#xff0c;也可以将…

黑马JavaWeb开发跟学(九)MyBatis基础操作

黑马JavaWeb开发跟学九.MyBatis基础操作 1. Mybatis基础操作1.1 需求1.2 准备1.3 删除1.3.1 功能实现1.3.2 日志输入1.3.3 预编译SQL1.3.3.1 介绍1.3.3.2 SQL注入1.3.3.3 参数占位符 1.4 新增1.4.1 基本新增1.4.2 主键返回 1.5 更新1.6 查询1.6.1 根据ID查询1.6.2 数据封装1.6.…

LeetCode刷题日记之二叉树(六)

目录 前言二叉搜索树中的众数二叉树的最近公共祖先二叉搜索树的最近公共祖先总结 前言 又是学习LeetCode二叉树的新一天&#xff0c;今天还是接着学习一下二叉搜索树的内容&#xff0c;希望博主记录的内容能够对大家有所帮助 &#xff0c;一起加油吧朋友们&#xff01;&#x…

【ubuntu】ubuntu20.04安装conda

1.下载 安装参考&#xff1a;https://blog.csdn.net/weixin_44119391/article/details/128577681 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 2.安装 sudo chmod 777 -R ./Anaconda3-5.3.1-Linux-x86_64.sh ./Anaconda3-5.3.1-Linux-x86_64.sh Enter键确认安装…