可执行的UML

可执行的UMLXTUML或者xuml)既是软件开发方法,又是高度抽象的软件语言。它是2002年首次在《可执行UML:模型驱动架构的基础》一书中描述的。[1]该语言“结合了UML的子集(统一的建模语言)图形表示法具有可执行语义和时机规则。”[2]可执行的UML方法是Shlaer -Mellor方法.[3]

可执行的UML模型“可以运行,测试,调试并衡量以进行性能。”,,[4]可以编译变成一个不那么抽象的编程语言针对特定执行.[5]可执行的UML支持模型驱动的体系结构(MDA)通过规格独立于平台的模型,和汇编独立于平台的模型进入平台特定模型.[6][7]

概述

可执行UML是更高的级别抽象第三代编程语言。这允许开发人员在应用程序的抽象级别开发。[8]可执行的UML目标关注点分离。这应该提高重用并降低成本软件开发。这也使可执行的UML域成为跨平台。这意味着它与任何特定的编程语言,平台或技术没有绑定。

可执行UML还允许翻译独立于平台的模型(pim)进入平台特定模型(PSM)。可执行的UML方法使该模型值为知识产权,由于该模型是问题空间的完全可执行解决方案。

指定动作动作语言。这意味着可以以优化的形式输出的可执行UML模型的自动生成实现代码。

可执行的UML旨在用作可执行代码和文档。这些模型是对问题空间的图形,可执行的规范,该规范已编译为目标执行。他们也打算成为人类可读.

可执行UML构建块

一个系统由多个主题组成,称为用可执行的UML术语。可执行UML用于模拟一个域的范围抽象它的主题与实施关注无关。最终的域模型由以下元素表示:

  • 域图提供了领域被建模,及其对其他领域的依赖性。
  • 班级图定义课程和课协会对于域。
  • Statechart图定义状态,类或类实例的事件和状态转换。
  • 动作语言定义对模型元素执行处理的操作或操作。

域图

可执行UML需要识别域(也称为:方面[9]或者关注)。 “每个领域都是一个自主世界,居住在概念实体上”[10]每个域都可以独立于系统中的其他域进行建模,从而使关注点分离。例如,自动柜员系统的域可能包括以下内容:

关注点分离使每个领域都可以由各个领域专家独立于系统中的其他域进行开发和验证。

域之间的连接称为桥梁。 “桥是域之间的分层依赖性”。[11]这意味着这些域可以在其他域中提出要求。建议桥梁由不同的领域专家一致。

一个域可以标记为实现表明该域存在并且不需要建模。例如,使用一个数据访问域,该域使用mysql数据库将被标记为实现。

班级图

概念实体,例如有形的事物,角色,事件,互动和规格,特定于被建模的领域课程。课可以属性操作.

这些类之间的关系将指示协会概括。协会可能需要进一步的抽像作为协会课程.

班级图的约束可以用动作语言和对象约束语言(OCL)。

可执行的UML方法限制了可以在可执行UML类图中使用的UML元素。

可执行的UML类图旨在公开有关域的信息。在Statechart图中,过多的复杂性是一个很好的指标,表明应该重新设计类图。

Statechart图

课程具有生命周期,这些生命周期是在可执行的UML中建模的Statechart图。 Statechart图定义了状态过渡事件, 和程序这定义了类的行为。

每个状态只有一个程序在进入该状态。一个过程由动作组成,该操作用动作语言指定。

动作语言

班级和状态模型本身只能提供域名的静态视图。为了具有可执行模型,必须有一种方法来创建类实例,建立关联,对属性,呼叫状态事件执行操作等。 。

动作语义已添加到2001年的UML规范中。动作语义RFP基于以前的动作语言中支持该的工作Shlaer -Mellor方法。现有的动作语言是对象动作语言(OAL),Shlaer -Mellor动作语言(小),动作规范语言(ASL),模型动作规范语言(MASL),[12]该动作语言(高个子),Starr的简洁关系语言(SCRALL),独立于平台的动作语言(PAL)和Pathmate Action语言(PAL)。 Scrall是唯一一种是图形动作语言。

模型测试和执行

一旦建模域,就可以测试独立于目标执行通过执行模型。每个领域都可以经过验证和验证独立于任何其他领域。这允许错误检测到与域相关联,独立于其他系统问题。

确认将涉及人类审查由相关域专家执行的模型以及对可执行UML语义的自动检查。即,检查可执行的UML模型是否符合可执行文件UMLmetamodel.

验证通常将涉及使用可执行的UML工具执行模型。执行可以在模型汇编之前或之后进行。

模型汇编

