Skip to main content
Log in

Using software evolution to focus architectural recovery

  • Published:
Automated Software Engineering Aims and scope Submit manuscript

Abstract

Ideally, a software project commences with requirements gathering and specification, reaches its major milestone with system implementation and delivery, and then continues, possibly indefinitely, into an operation and maintenance phase. The software system's architecture is in many ways the linchpin of this process: it is supposed to be an effective reification of the system's technical requirements and to be faithfully reflected in the system's implementation. Furthermore, the architecture is meant to guide system evolution, while also being updated in the process. However, in reality developers frequently deviate from the architecture, causing architectural erosion, a phenomenon in which the initial, “as documented'' architecture of an application is (arbitrarily) modified to the point where its key properties no longer hold. Architectural recovery is a process frequently used to cope with architectural erosion whereby the current, “as implemented” architecture of a software system is extracted from the system's implementation. In this paper we propose a light-weight approach to architectural recovery, called Focus, which has three unique facets. First, Focus uses a system's evolution requirements to isolate and incrementally recover only the fragment of the system's architecture affected by the evolution. In this manner, Focus allows engineers to direct their primary attention to the part of the system that is immediately impacted by the desired change; subsequent changes will incrementally uncover additional parts of the system's architecture. Secondly, in addition to software components, which are the usual target of existing recovery approaches, Focus also recovers the key architectural notions of software connector and architectural style. Finally, Focus does not only recover a system's architecture, but may in fact rearchitect the system. We have applied and evaluated Focus in the context of several off-the-shelf applications and architectural styles to date. We discuss its key strengths and point out several open issues that will frame our future work.

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.

Similar content being viewed by others

