Paige et al. [1] presentan una investigación donde comparan dos lenguajes (UML y BON [2]) para el modelado de sistemas, así como sus respectivas consistencias entre múltiples vistas del sistema, es decir, si un diagrama (estructural por ejemplo, el caso de diagramas de clases) es consistente y refleja el mismo sistema modelado a partir de otro diagrama (de comportamiento, por ejemplo, diagramas de secuencia).
Su investigación incluye una breve y no formal revisión de los conceptos sobre el modelado de sistemas en BON y su relación con el lenguaje de programación Eiffel [3] para el manejo de contratos, y por otra parte una revisión de UML 2.0 y OCL 2.0. Además, mencionan algunas ventajas y desventajas de ambos, por mencionar unas, para el caso de BON y Eiffel son lenguajes no tan difundidos como UML y OCL, no obstante, proveen una semántica más formal (aunque incompleta) que éstos últimos.
Indican también, siete criterios a considerar para las técnicas de meta-modelado y el multiview consistency checking (MVCC), a saber:
1) comprensibilidad (understandability) que implica que las descripciones usadas son entendibles para un ingeniero de software con una experiencia razonable en lenguajes de modelados pero no necesariamente experiencia en métodos formales;
2) correctitud (correctness), esto es, que las descripciones del meta-modelo sean verificadas contra sus especificaciones;
3) completitud (completeness) es decir, todas las características del lenguaje de modelado (incluyendo restricciones de consistencias entre múltiples vistas) son soportadas por la técnica de meta-modelado;
4) mantenibilidad (maintainability) esto implica que las descripciones soporten extensión, refactorización y en caso de requerirse, modificaciones completas;
5) herramientas de soporte (tool construction) lo que representa que existan y/o puedan desarrollarse herramientas que faciliten la producción de las descripciones;
6) verificación y validación basadas en herramientas (tool-based V&V) es decir, que existan y/o puedan desarrollarse herramientas que puedan asistir en la verificación y validación de las descripción y
7) automatización en MVCC (automation in MVCC), que la consistencia entre múltiples vistas pueda ser verificada de manera automática.
Los autores concluyen en lo que, con la lectura minuciosa de la investigación se puede entrever: no existe una técnica definitiva para el meta-modelado y por ende, para el MVCC, que sea suficiente. Más bien, lo que a algunos lenguajes de modelado les falta, otros lo cubren y viceversa. Sin embargo, de acuerdo con los autores, pareciera ser que UML parece ser más factible de ser más estudiado y explotado dado su grado de madurez y pese a su informal concepción ya que se han hecho esfuerzos en este sentido, es decir, formalizar la especificación de UML.
Indican además, que no siempre es preferible un lenguaje de meta-modelado más expresivo que uno menos expresivo. PVS [4] es más expresivo que BON y Eiffel, y puede capturar todas las reglas de bien-formidad (well-formedness), sin embargo, lo que ofrece en completitud, lo pierde en términos de automatización y facilidad de uso. Eiffel, como lenguaje de meta-modelado, es incompleto pero aún puede ser usado para capturar y verificar casi todas las reglas de well-formedness de manera automática.
Para concluir, y como los propios autores lo mencionan, la investigación provee elemento cualitativos y comparaciones no tan formales y/o cuantitativas, por lo que recomiendan un conjunto de comparaciones más cuantitativas.
Referencias
[1] R.F. Paige, P.J. Brooke y J.S. Ostroff. Metamodel-Based Model Conformance and Multiview Consistency Checking. ACMTransactions on Software Engineering and Methodology,Vol. 16, No. 3, Article 11, Publication date: July 2007.
[2] K. Walden y J. Nerson. 1995. Seamless Object Oriented Software Architecture. PrenticeHall.
[3] Eiffel Software. Eiffel Software
http://www.eiffel.com/
[4] S. Owre, N. Shankar, J. Rushby y D. Stringer-Calvert. 1999. PVS Language Reference.
http://pvs.csl.sri.com