软件工程各种图

news2025/4/12 14:23:39

参考视频:

6 分钟学会 UML 类图_哔哩哔哩_bilibili

5 分钟学会 UML 时序图(顺序图、序列图)_哔哩哔哩_bilibili

3 分钟学会 UML 活动图_哔哩哔哩_bilibili

6 分钟学会 UML 用例图_哔哩哔哩_bilibili

是真的讲的非常好!!! 

活动图(Activity diagrams)

显示流程或数据处理涉及的活动。展现了从一个活动到另外一个活动的控制过程。

组成

开始节点

表示活动图的开始

*一个活动图中只有一个开始节点

动作节点

表示需要执行的任务,通过动词进行描述

决策节点/合并节点

通过不同的条件来执行不同的子流程/子流程执行后合并

fork节点

分叉出的子流程是并行的

join节点

等待所有异步流程都执行完成后再合并成同一个流程执行

发送/接受信号

• 凸多边形(Convex polygon)- 发送信号/输出事件(sending signal / output event)

• 凹多边形(Concave polygon)- 接收信号/输入事件(receiving signal / input event)

e.g

取指定参数

附加的带着字母的小方块是输入或输出的引脚(pin)- 是对象节点的特殊符号
而在箭头中间的方框代表对象(object),其所在的流代表对象流(object flow),代表着指定的信息在各行动中流动

异常处理

折叠的箭头指向一个行为,箭头上应写明条件(为什么是异常)

时间事件(Time Event)

时间事件将会在其底下的时间表达式(time expression)为”真”时流动

结束节点

*一个活动图中可以有多个不同的结束节点

泳道图

展现流程中不同角色的交互关系

例题

e.g1

e.g2

 

e.g3

e.g4

----------------------------------

用例图(Use case diagrams)

显示系统与其环境之间的交互

组成

System

矩形

内部的任何事情都会在矩形内出现,外部的任何事情都不会矩形内出现

Actor 参与者

火柴人

1)参与者都是外部对象

2)有主要参与者和次要参与者的区别,主要参与者做出动作后次要参与者才会响应,主要参与者在左边,次要参与者在右边

3)每个参与者都至少与一个用例进行交互

Use Cases

椭圆

描述系统功能要用到的元素

Relationships

关联 association

参与者与用例之间的实线

Include 包含

e.g 登录 ---<<include>>----->验证密码

Extend 扩展

扩展用例在基本用例满足某些条件时才会触发

e.g 登录 <---<<extend>>-----密码错误

Generalization 泛化

例题

e.g1

e.g2 

 

e.g3

e.g4

----------------------------------

序列图/时序图(Sequence diagrams)

显示参与者和系统之间以及系统组件之间的交互

组成

组成:参与者,对象,生命线

实线:请求消息  虚线:回复消息

选择框:在两个或多个消息间进行选择

激活框:生命线上的第一条消息到最后一条消息

选择和循环

例题

e.g1

e.g2



 

 

----------------------------------

类图(Class diagrams)

显示系统中的对象类和这些类之间的关联

- private

+public

# protected(只能由同一个类或者子类访问)

~ package/default (用的少)

关系

继承 inheritance

关联 Association

聚合 Aggregation

部分可以存在整体之外

组合 Composition

部分不能存在于整体之外

例题

e.g1

e.g2

e.g3

e.g4

 ----------------------------------

状态机图(State machine diagrams)

显示系统如何对内部和外部事件作出反应。 

状态机图表示对象可能处于的状态以及状态之间的转换

显示了状态变化序列(a sequence of state change)的起点和终点

行为模型(Behavioral Model)
识别事件(Identifying Events)

刺激(Stimulus)

是指:在某个时间点发生的离散信号(discrete signal)

• 由内部或外部类之间的通信引起

• 可能导致状态变化

• 可能触发动作(trigger actions)

• 可能有相关的条件(associated conditions)

类的状态(State of a Class)

必须发生事件(有时称为触发器(trigger))强制对象从一个活动状态转换到另一个活动状态

 被动状态(passive state)是一个对象的所有属性的当前状态,一般不会改变

• 例如: Student类的属性

• 学生ID,姓名,入学日期,.....

活动状态(active state)表示对象在经历持续转换或处理时的当前状态。

• 例如: 学生类的状态

• 新生,入学,休学,毕业(New, Enrolled, Suspended, Graduated)

构成

状态(State)

初始状态(Start State)

通常用一个空心圆圈来表示

终止状态(Terminate State)

通常用一个的双圈来表示

