什么是MOF(Meta Object Facility)
UML是用于表示模型的语言。UML Metamodel是表示UML的语言。那什么是表示UML Metamodel的语言?就是MOF了。
一个例子:XMI(XML Metadata Interchange) (天哪,这些缩写就够难理解了,没想到这些缩写的全称也还是让人无法理解……)
人们因为讨厌太多不同的语言细节,想统一的表达对模型的看法,所以使用UML作为交流、沟通的工具。于是产生了很多UML工具。于是,出现了一个新问题:
不同的UML工具保存的UML文件格式各不相同,比如Rose的格式跟Magic
Draw就不同。何不再"U"一下,把这些格式统一呢?所以就有了XMI这个统一的描述UML的XML规范。XMI is a way to save
UML models in XML, but more general than that. 反过来想一想,UML can be
regarded as an XML DTD to which UML models must conform。
model, meta-model, meta-meta model, meta-meta-meta model... 还好,通过xml schema,XML算是自定义的,这样就不会再出现下一层"meta"了!
XMI总结:XMI是一个基于MOF的语言。XMI shows how to save any MOF-based metamodel in XML.
以上有些是读来的观点,有些是个人的理解……不保证肯定正确...
发现一个有趣的事,我喜欢在blog上写些我不熟悉的东西;比如其实没学几天的B方法,还不太会用的pvs,刚刚接触不久的javascript,
emacs……其实,当我写下“什么是XXX”作为blog标题的时候,我其实是在说“我昨天还不懂XXX,今天看了几篇文章,懂了一点了”。
但是我真正熟稔于心的东西,像Model
checking,像好歹学过一个学期的Z,反而懒得写成blog了。。。因为很熟悉,反倒觉得写下来也只是重复,而起不到总结提高的效果。也因而失去了交流的机会……以后要稍微改变一下~