当前位置: 首页 > article >正文

UML分析与设计 - 软考备战(五十四)

UML分析与设计参考资料九种常见UML图分类图解 - HZX↑ - 博客园UML科普文一篇文章掌握14种UML图 - 知乎『这就是UML』系列内容第8讲协作图 - ProcessOn知识社区『这就是UML』系列内容第6讲类图 - ProcessOn知识社区『这就是UML』系列内容第10讲活动图 - ProcessOn知识社区『这就是UML』系列内容第4讲用例图 - ProcessOn知识社区『这就是UML』系列内容第9讲状态图 - ProcessOn知识社区『这就是UML』系列内容第7讲时序图 - ProcessOn知识社区UML学习文档一_uml文档-CSDN博客UML学习文档二_uml 语法文档-CSDN博客一、 UML核心速记1.1 “41”视图架构设计的灵魂UML并不是随便画图的它是用来描述软件架构的。业界公认的“41”视图模型你需要知道每个视图用什么图来表达用例视图1核心驱动从外部用户的角度看系统。代表图用例图。它驱动了其他四个视图的开发。逻辑视图系统内部结构系统的静态结构和动态行为。代表图类图、对象图、状态图、顺序图。实现视图/开发视图程序员视角系统的物理代码结构。代表图构件图。进程视图并发与性能关注系统的并发性、同步、性能。代表图活动图带泳道和分叉时、顺序图。部署视图/物理视图运维视角软件到硬件的映射。代表图部署图。1.2 UML图与开发阶段的映射关系需求阶段用例图捕捉用户需求这是唯一的产出。分析/设计阶段类图静态结构、顺序图/通信图对象间交互、状态图单个对象生命周期、活动图业务流程/算法流程。实现阶段构件图代码打包成组件、包图代码模块划分。部署阶段部署图服务器、网络拓扑。二、 静态结构建模静态图描述的是系统的“骨架”不随时间变化。2.1 类图与对象图对象图类图在某一时刻的“快照”实例化。类图有类名对象图的名字下面必须带下划线如 张三: Person。类图类的四大核心关系这四种关系的耦合度从弱到强依次为依赖 ➡️ 关联 ➡️ 泛化 ➡️ 实现。依赖—— 虚线箭头 - - - -语义临时用了一下用完就散了。代码体现方法的参数、局部变量。例子人过河依赖船。Person 类的方法 crossRiver(Boat b)人就依赖了船。关联—— 实线箭头 —— 双向则无箭头语义长期的拥有关系通常作为类的属性存在。代码体现类的成员变量。例子学生和课程。学生选了课这个关系要存起来所以学生类里有 ListCourse 属性。关联多重性在连线两端写数字。1只有一个0..1可选或 0..零到多个1..一到多个。比如一个学生可以选 0.. 门课一门课可以被 1.. 个学生选。泛化/继承—— 实线空心三角箭头 ——▷ 箭头指向父类语义is-a 关系。例子鸟和燕子燕子指向鸟。实现—— 虚线空心三角箭头 - - -▷ 箭头指向接口语义实现接口里的方法。例子飞行接口和燕子燕子实现飞行接口燕子指向飞行接口。聚合——空心菱形指向整体语义整体与部分的关系且部分可以离开整体而单独存在。聚合关系是关联关系的一种是强的关联关系。组合——实心菱形指向整体语义一种整体与部分的关系但部分不能离开整体而单独存在。组合关系是关联关系的一种是比聚合关系还要强的关系。2.2 包图管理复杂度作用像Windows的文件夹一样把相关的类、接口打包装进一个包里。依赖原则如果包A里的类用到了包B里的类就说A依赖B。要尽量避免循环依赖A依赖BB又依赖A。导入与访问import导入不仅看到还把里面的名字引入到当前命名空间可以直接用类名。access访问只能看到不能用简名必须带包名路径类似Java的完全限定名。2.3 构件图代码级别的物理模块提供接口构件旁边画一条实线顶端连着一个小圆圈lollipop棒棒糖。表示“我能给别人提供什么服务”。请求接口构件旁边画一条实线顶端连着一个半圆socket插座。表示“我需要别人给我提供什么服务”。2.4 部署图软硬件映射节点立体的长方体代表服务器、电脑、打印机等硬件。制品节点里面画的普通矩形代表部署在上面的.jar、.exe文件、数据库等。通信关联节点之间的实线表示网络连接可以写上协议如 TCP/IP、HTTP。三、 动态行为建模动态图描述的是系统的“动作”随时间发生变化。3.1 用例图用例图由三部分组成-系统边界大方框-参与者小人-用例椭圆包含与扩展这两个关系长得极像都是虚线箭头箭头上分别写着include和extend。核心区别在于谁是主导箭头往哪指包含关系 include语义基础用例必须用到被包含用例。被包含用例是基础用例的“必经之路”或“公共子流程”。箭头方向从基础用例 指向 被包含用例。例题套路“用户登录时必须包含身份验证”。箭头[用户登录] - - - [身份验证]。扩展关系 extend语义基础用例在特定条件下可选地触发扩展用例。扩展用例通常是处理“异常分支”或“可选高级功能”。箭头方向从扩展用例 指向 基础用例千万别记反了因为扩展用例是“寄生”在基础用例上的它要去“依附”基础用例。例题套路“在支付用例中如果余额不足则扩展出【提示充值】用例”。箭头[提示充值] - - - [支付]。泛化关系用例之间也可以有继承。比如“线上支付”和“线下支付”泛化出“支付”。实线空心三角指向“支付”。3.2 交互图描述对象之间发消息交互图分为两种它们表达的信息完全一样只是侧重点不同。1. 顺序图/时序图顶部一排对象:ObjectA每个对象下面垂下一根虚线生命线。生命线上的细长矩形叫激活期表示对象正在执行代码没激活就是空闲。同步消息实心箭头 ▶。表示调用者发消息后停在那里等必须等接收者干完活返回后调用者才继续往下走。类似打电话必须等对方接听。异步消息开放式箭头 只有线没有实心三角。表示调用者发完消息就接着干自己的事了不管接收者死活。类似发微信。返回消息虚线开放式箭头 虚线。表示接收者处理完毕把结果还给调用者。2. 通信图原协作图一堆对象散落在纸上对象之间有实线连接链接连线上画箭头写消息旁边标上序号1, 1.1, 1.2表示顺序。它不画生命线看不出谁先谁后的直观时间感但能清楚看出哪些对象之间有物理连接空间结构。3.3 状态图状态机图适用场景当一个对象在不同条件下会有多种状态且状态之间会来回切换时。比如订单待支付、已支付、已发货、已签收、电梯开门、关门、上行、下行。基本元素初始状态实心圆点 ●。结束状态圆圈套实心点 ◎。状态圆角矩形。状态转移线的语法转移线上必须写事件 [条件] / 动作发生了什么“事件”在什么“条件”下执行了什么“动作”然后切换到下一个状态。例子[密码正确] / 开门。这里没有写事件说明是系统内部判断。如果是读卡 / [密码正确] / 开门读卡就是事件。3.4 活动图流程图升级版本质它就是带了泳道的流程图。状态图看“状态”活动图看“动作”。与流程图的区别活动图有并发的表示方法。分叉与汇合粗黑线一条粗黑线进入分出多条箭头出去叫分叉表示后面的动作可以同时并发执行。多条箭头汇聚到一条粗黑线再出去一条箭头叫汇合表示必须等待所有并发分支都执行完才继续往下走。避坑分叉和汇合必须成对出现且分叉出去几条汇合就必须收几条。这和流程图里简单的菱形判断框完全不同。泳道把活动图用竖线或横线切成几块每块写上部门或角色名用来明确“这个动作具体是谁干的”。

