Software Design Methodology

In previous chapters, we studied how to create software architectural designs. From this chapter, we study how to evaluate, compare and analyse software architectural designs. In particular, we will learn two approaches to the analysis and evaluation of software architectural designs: scenario-based and model-based approaches. In this chapter, we study the principles underlying scenario-based architectural analysis methods. The objectives of this chapter are:
To study the concept of scenario in the general context of software analysis and design as well as in the more specific context of evaluation and analysis of software architectural designs;
To study how functional and non-functional software requirements, especially quality requirements, can be specified as scenarios;
To study how to analyse and evaluate a software system s quality against a well-specified scenario.
The chapter is organised as follows. Section 1 discusses the concept of scenarios. Section 2 discusses the uses of scenarios in the specification of software modifiability requirements and the evaluation of software modifiability based on architectural designs. Section 3 discusses the uses of scenarios in the specification of performance requirements and the evaluation and analysis of software performances. Section 4 is devoted to software reusability.
As seen in Chapter 2, software quality attributes are normally expressed using words such as maintainability, security, performance, reliability, and so forth. These words provide convenient ways for describing and communicating many common recurring problems in software. Many quality attributes are defined in this way in software engineering standards.
However, most...