Architecture-level modifiability analysis (ALMA)

https://doi.org/10.1016/S0164-1212(03)00080-3Get rights and content

Abstract

Several studies have shown that 50–70% of the total lifecycle cost for a software system is spent on evolving the system. Organizations aim to reduce the cost of these adaptations, by addressing modifiability during the system’s development. The software architecture plays an important role in achieving this, but few methods for architecture-level modifiability analysis exist. Independently, the authors have been working on scenario-based software architecture analysis methods that focus exclusively on modifiability. Combining these methods led to architecture-level modifiability analysis (ALMA), a unified architecture-level analysis method that focuses on modifiability, distinguishes multiple analysis goals, has explicit assumptions and provides repeatable techniques for performing the steps. ALMA consists of five main steps, i.e. goal selection, software architecture description, change scenario elicitation, change scenario evaluation and interpretation. The method has been validated through its application in several cases, including software architectures at Ericsson Software Technology, DFDS Fraktarna, Althin Medical, the Dutch Department of Defense and the Dutch Tax and Customs Administration.

Introduction

The world around most software systems is constantly changing. This requires software systems to be modified several times after their initial development. A number of studies (Ecklund et al., 1996; Lientz and Swanson, 1980) have shown that 50–70% of the total lifecycle cost of a software system is spent on modifications after initial development. 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.

Based on an understanding of the expected future evolution of the software system, design solutions can prepare for the future incorporation of new and changed requirements. In particular, the software architecture of the system affects the effort of making different types of modifications. One problem, however, is that the software architect has few means or techniques for determining whether the goal of high modifiability has been achieved by the design solutions.

One area of research addressing the above is software architecture analysis. In software architecture analysis, the software architecture of a system is analyzed to predict one or more quality attributes. Software architecture analysis method (SAAM) (Kazman et al., 1996) is a method for assessing software architectures with respect to different quality attributes. The principle of SAAM is to elicit scenarios from the stakeholders and explore their effects on the software architecture. SAAM provides few explicit techniques to be used in the different steps; it leaves much to the experience of the assessor. As such, the repeatability of the analysis may be compromized.

In their earlier work, the authors have independently worked on scenario-based software architecture analysis methods that focus exclusively on modifiability; Bengtsson and Bosch (1999a) have defined a method for predicting maintenance effort based on a system’s software architecture and Lassing et al. (1999a) defined a method with focus on identifying inflexibility at the software architecture level. Comparing these methods revealed similarities and differences (Lassing et al., 2001). They share a similar structure and are both based on scenarios, but the techniques used in the various steps differ. These differences can largely be explained from the methods’ founding assumptions. It was mainly the goals pursued by the analysis that influenced the assumptions. In combining the methods, these assumptions became explicit decisions and led to a unified architecture-level modifiability analysis method that; distinguishes multiple analysis goals, has visible assumptions and provides repeatable techniques for performing the steps. This method is called architecture-level modifiability analysis (ALMA).

ALMA consists of five main steps, i.e. goal selection, software architecture description, scenario elicitation, scenario evaluation and interpretation. We found that modifiability analysis generally has one of three goals, i.e. prediction of future maintenance cost, identification of system inflexibility and comparison of two or more alternative architectures. Depending on the goal, the method employs different techniques in some of the main steps.

The method has been applied successfully to a number of industrial cases, including software architectures at Ericsson Software Technology, DFDS Fraktarna, Althin Medical, the Dutch Department of Defense and the Dutch Tax and Customs Administration. The domains of these software architectures differ considerably, i.e. telecommunications, logistics, embedded systems and business information systems.

The remainder of the paper is organized as follows. In Section 2, we discuss the relationships between software architecture and modifiability. Section 3 discusses various approaches to software architecture analysis. Section 4 presents an overview of the main steps of ALMA. In 5 Case study I. Maintenance prediction, 6 Case study II. Risk assessment, 7 Case study III. Software architecture comparison, we show how to proceed for each of the goals and which techniques to use. These sections are illustrated using case studies that we performed using ALMA. Section 8 discusses the validation of the method. Finally, we conclude with a summary of the paper in Section 9.

Section snippets

Modifiability in software architecture

As we mentioned, this paper concerns with software architecture analysis of modifiability. In the next two sections, we discuss our perspective on two concepts, viz. modifiability and software architecture.

Software architecture analysis

Most engineering disciplines have techniques and methods to predict quality attributes of the system being designed before it has been built. Prediction techniques can be used in every stage of the development process. Code metrics, for example, have been investigated as a predictor of the effort of implementing changes in a software system (Li and Henry, 1993). The drawback of this approach is that it can only be applied when a substantial part of the system’s code has been written. Other

Five steps of ALMA

