Reconstructing ownership architectures to help understand software systems

Recent research suggests that large software systems should have a documented system architecture. One form of documentation that may help describe the structure of software systems is the organization of the developers that designed and implemented the software system. We suggest that all ownership architecture that documents the relationship between developers and source code is a valuable aid in understanding large software systems. If this document is not available then we can reconstruct it based on the system implementation and other documentation. We examine Linux as a case study to demonstrate how to reconstruct and use this type of architecture. The reconstructed Linux ownership architecture provides information that complements other types of architectural documentation. It identifies experts for system components, shows non-functional dependencies, and provides estimates of the quality of components. Ownership architectures also allow us to find problems such as under-staffed sub-systems and components that risk abandonment.

[1]  Hausi A. Müller,et al.  Structural Redocumentation: A Case Study , 1995, IEEE Softw..

[2]  Dewayne E. Perry,et al.  People, organizations, and process improvement , 1994, IEEE Software.

[3]  Susan Elliott Sim,et al.  The ramp-up problem in software projects: a case study of how software immigrants naturalize , 1998, Proceedings of the 20th International Conference on Software Engineering.

[4]  P. Cederqvist,et al.  Version Management with CVS , 1993 .

[5]  Mary Shaw,et al.  Abstractions for Software Architecture and Tools to Support Them , 1995, IEEE Trans. Software Eng..

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

[7]  Robert L. Nord,et al.  Software Architecture in Industrial Applications , 1995, 1995 17th International Conference on Software Engineering.

[8]  James O. Coplien,et al.  A development process generative pattern language , 1994 .

[9]  Hausi A. Müller,et al.  The Software Bookshelf , 1997, IBM Syst. J..

[10]  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).

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

[12]  Philippe Kruchten,et al.  Architecture blueprints—the “4+1” view model of software architecture , 1995, TRI-Ada '95.

[13]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[14]  Richard C. Holt,et al.  Software architecture recovery using Conway's law , 1998, CASCON.

[15]  E PerryDewayne,et al.  Foundations for the study of software architecture , 1992 .

[16]  Fred P. Brooks,et al.  The Mythical Man-Month , 1975, Reliable Software.

[17]  M. E. Conway HOW DO COMMITTEES INVENT , 1967 .

[18]  Bernd Brügge,et al.  Communication Metrics for Software Development , 1998, IEEE Trans. Software Eng..

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

[20]  Rick Kazman,et al.  View extraction and view fusion in architectural understanding , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).