Architectural repair of open source software

As a software system evolves, its architecture will drift. System changes are often done without considering their effects on the system structure. These changes often introduce structural anomalies between the concrete (as-built) and the conceptual (as-designed) architecture which can impede program understanding. The problem of architectural drift is especially pronounced in open source systems, where many developers work in isolation on distinct features with little co-ordination. The authors present their experiences with repairing the architectures of two large open source systems (the Linux operating system kernel and the VIM text editor) to aid program understanding. For both systems, we were successful in removing many structural anomalies from their architectures.

[1]  René L. Krikhaar,et al.  A two-phase process for software architecture improvement , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[2]  Larry Wall,et al.  Programming Perl , 1991 .

[3]  E. Burton Swanson,et al.  Characteristics of application software maintenance , 1978, CACM.

[4]  David Notkin,et al.  Software reflexion models: bridging the gap between source and high-level models , 1995, SIGSOFT FSE.

[5]  Glenford J Myers,et al.  Reliable software through composite design , 1975 .

[6]  Richard C. Holt,et al.  Linux as a case study: its extracted software architecture , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[7]  Meir M. Lehman Programs, Cities, Students— Limits to Growth? , 1978 .

[8]  David D. McDonald,et al.  Programs , 1984, CL.

[9]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .