SArEM: A SPEM extension for software architecture extraction process

In order to maintain a system, it’s critical to understand its architecture. However even though every system has an architecture, not every system has a reliable representation of its architecture. To deal with this problem many researchers have engaged in software architecture extraction where the system’s architecture is recovered from its source code. While there is a plethora of approaches aiming at extracting software architectures, there is no mean or tool measurement for these approaches; which makes the comparison between the different approaches a hard task. To tackle this lack, we developed a meta-model, based on SPEM meta-model, that specifies the software architecture extraction process. Such meta-model serves as a tool to compare, analyze and evaluate research field approaches. In this paper we detail our meta-model called SArEM (Software Architecture Extraction Meta-model) and clarify its concepts. Keywords-software architecture extraction; software architecture reconstruction; reverse engineering; SPEM extension.

[1]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[2]  David Garlan,et al.  Software architecture: a roadmap , 2000, ICSE '00.

[3]  Richard C. Holt,et al.  Linux as a case study: its extracted software architecture , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[4]  Spiros Mancoridis,et al.  Automatic clustering of software systems using a genetic algorithm , 1999, STEP '99. Proceedings Ninth International Workshop Software Technology and Engineering Practice.

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

[6]  Mohammad Reza Mousavi,et al.  CPP2XMI: Reverse Engineering of UML Class, Sequence, and Activity Diagrams from C++ Source Code , 2006, 2006 13th Working Conference on Reverse Engineering.

[7]  Spiros Mancoridis,et al.  Using Heuristic Search Techniques To Extract Design Abstractions From Source Code , 2002, GECCO.

[8]  Rajalakshmi.M Rajalakshmi.M Software System Re-Modularization using Interactive Genetic Algorithm , 2012 .

[9]  Jeffrey L. Korn,et al.  Chava: reverse engineering and tracking of Java applets , 1999, Sixth Working Conference on Reverse Engineering (Cat. No.PR00303).

[10]  Spiros Mancoridis,et al.  On the automatic modularization of software systems using the Bunch tool , 2006, IEEE Transactions on Software Engineering.

[11]  Tibor Gyimóthy,et al.  Columbus - reverse engineering tool and schema for C++ , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[12]  Rudolf K. Keller,et al.  Pattern-based reverse-engineering of design components , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[13]  Terry Quatrani,et al.  Visual Modeling with Rational Rose 2002 and UML , 2002 .

[14]  Nenad Medvidovic,et al.  Focus: a light-weight, incremental approach to software architecture recovery and evolution , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[15]  Claudio Riva,et al.  Reverse architecting: an industrial experience report , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[16]  Emden R. Gansner,et al.  Bunch: a clustering tool for the recovery and maintenance of software system structures , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[17]  Mark Harman,et al.  Finding Building Blocks for Software Clustering , 2003, GECCO.

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

[19]  David Notkin,et al.  Reengineering Reflexion Models: A Case Study , 1997 .

[20]  Onaiza Maqbool,et al.  The weighted combined algorithm: a linkage algorithm for software clustering , 2004, Eighth European Conference on Software Maintenance and Reengineering, 2004. CSMR 2004. Proceedings..

[21]  Hausi A. Müller,et al.  Programmable Reverse Engineering , 1994, Int. J. Softw. Eng. Knowl. Eng..

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

[23]  Francesca Arcelli Fontana,et al.  A tool for design pattern detection and software architecture reconstruction , 2011, Inf. Sci..

[24]  Kamran Sartipi,et al.  Pattern-based Software Architecture Recovery , 2003 .

[25]  Emden R. Gansner,et al.  A C++ data model supporting reachability analysis and dead code detection , 1997, ESEC '97/FSE-5.

[26]  Emden R. Gansner,et al.  Using automatic clustering to produce high-level system organizations of source code , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

[27]  Kamran Sartipi,et al.  Software architecture recovery based on pattern matching , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[28]  Yann-Gaël Guéhéneuc,et al.  A reverse engineering tool for precise class diagrams , 2004, CASCON.

[29]  Rick Kazman,et al.  Playing Detective: Reconstructing Software Architecture from Available Evidence , 1999, Automated Software Engineering.

[30]  Rick Kazman,et al.  A Software Architecture Reconstruction Method , 1999, WICSA.

[31]  Spiros Mancoridis,et al.  On the evaluation of the Bunch search-based software modularization algorithm , 2007, Soft Comput..