Annals of Software Engineering

, Volume 9, Issue 1–4, pp 5–33 | Cite as

Toward a discipline of scenario‐based architectural engineering

  • Rick Kazman
  • S. Jeromy Carrière
  • Steven G. Woods

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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

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.CrossRefGoogle 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.CrossRefGoogle 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.Google Scholar
  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.Google Scholar
  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.Google Scholar
  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.CrossRefGoogle 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.Google Scholar
  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.Google Scholar
  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.Google Scholar
  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.CrossRefGoogle 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.CrossRefGoogle 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.Google Scholar

Copyright information

© Kluwer Academic Publishers 2000

Authors and Affiliations

  • Rick Kazman
    • 1
  • S. Jeromy Carrière
    • 1
  • Steven G. Woods
    • 1
  1. 1.Software Engineering InstituteCarnegie Mellon UniversityPittsburghUSA E-mail:

Personalised recommendations