状态转换(Transition)

表示状态之间的转换通常用带箭头的连线来表示,箭头指向目标状态

转换通常具有事件、条件、动作等属性,以描述触发转换的事件、条件和执行的动作。

•是什么导致了转换发生?

• 事件(event)

• 事件期间的条件被满足(Condition met during an event)

行动可能在过渡期间(即状态转换时)执行(Actions(活动中的单个原子步骤(single atomic step) may be executed during transition)

行动和活动(Action and activity)

共有3类活动(activity)

• 进入时/行动(entry / action)

• 执行时/活动(do / activity)

• 退出时/行动(exit / action)

其中:

• 进入/动作: 是离散的动作(action),在进入状态时只执行一次

• do/activity: 整个状态生命周期的连续活动(只要这个状态还在,这个活动就不停)

• exit/action: 离散动作,在状态退出时只执行一次

保证条件(Guard Conditions)

用于定义状态转换是否发生的条件。它们通常与转换关联,以确定在何种情况下可以从一个状态切换到另一个状态

状态的层次结构(State Hierarchy)

种方法是使用超状态(superstate)的概念,它封装了许多独立的状态。这个超状态看起来像高级模型中的单个状态,但它会展开,在单独的图中显示更多细节

它分为超状态和子状态(Superstate / Substate),每个状态的活动都是独立的

例题

e.g1

e.g2

感觉找的这个答案不太对啊

e.g3

 

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

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

相关文章

力扣hot100 路径总和Ⅲ dfs 前缀和 一题双解 超全注释

Problem: 437. 路径总和 III 思路 树的遍历 DFS 一个朴素的做法是搜索以每个节点为根的&#xff08;往下的&#xff09;所有路径&#xff0c;并对路径总和为 targetSumtargetSumtargetSum 的路径进行累加统计。 使用 dfs1 来搜索所有节点&#xff0c;复杂度为 O(n)O(n)O(n)&am…

android 9 reboot流程

机器出现开机 自动进入fastboot模式。可能是init 那个进程挂了 然后调用了 RebootSystem(ANDROID_RB_RESTART2, “bootloader”); 函数进入重启流程&#xff0c;然后重启后进入fastboot 浅读一下reboot流程和怎么进入的fastboot 比如说是那个进程挂了调用了这个函数&#xff0c…

数据结构栈、队列、链表、散列表

栈&#xff08;stack&#xff09; 栈&#xff08;stack&#xff09;是限制插入和删除只能在一个位置上进行的表&#xff0c;该位置是表的末端&#xff0c;叫做栈顶&#xff08;top&#xff09;。它是后进先出&#xff08;LIFO&#xff09;的。对栈的基本操作只有 push&#xf…

力扣日记1.11-【二叉树篇】450. 删除二叉搜索树中的节点

力扣日记&#xff1a;【二叉树篇】450. 删除二叉搜索树中的节点 日期&#xff1a;2024.1.11 参考&#xff1a;代码随想录、力扣 450. 删除二叉搜索树中的节点 题目描述 难度&#xff1a;中等 给定一个二叉搜索树的根节点 root 和一个值 key&#xff0c;删除二叉搜索树中的 key…

Docker的介绍及安装基本操作命令

前言 Docker 是一个开源的应用容器引擎&#xff0c;基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。 容器是完全使用沙箱…

Win系统搭建Elasticsearch实现公网远程访问本地服务

文章目录 系统环境1. Windows 安装Elasticsearch2. 本地访问Elasticsearch3. Windows 安装 Cpolar4. 创建Elasticsearch公网访问地址5. 远程访问Elasticsearch6. 设置固定二级子域名 Elasticsearch是一个基于Lucene库的分布式搜索和分析引擎&#xff0c;它提供了一个分布式、多…

【libpcap】获取报文pcap的ns级别的时间戳

1.安装libpcap 首先&#xff0c;下载最新的 libpcap 源代码。你可以从 tcpdump.org 获取最新版本 1 解压下载的libpcap tar -zxvf libpcap-version.tar.gz 2 进入解压目录进行安装 cd libpcap-version ./configure make sudo make install2 解析报文时间戳 #include <pca…

全自动网页生成系统网站源码重构版

源码优点: 所有模板经过精心审核与修改&#xff0c;完美兼容小屏手机大屏手机&#xff0c;以及各种平板端、电脑端和360浏览器、谷歌浏览器、火狐浏览器等等各大浏览器显示。 免费制作 为用户使用方便考虑&#xff0c;全自动网页制作系统无需繁琐的注册与登入&#xff0c;直…

42 智能指针 auto_ptr, unique_ptr,shared_ptr,weak_ptr 整理

都是类模版 都不用开发者自己delete 指针。这是因为智能指针有自己管理指向对象的能力&#xff0c;包括释放指向的内存&#xff0c;因此开发者不要自己释放。 auto_ptr, &#xff08;废弃&#xff09;C98 已经被弃用&#xff0c;替代方案是unique_ptr. 被弃用的原因: 1.不能…

电脑桌面文件在c盘哪个文件夹里

在使用Windows电脑的时候&#xff0c;我们经常会听到&#xff0c;在桌面创建快捷方式&#xff0c;以便快速打开软件&#xff0c;或者在将文件保存在桌面&#xff0c;可以快速找到文件&#xff0c;那么这个电脑桌面具体是指的哪一个文件夹呢&#xff1f;如何将其他盘的文件夹在桌…

NVIDIA GPU 与服务器型号匹配查询

NVIDIA GPU 与服务器型号匹配查询 1. Qualified System Catalog (认证服务器目录)2. NVIDIA L40S2.1. NVIDIA L40S GPU Specifications References 1. Qualified System Catalog (认证服务器目录) https://www.nvidia.cn/data-center/data-center-gpus/qualified-system-catal…

Fenwick Tree——树状数组

问题陈述&#xff1a; 你得到一个长度为 N 的数组为 a0,a1,a2……an-1。处理以下类型的查询&#xff0c;一共有 Q 次查询。 0 p x : ap⬅ap x 1 l r : 打印 ai ( il 到 ir-1 的 ai 之和) 约束&#xff1a; 1 ≤ N,Q ≤ 500000 0 ≤ ai,x ≤ 1e9 0 ≤ p < N 0 ≤ li <…

2024开网店选择哪个平台?有经验就做视频号,没经验就做抖店

我是王路飞。 如今整体大环境都不怎么样的背景下&#xff0c;只有电商行业一直在蓬勃发展。 一方面是收到科技互联网的发展影响&#xff0c;短视频、直播带货等等都在推动这电商行业的转型&#xff1b; 另一方面也是人们消费观念的改观&#xff0c;从限制性较强的线下转移到…

基础_函数_日期函数

常用的日期函数如下&#xff1a;

纯前端 —— 200行JS代码、实现导出Excel、支持DIY样式,纵横合并

前期回顾 Vue3 TS Element-Plus 封装Tree组件 《亲测可用》_vue3ts 组件封装-CSDN博客https://blog.csdn.net/m0_57904695/article/details/131664157?spm1001.2014.3001.5501 目录 具体思路&#xff1a; 1. 准备HTML结构 2. 定义CSS样式 3. 初始化表格数据 4. 创建表…

Vs2019创建c文件

每一个人都是小白开始学习的&#xff0c;学长本身在开始学习计算机编程以前&#xff0c;也是对编程语言畏之如虎&#xff0c;一头雾水。成长都是有规律的&#xff0c;&#xff0c;都是从不会到会&#xff0c;再从会到熟练。如果要问我为什么&#xff0c;唯有多练习耳&#xff0…

UG装配-动态干涉检查

如果设计的产品有运动部件&#xff0c;除了做静态干涉检查外&#xff0c;通常还要做动态干涉检查 动态检查可以使用如下命令&#xff1a;移动组件&#xff0c;序列 在动态干涉检查前&#xff0c;先装配好组件&#xff0c;并且是可运动状态 在使用移动组件命令对运动部件进行…

android studio使用总结

gradle是项目构建的工具&#xff0c;在gradle-wrapper.properties这个文件中设置&#xff0c; 然后就会下载相应版本的安装包到这个路径C:\Users\ly.gradle\wrapper\dists&#xff0c;例如这里是7.0.2&#xff0c; gradle和studio中的jdk版本需要对应&#xff0c;否则无法构建项…

C++学习笔记(三十五):c++ 函数指针及lambda表达式

本节介绍c函数指针。在一些源码中经常能看到c函数指针&#xff0c;但之前一直觉着这一块比较复杂&#xff0c;就一直没去仔细研究&#xff0c;终于有时间去仔细研究这一块内容了。 c风格的函数指针 函数指针是指将一个函数赋值给一个变量的方法&#xff0c;可以将函数作为一个参…

基础_函数_流程函数

流程函数也是很常用的一类函数&#xff0c;可以在SQL语句中实现条件筛选&#xff0c;从而提高语句效率.