UML建模以及几种类图的理解

文章目录

  • 前言
  • 1.用例与用例图
    • 1.1 参与者
    • 1.2 用例之间的关系
    • 1.3 用例图
    • 1.4 用例的描述
  • 2.交互图
    • 2.1 顺序图
    • 2.2 协作图
  • 3.类图和对象图
    • 3.1 关联关系
    • 3.2 聚合和组合
    • 3.3 泛化关系
    • 3.4 依赖关系
  • 4.状态图与活动图
    • 4.1 状态图
    • 4.2 活动图
  • 5.构件图

前言

UML通过图形化的表示机制从多个侧面对系统的分析和设计模型进行刻画。
它定义了10种视图,可以分为4类:

  1. 用例图 :从外部用户的角度描述系统的功能,并指出功能的执行者。
  2. 静态图:包括类图,对象图和包图。类图描述系统的静态架构,类图的节点表示系统中的类及其属性和操作。类图的边表示类之间的关系,包括继承,关联,依赖,聚合等。对象图是类图的一个实例,它描述在某种状态下或某一段时间,系统中活跃的对象及其关系。包图描述系统的分解结构,它表示包以及包之间的关系,包由子包以及类组成,包之间的关系包括继承,构成与依赖关系。
  3. 行为图: 包括交互图,状态图与活动图,它们从不同的侧面刻画系统的动态行为。交互图描述对象之间的消息传递,可以分为顺序图与合作图两种形式。顺序图强调对象之间消息发送的顺序。合作图更强调对象间的动态协作关系。
  4. 实现图:包括构件图与部署图。它们描述软件实现系统的组成与分布状况。构件图描述软件实现系统中组成部件以及它们之间的依赖关系。部署图的描述作为软件系统运行的硬件以及网络的物理体系结构,节点标识实际的计算机与设备,表示节点之间的物理连接关系,也可以显示连接的类型以及节点之间的依赖性。

1.用例与用例图

编写用例必须识别以下元素。

1.1 参与者

角色(Actor)是指系统以外的,需要使用系统或者与系统交互的东西,包括人,设备,外部系统等。角色包括参与者,活动者,执行者和行动者。
actor

1.2 用例之间的关系

用例除了参与者有关联关系外,用例之间也存在着一定的关系,如范化关系,包含关系,扩展关系等。
包含关系

1.3 用例图

用例图是显示一组用例.参与者以及它们之间关系的图。

1.4 用例的描述

用例的描述才是用例的核心部分,用例采用自然语言描述参与者与系统进行交互是双方的行为。

2.交互图

交互图用来描述对象之间与参与者之间动态协作关系以及协作过程中行为次序的图形文档。

2.1 顺序图

顺序图也是时序图,是显示对象至今交互的图 ,这些对象是按照时间顺序排列的。

2.2 协作图

描述系统的行为是如何由系统的成分协作实现的图,协作图中包括的建模元素有对象 (包括参与者实例,多对象,主动对象等),消息,链等。

3.类图和对象图

类是具有相似结构,行为和关系的一组对象的抽象。类之间的关系有以下几种。

3.1 关联关系

关联是模型元素之间的一种语义关系,它是对具有共同的结构特性,行为特性 ,关系和语义的链的描述。

3.2 聚合和组合

聚集还是一种特殊的关联。聚集表示类之间的整体与部分的关系。在系统进行分析和设计时,需要描述中的包含,组成等关系。
组合:表示类之间的整体与部分的关系。

3.3 泛化关系

范化关系定义了一般和特殊元素之间关系,面向对象的语言设计来说就是类与类之间的继承关系。

3.4 依赖关系

一个元素的变化会到之后另一个元素的变化,类似于函数的概念。

4.状态图与活动图

4.1 状态图

状态图描述一个对象在其生存期间的动态行为,表现一个对象经历的状态序列,引起状态转移的事件,以及因状态转移而伴随的动作。

4.2 活动图

活动图可以描述系统的工作流程和并发行为。活动图的几个基本概念:活动,泳道,分支,分叉和汇合,对象流

5.构件图

构件图显示一组构件之间的相互关系,包括编译,链接或执行时构件之间的依赖关系。

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

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

相关文章

软件工程(十四) 设计模式之结构型模式(二)

1、组合模式 简要说明 将对象组合成树形结构以表示“整体-部分”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。 速记关键字 树形目录结构 类图如下 由类图其实可以看出,组合模式就是将具有父子关系的结构,组装形成一棵树,并且根据规范,树干节点和叶子节…

【Linux操作系统】Linux系统编程中的互斥锁

文章目录 1. 互斥锁的原理2. 互斥锁的相关函数3. 互斥锁的例子总结 1. 互斥锁的原理 在Linux系统编程中,互斥锁(Mutex)是一种用于保护共享资源的同步机制。它可以确保在任意时刻只有一个线程可以访问被保护的资源,从而避免了多个…

记录一次“top负1”比赛经历

获奖啦! 比赛题目:中文语义病句识别与纠正挑战赛 比赛链接:https://challenge.xfyun.cn/topic/info?typeidentification-and-correction&optionphb“请介绍你们团队” “各位评委老师,我是来自WOT团队的选手AMBT&#xff0…

知识储备--基础算法篇-动态规划

1.前言 第一次接触动态规划,不知道具体什么意思,做了题才发现动态规划就是把大问题变成小问题,并解决了小问题重复计算的方法称为动态规划。比如上楼梯,一次上一阶或二阶,求有多少种算法,就可以拆成最后一…

