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) 原型模式 建造者模式 适配 ...
随机推荐
- python中的时间处理
python程序编写中的时间处理涉及三种: 1.时间的显示: 2.时间的转换: 3.时间的运算. 时间处理模块:time模块 时间的三种表示方式: ①时间戳,从1970年1月1日开始,每过1s增加1, ...
- 查找大量时序遥感文件缺失、不连贯的成像日期:Python代码
本文介绍批量下载大量多时相的遥感影像文件后,基于Python语言与每一景遥感影像文件的文件名,对这些已下载的影像文件加以缺失情况的核对,并自动统计.列出未下载影像所对应的时相的方法. 批量下载 ...
- 云原生周刊:Prometheus 3.0 Beta 发布|2024.09.16
开源项目推荐 Kuma Kuma 是一个现代化的基于 Envoy 的服务网格,能够在每个云平台上运行,支持单区域或多区域部署,兼容 Kubernetes 和虚拟机.凭借其广泛的通用工作负载支持,以及对 ...
- 深入浅出 Kubernetes 项目网关与应用路由
KubeSphere 项目网关与应用路由提供了一种聚合服务的方式,将集群的内部服务通过一个外部可访问的 IP 地址以 HTTP 或 HTTPs 暴露给集群外部.应用路由定义了这些服务的访问规则,用户可 ...
- 云原生爱好者周刊:在浏览器中运行 Linux 系统 | 2022-10-10
Confluent 官网已经放出了<Kafka 权威指南第二版:大规模实时数据和流处理>,相比于第一版新增了以下内容: Kafka 管理客户端概述: API 更新到最新的 Apache K ...
- SpringBoot之后端图形验证码实现
此验证码的实现没有用到太多的插件,话不多说直接上代码,大家拿过去就可以用. 1.验证码类 package com.youyou.login.util.validatecode; import lomb ...
- 解决IDEA中SpringBoot框架使用@Autowired注解方式注入mapper对象出现红色下划线的问题
点击编译器左上角File,点击settings进入设置界面,找到图片中对应的位置,将红线圈住的地方改为Warning,点击右下角的Apply即可
- DOS批处理实验
DOS批处理实验 一. 实验目的 建立一个.bat文件,清理windows垃圾文件. 二. 实验内容和要求 在Windows环境下建立一个.bat文件实现对垃圾文件.安装程序.编辑文件时产生的临时文件 ...
- 批量登录软件,聚合登录,同时支持:小红书,快手,B站,视频号,淘宝光合,公众号一键运营管理,降本增效。
在数字化时代,我们常常需要管理多个在线账号,这不仅增加了管理的复杂性,还可能导致效率的降低.为了帮助用户简化这一过程,我们推出了六款功能强大的聚合登录软件,涵盖了小红书.快手.B站.视频号.公众号和淘 ...
- g++ error unrecognized command-line option ‘-std=c++23’; did you mean ‘-std=c++03’?
编译一个C++的项目代码,报错: g++: error: unrecognized command-line option '-std=c++23'; did you mean '-std=c++03 ...