Software Design Methodology

The techniques of scenario-based evaluation and analysis of software architectural designs that we have learned so far are only good for the evaluation of a single quality attribute. When a set of quality attributes is considered at the same time, an architectural design often has to trade-off between conflict quality requirements. This is because, as we have discussed in Chapter 2, certain quality attributes are inversely interrelated. That is, two quality attributes are in conflict with each other, if an architectural design is good at one quality attribute it implies that it will be inevitably less satisfaction on the other quality attribute. Architectural designs must balance between such conflict quality requirements to achieve overall satisfactory. In the architectural design of software systems, we need to answer questions like the following.
Are there quality attributes that are in conflict with each other within a specific architectural design?
Which design decision or decisions in an architectural design bear the most impact on the quality attributes that are in conflict with each other?
Which component or connector or a set of them are most sensitive to affect or to be affected by the balance between the conflicting quality attributes?
These questions are what quality trade-off analysis methods aim at answering. They are addressed in this chapter. The objectives of this chapter are:
To understand why quality attributes can be in confliction with each other;
To learn how to make design decisions to balance between conflict quality attributes in architectural designs...