【Flutter】Flutter 使用 infinite_scroll_pagination 实现无限滚动分页

【Flutter】Flutter 使用 infinite_scroll_pagination 实现无限滚动分页 文章目录 一、前言二、安装和基本使用1. 添加依赖2. 基础配置和初始化 三、实际业务中的用法1. 与 API 集成2. 错误处理 四、完整示例1. 创建一个无限滚动列表2. 使用在你的应用中3. 完整代码示例 五、总…

SFM structure from motion

struction就是空间三维点的位置 motion 就是相机每帧的位移 https://www.youtube.com/watch?vUhkb8Zq-dnM&listPL2zRqk16wsdoYzrWStffqBAoUY8XdvatV&index9

VBA Excel自定义函数的使用 简单的语法

一个简单的教程,实现VBA自定义函数。 新建模块 复制后面的代码放进来 函数的入口参数不定义,则认为是一块区域; 反之,如FindChar1 As String,则认为是输入的单值。 循环和分支如下例子,VB比较接近自然语…

Ubuntu22.04安装中文输入法►由踩坑到上岸版◄

Ubuntu22.04安装中文输入法►由踩坑到上岸版◄ 了解入坑上岸 更新一发:Gedit中文乱码问题的解决 为了方便回忆和记录甚至后面继续重装系统,我还是写一下以便将来用到或参考~ 了解 安装Ubuntu22.04(截至2023年08月26日11&#xff…

Docker架构及原理

一、Docker的架构图 二、底层原理 Docker是怎么工作的? Docker是一个Client-Server结构的系统,Docker守护进程运行在主机上, 然后通过Socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器。 容器&#xf…

wireshark流量分析

一、题目一(1.pcap) 题目要求: 1.黑客攻击的第一个受害主机的网卡IP地址 2.黑客对URL的哪一个参数实施了SQL注入 3.第一个受害主机网站数据库的表前缀(加上下划线例如abc) 4.第一个受害主机网站数据库的名字 看到题目SQL注入&#xff0…

微服务(多级缓存)

目录 多级缓存 1.什么是多级缓存 2.JVM进程缓存 2.2.初识Caffeine 2.3.实现JVM进程缓存 2.3.1.需求 2.3.2.实现 3.Lua语法入门 3.1.初识Lua 3.1.HelloWorld 3.2.变量和循环 3.2.1.Lua的数据类型 3.2.2.声明变量 3.2.3.循环 3.3.条件控制、函数 3.3.1.函数 3.3.…

机器学习简介[01/2]:简单线性回归

Python 中的机器学习简介:简单线性回归 一、说明 简单线性回归为机器学习提供了优雅的介绍。它可用于标识自变量和因变量之间的关系。使用梯度下降,可以训练基本模型以拟合一组点以供未来预测。 二、技术背景 这是涵盖回归、梯度下降、分类和机器学习的其…

下载的文件被Windows 11 安全中心自动删除

今天从CSDN上下载了自己曾经上传的文件,但是浏览器下载完之后文件被Windows安全中心自动删除,说是带病毒。实际是没有病毒的,再说了即便有病毒也不应该直接删除啊,至少给用户一个保留或删除的选项。 研究了一番,可以暂…

springboot整合第三方技术邮件系统

springboot整合第三方技术邮件系统,发邮件是java程序的基本操作,springboot整合javamail其实就是简化开发。不熟悉邮件的小伙伴可以先学习完javamail的基础操作,再来看这一部分内容才能感触到springboot整合javamail究竟简化了哪些操作。简化…

vue ui 创建项目没有反应

问题 cmd中输入 vue ui 没有反应 解决办法 vue ui命令需要vue3.0以上的版本才可以 1、查看当前版本 vue --version vue版本在3.0以下是没有ui命令的 2、查看版本所拥有的命令 vue -h 3、卸载之前版本的vue npm uninstall vue-cli -g 卸载完成,检查是否已经…

elementui table 在浏览器分辨率变化的时候界面异常

异常点: 界面显示不完整,表格卡顿,界面已经刷新完成,但是表格的宽度还在一点一点变化,甚至有无线延伸的情况 思路: 1. 使用doLayout 这里官方文档有说明, 所以我的想法是,监听浏览…

HTML5-1-标签及属性

文章目录 语法规范标签规范标签列表通用属性基本布局 页面的组成: HTML(HyperText Markup Language,超文本标记语言)是用来描述网页的一种语言,它不是一种编程语言,而是一种标记语言。 HTML5 是下一代 HTM…

第四章:树形结构的关联式容器(map+set)

系列文章目录 文章目录 系列文章目录前言1、关联式容器与序列式容器1.1 键值对 2、set的介绍3、multiset的介绍3.1 接口count与容器multiset 4、map的介绍4.1 接口insert4.2 operator[]和at 5、multimap的介绍 前言 根据应用场景的不桶,STL总共实现了两种不同结构的…

Elasticsearch(十四)搜索---搜索匹配功能⑤--全文搜索

一、前言 不同于之前的term。terms等结构化查询,全文搜索首先对查询词进行分析,然后根据查询词的分词结果构建查询。这里所说的全文指的是文本类型数据(text类型),默认的数据形式是人类的自然语言,如对话内容、图书名…

springboot+mp完成简单案例

目录 1.框架搭建 2.前端搭建 3.后端编写 需求&#xff1a;完成简单的连表条件查询以及添加即可 1.框架搭建 1.创建springboot项目 2.相关依赖 <!--web依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boo…