为了支持目标执行执行,域模型必须翻译成较少的抽象的形式。这个翻译过程称为模型汇编。大多数模型编译器针对已知的编程语言,因为这允许重复使用现有编译器技术。

优化目标的域模型执行原因将降低抽象,对领域独立性产生不利影响,并提高成本重用。在可执行的UML中优化由模型完成编译器自动或通过标记。标记允许特定的模型元素针对特定的下层实施,并允许更广泛的建筑决策,例如指定收藏物体应该是实施的作为一个双链接列表.

MDA术语,模型编译器创建PSM。分离PIMPSM在可执行的UML中可以禁用往返工程师该模型,并确定对PSM.[13]

可执行的UML密钥方面

可执行UML定义了UML子集的执行语义。可执行UML子集的关键方面包括以下内容:

  • 不支持实施特定构造,例如聚合和组成。[14]
  • 概括始终将其视为{完整的,不相交}。
  • 课程之间的关联是总是命名,在两端都有动词短语,指定角色,并在两端指定多重性。
  • 关联末端的倍数仅限于0..1(零对一个), *(零对许多),1(正好一个)或1 .. *(一对一个)。
  • 数据类型仅限于以下核心数据类型:布尔,字符串,整数,真实,日期,时间戳和Qualtary_id,或以下特定域的数据类型之一:数字,字符串,枚举和复合材料。特定于域的数字和字符串数据类型可以代表核心数据类型的子集。特定于域的复合数据类型将始终被视为域内的单个单元。例如,邮寄地址可以声明复合数据类型,但是无法从中提取城市信息。
  • 约束在可执行的UML模型上可以表示为对象约束语言(OCL)或动作语言。

Fuml和Alf

对像管理组已经标准化了基础UML(FUML),这受到可执行UML的强烈影响。

基础UML(ALF)的动作语言,[15]是标准的动作语言规范对像管理组.

也可以看看

出版物

  • 格里·博伊德(Gerry Boyd)(2003)“可执行的UML:未来的图表”。出版于devx.com,2003年2月5日。
  • Shayne Flint,然后克莱夫·布顿(Clive Boughton)(2003)“可执行/可翻译的UML和系统工程”。复杂系统的实用方法(SETE 2003).
  • Shayne Flint,Henry Gardner和克莱夫·布顿(Clive Boughton)(2004)。 “计算教育中的可执行/可翻译UML。”第六届澳大利亚计算教育卷会议论文集30。澳大利亚计算机协会公司
  • H.S.拉曼(2011)。基于模型的开发:应用程序。 Addison-Wesley专业人士。ISBN0-321-77407-8.
  • 斯蒂芬·J·梅洛(Stephen J. Mellor)&Marc Balcer(2002)。可执行UML:模型驱动体系结构的基础。艾迪生·卫斯理。ISBN0-201-74804-5.第1章在线
  • 可执行且可翻译的UML
  • Stephen J. Mellor(2004),可执行和可翻译的UML简介
  • Stephen J. Mellor(2004),一个面向方面建模的框架
  • 克里斯·拉斯特里克(Chris Raistrick);等。 (2004)。具有可执行UML的模型驱动架构。剑桥大学出版社。ISBN0-521-53771-1.
  • Leon Starr(2002)。可执行UML:如何构建类模型。 Prentice-Hall。ISBN0-13-067479-6.

参考

  1. ^Mellor和Balcer 2002
  2. ^Starr 2002,第1页。 3。
  3. ^G. O'Keefe(2006)“ UML一致性的动态逻辑语义”模型驱动的建筑 - 基金会和应用:第二欧洲会议,ECMDA-FA 2006,西班牙毕尔巴鄂,2006年7月10日至13日,会议记录。 Arend Rensink Eds。 p。 124
  4. ^Starr 2002,第1页。 3。
  5. ^Mellor和Balcer 2002,第1.4节。
  6. ^Mellor和Balcer 2002,第1.5节。
  7. ^Raistrick等。 2004年,第2.3.3和2.3.4节。
  8. ^Mellor和Balcer 2002,第1.1节。
  9. ^Mellor和Balcer 2002,第3.4节。
  10. ^Mellor and Balcer 2002,第1页。 14。
  11. ^Mellor and Balcer 2002,第1页。 35。
  12. ^“ MASL是Shlaer-Mellor方言动作语言和结构建模语言。:XTUML/MASL”。 XTUML。 2018年12月27日。检索10月26日2019.
  13. ^Mellor and Balcer 2002,第9章。
  14. ^Mellor and Balcer 2002,第1页。 xxx。
  15. ^“基础UML™(ALF™)的动作语言”.www.omg.org。检索2016-12-21.

外部链接