A Systematic Method for Architecture Recovery

Fritz Solms


Software architecture recovery aims to reverse engineer a software architecture description from the system artifacts (e.g. source code) in order to facilitate software architecture analysis, improvement and control. Whilst there are a number of software architecture recovery methods, none of the current methods focus purely on those aspects of a system which address non-functional requirements. This paper introduces the Systematic Method for Software Architecture Recovery (SyMAR). SyMAR is an inspection method used to recover a software architecture description consistent with the view of a software architecture providing a specification of a software infrastructure addressing non-functional requirements within which application functionality addressing functional requirements can be deployed and executed. The method has been applied to a number of industrial architecture recovery projects. This paper discusses the experiences from these projects and illustrates the method using one of these projects as a case study.


  1. Buchgeher, G. and Weinreich, R. (2009). Connecting architecture and implementation. In Meersman, R., Herrero, P., and Dillon, T., editors, On the Move to Meaningful Internet Systems: OTM 2009 Workshops, volume 5872 of Lecture Notes in Computer Science, pages 316-326. Springer Berlin Heidelberg.
  2. de Silva, L. and Balasubramaniam, D. (2012). Controlling software architecture erosion: A survey. Journal of Systems and Software, 85(1):132-151. Dynamic Analysis and Testing of Embedded Software.
  3. Ducasse, S. and Pollet, D. (2009). Software architecture reconstruction: A process-oriented taxonomy. Software Engineering, IEEE Transactions on, 35(4):573-591.
  4. Duenas, J., Lopes de Oliveira, W., and De la Puente, J. (1998). Architecture recovery for software evolution. In Software Maintenance and Reengineering, 1998. Proceedings of the Second Euromicro Conference on, pages 113-119.
  5. Eisenbarth, T., Koschke, R., and Simon, D. (2003). Locating features in source code. Software Engineering, IEEE Transactions on, 29(3):210-224.
  6. Emery, D. and Hilliard, R. (2009). Every Architecture Description Needs a Framework: Expressing Architecture Frameworks Using ISO/IEC 42010. In Joint Working IEEE/IFIP Conference on Software Architecture, 2009 & European Conference on Software Architecture. WICSA/ECSA 2009, pages 31-40. IEEE.
  7. Erl, T. (2005). Service-Oriented Architecture (SOA): Concepts, Technology, and Design. Prentice Hall PTRs.
  8. Gardazi, S. and Shahid, A. (2009). Survey of software architecture description and usage in software industry of Pakistan. In Emerging Technologies, 2009. ICET 2009. International Conference on, pages 395- 402.
  9. Gorton, I. and Zhu, L. (2005). Tool support for just-in-time architecture reconstruction and evaluation: an experience report. In Proceedings of the 27th international conference on Software engineering, ICSE 7805, pages 514-523, New York, NY, USA. ACM.
  10. Hamdouni, A.-E. E., Seriai, A., and Huchard, M. (2010). Component-based architecture recovery from object oriented systems via relational concept analysis. In Kryszkiewicz, M. and Obiedkov, S. A., editors, CLA, volume 672 of CEUR Workshop Proceedings, pages 259-270. CEUR-WS.org.
  11. Hinsen, K. (2009). The promises of functional programming. Computing in Science Engineering, 11(4):86- 90.
  12. Hohpe, G. and WOOLF, B. (2004). Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. The Addison-Wesley Signature Series. Prentice Hall.
  13. Lindvall, M. and Muthig, D. (2008). Bridging the software architecture gap. Computer, 41(6):98-101.
  14. Pahl, C., Giesecke, S., and Hasselbring, W. (2007). An Ontology-Based Approach for Modelling Architectural Styles. In Oquendo, F., editor, Software Architecture, volume 4758, pages 60-75. Springer Berlin Heidelberg, Berlin, Heidelberg.
  15. Pinto, M., Fuentes, L., and Troya, J. M. (2011). Specifying aspect-oriented architectures in AO-ADL. Information and Software Technology, 53(11):1165-1182.
  16. Pinzger, M. and Gall, H. (2002). Pattern-supported architecture recovery. In Proceedings of the 10th International Workshop on Program Comprehension, IWPC 7802, pages 53-, Washington, DC, USA. IEEE Computer Society.
  17. Roy, B. and Graham, T. (2008). An iterative framework for software architecture recovery: An experience report. In Morrison, R., Balasubramaniam, D., and Falkner, K., editors, Software Architecture, volume 5292 of Lecture Notes in Computer Science, pages 210-224. Springer Berlin Heidelberg.
  18. Rozanski, N. and Woods, E. (2011). Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives. Pearson Education.
  19. Sartipi, K. (2003). Software architecture recovery based on pattern matching. In Software Maintenance, 2003. ICSM 2003. Proceedings. International Conference on, pages 293-296.
  20. Shaw, M. and Garlan, D. (1996). Software Architecture: Perspectives on an Emerging Discipline. PrenticeHall, Inc., Upper Saddle River, NJ, USA.
  21. Solms, F. (2012). What is software architecture? In Proceedings of the South African Institute for Computer Scientists and Information Technologists Conference, SAICSIT 7812, pages 363-373, New York, NY, USA. ACM.
  22. Sora, I. (2013). Software architecture reconstruction through clustering: Finding the right similarity factors. In Proceedings of the 1st International Workshop in Software Evolution and Modernization (SEM 2013), pages 45-54. SciTePress.
  23. Tilley, S. R., Wong, K., Storey, M.-A. D., and Moller, H. A. (1994). Programmable reverse engineering. International Journal of Software Engineering and Knowledge Engineering, 4:501-520.
  24. van Heesch, U., Avgeriou, P., Zdun, U., and Harrison, N. (2012). The supportive effect of patterns in architecture decision recovery: A controlled experiment. Science of Computer Programming, 77(5):551-576.

Paper Citation

in Harvard Style

Solms F. (2015). A Systematic Method for Architecture Recovery . In Proceedings of the 10th International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE, ISBN 978-989-758-100-7, pages 215-222. DOI: 10.5220/0005383302150222

in Bibtex Style

author={Fritz Solms},
title={A Systematic Method for Architecture Recovery},
booktitle={Proceedings of the 10th International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE,},

in EndNote Style

JO - Proceedings of the 10th International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE,
TI - A Systematic Method for Architecture Recovery
SN - 978-989-758-100-7
AU - Solms F.
PY - 2015
SP - 215
EP - 222
DO - 10.5220/0005383302150222