How well can we predict changes at architecture design time?

Two years ago, we analyzed the architecture of Sagitta 2000/SD, a large business information system being developed on behalf of Dutch Customs. We were in particular interested in assessing the capabilities of the system to accommodate future complex changes. We asked stakeholders to bring forward possible changes to the system, and next investigated how these changes would affect the software architecture. Since then, the system has been implemented and used, and actual modifications have been proposed and realized. We studied all 117 change requests submitted since our initial analysis. The present paper addresses how well we have been able to predict complex changes during our initial analysis, and how and to what extent the process to elicit and assess the impact of such changes might be improved. This study suggests that architecture analysis can be improved if we explicitly challenge the initial requirements. The study also hints at some fundamental limitations of this type of analysis: (1) fundamental modifiabilityrelated decisions need not be visible in the documentation available, (2) the actual evolution of a system remains, to a large extent, unpredictable and (3) some changes concern complex components, and this complexity might not be known at the architecture level, and/or be unavoidable.

[1]  Lois M. L. Delcambre,et al.  Change cases: use cases that identify future requirements , 1996, OOPSLA '96.

[2]  Hans van Vliet,et al.  Towards a broader view on software architecture analysis of flexibility , 1999, Proceedings Sixth Asia Pacific Software Engineering Conference (ASPEC'99) (Cat. No.PR00509).

[3]  John M. Carroll,et al.  Getting Around the Task-Artifact Cycle , 2003 .

[4]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.

[5]  Jan Bosch,et al.  Experiences with ALMA: Architecture-Level Modifiability Analysis , 2002, J. Syst. Softw..

[6]  Rick Kazman,et al.  The architecture tradeoff analysis method , 1998, Proceedings. Fourth IEEE International Conference on Engineering of Complex Computer Systems (Cat. No.98EX193).

[7]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[8]  Mikael Lindvall,et al.  How well do experienced software developers predict software change? , 1998, J. Syst. Softw..

[9]  Hans van Vliet,et al.  Software engineering - principles and practice , 1993 .

[10]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[11]  Annie I. Antón,et al.  A Representational Framework for Scenarios of System Use , 1998, Requirements Engineering.

[12]  Jan Bosch,et al.  Architecture level prediction of software maintenance , 1999, Proceedings of the Third European Conference on Software Maintenance and Reengineering (Cat. No. PR00090).

[13]  Mikael Lindvall,et al.  The visibility of maintenance in object models: an empirical study , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[14]  Hans van Vliet,et al.  Viewpoints on Modifiability , 2001, Int. J. Softw. Eng. Knowl. Eng..

[15]  David Lorge Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, CACM.

[16]  Mary Beth Rosson,et al.  Getting around the task-artifact cycle: how to make claims and design by scenario , 1992, TOIS.

[17]  M A Branch,et al.  Software maintenance management , 1986 .

[18]  Shailey Minocha,et al.  Supporting Scenario-Based Requirements Engineering , 1998, IEEE Trans. Software Eng..

[19]  Leonard J. Bass,et al.  Scenario-Based Analysis of Software Architecture , 1996, IEEE Softw..

[20]  James A. Redmond,et al.  Software metrics - A user's perspective , 1990, J. Syst. Softw..

[21]  Matthias Jarke,et al.  Scenarios in System Development: Current Practice , 1998, IEEE Softw..

[22]  Prashant Palvia,et al.  Software maintenance management: Changes in the last decade , 1990, J. Softw. Maintenance Res. Pract..

[23]  Jan Bosch,et al.  Analyzing Software Architectures for Modifiability. , 2000 .

[24]  Paul Clements,et al.  Recommended Best Industrial Practice for Software Architecture Evaluation. , 1997 .

[25]  Hans van Vliet,et al.  Software engineering (2nd ed.): principles and practice , 2000 .