首页 > 其他分享 >图框架标题类型之谬

图框架标题类型之谬

时间:2024-12-20 16:28:04浏览次数:5  
标签:case use 框架 Car kind 标题 图形 之谬

在UML中,我们可以用一个被称为“框架”的边界框围绕着UML图形,当然在很多情况下,框架可以省略,也就是不将它描画出来。但是对于某些图形类型而言,框架具有语义意义,在这些图形类型中,图形元素可以放置在框架之内或跨越框架边界以表示不同的含义。因此在这些图形类型中,使用框架是必要的,以便可以表达某些特定的含义。除了这个目的之外,其他情况下是否使用框架通常由建模者自行决定。

当我们决定使用框架时,我们需要为框架设定一个“框架标题”,框架标题是当前图形的名字。

框架标题位于框架的左上角,它书写于一个被砍掉了右下角的矩形而形成的不规则五边形内,如下图所示。

框架标题的命名并不是随意的,而是有其命名规则,它由两个可选部分与一个必选部分组成:[<kind>]<name>[<parameters>]

其中可选的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值之所以一般使用与图形匹配的类型,其原因在于一个行为图所描述的就是当前的“那个”行为,而不是“一组”行为,故其框架标题类型应与当前行为图匹配。

光头颜说ITicon-default.png?t=O83Ahttps://gtyan.com/archives/8

参考文献:

  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》

标签:case,use,框架,Car,kind,标题,图形,之谬
From: https://blog.csdn.net/mboy2008/article/details/144613719

相关文章

  • 「下载」智慧城市“一网统管”总体框架全解析:整体架构、运营体系规划、具体运营内容、
    智慧城市“一网统管”,通过先进的信息技术手段,实现城市管理的智能化、协同化、精准化和高效化。本文将基于《智慧城市“一网统管”运营研究报告2024》的内容,从发展背景及趋势、“一网统管”运营总体框架、运营体系规划、“一网统管”运营内容、运营工具平台以及智慧城市“一......
  • 基于yolov8的小麦麦穗检测系统,支持图像、视频和摄像实时检测【pytorch框架、python源
       更多目标检测、图像分类识别、目标追踪等项目可看我主页其他文章功能演示:基于yolov8的小麦麦穗检测系统,支持图像、视频和摄像实时检测【pytorch框架、python源码】_哔哩哔哩_bilibili(一)简介基于yolov8的小麦麦穗检测系统在pytorch框架下实现的,这是一个完整的项目,包括......
  • SSM 框架下基于 JAVA 的网络直播带货查询系统设计与 JSP 创新实现
    第一章绪论1.1背景及意义系统管理也都将通过计算机进行整体智能化操作,对于网络直播带货网站所牵扯的管理及数据保存都是非常多的,例如管理员;主页、个人中心、用户管理、商品分类管理、商品信息管理、系统管理、订单管理,用户;主页、个人中心、我的收藏管理、订单管理,前台首......
  • golang单元测试和mock框架的介绍和推荐
    背景介绍:探索golang的单元测试框架,看一下哪种框架是结合业务体验更好的。推荐和不推荐使用的框架,我都会在标题中标注出来,没有标注的表示体验一般,但也没有特别的缺点,观望态度单元测试框架介绍原生testing示例funcTestModifyArr(t*testing.T){ arr:=[3]int{0,1,2}......
  • 网络直播带货查询系统:SSM 框架的 JAVA 设计与 JSP 开发实现
    第三章系统分析3.1系统设计目标网络直播带货网站主要是为了用户方便对商品信息的了解以及查看商品分类和查看订单信息,也是为了更好的让管理员进行更好存储所有数据信息及快速方便的检索功能,对系统的各个模块是通过许多今天的发达系统做出合理的分析来确定考虑用户的可操......
  • RK3566触摸驱动产品实战 配置设备树 I2C驱动框架(附源码)
    引言:相信大家在学完相关驱动框架很少真正的运用在实际的产品案例中,对设备树以及驱动框架还是非常的陌生,其次就是在编写相关驱动还有完成项目任务时的一些思路的引导,这些都是需要补足的,接下来,我们将之前理论知识与此文章内容结合,真正的将理论运用在实际案例中,形成自己的知识框......
  • 【报表查询】.NET开源ORM框架 SqlSugar 系列
    文章目录前言实践一、按月统计没有为0实践二、统计某月每天的数量实践三、对象和表随意JOIN实践四、List<int>和表随意JOIN实践五、大数据处理实践六、每10分钟统计Count实践七、每个ID都要对应时间总结前言在我们实际开发场景中,报表是最常见的功能,业主爸爸们最......
  • C#中的MVVM框架
    在C#中,选择哪个MVVM框架最好用取决于您的具体需求、项目规模以及团队熟悉度。以下是一些在C#中广泛使用的MVVM框架,以及它们的特点和适用场景:Prism优点:支持模块化和插件化,适合大型复杂应用程序。包含事件聚合器,方便组件间通信。支持导航和区域管理。缺点:学习曲线较陡峭。相对较......
  • vue.js框架概述
    vue.js框架是什么Vue.js是一个用于构建用户界面的渐进式JavaScript框架。它被设计为能够轻松地被集成进项目的部分功能,或者用于构建完整的前端应用。Vue.js的核心库只关注视图层,使得它非常容易学习,并且能够和其他库或已有项目整合。同时,Vue.js也完全能够支持构建复杂的单......
  • 大规模可观测性揭秘:Netflix 如何通过标题玩转全球内容发布?
    1导言在Netflix,我们每月管理着上千个全球内容发布项目,每年的投资额高达数十亿美元。确保每部影片在我们平台上的成功和可发现性是我们的首要任务,因为我们的目标是将每个故事与合适的受众联系起来,让我们的会员满意。为了实现这一目标,我们致力于建立强大的系统,提供全面的可观察......