Experiences with ALMA: Architecture-Level Modifiability Analysis
Modifiability is an important quality for software systems, because a large part of the costs associated with these systems is spent on modifications. The effort, and therefore cost, that is required for these modifications is largely determined by a system's software architecture. Analysis of software architectures is therefore an important technique to achieve modifiability and reduce maintenance costs. However, few techniques for software architecture analysis currently exist. Based on our experiences with software architecture analysis of modifiability, we have developed ALMA. an architecture-level modifiability analysis method consisting of five steps. In this paper we report on our experiences with ALMA. We illustrate our experiences with examples from two case studies of software architecture analysis of modifiability. These case studies concern a system for mobile positioning at Ericsson Software Technology AB and a system for freight handling at DFDS Fraktarna. Our experiences are related to each step of the analysis process. In addition, we made some observations on software architecture analysis of modifiability in general.
1. Introduction
Software evolves, whether we like it or not. Studies indicate that more than 50% of total life cycle cost is spent after initial development (Lientz and Swanson. 1980, Nosek and Palvia. 1990). This high cost of software maintenance is caused by the incorporation of all kinds of anticipated and unanticipated changes after the system has been delivered. Bass et al. (1998) make a
distinction between local, non-local, and architectural changes. A local change involves the modification of a single component. A non-local change requires modifications in multiple components. An architectural change affects the fundamental ways in which the components interact, and is likely to require changes all over the system. Obviously, local changes are preferable to nonlocal and architectural changes.
Modifiability is an important quality for software systems, because a large part of the costs associated with these systems is spent on modifications. The effort, and therefore cost, that is required for these modifications is largely determined by a system's software architecture. Analysis of software architectures is therefore an important technique to achieve modifiability and reduce maintenance costs. However, few techniques for software architecture analysis currently exist. Based on our experiences with software architecture analysis of modifiability, we have developed ALMA. an architecture-level modifiability analysis method consisting of five steps. In this paper we report on our experiences with ALMA. We illustrate our experiences with examples from two case studies of software architecture analysis of modifiability. These case studies concern a system for mobile positioning at Ericsson Software Technology AB and a system for freight handling at DFDS Fraktarna. Our experiences are related to each step of the analysis process. In addition, we made some observations on software architecture analysis of modifiability in general.
1. Introduction
Software evolves, whether we like it or not. Studies indicate that more than 50% of total life cycle cost is spent after initial development (Lientz and Swanson. 1980, Nosek and Palvia. 1990). This high cost of software maintenance is caused by the incorporation of all kinds of anticipated and unanticipated changes after the system has been delivered. Bass et al. (1998) make a
distinction between local, non-local, and architectural changes. A local change involves the modification of a single component. A non-local change requires modifications in multiple components. An architectural change affects the fundamental ways in which the components interact, and is likely to require changes all over the system. Obviously, local changes are preferable to nonlocal and architectural changes.