相关文章:

UML分析与设计 - 软考备战(五十四)

UML分析与设计 参考资料: 九种常见UML图(分类图解) - HZX↑ - 博客园 UML科普文,一篇文章掌握14种UML图 - 知乎 『这就是UML!』系列内容第8讲:协作图 - ProcessOn知识社区 『这就是UML!』系…...

Rust 异步编程实战:构建高效的并发应用

Rust 异步编程实战:构建高效的并发应用 异步编程的重要性 在现代软件开发中,异步编程变得越来越重要。它允许程序在等待IO操作(如网络请求、文件读写)时继续执行其他任务,从而提高程序的响应速度和吞吐量。Rust作为一种…...

ChanlunX:终极缠论自动化分析插件,让技术分析变得简单高效

ChanlunX:终极缠论自动化分析插件,让技术分析变得简单高效 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX ChanlunX是一个基于C开发的通达信缠论分析插件,通过算法自动…...

别再只做AISMM打分!SITS2026验证:将成熟度等级转化为变革路线图的唯一可复用公式(附动态测算Excel)

更多请点击: https://intelliparadigm.com 第一章:SITS2026案例:AISMM驱动的组织变革 在SITS2026国际航天信息系统技术峰会中,欧洲航天局(ESA)与德国航空航天中心(DLR)联合实施的AI…...

通过Hermes Agent框架对接Taotoken自定义模型提供方

通过Hermes Agent框架对接Taotoken自定义模型提供方 基础教程类,指导使用Hermes Agent框架的用户,如何根据Taotoken提供的接入文档,在Hermes的配置中正确指定custom提供方类型与base_url后缀,并将API密钥写入约定的环境变量文件&…...

