UML扩展机制

介绍

在当今的市场中,组织需要不断发展。这导致了一场知识革命,通过战略性地获取、交流和利用知识资产,使组织能够灵活响应。面向对象和基于组件的开发是这场革命的主干,它是统一建模语言(UML),将它们结合在一起成为进化的必要基础。但是,正是UML扩展机制进一步推动了这一点,并使组织能够通过战略捕获、通信和利用智能资产,真正以敏捷和响应的方式发展。

UML是一种通用的、工具支持的、标准化的建模语言,用于指定、可视化、构建和记录各种系统密集型流程的所有元素。它促进了以用例为驱动、以体系结构为中心、迭代和增量的过程,这是面向对象和基于组件的过程。UML广泛地应用于不同类型的系统、领域、方法和过程,这就是为什么它是如此流行和广泛使用的语言。

然而,尽管UML定义得很好,但在某些情况下,您可能会发现自己希望以某种可控的方式弯曲或扩展语言,以便将其定制到特定的问题域,以简化目标的通信。这就是UML扩展机制出现的地方。

有四种常见的机制可以在整个语言中一致地使用,即规范、公共划分、修饰和可扩展性机制,我们将在这里讨论这些机制;但是,这项工作的主要焦点将是这四种机制中的后者,即可扩展性机制。

规格 (Specification)

前面提到的第一个扩展机制称为规范。这是一个很容易理解的术语,因为我们都知道规范在我们的日常语言中意味着什么。在UML中,它同样简单。

通过使用规范,我们基本上更详细地指定了一些内容,以便以更清晰和简洁的方式向我们展示所指定术语的角色和含义。例如,我们可以通过定义一组完整的属性、操作、完整的签名和行为来为类 (Class) 提供丰富的规范。然后我们将对该类的能力和局限性有一个更清晰的概念。规范可以包含在类中,也可以单独指定。

 

共同部门 (Common Divisions)

这是UML提供给我们的第二个扩展机制。为了区分两个看起来非常相似或彼此密切相关的事物,使用了共同的划分。有两个主要的共同部分:抽象与表现,接口与实现。

在前者中,我们主要讨论一个类和一个对象之间的区别,其中类是一个抽象,对象是该类的一个清晰的表现。
大多数UML构建块都有这种类/对象区别,例如用例、用例实例等。

在第二个常见的划分(接口与实现)中,我们说接口声明了某种契约或协议,而实现则表示对该契约的一种具体实现。然后,实现负责执行接口。

装饰物 (Adornments)

修饰是文本或图形项,可以添加到UML构建块的基本符号中,以便可视化该元素规范中的某些细节。例如,让我们考虑关联,它在最简单的符号中由一行组成。现在,这可以用一些额外的细节来修饰,比如角色和每一端的多样性(见下图)。

《UML扩展机制》

最重要的装饰品之一是便条。这是一个图形符号,用于向元素(或元素集合)添加一些注释或约束,以帮助澄清正在创建的模型。我们可以使用注释来附加一些额外的信息到我们的模型中,例如解释、需求或者仅仅是一个O观察(见下图)。

《UML扩展机制》
值得一提的是,注释不具有语义影响,即注释的内容不会以任何方式改变其所附模型的意义。

可扩展性机制 (Extensibility Mechanisms)

扩展性机制允许您通过添加新的构建块、创建新的属性和指定新的语义来定制和扩展UML,以便使语言适合您的特定问题域。UML定义了三种常见的可扩展性机制:原型、标记值和约束。

刻板印象 (Stereotypes)

构造型允许您扩展UML的词汇表,这样您就可以创建新的模型元素,这些元素是从现有的元素派生的,但是具有适合您的问题域的特定属性。它们用于对UML构建块进行分类或标记,以便引入新的构建块,这些构建块使用您所在领域的语言,看起来像原始的或基本的模型元素。

例如,在建模网络时,可能需要有表示路由器和集线器的符号。通过使用构造型节点,您可以将这些内容显示为原始构建基块。

