修订UML 1后的基本原理
UML 2.0是UML标准最主要的修订本,以下的是一系列次要的修订本[OMG04] [RJB05]。为什么修订UML是必要的呢?
修订这种语言最初的动机源于更好的支持MDD工具和方法的要求。在过去的十年中,许多供应商已经发展了基于UML的工具,值得注意的是这些工具所支持的自动化标准比传统的CASE(计算机辅助软件工程)工具标准更高。
为了支持这些更高标准的自动化形式,需要用一个比原始标准规定更加准确的方式来定义UML。(从与时俱进的角度来看,最初地原始UML标准设计是作为一种辅助工具来服务的,即为非正式的捕捉和设计意图的传达提供服务)。不幸地是,这些定义因商家的不同而不同,它的危险性导致了一些分歧的产生,而这些分歧是应该从旧版本的标准中被排除掉的。一个新版本的标准可以修正它。
另外,在近十年的使用UML的实践经验之后――同样在此期间重要的新技术也随之产生了(例如基于web的应用软件和基于服务的体系结构),新的建模性能得到了肯定。事实上,当这些新技术通过现有UML概念的适当结合表现出来时,将它们作为优秀的内嵌语言特性引入是有明显益处的。
最终,在同样漫长的时间内,业界已经学会了许多有关如何使用的适当方法来构建和定义模型语言。例如,目前将要出现的外部模型和模型转换的理论,它强制性要求一个模型语言如何来定义。由于与当前程序设计语言理论相比,我们一直缺乏一个统一的、系统的建模语言设计理论,因此我们需要把这些理论以及类似的发展合并在UML中,这样才能确保其效用和持久性。
UML 2.0 特性的亮点
UML 2.0的新改进可分为以下五个主要方面,按重要性顺序列出:
在语言定义方面精确程度有了相当的提高: 这就是支持自动化高标准需要的结果,此标准是MDD所必须的。自动化意味着模型(以及后来的模型语言)的不明确和不精密的消除,所以计算机程序能转换并熟练地操纵模型。一个改良的语言组织: 其特性是由模块化决定的,模块化的特点在于它不仅使得语言更加容易的被新用户所采用,而且促进了工具之间的相互作用。重点改进大规模的软件系统模型性能: 一些流行的应用软件表现出将现有的独立应用程序集成到更加复杂的系统中去。这是一种趋势,它将可能会继续导致更加复杂的系统。为了支持这种趋势,将更加灵活和新的分等级的性能添加到语言中去,用以支持软件模型在任意复杂的级别中使用。对特定领域的改进的支持: 使用 UML 的实践经验证明了其所谓的“扩展”机制的价值。这些机制被统一化,精炼化后,使得基础语言更加简化,更加准确精炼。全面的合并,合理化,清晰化各种不同的模型概念: 从而导致一种单一化,更加统一化语言的产生。它包含了合并和――在一些案例中――消除多余的概念,精练各种各样的定义,添加文字性的解释和例子。现在我们来更详细地研究一下上述的每个方面。
精确程度
大多数的早期软件建模语言被非正式地定义,并很少注重它的精确性。时常,建模概念被解释成使用不严密的自然语言。由于大多数的建模语言在文件中或在Martin Fowler所提及的设计草图[Fowler04]中所使用,在那个时期,此模型概念得到了充分信任。这种思想传达了一种设计的本质特性,而把细节留给实现阶段去处理。
然而,由于模型在这种语言中很可能――并且通常是――被不同的商家解释成不同的含义,因此经常导致概念混淆。此外,除非模型解释的问题事先已被明确地讨论过,否则像这样的分歧还不能被人所发觉,而只是在发展的较后阶段才能被发现(即当问题的结果已明显显现时候)。
为了把不明确的概念减少到最少――并和多数现代的其它模型语言形成对比―― 第一个标准化的UML定义是用元模型来指定的。这是一个定义每一种UML 建模概念特性和这些特性与其他相关概念直接的关系的模型。使用UML的基本子集来定义这个元模型,并且通过一系列在对象约束语言中(OCL)正式的强制进行补充。
注释:: 这种UML子集,主要是由定义在UML上的类图上的概念所组成的,它被称为元对象工具(MOF)。选择这个子集后,它可以用来定义其它的建模语言。
这种结合所描述的是,UML抽象语法的一种正式的规范。正式的规范。之所以被称作是正式的,其原因是它与实际的符号或用于描绘模型的具体语法具体语法(也就是说,文本和图表)无关。换句话说就是,它所定义的规则集可以用来确定一个特定的模型是否已经很好的成形很好的成形。例如,这种规则将允许我们去测定通过一个状态机转换来连接两个UML类是不正确的。
然而,在这个初始的UML 元模型中所使用的精确程度证实,在MDD(例如在[Stevens02]中讨论所见到的)后,对整个潜能的支持是远远不够的。特别是,UML建模概念的语义(或含义)的规范,对这些作为自动代码生成或正式确认的基于MDD的活动仍旧是不适当的。
文章来源于领测软件测试网 https://www.ltesting.net/