如何快速掌握猫抓Cat-Catch:浏览器资源嗅探工具终极指南

如何快速掌握猫抓Cat-Catch:浏览器资源嗅探工具终极指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 还在为无法保存网页上的精彩视…...

【Android 组件】使用 XML 传统方式实现 Navigation 导航功能

一、概述 导航是指允许用户跨越、进入和退出应用中不同内容片段的交互。Android Jetpack 的 Navigation 组件是官方推荐的页面导航和转场解决方案,能帮你轻松处理 Fragment 之间的切换、返回栈管理,支持底部导航栏和动画。 1、主要概念 NavHostFragment(导航宿主):包含当…...

CC26XX低功耗实战:手把手教你配置TI-RTOS自动睡眠策略,让设备续航翻倍

CC26XX低功耗实战:TI-RTOS自动睡眠策略配置与深度优化指南 在物联网设备开发中,电池续航能力往往是决定产品成败的关键因素。德州仪器(TI)的CC26XX系列无线微控制器凭借其出色的低功耗特性,成为众多智能家居、可穿戴设备和工业传感器节点的首…...

天准星智携手BlackBerry QNX,共筑智能驾驶与泛机器人产业新未来

近日,智能驾驶及泛机器人领域的创新企业天准星智(天准科技控股子公司)与全球汽车及嵌入式软件领导者BlackBerry QNX共同宣布建立战略合作。双方将依托BlackBerry QNX领先的软件技术体系,携手打造面向汽车工业、泛机器人及AIoT领域…...

3分钟免费绕过iPhone激活锁:applera1n工具终极使用指南

3分钟免费绕过iPhone激活锁:applera1n工具终极使用指南 【免费下载链接】applera1n icloud bypass for ios 15-16 项目地址: https://gitcode.com/gh_mirrors/ap/applera1n 当您遇到二手iPhone无法激活、忘记Apple ID密码或继承设备时,applera1n这…...

ISCC-pwn(2026)

复现一下 文章目录校赛练武pwn1pwn2pwn3pwn4总结校赛练武 pwn1 32位泄露canary后,栈溢出到后门即可。 from pwn import * context.terminal ["tmux","splitw","-h"] context.log_level debugpprocess(./attachment-5) #premote(3…...

TVA与CNN的历史性对决(18)

重磅预告:本专栏将独家连载新书《AI视觉技术:从入门到进阶》精华内容。本书是《AI视觉技术:从进阶到专家》的权威前导篇,特邀美国 TypeOne 公司首席科学家、斯坦福大学博士 Bohan 担任技术顾问。Bohan先生师从美国三院院士、“AI教…...

agentsrc-py:为AI编程助手注入精准源代码上下文,消除代码幻觉

1. 项目概述:为AI编程助手注入“源代码级”的上下文如果你和我一样,深度依赖像 Cursor、Claude Code 这类 AI 编程助手来提升开发效率,那你一定也踩过同样的坑:当你让助手帮你写一个基于 Pydantic 的数据验证,或者调用…...

事件驱动架构中的状态机模式:ralph-loop实现异步工作流管理

1. 项目概述:一个“自循环”的Ralph最近在折腾数据管道和API集成时,我遇到了一个挺有意思的项目:Endogen/ralph-loop。乍一看名字,你可能会有点懵,ralph?这不是个名字吗?怎么还“loop”上了&…...

System V 进程间通信:共享内存、消息队列与信号量