作为另一个例子,让我们考虑Java或C++中的异常类,有时可能要对它们进行建模。理想情况下,你只想让他们被扔和抓住,其他什么都不想。现在,通过用适当的刻板印象标记它们,您可以在您的模型中将这些类变成第一类公民;换句话说,您可以将它们显示为基本的构建基块。

刻板印象还允许您引入新的图形符号,为使用特定领域词汇表的模型提供视觉提示(见下图)。

从图形上看,一个刻板印象被呈现为一个由行会者包围的名称,并放置在另一个元素的名称之上(见下图)。或者,可以使用与该构造型关联的新图标来呈现构造型元素(见图)。

 

《UML扩展机制》

标记值 (Tagged Values)

标记值是用于指定模型元素的关键字-值对的属性,其中关键字是属性。它们允许您扩展UML构建块的属性,以便在该元素的规范中创建新的信息。

可以为现有的模型元素或单个原型定义标记值,以便具有该原型的所有内容都具有该标记值。值得注意的是,标记值不等于类属性。相反,您可以将标记值视为元数据,因为它的值应用于元素本身而不是其实例。

标记值的最常见用法之一是指定与代码生成或配置管理相关的属性。例如,可以使用标记值来指定映射特定类的编程语言,或者使用它来表示组件的作者和版本。

作为标记值有用的另一个例子,考虑一个项目的发布团队,该团队负责组装、测试和部署发布。在这种情况下,跟踪每个主要子系统的版本号和测试结果可能是可行的,因此将这些信息添加到模型中的一种方法是使用标记值。

从图形上看,标记值呈现为一个由括号括起来的字符串,该字符串放在另一个模型元素的名称下面。字符串由名称(标记)、分隔符(符号=)和值(标记)组成(见下图)。

《UML扩展机制》

约束条件 (Constrants)

约束是用于指定语义和/或条件的属性,对于模型的元素,这些属性必须始终保持为真。它们允许您通过添加新规则或修改现有规则来扩展UML构建基块的语义。

例如,在建模硬实时系统时,用一些附加信息(如时间预算和截止日期)修饰模型可能很有用。通过使用约束条件,可以很容易地捕获这些定时需求。

从图形上看,约束呈现为一个由括号括起来的字符串,该字符串放在关联元素附近,或者通过依赖关系连接到元素。这个符号还可以用来修饰模型元素的基本符号,以便可视化元素规范中没有图形提示的部分。

例如,您可以使用约束表示法来提供一些关联的属性,例如顺序和可更改性(见下图)。

《UML扩展机制》

结论

建模就是沟通。当使用UML时,您将获得指定、可视化、构造和文档化软件密集型系统元素所需的所有工具。但是,在某些情况下,您可能希望在线条之外添加颜色,即弯曲或扩展建模语言,以便根据项目的特定需求对其进行形状和增长。

UML提供了几种扩展机制,允许您在没有修改基础建模语言。这些机制允许您添加新的构建基块,修改现有基块的属性,甚至更改它们的语义学。

UML扩展机制不仅提供了一种通信手段,而且也是一个框架,用于了解发展文化,使文化得以发展。他们可能不能满足所有的需要在一个项目的开发过程中产生的,但是它们确实适应了大部分建模者所需的部分裁剪和定制以简单的方式进行这很容易实现。但是,必须记住,扩展与UML的标准形式有很大的不同,并且通过使用它,因此可能会遇到一些互操作性问题。因为这个原因在使用扩展机制之前,必须仔细权衡收益和成本,只有在绝对必要的时候才这样做。

《UML扩展机制》 UML推荐软件 – Visual Paradigm Online

《UML扩展机制》

用例图

《UML扩展机制》

类图

《UML扩展机制》

活动图

《UML扩展机制》

组件图

《UML扩展机制》

部署图

《UML扩展机制》

包装图

《UML扩展机制》

状态机图

《UML扩展机制》

序列图

《UML扩展机制》

ER图

《UML扩展机制》

数据流图

 

    原文作者:Warren2Lynch
    原文地址: https://blog.csdn.net/chktsang/article/details/88860976
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