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.
This is a preview of subscription content, access via your institution.
Abowd, G., L. Bass, P. Clements, R. Kazman, L. Northrop, and A. Zaremski (1996), “Recommended Best Industrial Practice for Software Architecture Evaluation,” Software Engineering Institute Technical Report CMU/SEI-96-TR-25, Carnegie Mellon University, Pittsburgh, PA.
Barbacci, M., J. Carrière, R. Kazman, M. Klein, H. Lipson, T. Longstaff, and C. Weinstock (1997), “Toward Architecture Tradeoff Analysis: Managing Attribute Conflicts and Interactions,” Software Engineering Institute Technical Report CMU/SEI-97-TR-29, Carnegie Mellon University, Pittsburgh, PA.
Bass, L., P. Clements, and R. Kazman (1998), Software Architecture in Practice, Addison-Wesley, Reading, MA.
Boehm, B. and H. In (1996), “Aids for Identifying Conflicts Among Quality Requirements,” IEEE Software 13, 2, 25–35.
Booch, G., J. Rumbaugh, and I. Jacobson (1999), The Unified Modeling Language User Guide, Addison-Wesley, Reading, MA.
Briand, L., J. Daly, and J. Wuest (1999), “A Unified Framework for Coupling Measurement in Object-Oriented Systems,” IEEE Transactions on Software Engineering 25, 1, 91–121.
Buhr, R. and R. Casselman (1996), Use Case Maps for Object-Oriented Systems, Prentice-Hall, Upper Saddle River, NJ.
Cockton, G. and C. Gram, Eds. (1996), Design Principles for Interactive Software, Chapman & Hall, London, UK.
Davis, A. (1994), “Requirements Engineering,” In Encyclopedia of Software Engineering, J. Marciniak, Ed., Vol. 2, New York, pp. 1043–1054.
Firesmith, D. (1993), Object-Oriented Requirements Analysis and Logical Design, Wiley, New York.
Gamma, E., R. Helm, R. Johnson, and J. Vlisside (1995), Design Patterns, Elements of Reusable Object-Oriented Software, Addison-Wesley, Reading, MA.
Gough, P., F. Fodemski, S. Higgins, and S. Ray (1995), “Scenarios - An Industrial Case Study and Hypermedia Enhancements,” In Proceedings of the Second IEEE International Symposium on Requirements Engineering, IEEE Computer Society Press, Los Alamitos, CA, pp. 10–17.
Hauser, J.R. and D. Clausing (1998), “The House of Quality,” Harvard Business Review, May/June, 63–73.
Jacobson, I., J. Christeron, and G. Overgaard (1992), Object-Oriented Software Engineering: A Use Case Driven Approach, Addison-Wesley, Reading, MA.
Kazman, R., G. Abowd, L. Bass, and M. Webb (1994), “SAAM: A Method for Analyzing the Properties of Software Architectures,” In Proceedings of the 16th International Conference on Software Engineering, IEEE Computer Society Press, Los Alamitos, CA, pp. 81–90.
Kazman, R., G. Abowd, L. Bass, and P. Clements (1996), “Scenario-Based Analysis of Software Architecture,” IEEE Software, November, 47–55.
Kazman, R., M. Barbacci, M. Klein, S.J. Carrière, and S. Woods (1999), “Experience with Performing Architecture Tradeoff Analysis,” In Proceedings of the 21st International Conference on Software Engineering, IEEE Computer Society Press, Los Alamitos, CA, pp. 54–63.
Kazman, R. and S.J. Carrière (1999), “Playing Detective: Reconstructing Software Architecture from Available Evidence,” Journal of Automated Software Engineering 6, 2, 107–138.
Kazman, R., S. Woods, and S.J. Carrière (1998), “Requirements for Integrating Software Architecture and Reengineering Models: CORUM II,” In Proceedings of the Fifth IEEE Working Conference on Reverse Engineering, IEEE Computer Society Press, Los Alamitos, CA, pp. 154–163.
Klein, M., T. Ralya, B. Pollak, R. Obenza, and M.G. Harbour (1993), A Practitioner's Handbook for Real-Time Analysis, Kluwer Academic, New York.
Kruchten, P. (1995), “The 4 + 1 View Model of Software Architecture,” IEEE Software, November, 42–50.
McCall, J. (1994), “Quality Factors,” In Encyclopedia of Software Engineering, J. Marciniak, Ed., Vol. 2, Wiley, New York, pp. 958–969.
Medvidovic, N. (1997), “A Classification and Comparison Framework for Software Architecture Description Languages,” Technical Report UCI-ICS-97-02, University of California at Irvine, CA.
Meyers, B., D. Plakosh, P. Place, M. Klein, and R. Kazman (1998), “Assessing Multiple Designs for the FAA En Route Center Architecture,” Technical Report CMU/SEI-98-SR-02, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, PA.
Nilson, R., P. Kogut, and G. Jackelen (1994), “Component Provider's and Tool Developer's Handbook Central Archive for Reusable Defense Software (CARDS),” STARS Informal Technical Report STARS-VC-B017/001/00, Unisys Corporation, Waltham, MA.
Object Management Group (1997), CORBAservices: Common Object Services Specification.
Poulin, J. (1997), “Domains, Product Lines and Software Architectures: Choosing the Appropriate Level of Abstraction,” In Proceedings of the 8th International Workshop on Software Reuse, http://www.umcs.maine.edu/ftp/wisr/wisr8/wisr8.html.
Rumbaugh, J., M. Blaha, W. Premerlani, F. Eddy, and W. Lorensen (1991), Object-Oriented Modeling and Design, Prentice-Hall, New York.
Smith, C. and L. Williams (1993), “Software Performance Engineering: A Case Study Including Performance Comparison with Design Alternatives,” IEEE Transactions on Software Engineering 19, 7, 720–741.
Wong, K., S. Tilley, H.M¨uller, and M. Storey (1994), “Programmable Reverse Engineering,” International Journal of Software Engineering and Knowledge Engineering 4, 4, 501–520.
Woods, S., L. O'Brien, T. Lin, K. Gallagher, and A. Quilici (1998), “An Architecture for Interoperable Program Understanding Tools,” In Proceedings of the Sixth IEEE International Workshop on Program Comprehension.
About this article
Cite this article
Kazman, R., Carrière, S.J. & Woods, S.G. Toward a discipline of scenario‐based architectural engineering. Annals of Software Engineering 9, 5–33 (2000). https://doi.org/10.1023/A:1018964405965
- Software Architecture
- Object Oriented Design
- Architectural Analysis
- Architectural Engineering
- Software Engineer Institute