可执行的UML
可执行的UML ( XTUML或XUML )既是软件开发方法,也是高度抽象的软件语言。它是2002年首次在《可执行UML:模型驱动建筑基金会》一书中描述的。该语言“结合了UML(统一建模语言)图形表示法与可执行语义和时机规则的子集”。可执行的UML方法是Shlaer -Mellor方法的后继方法。
可执行的UML模型“可以进行性能运行,测试,调试和测量。”,可以将其编译成一个较少抽象的编程语言,以针对特定的实现。可执行的UML通过规范与平台无关的模型以及将平台无关的模型汇编为平台特定的模型来支持模型驱动的体系结构(MDA)。
概述
可执行UML比第三代编程语言更高的抽象水平。这使开发人员可以在应用程序的抽象级别开发。可执行的UML旨在分开关注点。这应该可以提高重复使用的便利性并降低软件开发的成本。这也使可执行的UML域是跨平台。这意味着它与任何特定的编程语言,平台或技术没有绑定。
可执行的UML还允许将独立的模型(PIM)转换为平台特异性模型(PSM)。可执行的UML方法使将模型视为知识属性,因为该模型是问题空间的完全可执行解决方案。
动作在动作语言中指定。这意味着可以以优化的形式输出的可执行UML模型的自动生成实现代码。
可执行的UML旨在用作可执行的代码和文档。这些模型是对问题空间的图形,可执行的规范,该规范已汇编为目标实现。它们也旨在是人类可读的。
可执行UML构建块
系统由多个主题组成,以可执行的UML项称为域。可执行的UML用于在其主题的抽象级别对一个域进行建模,而不是实施问题。所得域模型由以下元素表示:
域图
可执行的UML需要识别系统的域(也称为:方面或关注点)。 “每个领域都是一个由概念实体居住的自主世界”,每个领域都可以独立于系统中的其他域进行建模,从而使人们能够分开关注。例如,自动柜员系统的域可能包括以下内容:
- 自动柜员业务逻辑的应用程序域模型。
- 有关系统安全性的各种问题的安全域模型(例如身份验证和加密)。
- 用于外部数据使用方法的数据访问域模型。
- 系统可以或必须记录信息的各种方法的记录域模型。
- 用户与系统交互的用户界面域模型。
- 系统硬件和软件平台上实现的可执行UML模型的架构域模型。
关注点的分离使每个领域都可以由各个领域专家独立于系统中的其他领域进行开发和验证。
域之间的连接称为桥梁。 “桥是域之间的分层依赖性”。这意味着这些域可以在其他域中提出要求。建议桥梁由不同的领域专家一致。
可以将域标记为实现,以表明该域存在并且不需要建模。例如,使用MySQL数据库的数据访问域将被标记为实现。
班级图
概念实体,例如有形的事物,角色,事件,交互和规格,特定于被建模的领域被抽象成类。课程可以具有属性和操作。
这些类之间的关系将通过关联和概括表示。协会可能需要作为关联类的进一步抽象。
类图上的约束可以用动作语言和对象约束语言(OCL)编写。
可执行的UML方法限制了可以在可执行UML类图中使用的UML元素。
可执行的UML类图旨在公开有关域的信息。在Statechart图中,过多的复杂性是一个很好的指标,表明应该重新设计类图。
Statechart图
类具有生命周期,这些生命周期是用Statechart图建模的。 Statechart图定义了定义类行为的状态,过渡,事件和程序。
每个状态只有一个程序进入该状态时执行。一个过程由动作组成,该操作用动作语言指定。
动作语言
班级和状态模型本身只能提供域名的静态视图。为了具有可执行模型,必须有一种方法来创建类实例,建立关联,对属性,呼叫状态事件执行操作等。 。
动作语义已添加到2001年的UML规范中。动作语义RFP基于支持Shlaer -Mellor方法的动作语言中的先前工作。现有的动作语言是对象动作语言(OAL),Shlaer -Mellor动作语言(小),动作规范语言(ASL),模型动作规范语言(MASL),动作语言(高个子),Starr的简洁关系语言( SCRALL) ,独立于平台的动作语言(PAL)和Pathmate Action语言(PAL)。 Scrall是唯一一种是图形动作语言。
模型测试和执行
一旦对域进行建模,就可以通过执行模型来独立于目标实现进行测试。每个域都可以独立于任何其他域进行验证和验证。这允许检测到的错误与域相关联,并且与其他系统问题无关。
验证将涉及诸如对模型的人类审查,由相关领域专家执行的以及对可执行UML语义的自动检查。即,检查可执行的UML模型是否符合可执行的UML MetAmodel 。
验证通常将涉及使用可执行的UML工具执行模型。执行可以在模型汇编之前或之后进行。
模型汇编
为了支持目标实现的执行,必须将域模型转换为较不抽象的形式。此翻译过程称为模型汇编。大多数模型编译器针对已知的编程语言,因为这允许重复使用现有的编译器技术。
出于目标实施原因优化域模型将降低抽象水平,对领域独立性产生不利影响并增加重复使用成本。在可执行的UML中,优化由模型编译器自动或通过标记进行。标记允许特定的模型元素针对特定的低级实现,并允许更广泛的架构决策,例如指定应将对象集合实现为双重链接列表。
用MDA术语,模型编译器创建PSM 。可执行UML中PIM和PSM之间的分离可以禁用往返模型的能力,并阻止对PSM的修改。
可执行的UML密钥方面
可执行UML定义了UML子集的执行语义。可执行UML子集的关键方面包括以下内容:
- 不支持实施特定构造,例如聚合和组成。
- 概括始终将其视为{完整,不相交}。
- 类之间的关联总是命名,两端都有动词短语指定角色,并且在两端都指定了多重性。
- 关联末端的倍数仅限于0..1(零对一个), *(零对许多),1(恰好一个)或1 .. *(一对一个)。
- 数据类型仅限于以下核心数据类型:布尔,字符串,整数,真实,日期,时间戳和Qualtary_id,或以下特定域的数据类型之一:数字,字符串,枚举和复合。特定于域的数字和字符串数据类型可以代表核心数据类型的子集。特定于域的复合数据类型将始终被视为域内的单个单元。例如,可以声明MailingAddress复合数据类型,但无法从中提取城市信息。
- 可执行UML模型的约束可以表示为对象约束语言(OCL)或动作语言。
Fuml和Alf
对像管理小组已经标准化了基础UML(FUML) ,该UML受到可执行的UML的强烈影响。
基础UML(ALF)的动作语言是对像管理组的标准动作语言规范。
也可以看看
出版品
- 格里·博伊德(Gerry Boyd)(2003)“可执行的UML:未来的图表”。于2003年2月5日在Devx.com上发布。
- Shayne Flint和Clive Boughton (2003)“可执行/可翻译的UML和系统工程”。复杂系统的实用方法(Sete 2003) 。
- Shayne Flint,Henry Gardner和Clive Boughton (2004)。 “计算教育中可执行/可翻译的UML。”第六届澳大利亚计算教育 - 教育卷会议论文集30 。澳大利亚计算机协会公司
- HS Lahman(2011)。基于模型的开发:应用程序。 Addison-Wesley专业人士。 ISBN 0-321-77407-8。
- Stephen J. Mellor&Marc Balcer(2002)。可执行的UML:模型驱动架构的基础。艾迪生·卫斯理。 ISBN 0-201-74804-5。第1章在线
- 可执行且可翻译的UML
- Stephen J. Mellor(2004),《可执行和可翻译的UML简介》
- Stephen J. Mellor(2004),一个面向方面建模的框架
- 克里斯·拉斯特里克(Chris Raistrick);等。 (2004)。具有可执行UML的模型驱动架构。剑桥大学出版社。 ISBN 0-521-53771-1。
- Leon Starr(2002)。可执行的UML:如何构建类模型。 Prentice-Hall。 ISBN 0-13-067479-6。