Toward a discipline of scenario‐based architectural engineering

Software architecture analysis is a cost‐effective means of controlling risk and maintaining system quality throughout the processes of software design, development and maintenance. This paper presents a sequence of steps that maps architectural quality goals into scenarios that measure the goals, mechanisms that realize the scenarios and analytic models that measure the results. This mapping ensures that design decisions and their rationale are documented in such a fashion that they can be systematically explored, varied, and potentially traded off against each other. As systems evolve, the analytic models can be used to assess the impact of architectural changes, relative to the system's changing quality goals. Although scenarios have been extensively used in software design to understand the ways in which a system meets its operational requirements, there has been little systematic use of scenarios to support analysis, particularly analysis of a software architecture's quality attributes: modifiability, portability, extensibility, security, availability, and so forth. In this paper we present a unified approach to using scenarios to support both the design, analysis and maintenance of software architectures, and examples from large‐scale software development projects where we have applied the approach. We also present a tool, called Brie, that aids in: scenario capture, mapping scenarios to software architectures, and the association of analytic models with particular portions of architectures. The approach that we have devised, and that Brie supports, is a foundation for a discipline of architectural engineering. Architectural engineering is an iterative method of design, analysis and maintenance where design decisions are motivated by scenarios, and are supported by documented analyses.

[1]  Ivar Jacobson,et al.  The Unified Modeling Language User Guide , 1998, J. Database Manag..

[2]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[3]  Mark Klein,et al.  Experience with performing architecture tradeoff analysis , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[4]  Lionel C. Briand,et al.  A Unified Framework for Coupling Measurement in Object-Oriented Systems , 1999, IEEE Trans. Software Eng..

[5]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[6]  M. Saksena,et al.  A Practitioner's Handbook for Real-time Analysis-guide to Rate Monotonic Analysis for Real Time Systems. Symbolic Model Checking for Event-driven Real-time Systems. Acm Toplas , 2007 .

[7]  Stewart A. Higgins,et al.  Scenarios-an industrial case study and hypermedia enhancements , 1995, Proceedings of 1995 IEEE International Symposium on Requirements Engineering (RE'95).

[8]  Ivar Jacobson,et al.  Object-Oriented Software Engineering , 1991, TOOLS.

[9]  Susan Carlson Skalak House of Quality , 2002 .

[10]  Leonard J. Bass,et al.  SAAM: a method for analyzing the properties of software architectures , 1994, Proceedings of 16th International Conference on Software Engineering.

[11]  Barry Boehm,et al.  Aids for Identifying Conflicts Among Quality Requirements , 1996 .

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

[13]  R. J. A. Buhr,et al.  Use Case Maps for Object-Oriented Systems , 1995 .

[14]  Paul Kogut,et al.  Component Provider's and Tool Developer's Handbook. Central Archive for Reusable Defense Software (CARDS) , 1994 .

[15]  G. Kerr Quality factors. , 1988, Health physics.

[16]  Hausi A. Müller,et al.  Programmable Reverse Engineering , 1994, Int. J. Softw. Eng. Knowl. Eng..

[17]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[18]  Barry W. Boehm,et al.  Identifying Quality-Requirement Conflicts , 1996, IEEE Softw..

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

[20]  A. Berztiss,et al.  Requirements Engineering , 2002, J. Object Technol..

[21]  Donald Firesmith Object-oriented requirements analysis and logical design - a software engineering approach , 1993, Wiley professional computing.

[22]  Donald Firesmith,et al.  Object-Oriented Requirements Analysis and Logical Design , 1993, TOOLS.

[23]  Rick Kazman,et al.  Requirements for integrating software architecture and reengineering models: CORUM II , 1998, Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261).

[24]  Philippe Kruchten,et al.  Architecture blueprints—the “4+1” view model of software architecture , 1995, TRI-Ada '95.

[25]  Liam O'Brien,et al.  An architecture for interoperable program understanding tools , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

[26]  Rick Kazman,et al.  Assessing Multiple Designs for the FAA En Route Center Architecture , 1998 .

[27]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

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

[29]  Connie U. Smith,et al.  Software Performance Engineering: A Case Study Including Performance Comparison with Design Alternatives , 1993, IEEE Trans. Software Eng..

[30]  Gilbert Cockton,et al.  Design Principles for Interactive Software , 1997, IFIP — The International Federation for Information Processing.

[31]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..