SDA Lec-16
SDA Lec-16
Architectures
For a large-scale software project,
heterogeneous architecture styles are used to
combine benefits of multiple styles and to
ensure quality and appropriateness.
Methodology of Architecture Decision
Choosing Software System Architecture
The architecture most appropriate would be "optimal," trading off the various
competing needs of the system, rather than being good at one thing.
Further Steps:
i. Extend deadlines.
ii. Adjust budgets.
iii. Minimize functional requisites.
Steps:
1. Assign weighting factors to quality attributes based on stakeholder importance.
Example: Performance = 50%, Cost-effectiveness = 20%.
2. Evaluate each design using a scale (e.g., 0–100) for each quality attribute.
3. Calculate total weighted score for each design.
A weighted score can be calculated for each design.
For example, the total score of Design 1 is calculated as follows:
10*50% + 90*10% + 90*10% + 80*10% + 100*20% = 51
By comparing the total scores of all designs, we find that the choice is Design 2.
Once a quantitative evaluation framework is defined, software architects can
proceed with the architecture design with the following two steps:
For example, when the pipe-filter style is chosen, software architects still have to
determine what the filters will be and how to connect them.
General Direction
Each cell denotes whether an architecture style meets the corresponding quality
attribute as follows:
v. An empty cell denotes no explicit judgment for the style/attribute pair in the
general case..
Evaluation of Architecture Designs
Evaluation Approaches
scenario-based risks.
quality attributes.
implementation.
collection of scenarios.
Scenario 1: Add one more occupation, called AmericanFarmer, into the system.
This scenario tests the expandability of the system.
Scenario 2: Perform a virtual exhaustive testing on the system. How will the
system behave if it has to process one million taxpayers per day? The IRS object
includes a list of one million taxpayers, and it has to process each one by calling
the ReportTax() operation. This scenario tests the performance of the system.
Scenario 3: Alter the tax rate calculation algorithm in ReportTax(), for example,
to change the rules of itemized deduction. This scenario tests the modifiability
of the system
Evaluation Result
Scenario 1:
1. In Design 1 (on the left ), if a new class American-Farmer is added, the code
of the IRS class has to be modified.
2. Design 2 is superior due to its compliance with OCP (Open/Closed Principle).
Scenario 3:
If the tax calculation algorithm changes, the AmericanCitizenTaxHandler class
has to be modified in both designs. Algorithm changes require updates in both
designs but can be optimized by introducing a strategy pattern.
The summarize result of the SAAM analysis on the two
architecture designs
Software Architecture and Design
Illuminated, Qian, K., Fu, X., Tao, L.,
& Xu, C., Jones & Bartlett Learning,
MA, 2009
Ch # 12