The loss of architectural knowledge during system evolution: An industrial case study

Architecture defines the components of a system and their dependencies. The knowledge about how the architecture is intended to be implemented is essential to keep the system structure coherent and thereby comprehensible. In practice, this architectural knowledge is explicitly formulated only in the documentation (if at all), which usually gets outdated very soon. This leads to a growing amount of implicit knowledge during evolution that is especially volatile in projects with high developer fluctuation.

[1]  Michael Eichberg,et al.  Defining and continuous checking of structural program dependencies , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[2]  Elmar Jürgens,et al.  Tool Support for Continuous Quality Control , 2008, IEEE Software.

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

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

[5]  Emden R. Gansner,et al.  Drawing graphs with dot , 2006 .

[6]  Jan Bosch,et al.  Design erosion: problems and causes , 2002, J. Syst. Softw..

[7]  Brian Fitzgerald,et al.  Experiences from Representing Software Architecture in a Large Industrial Project Using Model Driven Development , 2007, Second Workshop on Sharing and Reusing Architectural Knowledge - Architecture, Rationale, and Design Intent (SHARK/ADI'07: ICSE Workshops 2007).

[8]  Sjaak Brinkkemper,et al.  Journal of Software Maintenance and Evolution: Research and Practice Design Preservation over Subsequent Releases of a Software Product: a Case Study of Baan Erp , 2022 .

[9]  Mikael Lindvall,et al.  Does the code match the design? A process for architecture evaluation , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[10]  DesignsStephen B. Ornburn Reverse Engineering : Resolving Con icts between Expected andActual Software , 1992 .

[11]  Giuliano Antoniol,et al.  Identifying design-code inconsistencies in object-oriented software: a case study , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[12]  Tom Mens,et al.  Design preservation over subsequent releases of a software product: a case study of Baan ERP: Practice Articles , 2005 .

[13]  Spencer Rugaber,et al.  Reverse engineering: resolving conflicts between expected and actual software designs , 1992, Proceedings Conference on Software Maintenance 1992.

[14]  Muhammad Ali Babar,et al.  Architectural Knowlege Management Strategies: Approaches in Research and Industry , 2007, Second Workshop on Sharing and Reusing Architectural Knowledge - Architecture, Rationale, and Design Intent (SHARK/ADI'07: ICSE Workshops 2007).

[15]  Morten T. Hansen,et al.  What's your strategy for managing knowledge? , 1999, Harvard business review.

[16]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .