软件工程各种图

参考视频:

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

相关推荐
嘿黑嘿呦4 天前
chap 8排序
算法·蓝桥杯·排序算法·软件工程
旧曲重听14 天前
2026前端技术从「夯」到「拉」
前端·程序人生·职场和发展·软件工程
承渊政道4 天前
飞算JavaAI 智能引导背后的多 Agent 协作机制解析:从老旧 Java 后台升级到可运行工程
java·开发语言·spring boot·安全·intellij-idea·软件工程·ai编程
apcipot_rain4 天前
计科八股20260616(1)——堆存中位数、链表判环、黑白测试、敏捷开发与瀑布模型、配置管理、持续集成、池化
数据结构·算法·软件工程
lisw055 天前
【计算机科学技术】路由器(route):概念、历史、内容与战略!
机器学习·智能路由器·软件工程
培培说证5 天前
大数据、人工智能、计算机、软件工程,到底怎么选?
大数据·人工智能·软件工程
文艺倾年6 天前
【强化学习】MDP、贝尔曼方程与CartPole 编程,20W字总结(二)
人工智能·软件工程·强化学习
郝学胜-神的一滴6 天前
CMake 017:彩色日志输出实战
linux·c语言·开发语言·c++·软件工程·软件构建·cmake
小程故事多_806 天前
AI软件工程范式革命,终结五十年的“手工伪工程”时代
人工智能·软件工程
精益数智小屋7 天前
项目管理看板如何拆解任务进度?项目管理看板解决跨部门协作难题
大数据·人工智能·数据分析·云计算·软件工程