UML之图框架标题类型之谬
在UML中,我们可以用一个被称为“框架”的边界框围绕着UML图形,当然在很多情况下,框架可以省略,也就是不将它描画出来。但是对于某些图形类型而言,框架具有语义意义,在这些图形类型中,图形元素可以放置在框架之内或跨越框架边界以表示不同的含义。因此在这些图形类型中,使用框架是必要的,以便可以表达某些特定的含义。除了这个目的之外,其他情况下是否使用框架通常由建模者自行决定。
当我们决定使用框架时,我们需要为框架设定一个“框架标题”,框架标题是当前图形的名字。
框架标题位于框架的左上角,它书写于一个被砍掉了右下角的矩形而形成的不规则五边形内,如下图所示。
框架标题的命名并不是随意的,而是有其命名规则,它由两个可选部分与一个必选部分组成:[][]
其中可选的kind值应为下列值之一:activity(或act)、class、component(或cmp)、deployment(或dep)、interaction(或sd)、package(或pkg)、state machine(或stm)、use case(或uc)。
自然而然地,我们会认为kind表明了图形的类型。例如,在下图中,它描画了一个actor和两个use case,不出意外的话,你会将它的kind选择为use case(或者uc)。然而,不幸的是,这是错误的。
事实上,由于一组use case通常应当属于一个包(如果你没有意图让这些use case隶属于某个特定的包,那它们将自动隶属于一个被称为“默认包”的包),而描画的这一组use case是在说明“当前包”中有哪些use case,其kind应当是package(或pkg)。所以正确的图形应当如下图所示。
我们可以更进一步地考虑更多的图形所在框架标题kind值的选择设定。通常对于大多数结构图(structure diagram)和用例图(use case diagram)而言,其kind都应当被设定为package(或pkg);而对于行为图(behavior diagram)则一般使用与图形匹配的类型,但它依然有一个令人迷惑的地方需要注意,即所有的交互图(interaction diagram,包含时序图sequence diagram、时序时态图timing diagram、交互总览图interaction overview diagram、通信图communication diagram)框架标题的kind应被设定为sd。
准确选择框架标题的kind值,关键点在于要理解当前框架所包含的图的真正含义是什么。例如上例中“描画了一个actor和两个use case”的图形,它描述的是一组use case及一个actor与它们的关联,所以这个图形并不是用来描述单个use case的,它描述的是“一组在一起”的use case,因此其框架标题kind也就不能是use case(或者uc),相反它应当是容纳这一组use case的“包”,所以其kind应为package(或pkg)。
如果上面的说明还是不能清晰说明框架标题kind如何选择,我们可以看另外一个更明确的例子。
假设当前我们需要用图描绘类Car,这个图将只描绘与类Car的定义相关的内容,也就是类Car的内部信息。类Car可能的一个描绘不完整地图如下:
由于上图的目的就是描述类Car的,图中的所有元素是属于类Car的,因而,上图框架标题的kind应当被设定为class。
假设在另外一张图中,它包含了类Car,如下图所示。图中类Car作为一个元素呈现而不是图的全部内容(在这张图中描绘类Car时,如果类Car已在其他地方单独描画,则可以省略类Car的细节,仅保留类名称Car及类的图形即可)。如果需要,图中还可以有类Car的一个实例或多个实例,或者也可添加其他元素,它们共同被容纳在一个包中,因此这张图的框架标题kind应设定为package(或pkg)。
而行为图的框架kind值之所以一般使用与图形匹配的类型,其原因在于一个行为图所描述的就是当前的“那个”行为,而不是“一组”行为,故其框架标题类型应与当前行为图匹配。
参考文献:
1.《OCUP 2 Certification Guide_ Preparing for the OMG Certified UML 2.5 Professional 2 Foundation Exam》 Michael Jesse Chonoles
2.《OMG Unified Modeling Language (OMG UML) Version 2.5.1》
UML之图框架标题类型之谬的更多相关文章
- (转)uml各类图
原文:http://www.cnblogs.com/way-peng/archive/2012/06/11/2544932.html 一.UML是什么?UML有什么用? 二.UML的历史 三.UML的 ...
- 练习UML类图中的类的表示
第一部分:UML类图(class diagram) 类图用来展现一组类.类的特性以及其类相互之间的关系,一个类图由一组类以及它们之间的关系构成,类图用来对系统的领域概念以及静态结构进行建模. 在软件模 ...
- 从零开始单排学设计模式「UML类图」定级赛
阅读本文大概需要 3.5 分钟. 本篇是设计模式系列的开篇,虽然之前也写过相应的文章,但是因为种种原因后来断掉了,而且发现之前写的内容也很渣,不够系统. 所以现在打算重写,加上距离现在也有一段时间了, ...
- UML 序列图详解
现在是二月,而且到如今你或许已经读到.或听到人们谈论UML 2.0 —— 包括若干进步的 UML 的新规范,所做的变化.考虑到新规范的重要性,我们也正在修改这个文章系列的基础,把我们的注意力从 OMG ...
- 23种经典设计模式UML类图汇总
在这里23种经典设计模式UML类图汇总 创建型模式 1.FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基 ...
- uml各类图
原文:http://www.cnblogs.com/way-peng/archive/2012/06/11/2544932.html 一.UML是什么?UML有什么用? 二.UML的历史 三.UML的 ...
- 设计模式学习(二):面向对象设计原则与UML类图
一.UML类图和面向对象设计原则简介 在学习设计模式之前,需要找我一些预备知识,主要包括UML类图和面向对象设计原则. UML类图可用于描述每一个设计模式的结构以及对模式实例进行说明,而模式结构又是设 ...
- 【软件设计】UML类图怎么看
前言 无论使用哪种语言,都离不开面向过程与面向对象两个流派,而类图是面向对象程序设计中至关重要的一种软件表达形式,如何看懂类图,并设计好的软件架构,是我们作为软件工程师必不可少的技能之一. 今天小黑把 ...
- Java 大黑话讲解设计模式 -- UML类图
目录 1.啥是UML类图? 2.UML类图有啥用? 3.正式理解UML类图 4.使用idea画第一个UML类图 5.类之间的关系图[必须牢记] 6.类之间的关系 6.1.依赖 6.2.泛化 6.3.实 ...
- 设计模式学习笔记(详细) - 七大原则、UML类图、23种设计模式
目录 设计模式七大原则 UML类图 设计模式分类 单例模式 工厂设计模式 简单工厂模式 工厂方法模式(使用抽象类,多个is-a) 抽象工厂模式(使用接口,多个like-a) 原型模式 建造者模式 适配 ...
随机推荐
- 云原生周刊:Score 成为 CNCF 沙箱项目|2024.7.15
开源项目 Trident Trident 是由 NetApp 维护的全面支持的开源项目.它从头开始设计,旨在通过行业标准接口(如容器存储接口 CSI)帮助您满足容器化应用程序对持久性存储的需求. Mo ...
- 云原生周刊:Kubernetes 1.27 服务器端字段校验和 OpenAPI V3 进阶至 GA
开源项目推荐 KubeView KubeView 是一个 Kubernetes 集群可视化工具和可视化资源管理器.它允许用户在集群内部运行命令,并查看集群内部的资源使用情况.容器运行状态.网络流量等. ...
- 一文彻底弄懂MySQL的各个存储引擎,InnoDB、MyISAM、Memory、CSV、Archive、Merge、Federated、NDB
MySQL 中的存储引擎是其数据库管理系统的核心模块,用于处理不同类型的数据存储和检索操作.每种存储引擎都有自己的特点,适用于不同类型的应用场景.MySQL 最常用的存储引擎包括 InnoDB.MyI ...
- 关于Java后台处理前端用户传来数据过大,超过数据库字段设置长度导致的异常问题处理
在DTO bean对象上使用javax验证(如最小值,最大值等,请参阅here).
- 蚂蚁KAG框架核心功能研读
作者介绍: 薛明:拥有近10年在医疗和零售领域应用机器学习和人工智能的经验.曾就职于通用电气.复星医药等企业.长期专注于医学图像.自然语言处理以及数据科学的研发工作,如训练/推理框架.数据挖掘与分析等 ...
- 使用 vscode 简单配置 ESP32 连接 Wi-Fi 每日定时发送 HTTP 和 HTTPS 请求
最新博客文章链接 文字更新时间:2024/11/07 由于学校校园网,如果长时间不重新登陆的话,网速会下降,所以想弄个能定时发送 HTTP 请求的东西.由于不想给路由器刷系统,也麻烦.就开始考虑使用局 ...
- chapter 3 introduction to computer science
主机文件: <chapter3.docx>
- vivo 游戏中心包体积优化方案与实践
作者:来自 vivo 互联网大前端团队- Ke Jie 介绍 App 包体积优化的必要性,游戏中心 App 在实际优化过程中的有效措施,包括一些优化建议以及优化思路. 一.包体积优化的必要性 安装包大 ...
- 国密SSL证书,为政务数据安全保驾护航
随着数字化转型的加速,政务信息化建设已成为提升政府服务效率和质量的关键.近期,国家相关部门发布了<互联网政务应用安全管理规定>,为政务应用的安全管理提供了明确的规范和要求.该规定自2024 ...
- vue中使用百度地图
vue-cli创建的项目中使用百度地图,样式如下: 根据后台返回的不同的信息,展示不同的标记以及对应的标记信息,点击鼠标后展示弹窗 首先,引入vue-baidu-map,以展示地图,对应的命令是 np ...