InMap: Automated Interactive Code-to-Architecture Mapping Recommendations

Reflexion Modelling is a popular method used in industry for Software Architectural Consistency Checking (SACC). However, it involves a mapping step that is manual and tedious. There exist techniques and tools that attempt to automate mapping, yet they are either limited in their approach or they require an initial set of manually pre-mapped entities. This study proposes a novel technique, InMap, that improves the mapping process in reflexion modelling by both providing versatility and eliminating the constraint of needing a set of manually pre-mapped entities in order to automate mapping. Using a software’s architecture descriptions, InMap applies information retrieval concepts to the software’s source code to interactively provide mapping recommendations to an architect. For the six systems InMap was evaluated on, the recommendations it provided achieved an average recall of 0.97, and an average precision of 0.82. InMap also achieved higher, f1-scores in comparison to existing techniques that require premapping. This provides a basis for improving industry tools that use reflexion modelling or similar SACC methods.

[1]  Christopher D. Manning,et al.  Introduction to Information Retrieval , 2010, J. Assoc. Inf. Sci. Technol..

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

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

[4]  Sebastian Herold,et al.  Architecture consistency: State of the practice, challenges and requirements , 2017, Empirical Software Engineering.

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

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

[7]  Francesca Arcelli Fontana,et al.  Technical Debt Indexes Provided by Tools: A Preliminary Discussion , 2016, 2016 IEEE 8th International Workshop on Managing Technical Debt (MTD).

[8]  Jens Knodel,et al.  Sustainable structures in software implementations by live compliance checking , 2011 .

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

[10]  Dharini Balasubramaniam,et al.  Controlling software architecture erosion: A survey , 2012, J. Syst. Softw..

[11]  Andrian Marcus,et al.  Using latent semantic analysis to identify similarities in source code to support program understanding , 2000, Proceedings 12th IEEE Internationals Conference on Tools with Artificial Intelligence. ICTAI 2000.

[12]  Gregory V. Bard,et al.  Spelling-Error Tolerant, Order-Independent Pass-Phrases via the Damerau-Levenshtein String-Edit Distance Metric , 2007, ACSW.

[13]  Francesca Arcelli Fontana,et al.  Tool support for evaluating architectural debt of an existing system: an experience report , 2016, SAC.

[14]  Morgan Ericsson,et al.  Semi-automatic mapping of source code using naive Bayes , 2019, ECSA.

[15]  Mircea Trifu,et al.  Architecture-aware adaptive clustering of OO systems , 2004, Eighth European Conference on Software Maintenance and Reengineering, 2004. CSMR 2004. Proceedings..

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

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

[18]  Nenad Medvidovic,et al.  Proactive Detection of Higher-Order Software Design Conflicts , 2015, 2015 12th Working IEEE/IFIP Conference on Software Architecture.

[19]  M. Shahriar Hossain,et al.  Reconstructing and evolving software architectures using a coordinated clustering framework , 2017, Automated Software Engineering.

[20]  Dalton Serey Guerrero,et al.  Improving Automated Mapping in Reflexion Models Using Information Retrieval Techniques , 2010, 2010 17th Working Conference on Reverse Engineering.

[21]  Nour Ali,et al.  JITTAC: A Just-in-Time tool for architectural consistency , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[22]  Fernando Brito e Abreu,et al.  A coupling-guided cluster analysis approach to reengineer the modularity of object-oriented systems , 2000, Proceedings of the Fourth European Conference on Software Maintenance and Reengineering.

[23]  Rainer Koschke,et al.  Atomic architectural component recovery for program understanding and evolution , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[24]  Muhammad Ali Babar,et al.  Assessing architectural drift in commercial software development: a case study , 2011, Softw. Pract. Exp..

[25]  Bashar Nuseibeh,et al.  Characterizing Architecturally Significant Requirements , 2013, IEEE Software.

[26]  Derek Rayside,et al.  The effect of call graph construction algorithms for object-oriented programs on automatic clustering , 2000, Proceedings IWPC 2000. 8th International Workshop on Program Comprehension.

[27]  Richard N. Taylor,et al.  Software architecture: foundations, theory, and practice , 2009, 2010 ACM/IEEE 32nd International Conference on Software Engineering.