多年之前就接触到过MOF,MOF是“Meta Object Facility”,翻译过来就是“元对象工具”。并且研读了1.4.1版本。最近又再次接触到MOF,不过这一次是2.5.1版本。
2.5.1版是MOF的最新版本。MOF2的所有版本都与与之对应的UML2的版本高度集成,MOF2完全借用UML2进行各种建模操作,而其自身仅提供了反射、标识、扩展这三大能力。这就是为什么MOF2只有80多页而UML2有将近800页的缘由。
MOF2被划分为EMOF和CMOF,前者是后者的子集。前者仅用于建模,而后者则可以用于构建例如元数据存储库等可以运行的系统。
如果大家对MOF2.5.1感兴趣,推荐大家研究一下其第15章中的Figure15.1,如果这个图能够研究透彻,那么MOF2.5.1中两大难点之一就被解决了。MOF2.5.1的另一大难点在于下面这句话:
By having both MOF and instances of MOF be rooted in class Element, MOF supports any number of meta layers as described in Clause 7.
翻译过来就是:
通过让MOF和MOF的实例都根植于类Element中,MOF支持如第7章所述的任意数量的元层。
如果能够理解了上述两个难点,则MOF2.5.1就算是理解的比较透彻了。
下面将MOF2.5.1中的一段话摘抄过来,大家就可以知道MOF的大致用途。
The Meta Object Facility (MOF) provides an open and platform-independent metadata management framework and associated set of metadata services to enable the development and interoperability of model and metadata driven systems. Examples of systems that use MOF include modeling and development tools, data warehouse systems, metadata repositories, etc.
翻译过来就是:
元对象工具(MOF)提供了一个开放的、平台独立的元数据管理框架和相关的一组元数据服务,以支持模型和元数据驱动系统的开发和互操作性。使用MOF的系统包括建模和开发工具、数据仓库系统、元数据存储库等。
从上面的内容可以看到,MOF的主要用途与一般的信息系统的构建并无很大关系。而这正是我决定将重点放在UML2.5.1中的缘故:与其将重点放在与一般信息系统构建无关的MOF上,不如将重点放在与一般信息系统构建更紧密一些的UML上。
那么我们到底能够从UML上获取哪些对信息系统构建有帮助的内容呢?通过观察UML2.5.1,本人发现了一个可以借鉴UML2.5.1的地方,那就是其中花样繁多的类图,尤其是被称为“抽象语法”的类图以及大量的类图例子。因为这些类图都是对建模领域所需要解决的问题的高度抽象,如果我们也能够掌握这种抽象能力,那将会使我们对所要构建的信息系统的建模工作大有裨益。而本文章系列的重点就在于通过对一些UML类图实例的理解来帮助那些对UML2.5.1中类图感到一筹莫展的读者进行学习和理解。
一般而言,任何一门技术都可以归为两类中的一类:入门容易,提高难;入门难,提高容易。UML则是一种比较典型的入门难但提高相对容易的技术。本人就是希望能够通过对UML类图的一些解读来帮助对UML有兴趣的初学者尽快地跨过入门这一环节,从而能够快速地进入相对容易的提高阶段,进而从个人角度讲可以很快地提高个人的建模水平,从更大的角度讲则可以为促进中国软件产业的技术发展贡献绵薄之力。
下一篇文章将通过一个很简单的例子来说明一下在UML2.5.1中普遍存在的一种表达方式。明白了这种表达方式,UML2.5.1的很多地方理解起来就会比较容易。
参考文献:
MOF2.5.1
UML2.5.1