ALMA has a structure consisting of the following five steps:

  • 1.

    Set goal: determine the aim of the analysis

  • 2.

    Describe software architecture: give a description of the relevant parts of the software architecture

  • 3.

    Elicit scenarios: find the set of relevant scenarios

  • 4.

    Evaluate scenarios: determine the effect of the set of scenarios

  • 5.

    Interpret the results: draw conclusions from the analysis results


When performing an analysis, the separation between the tasks is not very strict and it is often necessary to

Case study I. Maintenance prediction

We illustrate how to use ALMA for maintenance prediction in this article with a case study we performed at Ericsson Software Technology AB. Ericsson carries the Mobile Positioning Center (MPC) as one of their products for locating mobile phones in a cellular network and reporting their geographical position. The MPC extends a cellular telecom network with a mobile device positioning service, and enables network operators to implement services using the positioning information provided by the

Case study II. Risk assessment

The second case study in which we applied ALMA concerns the architecture analysis that we performed for DFDS Fraktarna AB, a Swedish distributor of freight. The system that we investigated is a business information system called EASY and it will be used to track the position of groupage (freight with a weight between 31 kg and 1 ton) through the company’s distribution system. During our analysis, EASY was under development by Cap Gemini Ernst & Young.

Case study III. Software architecture comparison

In the third case we used ALMA to compare two architecture versions between design iterations of a beer can inspection system. The beer can system is a research system developed as part of a joint research project between the company EC-Gruppen AB and the software architecture research group at the Blekinge Institute of Technology. Bengtsson and Bosch (1998) have reported on this project and here we only present the assessment activities from the case. The inspection system is an embedded

Empirical foundation

Scientific merit and validation is important when offering new methods, including the method presented in this article. Controlled experiments are increasingly advocated in the software engineering community (Tichy, 1998; Wohlin et al., 2000). Although a controlled experiment can indeed be a powerful means to test theories, it is not the only method that righteously can claim scientific merit in testing theories. In Robson case studies are thoroughly discussed with respect to their strengths,

Summary

In this paper we propose ALMA, a method for software architecture analysis of modifiability based on scenarios. This method is a generalization of earlier work by the authors and it consists of five major steps: (1) set goal, (2) describe the software architecture, (3) elicit change scenarios, (4) evaluate change scenarios and (5) interpret the results.

ALMA distinguishes the following goals that can be pursued in software architecture analysis of modifiability: maintenance prediction, risk

Acknowledgements

We are very grateful to Cap Gemini Netherlands, and especially Daan Rijsenbrij, for their financial support of this research. We would also like to thank the companies that made it possible to conduct our case studies, Ericsson Software Technology AB, Cap Gemini Sweden, DFDS Fraktarna AB and EC-Gruppen AB for their cooperation. We would especially like to thank Åse Petersén, David Olsson, Stefan Gustavsson and Staffan Johnsson of Ericsson Software Technology AB, Joakim Svensson and Patrik

References (38)

  • W. Li et al.

    OO metrics that predict maintainability

    Journal of Systems and Software

    (1993)
  • M. Lindvall et al.

    How well do experienced software developers predict software change?

    Journal of Systems and Software

    (1998)
  • Abowd, G., Bass, L., Clements, P., Kazman, R., Northrop, L., Zamerski, A., 1996. Recommended best industrial practice...
  • C. Argyris et al.

    Action Science: Concepts, Methods, and Skills for Research and Intervention

    (1985)
  • AT&T, 1993. Best current practices: software architecture validation. Internal Report, AT&T,...
  • L. Bass et al.

    Software Architecture in Practice

    (1998)
  • P. Bengtsson et al.

    Scenario-based software architecture reengineering

  • P. Bengtsson et al.

    Architecture level prediction of software maintenance

  • P. Bengtsson et al.

    Haemo dialysis software architecture design experiences

  • P. Bengtsson et al.

    An experiment on creating scenario profiles for software change

    Annals of Software Engineering

    (2000)
  • S.A. Bohner

    Software change impact analysis for design evolution

  • J. Bosch et al.

    Assessing optimal software architecture maintainability

  • L. Briand et al.

    Emprical studies of object-oriented artifacts, methods, and processes: state of the art and future directions

    Empirical Software Engineering

    (1999)
  • Ecklund Jr., E.F., Delcambre, L.M.L., Freiling, M.J., 1996. Change cases: use cases that identify future requirements....
  • J.E. Henry et al.

    A quantitative comparison of perfective and corrective software maintenance

    Journal of Software Maintenance: Research and Practice

    (1997)
  • C. Hofmeister et al.

    Applied Software Architecture

    (1999)
  • C. Hofmeister et al.

    Describing software architecture with UML

  • IEEE, 2000. Recommended practice for architectural description. IEEE Standard...
  • ISO/IEC, 2000. Information technology––software product quality––Part 1: Quality model. ISO/IEC FDIS...
  • Cited by (0)

    View full text