Toward a discipline of scenario‐based architectural engineering

Abstract

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.

References

  1. 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.

    Google Scholar 

  2. 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.

    Google Scholar 

  3. Bass, L., P. Clements, and R. Kazman (1998), Software Architecture in Practice, Addison-Wesley, Reading, MA.

    Google Scholar 

  4. Boehm, B. and H. In (1996), “Aids for Identifying Conflicts Among Quality Requirements,” IEEE Software 13, 2, 25–35.

    Article  Google Scholar 

  5. Booch, G., J. Rumbaugh, and I. Jacobson (1999), The Unified Modeling Language User Guide, Addison-Wesley, Reading, MA.

    Google Scholar 

  6. 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.

    Article  Google Scholar 

  7. Buhr, R. and R. Casselman (1996), Use Case Maps for Object-Oriented Systems, Prentice-Hall, Upper Saddle River, NJ.

    Google Scholar 

  8. Cockton, G. and C. Gram, Eds. (1996), Design Principles for Interactive Software, Chapman & Hall, London, UK.

    Google Scholar 

  9. Davis, A. (1994), “Requirements Engineering,” In Encyclopedia of Software Engineering, J. Marciniak, Ed., Vol. 2, New York, pp. 1043–1054.

  10. Firesmith, D. (1993), Object-Oriented Requirements Analysis and Logical Design, Wiley, New York.

    Google Scholar 

  11. Gamma, E., R. Helm, R. Johnson, and J. Vlisside (1995), Design Patterns, Elements of Reusable Object-Oriented Software, Addison-Wesley, Reading, MA.

    Google Scholar 

  12. 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.

    Google Scholar 

  13. Hauser, J.R. and D. Clausing (1998), “The House of Quality,” Harvard Business Review, May/June, 63–73.

  14. Jacobson, I., J. Christeron, and G. Overgaard (1992), Object-Oriented Software Engineering: A Use Case Driven Approach, Addison-Wesley, Reading, MA.

    Google Scholar 

  15. 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.

    Google Scholar 

  16. Kazman, R., G. Abowd, L. Bass, and P. Clements (1996), “Scenario-Based Analysis of Software Architecture,” IEEE Software, November, 47–55.

  17. 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.

    Google Scholar 

  18. 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.

    Article  Google Scholar 

  19. 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.

    Google Scholar 

  20. 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.

    Google Scholar 

  21. Kruchten, P. (1995), “The 4 + 1 View Model of Software Architecture,” IEEE Software, November, 42–50.

  22. McCall, J. (1994), “Quality Factors,” In Encyclopedia of Software Engineering, J. Marciniak, Ed., Vol. 2, Wiley, New York, pp. 958–969.

    Google Scholar 

  23. 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.

    Google Scholar 

  24. 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.

    Google Scholar 

  25. 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.

    Google Scholar 

  26. Object Management Group (1997), CORBAservices: Common Object Services Specification.

  27. 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.

  28. Rumbaugh, J., M. Blaha, W. Premerlani, F. Eddy, and W. Lorensen (1991), Object-Oriented Modeling and Design, Prentice-Hall, New York.

    Google Scholar 

  29. 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.

    Article  Google Scholar 

  30. 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.

    Article  Google Scholar 

  31. 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.

Download references

Author information

Affiliations

Authors

Rights and permissions

Reprints and Permissions

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

Download citation

Keywords

  • Software Architecture
  • Object Oriented Design
  • Architectural Analysis
  • Architectural Engineering
  • Software Engineer Institute