Automated Architecture Consistency Checking for Model Driven Software Development

When software projects evolve their actual implementation and their intended architecture may drift apart resulting in problems for further maintenance. As a countermeasure it is good software engineering practice to check the implementation against the architectural description for consistency. In this work we check software developed by a Model Driven Software Development (MDSD) process. This allows us to completely automate consistency checking by deducing information from implementation, design documents, and model transformations. We have applied our approach on a Java project and found several inconsistencies hinting at design problems. With our approach we can find inconsistencies early, keep the artifacts of an MDSD process consistent, and, thus, improve the maintainability and understandability of the software.

[1]  Richard F. Paige,et al.  Refinement via Consistency Checking in MDA , 2005, Refinement Workshop.

[2]  Ragnhild Van Der Straeten,et al.  Detecting and resolving model inconsistencies using transformation dependency analysis , 2006, MoDELS'06.

[3]  Wolfgang Emmerich,et al.  Static consistency checking for distributed specifications , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[4]  André Postma A method for module architecture verification and its application on a large component-based system , 2003, Inf. Softw. Technol..

[5]  David S. Johnson,et al.  Computers and In stractability: A Guide to the Theory of NP-Completeness. W. H Freeman, San Fran , 1979 .

[6]  Wolfgang Emmerich,et al.  Flexible consistency checking , 2003, TSEM.

[7]  Volker Gruhn,et al.  Model-Driven Software Development , 2005 .

[8]  Rainer Koschke,et al.  Automated clustering to support the reflexion method , 2007, Inf. Softw. Technol..

[9]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[10]  Kevin Lano,et al.  Slicing of UML models using model transformations , 2010, MODELS'10.

[11]  Richard C. Holt,et al.  Software botryology. Automatic clustering of software systems , 1998, Proceedings Ninth International Workshop on Database and Expert Systems Applications (Cat. No.98EX130).

[12]  Tom Mens,et al.  Detecting model inconsistency through operation-based model construction , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[13]  David Notkin,et al.  Reengineering with Reflection Models: A Case Study , 1997, Computer.

[14]  T. A. Wiggerts,et al.  Using clustering algorithms in legacy systems remodularization , 1997, Proceedings of the Fourth Working Conference on Reverse Engineering.

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

[16]  Rainer Koschke,et al.  Equipping the reflexion method with automated clustering , 2005, 12th Working Conference on Reverse Engineering (WCRE'05).

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

[18]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[19]  Alexander Egyed Validating Consistency between Architecture and Design Descriptions , 2000 .

[20]  Reinder J. Bril,et al.  Generalizing Consistency Checking between Software Views , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[21]  Nenad Medvidovic,et al.  A Formal Approach to Heterogeneous Software Modeling , 2000, FASE.

[22]  Welf Löwe,et al.  Rapid Construction of Software Comprehension Tools , 2005, Int. J. Softw. Eng. Knowl. Eng..

[23]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[24]  Michael Himsolt,et al.  GraphEd: a Graphical Platform for the Implementation of Graph Algorithms , 1994, GD.

[25]  Satoshi Matsuoka,et al.  ECOOP'97 — Object-Oriented Programming , 1997, Lecture Notes in Computer Science.

[26]  Perdita Stevens,et al.  Modelling Recursive Calls with UML State Diagrams , 2003, FASE.

[27]  Krzysztof Czarnecki,et al.  Feature-based survey of model transformation approaches , 2006, IBM Syst. J..

[28]  Michael W. Godfrey,et al.  Architectural repair of open source software , 2000, Proceedings IWPC 2000. 8th International Workshop on Program Comprehension.

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

[30]  David Notkin,et al.  Software Reflexion Models: Bridging the Gap between Design and Implementation , 2001, IEEE Trans. Software Eng..

[31]  Nicolas Anquetil,et al.  Comparative study of clustering algorithms and abstract representations for software remodularisation , 2003 .