References

  • ACM SIGSOFT Workshop on Self-Healing Systems (WOSS'02), 2002.http://www-2.cs.cmu.edu/∼garlan/woss02/

  • Araki, K. (Ed.) 1999. In: Proceedings of the International Workshopon the Principles of Software Evolution, Fukuoka City, Japan.

  • Booch, G., Jacobson, I., and Rumbaugh, J. 1998. The UnifiedModeling Language User Guide. Addison-Wesley.

  • Bowman, I.T., Holt, R.C., and Brewster, N.V. 1999. Linux as a casestudy: Its extracted software architecture. In ICSE'99, LosAngeles.

  • Bredemyer, D. and Malan, R. The Role of the architect in softwaredevelopment. http://www.bredemeyer.com/pdf%20files/role.pdf

  • Chan, P. and Lee, R. 1996. The Java Class Libraries: AnAnnotated Reference. Addison-Wesley.

  • Cusumano, M.A. and Yoffie, D.B. 1998. Competing on Internet Time:Lessons from Netscape and its Battle with Microsoft. The FreePress, New York.

    Google Scholar 

  • Dashofy, E. M., Medvidovic, N., and Taylor, R. N. 1999. Usingoff-the-shelf middleware to implement Connectors in DistributedSoftware Architectures. In ICSE'99, Los Angeles.

  • Eixelsberger, W., Ogris, M., Gall, H., and Bellay, B. 1998.Software architecture recovery of a program family. In ICSE'98, Kyoto, Japan.

  • Emmerich, W. 2000. Software Engineering and Middleware: A Roadmap.In Anthony Finkelstein (ed.), The Future ofSoftwareEngineering, ACM Press, pp. 119–129.

  • Fielding, R. 2000. Architectural Styles and the Design ofNetwork-Based Software Architectures. Ph.D Thesis, UCIrvine.

  • Gall, H., Klosch, R. and Mittermeir, R. 1995. Object-orientedre-architecting. In ESEC-5, Berlin.

  • Guéhéneuc, Y.G., Albin-Amiot, H., Douence, R., and Cointe,P. 2002. Bridging the Gap between Modeling and ProgrammingLanguages. TR 02/09/INFO, École des Mines de Nantes, France.

  • Guo, G.Y., Atlee, J.M., and Kazman, R. 1999. A SoftwareArchitecture Reconstruction Method. In WICSA-1, San Antonio.

  • Harris, D.R., Yeh, A.S., and Reubenstein, H.B. 1996. ExtractingArchitectural Features from Source Code. Automated SoftwareEngineering, Kluwer Academic Publishers, Boston, vol. 3. pp.109–138.

    Google Scholar 

  • Hassan, A.E. and Holt, R.C. 2000. A Reference Architecture for WebServers. In Working Conference on Reverse Engineering,Brisbane, Australia.

  • Kazman, R. and Carriere, J. 1998. View Extraction and View Fusionin Architectural Understanding. In 5th InternationalConference on Software Reuse, Canada.

  • Kazman, R., O'Brien, L., and Verhoef, C. 2003. ArchitectureReconstruction Guidelines, 2nd Edition, TR CMU/SEI-2002-TR-034.

  • Krasner, G.E. and Pope, S.T. 1988. A Cookbook for Using theModel-View Controller User Interface Paradigm in Smalltalk-80. JOOP. 1(3):26–49

    Google Scholar 

  • Mancoridis, S., Mitchell, B.S., Chen, Y., and Gansner, E.R. 1999.Bunch: A clustering tool for the recovery and maintenance ofsoftware system structures. In Proceedings of InternationalConference of Software Maintenance.

  • Medvidovic, N. and Taylor, R.N. 2000. A Classification andComparison Framework for Software Architecture DescriptionLanguages. IEEE Transactions on Software Engineering 26(1):70–93.

    Article  Google Scholar 

  • Mehta, N.R., Medvidovic, N., and Phadke, S. 2000. Towards aTaxonomy of Software Connectors. In Proceedings of the 22ndInternational Conference on Software Engineering (ICSE 2000), Limerick, Ireland, pp178–187.

  • Mikic-Rakic, M., Mehta, N.R., and Medvidovic, N. 2002.Architectural Style Requirements for Self-Healing Systems. In Proceedings of the 1st Workshop on Self-Healing Systems(WOSS'02), Charleston, South Carolina.

  • MÜller, H.A., Orgun, M.A., Tilley, S.R. and Uhl, J.S. 1993. Areverse engineering approach to subsystem structureidentification. Journal of Software Maintenance: Research andPractice 5(4):181–204.

    Google Scholar 

  • MÜller, H.A., Wong, K., and Tilley, S.R. 1994. UnderstandingSoftware Systems Using Reverse Engineering Technology, In The62nd Congress of L'Association Canadienne Francaise pourl'Avancement des Sciences Proceedings (ACFAS).

  • Murphy, G.C., Notkin, D. and Sullivan, K. 2001. Software ReflexionModels: Bridging the Gap Between Design and Implementation. IEEE Transactions on Software Engineering 27(4):364–380.

    Article  Google Scholar 

  • Perry, D.E. and Wolf, A.L. 1992. Foundations for the Study ofSoftware Architecture. ACM SIGSOFT SEN.

  • Quatrani, T. 1998. Visual Modeling with Rational Rose andUML, Addison-Wesley.

  • Riva, C. 2000. Reverse Architecting: Suggestions for an ExchangeFormat. Workshop on Standard Exchange Format, InternationalConference on Software Engineering (ICSE 2000), Limerick,Ireland.

  • Rugaber, S. 1999. A Tool Suite for Evolving Legacy Software. In ICSM'99, Oxford, England.

  • Sartipi, K. and Kontogiannis, K. 2001. Component Clustering Basedon Maximal Association. In: Proceedings of the IEEE WorkingConference on Reverse Engineering (WCRE 2001), Stuttgart,Germany, pp. 103–114.

  • Sartipi, K. and Kontogiannis, K. 2003. Pattern-based SoftwareArchitecture Recovery. In Proceedings of the Second ASERC Workshopon Software Architecture, Alberta, Canada.

  • Shaw, M. and Clements, P. 1997. A Field Guide to Boxolo:Preliminary Classification of Architectural Styles for SoftwareSystems. In Proceedings of the 21st International ComputerSoftware and Applications Conference (COMPSAC'97), Washington,DC.

  • Shaw, M. and Garlan, D. 1996. Software Architecture: Perspectiveson an Emerging Discipline. Prentice-Hall.

  • Taylor, R.N., Medvidovic, N., Anderson K.M., Whitehead, E.J., Jr.,Robbins, J.E., Nies, K.A., Oreizy, P., and Dubrow, D.L. 1996. AComponent- and Message-Based Architectural Style for GUI Software. IEEE Trans. on Software Engineering 22(6):390–406.

    Article  Google Scholar 

  • Taylor, R.N., Nies, K.A., Bolcer, G.A., MacFarlane, C.A.,Anderson, K.M., and Johnson, G.F. 1995. Chiron-1: A SoftwareArchitecture for User Interface Development, Maintenance, andRun-Time Support. ACM Trans. on CHI 2(2):105–144.

    Google Scholar 

  • Tzerpos, V. and Holt, R.C. 1996. A Hybrid Process for RecoveringSoftware Architecture. In CASCON'96, Toronto.

  • Tzerpos, V. and Holt, R.C. 2000. ACDC: An Algorithm forComprehension-Driven Clustering. In Proceedings of theSeventh Working Conference on Reverse Engineering, pp. 258–267.

  • Windows Downloads and Product Updates. 2004. MicrosoftCorporation. http://www.microsoft.com/windows/downloads/

  • Wong, K., Tilley, S., Muller, H.A., and Storey, M.D. 1995.Structural Redocumentation: A Case Study. IEEE Software pp. 46–54.

  • Yeh, A.S., Harris, D.R., and Chase, M.P. 1997. Manipulating Recovered Architecture Views, Proc. Intl'l Conf. SoftwareEng., pp. 184–194.

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Nenad Medvidovic.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Medvidovic, N., Jakobac, V. Using software evolution to focus architectural recovery. Autom Software Eng 13, 225–256 (2006). https://doi.org/10.1007/s10515-006-7737-5

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10515-006-7737-5

Keywords

Navigation