在软件开发过程中,无数组织依赖 UML(统一建模语言)。然而,用于管理 UML 本身的软件却有着灵活性差以及难于使用的口碑。本文讲述了丹麦开发公司 Ideogramic ApS 是怎样扩展 XMI(针对诸如 UML 的元数据的 XML 规范),以及探讨了“XML 化(XMLization)”的优点及局限性。
UML(统一建模语言)是一种软件建模表示法。这么说通常意味着使用 UML 的建模者并不是通过编写计算机程序来开始软件开发项目的。相反,他们相互讨论,在索引卡上作记录,绘制图形,进行少量的技术实践,评审图形以及进行其它一些抽象概念的设计,进行这些工作是为了编写代码时能获得更高的工作效率。典型的 UML“工作产品”包括所获取的位于一堆堆物理的记录(索引)卡片上的类概要,如同图 1 中所示的图形以及称为用例(use case)的叙述,该用例描述了期望用户将怎样同交付的软件产品交互。
简单地讲,UML 的目的在于成为人类工程学。它的成功基于这样一个事实:当人们在白板上书写或在小组内通过讨论解决问题时,他们表达有用想法和对事物的理解的效率特别高。
已经证明这些方法同人们的表达方式非常吻合,但是他们本身不适宜于完成计算机化这一过程。虽然以数字化的方式获取白板上的绘图是可能的。但这么做的代价通常很昂贵,并且所产生的数据难于发送、控制版本、归档、验证、转换。对于管理以源代码或 HTML(它是 Web 页面的基础)形式表示的数据,计算机的基础设施早已做好了准备。
通过以文本方式提供“序列化”UML 数据的构件,XML 消除了二者之间的部分差距。“XML 元数据交换(XMI)”是一项开放的工业标准,它将 XML 应用到诸如 UML 的抽象系统。XMI 方法捕捉和表达 UML 表达的关系,而抛弃特定 UML 图的大多数可视细节。这种将事物划分成必不可少的内容与可有可无的形式的做法增强了 UML 的可管理性。
本文研究了 XMI 对这个 Ideogramic ApS 小开发公司的影响。另外,还特别讲述了如下问题,即 XML 标准和一些逐渐成熟的工具(这些工具集成了市场上其它一些标准)是如何使得一个组织能够把精力集中在它自己的产品开发上。
Ideogramic ApS
Ideogramic ApS 是一家专业从事手势数字化(gestural digitization)和协作开发公司。该公司已经将一些理论知识精心转化成了产品,正如该公司的网站所描述的那样:“对编程的直觉工具支持,特别结合了诸如电子白板和图形输入板计算机等基于笔的界面。”
设计者可以使用任意多的常见输入设备 — 先进的电子白板、轨迹球等 — Ideogramic 的专利产品“手势识别”算法将这些草图转换成 UML 图。捕捉到这些结果,并将其表示成 XMI,然后加以调整,输入到可视化建模工具(譬如,Rational Software Corporation 软件公司的 Rational Rose)中。
这一过程是值得研究的,因为直到几年以前这一过程还不是很过硬。不同供应商的产品之间的互操作性是如此之差,以致于那些具有好的 UML 想法的人,在想把该想法推向市场时,都不得不随之带一套包罗万象的工具集。虽然 XMI 只实现了部分标准化,但是现在它已经足以允许 Ideogramic 把精力集中在他们最拿手的地方:相信第三方的产品可以处理此结果。
工作示例
为了更好的理解 Ideogramic 的“手势识别”是如何工作的,我们将采用一个包含单个类 Small
的示例。图 1 显示了由“手势识别”对设计者所画的略微有点潦草的草图进行了一点加工的样子。
当然,Ideogramic 的产品还包括许多工具,您可以选择这些工具来以图形方式精心制作这样的图形。尽管如此,我们所感兴趣的是位于 XMI 中的缺省序列化。该产品事实上将图 1 保存到清单 1 中所示的文档实例中。
XMI 定义了一个“插头”,该“插头”允许 Ideogramic 同其它产品(譬如 Rational Rose 或其它的 UML 制图工具)紧密结合。这使得 Ideogramic 能够解脱出来把全部精力集中在精益求精地提高其“手势识别”工具的独特价值上。例如,一个组织向 Rational Rose 保证,它能够将可视化建模工具与它的 Ideogramic UML 结合在一起。它之所以能有信心这么做是因为依赖 XML 在这两者之间来回传递信息。除了单向迭代之外,对往返迭代也是可能的,从而甚至逆向工程的 Rational 图可以“流”回 Ideogramic,作为进一步协作和细化的基础。
有关于实现的现状
至少,这是目标。这个梦想的实现还不完美。正如 Ideogramic 的产品经理 Klaus Marius Hansen 于 2001 年秋季所说的, “XMI 标准本身不支持所有需求,所以非常遗憾的是供应商对它的实现各不相同。”
Ideogramic 的解决方案是尽可能多地使用 XMI,并且在不能使用 XMI 的情况下定义扩展。由于 UML、XMI以及其它市场化产品都在不断地变化,因此维持版本的一致性是一项挑战,但是“手势识别”是一项功能强大的技术,在这方面作出努力是值得的。用 Hansen 的话说就是:“所有这些为我们带来了许多工作:使用不同工具进行测试,产生可替代的实现方案等等,但是这些辛苦是值得的。”
下面的部分更进一步研究了 Ideogramic 工程师所采取的步骤,他们采取这些步骤来在维持他们的产品实现的最佳灵活性的同时扩展和促成 XMI。
对 XMI 的功能扩展
XMI 目前仅解决了纯 UML 模型信息。然而,实际上用户也需要保留原理图。这项工作的一个示例是清单 1 中所显示的标记 <Diagramming.Diagram ...>
。该标记是对标准 XMI 的专门针对 Rational Rose 的扩展,该扩展提供了图的表示信息。这一标记和相关的标记相互传递大小、位置、颜色以及其它 UML 中未定义,但作为基础对使用 UML 构建的 Rational 工具是必不可少的信息。Unisys XMI 首先使用了这些扩展的 Ideogramic 格式。
Ideogramic 通过编码那些部分的,因而是无效 UML 的图形来进一步扩展 XMI。在预备工作期间,“根除”同一个仅仅为一个端点定义的类的联系是很有价值的。Ideogramic 还允许在图上进行徒手画。
从某些意义上来说,XMI 的体系结构标准化产生作用使得 Ideogramic 的 UML 实现“Rational 化”。尽管本文几乎专门将 XMI 作为一种 UML 序列化来进行讨论,但 XMI 的定义事实上比这要广泛的多。严格的讲,XMI 对从“对象管理集团(OMG)元对象设施(MOF)”模型到大量的装入器、保存器以及模式的映射进行序列化。UML 仅仅是最受欢迎的 MOF 模型。
由于“手势识别”的目标是 XMI,所以在它与 UML 的细节方面结合的不是很紧密。从软件工程的观点上来说,“手势识别”并不同某个特定方法学相联系,Hansen 说:“我们的目标不是支持任何特定已指定的过程。但是我们试图提供能够用于这些过程的商业对象表示法(Business Object Notation,BON)、极限编程(Extreme Programming)、Rational 统一过程(Rational Unified Process)的灵活工具”。事实上,Ideogramic 已经开始开发基于手势的建模工具,其目标是 e-GIP Software AG 开发的专用表示法。这种表示法,依次同 Jeffrey Conklin 开发的“基于问题的信息系统(Issue-Based Information System,gIBIS)”的图形格式相联系。
读与写 XMI
支持所有这些能力的 Ideogramic 引擎是 tDOM,它是一种高性能 XML 处理器。跟大多数 XML 产品不一样,tDOM 支持 Tcl 而不是 Java。Ideogramic 将它的 UML 元模型编码进 [incr Tcl]
。在这个标准的 Tcl 面向对象的扩展中,一段 XMI 装入代码类似于清单 2 中所示的代码。
这是典型的、很常规的装入和存储代码的 Ideogramic 实现。Hansen 说:“我们甚至编写了一些脚本,这些脚本可以用来生成最初的装入和存储的代码,基于从 [incr Tcl]
代码执行逆向工程的 UML 模型。”对于 UML 元模型的每一个类,都有用于装入特定元素以及调用同元模型结构相符的其它方法的方法。所以,例如,类 Class
继承类 Classifier
。类 Classifier
依次又继承 Namespace
和 GeneralizableElement
并且聚集 Attributes
和 Operations
。
因而源代码的类结构在很大程度上模仿了 UML 元模型。用 Hansen 的话说就是:“将属性映射到简单的属性,将关联和聚合映射到 [incr Tcl]
对象之间的简单引用。例如,对 [incr Tcl]
不能够覆盖基类来处理多重继承这一情形,有一些详细的说明。”
这样做的一个结果是唯一留给 DOM::scanChildren
方法的工作十分简单。如清单 2 中的样本代码演示的一样,它使用 tDOM 对 XMI 元素内容做结构化的转换。
结束语
XMI 体现了 XML 标准化所带来的好处。有了 XML 这项基本技术,可以促使组织将他们的注意力集中在他们自己独特的产品上,组织可以信任 XML“巴士”将使得他们能够同其它组织的过程和数据相连接。
在本文中,我演示了 Ideogramic ApS 是怎样利用 XMI 来将其“手势识别”产品连接到 Rational Software 的 UML 产品,因而对于开发者社区来说,扩大了双方产品集的使用。同时,我也讲述了 Ideogramic 是怎样扩展 XMI 以满足其特殊目标。在某些情况下,该扩展已经被证明是十分简单而有效的,在其它一些情况下,它却显得既复杂又不全面。但无论那种状况,这项努力已经获得一个极富创新性的小开端,这一点是很清楚的。
尽管 UML 与 XMI 仍然不十分完善,但是它们都已足够成熟,足以支持(包括 Ideogramic 的“手势识别”在内)成功的商业产品。正如我相信在这篇实例研究中所显示的那样,最终结果实现非常象任何其它 XML 引擎以及特定的基于 DTD 的应用程序。
- 单击文章顶部或底部的讨论来参加有关本文的论坛。
- “对象管理组(OMG)”为 XMI、CORBA 以及其它企业技术建立一些标准。该组织负责维护有关它所制订规范的页面,这其中包括下载 XMI 规范的页面。
- 因为 IBM 是 XMI 标准的主要赞助商,所以 IBM 的 XMI 主页尤为重要。
- 在其它一些维护重要的 XML 元数据交换(XMI)主页的组织中,还有非赢利的“结构信息标准发展组织(Organization for the Advancement of Structured Information Standards (OASIS))” 联盟。
- IBM 的 XMI 工具箱提供了一个开始 XMI 编程的可靠方法。
- XML.com 维护 XMI 参考大全页面。
- W3C 将 XML 和相关技术加以标准化。请在其 XML 活动页面上阅览 W3C 在 XML 方面所做的成就。
- OMG 的官方 UML 标准集是有关 UML 规范的权威网站。
- Rational Software Corporation 的统一建模语言资源中心含有丰富的 UML 信息资源。
- Cetus 维护一个声誉极好的有关面向对象的 UML 的链接集合。
- DevX 是一份其中包括有用的 UML 专区的在线杂志。
- Scott Ambler 的 developerWorks 文章 The Object Primer 介绍了在开发面向对象软件的过程中作为基本元素的 UML。
- 在 Scott Ambler 的个人主页上还会发现有关 UML 建模的一些实际方面的建议。
- Granville Miller 的 developerWorks 专栏 Java Modeling,为 Java 程序员提供了有关 UML 建模的概念和上机实验方面的指导。
- BON 分析和设计方法是另一种 UML 的方法学。
- Ideogramic ApS 是本文中所提到的一家小的丹麦新兴公司。
- Ideogramic UML FAQ 详细叙述了有关 Ideogramic 产品的一些细节。
- e-GIP Software AG 是本文中所提到的 Ideogramic 的客户。
- Transforming XMI to HTML 是一个在 Web 浏览器里显示 UML 的项目。
- 可以从 MINI.net 下载 tDOM 的最新版本。
- The IBIS Manual 介绍了 Jeffrey Conklin 有关团队协作及项目管理方面的想法。
- Go ForIT Chronicles 提供了完全是独一无二的极限编程简介。
关于作者 Cameron Laird 是一家独立咨询公司 Phaseit Inc. 的全职开发人员。他经常撰写一些有关 XML 与其它技术主题的文章。可以通过 Cameron@Lairds.com 和他联系。 |
文章来源于领测软件测试网 https://www.ltesting.net/
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073