Experiences with ALMA: Architecture-Level Modifiability Analysis

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

Abstract

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.

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 non-local and architectural changes.

During software development, a number of strategies are applied to ease a system's evolution, such as separation of concerns, information hiding, the application of design patterns, etc. Note, however, that the use of `improved' software engineering technologies does not necessarily incur lower maintenance costs. For instance, Dekleva (1992) found no difference in maintenance costs between systems developed using development methodologies considered modern at that time, and those developed using a more traditional approach. Development methodologies were considered modern if they produced an implementation-independent logical representation of a system's function. Dekleva found that such modern development methodologies lead to changes in the allocation of maintenance time. Less time was spent on bug fixing, evaluating change requests, and the like, while more time was spent on implementing changes imposed by external factors and functional enhancements. Apparently, those modern methodologies enable the realization of significant enhancements, while traditional methodologies facilitate patching but discourage users to request major changes. We may conjecture a similar phenomenon, i.e. maintenance will be different but not necessarily cheaper, for architecture- based development versus non-architecture-based development. We have no empirical data to substantiate this conjecture, yet.

Another strategy that may be employed to enhance the modifiability of a system is to assess the quality of interim results produced in the development process. In particular, the software architecture of the system may be assessed to determine the evolutionary capabilities of the system yet to be built. IEEE Standard 1471 (IEEE, 2000) defines software architecture as `the fundamental organization of a system embodied in its components, their relationships to each other and to the environment and the principles guiding its design and evolution'. The software architecture captures the first design decisions concerning the system.

In an architecture-based development process, the result of these design decisions is represented in an architectural description. The main mechanisms to represent architectural descriptions are architecture description languages (ADLs) and view models. ADLs resemble module interconnection languages (MILs) (Prieto-Diaz and Neighbors, 1986). For an overview of ADLs, see (Medvidovic and Taylor, 2000).

View models are based on the principle that a software architecture cannot be captured in a single view. View models define a number of aspects of a software architecture that should be addressed in a software architecture description, e.g. (Kruchten, 1995) or (Soni et al., 1995). The views in both these models are represented as box-and-line diagrams. Their semantics are defined rather informally. A more recent version of the latter model uses UML to define its semantics more precisely (Hofmeister et al., 1999).

Early design decisions captured in these models have a considerable impact on various quality attributes of the system, including its modifiability. It thus pays off to assess these quality attributes at this early stage. We have defined a generalized, adaptable method for architecture-level modifiability analysis (ALMA), which is based on the Software Architecture Analysis Method (SAAM) (Kazman et al., 1996). ALMA is a generalization of earlier work by the authors independently (Bengtsson and Bosch, 1999; Lassing et al., 1999). In this paper we illustrate our experiences in using ALMA in two case studies. One case concerns a system developed by Ericsson Software Technology for positioning mobile telephones, and the other case concerns a system for freight handling at DFDS Fraktarna. The observations made in this paper corroborate and strengthen our individual experiences in earlier studies (Bengtsson and Bosch, 1999; Lassing et al., 1999).

In Section 2, we sketch ALMA. The steps of this method are used in subsequent sections to structure our experiences and put them into perspective. Section 3 introduces the two cases. Our experiences are described in Section 4. In Section 5, we conclude with some summarizing statements.

Section snippets

Overview of ALMA

The method ALMA that we propose is based on change scenarios. A change scenario is a description of a specific event that may occur in the life cycle of a system and requires the system to be modified. Change scenarios resemble change cases, as defined by Ecklund et al. (1996). Both change scenarios and change cases capture potential change. Change cases are tied to methodologies supporting use cases; change scenarios do not require such a context. By exploring the effect of change scenarios on

Case descriptions

In this section we introduce the two system used in the case studies. The goal of the case studies was to conduct a software architecture analysis of modifiability on each of the two systems. We adopted the action research paradigm and took upon ourselves the role of being external analysts.

The domains of the cases were very different, namely, business information systems and mobile telecommunications services systems. The differences between the domains (see Table 1) illustrate the scope of

Experiences

This section gives a description of the experiences that we acquired during the definition and use of ALMA. These experiences will be presented using the five steps of the method. They will be illustrated using examples from the two case studies introduced before.

Conclusions

Software architecture is generally regarded as an important instrument to increase the quality of software systems. One of the qualities to which this applies is modifiability. We have defined a generalized five-step method ALMA (Bengtsson et al., 2000). In this paper we report on 13 experiences we acquired developing and using ALMA. These experiences are illustrated using two case studies that we performed: the MPC system developed by Ericsson Software Technology for positioning mobile

Acknowledgements

We are grateful to Cap Gemini Ernst & Young, and especially Daan Rijsenbrij, for the financial support of this research. In addition, we would like to thank the companies that enabled us to perform the case studies, i.e. DFDS Fraktarna and Ericsson Software Technology. 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 Eriksson of Cap Gemini Ernst & Young, Stefan Gunnarsson of DFDS

Nico Lassing has a MSc in Business Informatics from the Vrije Universiteit in Amsterdam, The Netherlands. He has been a PhD student at the same university, where his research focuses on software architecture analysis, and more specifically on modifiability assessment of business information systems. He currently works as a consultant at Accenture.

References (22)

  • M Lindvall et al.

    How well do experienced software developers predict software change?

    Journal of Systems and Software

    (1998)
  • R Prieto-Diaz et al.

    Module interconnection languages

    Journal of Systems and Software

    (1986)
  • T.K Abdel-Hamid et al.

    Impact of schedule estimation on software project behavior

    IEEE Software

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

    Investigating metrics for architectural assessment

  • L Bass et al.

    Software Architecture in Practice

    (1998)
  • P Bengtsson et al.

    Architecture level prediction of software maintenance

  • Bengtsson, P., Lassing, N., Bosch, J., van Vliet, H., 2000. Analyzing software architectures for modifiability....
  • J.M Carroll et al.

    Getting around the task-artifact cycle

    ACM Transactions on Information Systems

    (1992)
  • S.M Dekleva

    The influence of the information systems development approach on maintenance

    MIS Quarterly

    (1992)
  • Jr Ecklund et al.

    Change cases: use cases that identify future requirements

  • Cited by (0)

    Nico Lassing has a MSc in Business Informatics from the Vrije Universiteit in Amsterdam, The Netherlands. He has been a PhD student at the same university, where his research focuses on software architecture analysis, and more specifically on modifiability assessment of business information systems. He currently works as a consultant at Accenture.

    PerOlof `PO' Bengtsson received his MSc degree in Software Engineering from Blekinge Institute of Technology, Sweden (1997). Before that he has been working as a quality assurance and reuse consultant at the Ericsson subsidiary Ericsson Software Technology AB, Sweden, (1995–1997). He is currently at Blekinge Institute of Technology where he is a PhD student. His research interests include software architecture design and evaluation, especially methods for predicting software qualities from software architecture.

    Hans van Vliet is a Professor in Software Engineering at the Vrije Universiteit. His research interests include software architecture and software measurement. Before joining the Vrije Universiteit, he worked as a researcher at the Centrum voor Wiskunde en Informatica (Amsterdam) and he spent a year as a visiting researcher at the IBM Almaden Research Center in San Jose, California. Hans has an MSc in Computer Science from the Vrije Universiteit and a PhD in Computer Science from the University of Amsterdam.

    Jan Bosch is a professor of software engineering at the University of Groningen, where he heads the software engineering research group. He received a MSc degree from the University of Twente, The Netherlands, and a PhD degree from Lund University, Sweden. His research activities include software architecture design, software product lines, object-oriented frameworks and component-oriented programming. He is the author of a book “Design and Use of Software Architectures: Adopting and Evolving a Product Line Approach” published by Pearson Education (Addison-Wesley & ACM Press), co-editor of two volumes in the Springer LNCS series and has (co-)authored more than 50 refereed journal and conference publications. He has organized numerous workshops and served on many programme committees, including the ICSR'6, CSMR'2000, ECBS'2000, SPLC1 and TOOLS conferences. He is the PC co-chair of the 2002 Working IEEE/IFIP Conference on Software Architecture (WICSA).

    View full text