Steps in an Architectural Tradeoff Analysis Method: Quality Attribute Models and Analysis
[Top] [Prev] [Next] [Bottom] [PDF] 
1 Why Architecture Tradeoff Analysis?
In large software systems, the achievement of qualities such as performance, availability, security, and modifiability is dependent not only upon code-level practices (e.g., language choice, detailed design, algorithms, data structures, and testing), but also upon the overall software architecture. Quality attributes of large systems can be highly constrained by a system's software architecture. Thus, it is in our best interest to try and determine at the time a system's software architecture is specified whether the system will have the desired qualities.A variety of qualitative and quantitative techniques are used for analyzing specific quality attributes [Barbacci 95]. These techniques have evolved in separate communities, each with its own vernacular and point of view and have typically been performed in isolation. However, the attribute-specific analyses are interdependent, for example, performance affects modifiability, availability affects safety, security affects performance, and everything affects cost. In other words, each quality attribute has interfaces to other attributes. These interfaces represent dependencies between attributes and are defined by parameters that are shared among attribute models. If we can identify these interfaces, the results from one analysis can feed into the others. This is the principal difference between an architecture tradeoff analysis and other software analysis techniques-that it explicitly considers the interfaces between multiple attributes, and permits principled reasoning about the tradeoffs that inevitably result from such connections. Other analysis frameworks, if they consider connections at all, do so only in an informal fashion, or at a high level of abstraction (see [McCall 94, Smith 93]).
In addition to the technical factors represented by the quality attribute's models and analysis, a software architecture is influenced by business and social forces from multiple stakeholders. Thus, design decisions are often made for non-technical reasons: strategic business concerns, meeting the constraints of cost and schedule, using available personnel, and so forth. "[The message] is that the relationships among business goals, product requirements, practitioner's experience, architectures, and fielded systems form a cycle with feedback loops that a business can manage" [Bass 98]. This "architecture business cycle" is illustrated in Figure 1-1.

There are multiple activities involved in the architecture business cycle:
In Chapter 2 we present the problem, identify the requirements and constraints, and present a structural view of an architecture to be analyzed. In Chapter 3 we present attribute-specific models for performance, availability, and security. The models to be considered in an architecture tradeoff analysis are determined by the system requirements, the architectural views, and the experience of the attribute specialists and the architect.
In Chapter 4 we apply the attribute models developed in the previous chapter and carry out the analyses. To conduct the analyses we must identify values for the parameters of the models. As we shall see, these parameters can be explicit in the requirements or architectural view, discovered in the models, or assumed in scenarios used to carry out the analyses. In all cases, the values are either known from prior experience or are assumed to be so, but subject to confirmation during development. The discovered and assumed parameters have to be added to the architecture as refinements or annotations. Since any assumptions, constraints, etc. needed for a model could potentially affect other models, the annotation of the architectural views-together with the scenarios-must be exposed or communicated to all stakeholders.
Finally, Chapter 5 discusses the sensitivity of the results to the information used in the analyses and the tradeoff points between attributes.
 
[Top] [Prev] [Next] [Bottom] [PDF]