文章目录1、共享内存简介与原理2、共享内存API接口2.1、shmget(创建/获取)2.2、shmat(映射)和shmdt(解除挂接)2.3、shmctl(控制)3、共享内存应用4、消息队列(了解&#x…...

5个步骤彻底解决MelonLoader加载问题:从安装到调试的完整指南

5个步骤彻底解决MelonLoader加载问题:从安装到调试的完整指南 【免费下载链接】MelonLoader The Worlds First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono 项目地址: https://gitcode.com/gh_mirrors/me/MelonLoader 你是否…...

终极指南:5分钟搭建免费网盘直链解析服务,告别限速烦恼

终极指南:5分钟搭建免费网盘直链解析服务,告别限速烦恼 【免费下载链接】netdisk-fast-download 聚合多种主流网盘的直链解析下载服务, 一键解析下载,已支持夸克网盘/uc网盘/蓝奏云/蓝奏优享/小飞机盘/123云盘等. 支持文件夹分享解析. 体验地…...

计算机毕业设计 | SpringBoot+vue编程训练系统设计与实现 在线考试系统(附源码+论文)

1,绪论 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理编程训练系统的相关信息成为必然…...

割草机器人行业市场分析报告【5】- 政策、标准与合规环境

第5章:政策、标准与合规环境 5.1 各国环保政策、燃油设备禁令时间表 环保政策与燃油禁令是驱动割草机器人需求的结构性力量,其影响力正在加速显现。...

如何快速配置FF14智能钓鱼计时器:渔人的直感完全指南

如何快速配置FF14智能钓鱼计时器:渔人的直感完全指南 【免费下载链接】Fishers-Intuition 渔人的直感,最终幻想14钓鱼计时器 项目地址: https://gitcode.com/gh_mirrors/fi/Fishers-Intuition 想要在《最终幻想14》中成为钓鱼大师吗?渔…...

安全认证与访问控制

文章目录One Time Password一次性密码平台认证Basic Authentication 基本认证Digest Auth 摘要认证NTLM认证协议Kerberos 网络身份验证协议Token Authentication 令牌认证OAuth Authentication 第三方授权登录API Key AuthenticationSession-Cookie 会话认证ip白名单/白名单认证…...

如何通过SQL改写避免走全表扫描_添加过滤条件与强制索引提示

索引不会自动生效,需WHERE匹配最左前缀且无函数/类型转换;JOIN驱动表选择、OR/IS NULL处理、数据分布变化均影响索引使用,优化需综合评估数据分布、查询频率与写入压力。WHERE 条件没写对,索引根本不会用MySQL 和 PostgreSQL 都不…...

多语言下拉选择器的统一状态管理与 sessionStorage 持久化实践

本文详解如何通过 jQuery 统一控制多个语言切换下拉框&#xff08;<select>&#xff09;的状态同步、初始渲染与持久化&#xff0c;避免因事件绑定混乱或 sessionStorage 未初始化导致的显示错乱问题。 本文详解如何通过 jquery 统一控制多个语言切换下拉框&#xf…...

操作系统 | 处理机调度全解析

&#x1f355; 操作系统的“外卖派单员”&#xff1a;CPU 调度与死锁全攻略 &#x1f69a;&#x1f4a8;大家好&#xff01;&#xff01;&#xff01;☕️想象一下&#xff0c;你是一个拥有无限披萨&#xff08;CPU时间&#xff09;的披萨店老板&#xff0c;而你的店里只有一个…...

HarmonyOS应用开发全流程深度解析:从入门到精通的20000字指南

第一章 鸿蒙生态架构与开发理念1.1 鸿蒙操作系统双版本体系 HarmonyOS与OpenHarmony构成华为"18N"全场景战略的技术底座。商业版HarmonyOS由华为维护&#xff0c;集成消费级设备专有功能&#xff1b;开源版OpenHarmony由开放原子基金会管理&#xff0c;适配工业、电网…...

不只是骷髅海:从《亡灵》设定看游戏设计中“死亡”主题的5种高级玩法与平衡性设计

超越骷髅海&#xff1a;游戏设计中死亡主题的五大高阶玩法与平衡艺术 当《魔兽争霸3》中死亡骑士高举霜之哀伤召唤食尸鬼大军时&#xff0c;玩家第一次体验到亡灵军团"越打越多"的独特快感。但二十年后的今天&#xff0c;单纯的数量压制早已无法满足硬核玩家对策略深…...

达梦数据库修改参数方法

一般用sp_set_para_value()修改新版本达梦支持alter system修改&#xff0c;很类似oracle的命令具体语法树尝试一下 19:42:34 SYSDBALOCALHOST:5236> alter system set dmsql_et_cnt50000 spfile; DMSQL 过程已成功完成 已用时间: 11.967(毫秒). 执行号:13217. 19:42:48 SY…...

如何用3步快速掌握ChanlunX缠论自动化分析终极方法

如何用3步快速掌握ChanlunX缠论自动化分析终极方法 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX 你是否在股票技术分析中感到困惑&#xff1f;面对复杂的缠论理论&#xff0c;手动绘制笔、段、中枢结构…...

3大架构维度解析开源直播聚合解决方案:Dart跨平台技术深度实践

3大架构维度解析开源直播聚合解决方案&#xff1a;Dart跨平台技术深度实践 【免费下载链接】dart_simple_live 简简单单的看直播 项目地址: https://gitcode.com/GitHub_Trending/da/dart_simple_live 当技术决策者面对多平台直播整合的复杂挑战时&#xff0c;最核心的痛…...

Windows 10能运行安卓应用吗?一个开源项目带来的惊喜答案

Windows 10能运行安卓应用吗&#xff1f;一个开源项目带来的惊喜答案 【免费下载链接】WSA-Windows-10 This is a backport of Windows Subsystem for Android to Windows 10. 项目地址: https://gitcode.com/gh_mirrors/ws/WSA-Windows-10 还在为Windows 10无法运行安…...