Strategies for Management of Architectural Change and Evolution
Software architecture, the underlying structure to a software system, is an asset which can be invested in. Such investments can later be capitalized on in the form of e.g. increased flexibility and enhanced maintainability. These benefits may be gained in a system developed in one project, but are much more visible in a strategic perspective when several projects share resources. Architectural decisions must then be based not only on technical considerations, but also on organizational and business factors. Organizational factors come into play as the software development process is tightly related to the design rules surrounding the software architecture. Business factors are important, as any attempt at generating value by investing in the software architecture must be aligned with the organization's overall view on value generation. Challenges in this field lie in raising the awareness of organizational and business factors for developers, and the abstractness of software architecture from a management point of view. This thesis has involved multiple case studies at organizations facing challenges related to these aspects of software architecture. The research has been conducted mainly from a qualitative standpoint, to build theory from empirical observations. Interviews as part of architecture and process assessments have been the primary tool for gathering information, and the results have been validated by a continuing effort to find cases that broaden the emerging theories. Different development models linked to architectural strategies have been investigated, and the flexibility of software processes has been assessed with respect to e.g. architectural changes. Study of the implementation of architectural changes has lead to a suggestion for a process for architectural change. Architectural decisions and changes drive the evolution of a software architecture, and the thesis gives a framework for evolution of software architecture and development strategy in general. One such strategy, Open Source Software development, is analyzed in-depth. An attempt to quantify the benefit of an architectural strategy is also made, when a model for decision support on reuse is implemented in a tool. The thesis contributes to increasing the awareness among both developers and managers of the role of the software architecture as an enabler and mediator of technical as well as business goals.
Source Type:Doctoral Dissertation
Keywords:TECHNOLOGY; Software Engineering; Software Architecture; Architectural Evolution; computer technology; Systems engineering; Data- och systemvetenskap
Date of Publication:01/01/2005