发布时间:2026/7/14 23:18:00
【需求工程】统一建模语言UML类图中关联、多样性和角色 UML类图关联、多样性、角色 完整解读这是UML类图的基础知识点分为图示样例 文字定义两部分我拆开逐点讲清楚。一、先看懂上面的建模样例人 ↔ 车辆1. 两个「类」人属性 姓名、出生日期车辆属性 车辆ID、生产年份中间实线代表两个类之间的关联关系关联名称是「拥有」。2. 多样性多重度图上数字1和0..*多样性写在关联线的两端描述一端的1个实例可以对应另一端多少个实例靠近「人」这端标注 1含义1台车辆只能属于1个人一辆车不能有多个车主。靠近「车辆」这端标注 0…*0 可以没有* 任意多台含义1个人可以0台、1台、多台车辆有人没买车有人有多辆车。整体关系一对多1对0或多一个人 → 0/多辆车一辆车 → 仅一个人。3. 角色图中虚线标注的文字角色写在对应类的一侧用来定义这个类在本次关联里的身份人这边角色所有者人在“拥有车辆”这件事里身份是车主、所有者。车辆这边角色自身拥有的车辆在关联里是被人所拥有的物品。4. 关联名称「拥有」写在两根多样性标注中间代表这条关联的业务语义人和车辆之间的关系动作是“拥有”。二、下方文字逐句翻译解释类之间的关联是通过边界来描述的。可选择性地为关联定义一个名称。两个矩形类之间的实线就是关联用来表达两个事物存在业务联系关联名称本例“拥有”是可选加的不加也合法加了方便看懂业务含义。另外多样性可以被注释在每一个关联的末端。多样性是关于类的实例层级的声明并且描述一个类中可以以一种特定的方式与另外一个类中所定义实例数量进行关联的实例数量。多样性多重度写在关联线两头它描述实例数量对应规则不是类与类的关系是真实数据行的对应关系举例子类“人”、类“车辆”实例就是张三、奔驰车、宝马车多样性1和0..*规定一条车辆数据只能绑定一条人数据一条人数据可以绑定0/多条车辆数据。在关联的一端或两端注释可选择性的角色能够进一步精炼出与关联相关的这个类的实例含义。角色是可选项两端可以都写、只写一端也可以不写作用区分同一个类在不同关联里的身份。拓展举例“人”既可以是车辆的「所有者」也可以是订单里的「购买人」用角色就能区分同一类在不同关系里的身份。三、补充关键知识点1. 常见多样性符号含义标注含义1有且仅有1个0..10个或1个可选最多一个0..*/*0个、1个、多个无上限1..*至少1个最多无限多2. 关联、多样性、角色三者分工关联线说明两个类有关系关联名说明是什么关系拥有、购买、租用多样性两边实例数量对应规则一对多、多对多、一对一角色这个类在关系里是什么身份所有者、商品、买家。3. 套回样例总结一句话一个所有者人可以拥有0台或多台自身拥有的车辆而每一台车辆只能归属1位所有者。回答2第一步先看这张图图一画了什么这张图描述了“人”和“车辆”在现实世界中的归属关系。两个对象类人关注他的姓名和出生日期。车辆关注它的车辆ID和生产年份。一条关系线关联叫做“拥有”。两个“身份标签”角色站在“人”这边角色叫“所有者”说明这个人是以车主的身份参与关系的。站在“车辆”这边角色叫“自身拥有的”说明这辆车是被拥有的资产而不是租的或借的。两串数字多样性 / 多重性图中标注了0.虽然有点模糊但结合上下文它通常是0..*或0..1这类符号的简写或OCR识别偏差。我们重点理解它的含义。第二步用图二的“规则”来解读这张图图二告诉我们类图上的线条、数字和标签分别有什么用。结合图一1. 什么是“关联”就是那条连线图二说类之间通过边界连线来描述关系。图一实例人和车辆之间画了一条线名字叫“拥有”。这明确表示这两个类在业务上是有联系的不是孤立存在的。2. 什么是“角色”就是线两端的身份标签图二说在关联的一端或两端注释角色能进一步精炼类的实例含义。图一实例如果没有角色你只知道“人和车有关系”但具体是车主司机还是代驾说不清。在人的那一端标上“所有者”说明人在这段关系里是“车主”。在车的那一端标上“自身拥有的”说明车在这段关系里是“被拥有的财产”。作用消除歧义。明确告诉你这里的“拥有”是“所有权归属”而不是“临时使用权”。3. 什么是“多样性多重性”就是线两端的数字图二说多样性是关于实例层级的声明描述“这一端的一个实例能关联到另一端多少个实例”。图一实例假设数字是0..*或1我们按标准逻辑推演看“人”这一端如果写的是0..*意思是“一辆车可以被 0 到多个 人拥有吗”不通常一辆车只有一个法定车主。所以更合理的解读是这里的数字在约束“人的数量”。正确的看图方法数字写在哪一端就约束哪一端的数量。假设写在车辆那端是0..*零到多写在人这端是0..1零或一。翻译成业务规则一个人所有者可以拥有 0 辆或多辆0…*车。有人没车有人是土豪有多辆。一辆车自身拥有的只能被0 个或 1 个0…1人所拥有。新车未售出时是0个主人卖出后是1个主人杜绝了一辆车登记在两个人名下的歧义。第三步三者合体起到什么作用把关联线角色标签多样性数字结合起来就能精准地定义出一条“业务铁律”不需要再用大段文字描述。这张图最终想表达的唯一、精准含义是在这个系统中我们只关心“所有权”关系。一个人作为所有者可以拥有任意多辆车包括零辆而一辆车作为被拥有的资产最多只能归属于一个人也可能暂时没主人。总结为什么要费劲画这个如果没有角色和多样性只用一条线写个“拥有”程序员可能会懵是“父子关系”的拥有继承是“司机开车”的拥有使用是“车主”的拥有所有权加上角色明确了是“所有者/资产”加上数字多样性明确了是一对多还是多对多。这样后续建数据库表比如外键怎么放、写代码逻辑比如校验一个人名下最多几辆车就有了绝对精确的依据产品经理和开发就不会吵架了。多样性 - 示例由上图判断一下描述是否正确三名导演可以合作导演一部影片。判断该描述不正确错误。根据你提供的 UML 类图或领域模型“三名导演合作导演一部影片”是不被允许的。为了帮你彻底看懂这张图我们分三步来拆解图中的“多重性多样性”约束1. 复习 UML 多重性的读法关键在 UML 中靠近哪个类的数字就约束“这个类的实例”能关联对方“多少个”实例。例如A ——— B如果 A 旁边写着1B 旁边写着0..*含义是一个 A 实例可以关联 0 到多个 B 实例而一个 B 实例必须且只能关联 1 个 A 实例。2. 针对“导演”与“电影”的关联重点图里关于“由某某执导”这条关联线的约束是靠近“导演”这一端写的是1含义一部电影即一个电影实例必须恰好关联 1 位导演。这是强制性的一对一或严格的一对一上限约束这意味着系统规定“一部电影只能有唯一的导演”。靠近“电影”这一端写的是1..3含义一位导演可以执导 1 到 3 部电影。这约束的是“一位导演名下可以挂几部电影”而不是“一部电影可以有几位导演”。3. 结论与陷阱提示你的描述是“三名导演合作拍一部电影”这意味着“一部电影”对应“3 个导演”。这在逻辑上违反了导演端写的1上限为 1的强制性约束。正确的解读是在这个模型里一部电影只能由 1 位导演执导但反过来这 1 位导演可以同时执导 1 到 3 部不同的电影。特别提示帮你避免混淆图中电影端也写着1..3它可能让你误以为“一部电影可以有 1 到 3 个导演”。但请一定看准数字所在的位置——1..3写在电影的对面靠近导演一侧它是在说导演的能力上限而不是电影的名额上限。如果想让“三位导演合拍一部电影”成立导演那一端的数字必须改成1..3或*而不是现在的1。

相关新闻

2026/7/14 23:18:00

AI Agent Skills实战:流程封装与复用技术详解

1. Agent Skills入门:把重复流程封装成可复用的能力包最近在AI领域,Agent Skills这个概念越来越火。简单来说,它就是把那些你每天要重复操作的流程打包成一个"技能包",下次要用的时候直接调用就行。就像你手机里的快捷指…

2026/7/14 23:18:00

遗传算法工业级调参与可解释性实践指南

1. 项目概述:从“会跑”到“跑得明白”的遗传算法进阶实践你手头刚跑通一个遗传算法示例,种群迭代了200代,目标函数值从1500掉到了87,屏幕上跳着一串数字——但你心里没底:这结果靠谱吗?为什么交叉概率设0.…

2026/7/14 23:18:00

工业负载控制:TPD2017FN与PIC18LF45K50的智能解决方案

1. 工业负载控制的核心挑战与方案选型在工业自动化现场,电感和电阻负载的控制一直是工程师面临的棘手问题。去年我在某汽车零部件生产线升级项目中,就曾遇到过电磁阀频繁烧毁的故障——这正是由于感性负载的反电动势没有得到妥善处理。经过多次试验&…

2026/7/15 0:13:30

ChatGPT技术文档自动化实践全链路(企业级落地手册):覆盖需求分析→结构建模→AI润色→人工校验→ISO/GB标准对齐

更多请点击: https://kaifayun.com 第一章:ChatGPT技术文档自动化实践全链路概览 技术文档自动化正从“可选优化”演变为研发流程中的关键基础设施。本章聚焦以ChatGPT为核心能力引擎,构建端到端的技术文档生成与维护闭环——覆盖源码解析、…

2026/7/15 0:13:30

LibcarePlus完全指南:如何无需重启实现Linux应用热补丁?

LibcarePlus完全指南:如何无需重启实现Linux应用热补丁? 【免费下载链接】libcareplus LibcarePlus delivers live patches to any of your Linux executables or libraries at the runtime, without the need for restart of your applications. 项目…

2026/7/15 0:08:29

【1980-2025】中科院30m土地利用/覆盖数据|全国|TIFF

🔍 数据简介 本次分享1980-2025年全国30m分辨率土地利用/土地覆盖栅格数据(CNLUCC),由中科院地理科学与资源研究所研制,权威基准数据。 数据覆盖全国全域,分为两个标准版本,并已更新至2023/2025…

2026/7/14 12:47:32

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾在网易云音乐下载了心爱的歌曲&#…

2026/7/14 19:23:19

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境随着新能源汽车行业的快速发展,充电通信协议的标准化和测试验证变得尤为重要。GB/T 27930-2023作为中国智能充电协议的最新版本,对充电机与电动汽车之间的通信提出了更严格…

2026/7/14 18:30:06

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 还在为Linux系统无法识别RTL8852BE Wi-Fi 6网卡而烦恼吗?&#x1f…

2026/7/15 0:08:29

【LINUX】驱动

【LINUX驱动】【字符设备】【中断】【Platform】【网课 设备树】【GPIO】【PINCTRL】【INPUT】【IIC】【SPI】【网络驱动】【屏幕驱动】【一 设备树】【二 内核模块编译】【三 基本驱动框架】【四 Platform总线设备驱动框架】【五 驱动子系统】【六 综合】

2026/7/15 0:08:29

【1982-2026】全国高精度建筑轮廓|村级精度|SHP矢量

🔍 数据简介 本次分享1982-2026年全国村级精度建筑轮廓矢量数据,覆盖全国各省市区县,到村级别精细,为2026年最新实时采集成果,非网传仅60/77个城市的老旧数据。 数据含带高度/不带高度双版本,单体建筑边界精…

2026/7/15 0:08:29

【1975-2026】全国水系水路数据|河流/水库/运河|SHP矢量

🔍 数据简介 本次分享1975-2026年全国高精度水系水路矢量数据,覆盖全国全域,包含河流、水系、水库、运河、湿地、冰川、沟渠等全类别水文要素。 数据集包含双层矢量图层,字段分类清晰、要素齐全,支持2013-2026逐年完整…

2026/7/14 12:47:31

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…