A Systematic Method for Architecture Recovery
Fritz Solms
2015
Abstract
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.
References
- 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.
- 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.
- Ducasse, S. and Pollet, D. (2009). Software architecture reconstruction: A process-oriented taxonomy. Software Engineering, IEEE Transactions on, 35(4):573-591.
- 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.
- Eisenbarth, T., Koschke, R., and Simon, D. (2003). Locating features in source code. Software Engineering, IEEE Transactions on, 29(3):210-224.
- 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.
- Erl, T. (2005). Service-Oriented Architecture (SOA): Concepts, Technology, and Design. Prentice Hall PTRs.
- 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.
- 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.
- 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.
- Hinsen, K. (2009). The promises of functional programming. Computing in Science Engineering, 11(4):86- 90.
- Hohpe, G. and WOOLF, B. (2004). Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. The Addison-Wesley Signature Series. Prentice Hall.
- Lindvall, M. and Muthig, D. (2008). Bridging the software architecture gap. Computer, 41(6):98-101.
- 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.
- Pinto, M., Fuentes, L., and Troya, J. M. (2011). Specifying aspect-oriented architectures in AO-ADL. Information and Software Technology, 53(11):1165-1182.
- 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.
- 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.
- Rozanski, N. and Woods, E. (2011). Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives. Pearson Education.
- Sartipi, K. (2003). Software architecture recovery based on pattern matching. In Software Maintenance, 2003. ICSM 2003. Proceedings. International Conference on, pages 293-296.
- Shaw, M. and Garlan, D. (1996). Software Architecture: Perspectives on an Emerging Discipline. PrenticeHall, Inc., Upper Saddle River, NJ, USA.
- 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.
- 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.
- 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.
- 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
@conference{enase15,
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,},
year={2015},
pages={215-222},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0005383302150222},
isbn={978-989-758-100-7},
}
in EndNote Style
TY - CONF
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