ReflexML: UML-Based Architecture-to-Code Traceability and Consistency Checking

The decay of software architecture - the divergent evolution of architecture models and the derived code - is one of the reasons for a decreasing maintainability of software systems. Several approaches for architecture-to-code consistency checking exist that stop the decay by detecting a divergence after evolution steps of either the architecture or the corresponding code. Known approaches have two main insufficiencies. First, the effort to derive and maintain the consistency checks is higher than necessary or they cannot be applied a posteriori. Second, they are not well integrated into UML-based model driven engineering. In the paper we present ReflexML: A UML-embedded mapping of architecture models to code plus a rich set of predefined consistency checks based on that mapping. The mapping is described with a UML profile that allows to attach AOP type patterns to an UML component model to define its reflexion on code elements. This abolishes the two insufficiencies of current approaches. We apply ReflexML to an industry project to demonstrate its effectiveness and its capability of a seamless integration into a pre-existing UML architecture model.

[1]  Ricardo Terra,et al.  A dependency constraint language to manage object-oriented software architectures , 2009 .

[2]  David Notkin,et al.  Software reflexion models: bridging the gap between source and high-level models , 1995, SIGSOFT FSE.

[3]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[4]  Cláudia Maria Lima Werner,et al.  Continuous and automated evolution of architecture-to-implementation traceability links , 2008, Automated Software Engineering.

[5]  Walter R. Bischofberger,et al.  Sotograph - A Pragmatic Approach to Source Code Architecture Conformance Checking , 2004, EWSA.

[6]  Ricardo Terra,et al.  A dependency constraint language to manage object‐oriented software architectures , 2009, Softw. Pract. Exp..

[7]  David Lorge Parnas,et al.  Software aging , 1994, Proceedings of 16th International Conference on Software Engineering.

[8]  Elnar Hajiyev,et al.  Semantics of static pointcuts in aspectJ , 2007, POPL '07.

[9]  Jens Knodel,et al.  A Comparison of Static Architecture Compliance Checking Approaches , 2007, 2007 Working IEEE/IFIP Conference on Software Architecture (WICSA'07).

[10]  Rainer Koschke,et al.  Hierarchical reflexion models , 2003, 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings..

[11]  Welf Löwe,et al.  Automated Architecture Consistency Checking for Model Driven Software Development , 2009, QoSA.

[12]  Alexander L. Wolf,et al.  Software architecture , 2001 .

[13]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[14]  Iris Groher,et al.  XWeave: models and aspects in concert , 2007, AOM@AOSD.

[15]  Raffaela Mirandola,et al.  Architectures for Adaptive Software Systems, 5th International Conference on the Quality of Software Architectures, QoSA 2009, East Stroudsburg, PA, USA, June 24-26, 2009, Proceedings , 2009, QoSA.

[16]  Richard N. Taylor,et al.  A highly-extensible, XML-based architecture description language , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[17]  Ricardo Terra,et al.  Static Architecture-Conformance Checking: An Illustrative Overview , 2010, IEEE Software.

[18]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .