Skip to main content
Log in

General methods for software architecture recovery: a potential approach and its evaluation

  • Published:
Empirical Software Engineering Aims and scope Submit manuscript

Abstract

Software architecture is a critical artefact in the software lifecycle. It is a system blueprint for construction, it aids in planning teaming and division of work, and it aids in reasoning about system properties. But architecture documentation is seldom created and, even when it is initially created, it is seldom maintained. For these reasons organisations often feel the need to recover legacy architectures, for example, as part of planning for evolution or cloud migration. But there is no existing general architecture recovery approach nor tool that can be applied to any type of system, under any condition. We will show that one way of achieving such generality is to apply systematic code inspection following a Grounded Theory (GT) approach. Though relatively costly and human-intensive, a GT-based approach has several merits, for example: (a) it is general by design; (b) it can be partially automated; (c) it yields evidence-based results rooted of the system being examined. This article presents one theoretical formulation of a general architecture recovery method–called REM–and reports on the evaluation of REM in the context of a large architecture recovery campaign performed for the European Space Agency. Our results illustrate some intriguing properties and opportunities of GT-based architecture recovery approaches and point out lessons learned and venues for further research.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9

Similar content being viewed by others

Notes

  1. http://icse2017.gatech.edu/

  2. http://www.softwarearchitecture.org

  3. http://ecsa2016.iku.edu.tr

  4. http://www.remics.eu/

  5. http://artist-project.eu/

  6. http://tinyurl.com/of65un2

  7. http://www.esa.int/Our_Activities/Operations/gse/MICONYS

  8. http://tinyurl.com/q8rb8na

  9. http://www.codingthearchitecture.com/

  10. http://www.omg.org/spec/QVT/

  11. A number of other auxiliary model-transformations were devised but their structure and application is not discussed here for the sake of space.

  12. http://ant.apache.org/

  13. Further references on model transformations are available here: http://tinyurl.com/q8rb8na.

  14. Component and class names have been changed to avoid disclosure of protected information.

  15. http://tinyurl.com/jl39tec

  16. https://eclipse.org/modelling/m2t/?project=jet

  17. http://tinyurl.com/j8x3pux

  18. http://tinyurl.com/lf876f7

  19. The authors shall be informed of every study-replication effort, so that ESA stakeholders may be involved if needed.

  20. http://www.esa.int/TEC/Software_engineering_and_standardisation/TECA5CUXBQE_0.html

  21. http://www.ares-nest.org/tiki-index.php

  22. https://eclipse.org/MoDisco/

  23. http://www.terma.de

References

  • Antoine JY, Villaneau J, Lefeuvre A (2014) Weighted krippendorff’s alpha is a more reliable metrics for multi-coders ordinal annotations: experimental studies on emotion, opinion and coreference annotation. In: Bouma G, Parmentier Y (eds) EACL. http://dblp.uni-trier.de/db/conf/eacl/eacl2014.html#AntoineVL14. The Association for Computer Linguistics, pp 550–559

  • Bachmann F et al (2000) Software architecture documentation in practice: documenting architectural layers. Special Report CMU/SEI-2000-SR-004 SEI CMU

  • Baldwin C, Clark K (2000) Design rules: the power of modularity, vol 1. MIT Press, Cambridge, MA

    Book  Google Scholar 

  • Bass L, Clements P, Kazman R (2012) Software architecture in practice. SEI Series in Software Engineering. Addison-Wesley. https://books.google.com/books?id=-II73rBDXCYC

  • Bibel W (1982) Automated theorem proving. Vieweg, Braunschweig

    Book  Google Scholar 

  • Bloor M (1997) Techniques of validation in qualitative research. A critical commentary. In: Miller G, Dingwall R (eds) Context and method in qualitative research. Sage, Thousand Oaks, CA, pp 37–50

  • Boaduo NAP (2011) Action research in virtual communities: how can this complement successful social networking? IJVCSN 3(4):1–14. http://dblp.uni-trier.de/db/journals/ijvcsn/ijvcsn3.html#Boaduo11

    Google Scholar 

  • Clements P, Kazman R, Klein M (2001) Evaluatinjg software architectures: methods and case studies. Addison Wesley Professional

  • Clements P, Bachmann F, Bass L, Garlan D, Ivers J, Little R, Nord R, Stafford J (2002) Documenting software architectures: views and beyond. Addison Wesley Professional

  • Cois CA, Yankel J, Connell A (2014) Modern devops: optimizing software development through effective system interactions. In: IPCC. http://dblp.uni-trier.de/db/conf/ipcc/ipcc2014.html#CoisYC14. IEEE, pp 1–7

  • Corbin J, Strauss A (1990) Grounded theory research: procedures, canons, and evaluative criteria. Qual Sociol 13(1):3–21

    Article  Google Scholar 

  • Corbin JM, Strauss AL (2008) Basics of qualitative research, 3 edn. Sage Publisher

  • Denzin NK, Lincoln YS (2011) The sage handbook of qualitative research. Sage, Thousand Oaks

    Google Scholar 

  • Ding L, Medvidovic N (2001) Focus: a light-weight, incremental approach to software architecture recovery and evolution. In: WICSA. IEEE Computer Society, p 191

  • Dueñas JC, de Oliveira WL, de la Puente JA (1998) Architecture recovery for software evolution. In: CSMR. http://dblp.uni-trier.de/db/conf/csmr/csmr1998.html#DuenasOP98. IEEE Computer Society, pp 113–120

  • Eixelsberger W, Ogris M, Gall HC, Bellay B (1998) Software architecture recovery of a program family. In: Torii K, Futatsugi K, Kemmerer RA (eds) ICSE. http://dblp.uni-trier.de/db/conf/icse/icse98.html#EixelsbergerOGB98. IEEE Computer Society, pp 508–511

  • Frankel D (2002) Model driven architecture: applying MDA to enterprise computing. Wiley

  • Garcia J, Krka I, Mattmann C, Medvidovic N (2013) Obtaining ground-truth software architectures. In: Proceedings of the 2013 international conference on software engineering, ICSE ’13. http://dl.acm.org/citation.cfm?id=2486788.2486911. IEEE Press, Piscataway, NJ, USA, pp 901–910

  • Gear AL, Buckley J, Collins JJ (2005) Software reconnexion: understanding software using a variation on software reconnaissance and reflexion modelling. In: ISESE. http://dblp.uni-trier.de/db/conf/isese/isese2005.html#GearBC05. IEEE Computer Society, pp 34–43

  • Glaser BG (1978) Theoretical sensitivity: advances in the methodology of grounded theory. Sociology Press, San Francisco, CA

    Google Scholar 

  • Guo G, Atlee J, Kazman R (1999) A software architecture reconstruction method. In: Software architecture (proceedings of the first working IFIP conference on software architecture (WICSA1)), pp 15–33

    Chapter  Google Scholar 

  • Gwet K, Gwet K (2002) Inter-rater reliability: dependency on trait prevalence and marginal homogeneity. Stat Methods Inter-Rater Reliab Assess 2:1–9

  • Henriksson A, Larsson H (2003) A definition of round-trip engineering. Tech. rep., Linkpings University, Sweden. http://www.ida.liu.se/~henla/papers/roundtrip-engineering.pdf

  • Herbsleb J, Grinter R (1999) Architectures, coordination, and distance: conway’s law and beyond. IEEE Softw 16(5):63–70. https://doi.org/10.1109/52.795103

    Article  Google Scholar 

  • Hevner, March, Park, Ram (2004) Design science in information system research. https://www.researchgate.net/publication/201168946_Design_Science_in_Information_Systems_Research

    Article  Google Scholar 

  • Izquierdo JLC, Molina JG (2010) An architecture-driven modernization tool for calculating metrics. IEEE Softw 27(4):37–43. http://dblp.uni-trier.de/db/journals/software/software27.html#IzquierdoM10

    Article  Google Scholar 

  • Kandé MM, Strohmeier A (2000) Towards a UML profile for software architecture. In: Kent S, Evans A (eds) UML’2000 - the unified modeling language: advancing the standard, third international conference, York, UK, October 2–6, 2000, LNCS, vol 1939, pp 513–527

  • Kazman R, Carriere J (1998) View extraction and view fusion in architectural understanding. In: Proceedings of the fifth international conference on software reuse, pp 290–299

  • Kazman R, Carriere SJ (1999) Playing detective: reconstructing software architecture from available evidence. Autom Softw Eng 6(2):107–138

    Article  Google Scholar 

  • Kazman R, Woods S, Carriere J (1998) Requirements for integrating software architecture and reengineering models: corum ii. In: Proceedings of the 5th IEEE working conference on reverse engineering (WCRE), pp 154–163

  • Khandkar SH (2011) Open coding: introduction. http://pages.cpsc.ucalgary.ca/~saul/wiki/uploads/CPSC681/open-coding.pdf

  • Kruchten P (1995) Architectural blueprints – the “ 4 + 1” view model of software architecture. IEEE Softw 12(6)

  • Kruchten P (1995) The 4 + 1 view model of architecture. IEEE Softw 12(6):45–50

    Article  Google Scholar 

  • Lago P, Avgeriou P, Hilliard R (2010) Guest editors’ introduction: software architecture: framing stakeholders’ concerns. IEEE Softw 27 (6):20–24. http://dblp.uni-trier.de/db/journals/software/software27.html#LagoAH10

    Article  Google Scholar 

  • Lavrakas PJ (ed.) (2008) Encyclopedia of survey research methods. SAGE Publications Inc. https://doi.org/10.4135/9781412963947

  • Lutellier T, Chollak D, Joshua Garcia LT, Rayside D, Medvidovic N, Kroeger R (2015) Comparing software architecture recovery techniques using accurate dependencies. In: Proceedings of the 2015 international conference on software engineering, ICSE ’15. IEEE Press, Piscataway, NJ, USA

  • Malavolta I, Muccini H, Pelliccione P, Tamburri DA (2010) Providing architectural languages and tools interoperability through model transformation technologies. IEEE Trans Software Eng 36(1):119–140. http://dblp.uni-trier.de/db/journals/tse/tse36.html#MalavoltaMPT10

    Article  Google Scholar 

  • Medvidovic N, Jakobac V (2006) Using software evolution to focus architectural recovery. Autom Softw Eng 13(32):225–256

    Article  Google Scholar 

  • Murphy GC, Notkin D, Sullivan KJ (2001) Software reflexion models: bridging the gap between design and implementation. IEEE TSE 27(4):364–380

    Google Scholar 

  • Myers DM (2009) Qualitative research in business & management, 1st edn. Sage, Los Angeles. http://www.gbv.de/dms/zbw/574672206.pdf

    Google Scholar 

  • Naur P (1985) Programming as theory building. Microprocessing and Microprogramming 15(5):253–261

    Article  Google Scholar 

  • Newcomb P (2005) Architecture-driven modernization (adm). In: WCRE. http://dblp.uni-trier.de/db/conf/wcre/wcre2005.html#Newcomb05. IEEE Computer Society, p 237

  • Onions PEW (2006) Grounded theory applications in reviewing knowledge management literature. In: Leeds Metropolitan University innovation north research conference (1962). http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.107.2036&rep=rep1&type=pdf, pp 1–20

  • Pollet D, Ducasse S, Poyet L, Alloui I, Cîmpan S, Verjus H (2007) Towards a process-oriented software architecture reconstruction taxonomy. In: Krikhaar RL, Verhoef C, Lucca GAD (eds) CSMR. http://dblp.uni-trier.de/db/conf/csmr/csmr2007.html#PolletDPACV07. IEEE Computer Society, pp 137–148

  • Resnik P (1999) Semantic similarity in a taxonomy: an information-based measure and its application to problems of ambiguity in natural language. J Artif Intell Res 11:95–130

    Article  Google Scholar 

  • Sarkarati M, Gomez E, Nanni A, Tamburri DA, Bianco A (2008) Round trip engineering for legacy space data systems based on a model driven architecture approach. In: Proceedings of SpaceOps 2008 conference, Heidelberg, Germany, May 12–16, 2008, pp 310–320

  • Sartipi K, Dezhkam N, Safyallah H (2006) An orchestrated multi-view software architecture reconstruction environment. IEEE Computer Society, Washington, DC, USA

    Book  Google Scholar 

  • Schmerl B, Garlan D, Kazman R, Yan H (2006) Discovering architectures from running systems. IEEE Trans Softw Eng 32(7):454–466

    Article  Google Scholar 

  • Schreiber C, Carley KM (2004) Going beyond the data: empirical validation leading to grounded theory. Computational & Mathematical Organization Theory 10 (2):155–164

    Article  Google Scholar 

  • Silverman D (1997) Validity and credibility in qualitative research. In: Miller G, Dingwall R (eds) Context and method in qualitative research. Sage, Thousand Oaks, CA, pp 13–25

  • Suddaby R (2006) From the editors: what grounded theory is not. Acad Manag J 49(4):633–642

    Article  Google Scholar 

  • Tamburri DA, Lago P, van Vliet H (2013a) Uncovering latent social communities in software development. IEEE Softw 30(1):29–36. https://doi.org/10.1109/MS.2012.170

    Article  Google Scholar 

  • Tamburri DA, Lago P, van Vliet H (2013b) Organizational social structures for software engineering. ACM Comput Surv 46(1):3:1–3:35. https://doi.org/10.1145/2522968.2522971

    Article  Google Scholar 

  • Tamburri DA, Kazman R, Fahimi H (2016) The architect’s role in community shepherding. IEEE Softw 33(6):70–79. http://dblp.uni-trier.de/db/journals/software/software33.html#TamburriKF16

    Article  Google Scholar 

  • Teddlie C, Tashakkori A (2009) Foundations of mixed methods research: integrating quantitative and qualitative approaches in the social and behavioral sciences. Sage, Los Angeles. http://www.amazon.com/Foundations-Mixed-Methods-Research-Quantitative/dp/0761930124

    Google Scholar 

  • Terra R, de Oliveira Valente MT (2009) A dependency constraint language to manage object-oriented software architectures. Softw Pract Exper 39(12):1073–1094. http://dblp.uni-trier.de/db/journals/spe/spe39.html#TerraV09

    Article  Google Scholar 

  • Thomson SB (2011) Sample size and grounded theory. JOAAG, 184–192

  • Tsai J, Xu K (2000) A comparative study of formal verification techniques for software architecture specifications. Ann Softw Eng 10(1):207–223. https://doi.org/10.1023/A:1018960305057

    Article  MATH  Google Scholar 

  • van Niekerk JC, Roode JD (2009) Glaserian and straussian grounded theory: similar or completely different?. In: Dwolatzky B, Cohen J, Hazelhurst S (eds) SAICSIT conference, ACM international conference proceeding series, ACM, pp 96–103

  • Vasconcelos A, Werner C (2007) Architecture recovery and evaluation aiming at program understanding and reuse. LNCS Springer

  • Wettinger J, Breitenbücher U, Kopp O, Leymann F (2016) Streamlining devops automation for cloud applications using tosca as standardized metamodel. Futur Gener Comput Syst 56:317–332. http://dblp.uni-trier.de/db/journals/fgcs/fgcs56.html#WettingerBKL16

    Article  Google Scholar 

  • Wille R (2005) Formal concept analysis as mathematical theory of concepts and concept hierarchies. In: Formal concept analysis, pp 1–33

    MATH  Google Scholar 

  • Xiao L, Cai Y, Kazman R (2014) Titan: a toolset that connects software architecture with quality analysis. In: Proceedings of the 22nd ACM SIGSOFT international symposium on foundations of software engineering, FSE 2014. https://doi.org/10.1145/2635868.2661677. ACM, New York, NY, USA, pp 763–766

Download references

Acknowledgments

We acknowledge the precious comments we received from the anonymous reviewers - they helped greatly in structuring the value and contributions in this manuscript. This research has been conducted in collaboration with TERMA GmbHFootnote 23 as an ESA GSTP study founded by ESA under contract 20645/07/F/VS. The author would like to thank Drs. Gert Villemos, Antonio Bianco and Henry Muccini for support during RTE. Damian’s work is partially supported by the European Commission grant no. 644869 (H2020 - Call 1), DICE.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Damian A. Tamburri.

Additional information

Communicated by: Martin Robillard

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Tamburri, D.A., Kazman, R. General methods for software architecture recovery: a potential approach and its evaluation. Empir Software Eng 23, 1457–1489 (2018). https://doi.org/10.1007/s10664-017-9543-z

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10664-017-9543-z

Keywords

Navigation