José M. Fuentes, Víctor Quintana, Juan Llorens, Gonzalo Génova, Rubén Prieto-Díaz. "Errors in the UML Metamodel?", ACM SIGSOFT Software Engineering Notes, 28(6), Nov 2003.

 

Full text

 

Abstract

The Unified Modeling Language (UML) is becoming a standard for software specification, verification, visualization and documentation. Using the rules provided by the standard, software engineers can create models that are concrete and unambiguous. UML creators Booch, Rumbaugh and Jacobson, have defined the standard using UML terminology: they use model elements to define the standard. This way of representing UML is called UML Metamodel, and it is publicly available along with the English definition of the standard. The UML metamodel is intended for software engineers to verify the correctness of their models. It should be assumed, therefore, that the UML metamodel is itself error free. A close study of the UML metamodel by the authors, however, has shown that this may not be the case. After checking the Metamodel with all the rules, constraints and well-formedness rules defined by the standard, the authors found 450 errors and classified them in three different groups: 1. Non-accessible elements: represents the most important problem found in the metamodel, and involves some misunderstandings with the contents method. 2. Empty names: some rules of the standard states that some elements could not have the same name. Nevertheless, the standard does not clarify whether there could exist two different elements without name, which could be considered as the same (empty) name. 3. Miscellanea: this last group of problems deals with duplicated names and derived associations. This paper analyzes and explains the reason for the errors and presents some suggestions for correcting, what the authors believe, are some deficiencies in UML's current standard. The analysis presented should be valuable to practicing software engineers engaged in software modeling.

Resumen

El Lenguaje Unificado de Modelado (UML) se está convirtiendo en un estándar para la especificación, verificación, visualización y documentación de software. Utilizando las reglas proporcionadas por el estándar, los ingenieros software pueden crear modelos concretos y sin ambigüedades. Los creadores de UML, Booch, Rumbaugh y Jacobson, han definido el estándar utilizando la terminología UML: usan elementos de modelado para definir el estándar. Esta forma de representar a UML es conocida como metamodelo de UML, y está disponible al público junto con la definición del estándar en inglés. El metamodelo de UML sirve para que los ingenieros software puedan verificar la corrección de sus modelos. Debería asumirse, por tanto, que el metamodelo de UML está él mismo libre de errores. Sin embargo, un estudio más detenido del metamodelo de UML ha mostrado que esto no es así. Tras cotejar el metamodelo con todas las reglas, restricciones y reglas de correcta formación definidas por el estándar, los autores encontraron 450 errores y los clasificaron en tres grupos diferentes: 1. Elementos no accesibles: representa el problema más importante encontrado en el metamodelo, e implica algunos malentendidos acerca del método contents. 2. Nombres vacíos: algunas reglas del estándar establecen que dos elementos no pueden tener el mismo nombre. No obstante, el estándar no aclara si pueden existir dos elementos diferentes sin nombre, que podría ser considerado como el mismo nombre (vacío). 3. Miscelánea: este último grupo de problemas trata de nombres duplicados y asociaciones derivadas. Este artículo analiza y explica la razón de los errores y presenta algunas sugerencias para corregir lo que los autores piensan que son algunas deficiencias en el actual estándar de UML. El análisis presentado tiene valor para ingenieros software en ejercicio que estén implicados en el modelado de software.