Week 11 Lecture No. 2: Heterogeneous Architectural Styles
Week 11 Lecture No. 2: Heterogeneous Architectural Styles
Lecture No. 2
The responsibility of a good software architect is not to work out one feasible solution, but to
determine which architecture best suits the business needs.
A number of architecture styles have been covered, including the data flow architectures (pipe filter,
process control), data centric architectures (repository), hierarchical, implicit asynchronous
communication, interaction-oriented, distributed, and component-based architectures.
Given the large number of alternative architecture styles available, how do you choose the right one
that will achieve the project goals optimally (e.g., with the minimal cost)? This section guides you
through a brief introduction of the general methodology of determining software architecture under
given system constraints.
Example
In practice, multiple architecture styles often have to be used in the same project.
Imagine yourself as the architect of a medieval castle.
It is unlikely that the same architecture style can be used for all parts of a castle (e.g.,
moat, tower, drawbridge, curtain wall, castle hall, residential buildings for civilians).
Suppose that the system analysts on a project identify five quality attributes
during the requirement analysis: performance, reliability, usability, reusability,
and cost-effectiveness.
Each of the quality attributes is assigned a percentage weighting factor; for
example, performance accounts for 50% of stakeholder concern among all quality
attributes. For each quality attribute the evaluation is represented using a value
between 0 and 100.
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:
1) Choose a proper architecture style.
2) Furnish the details of the architecture design; 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.
Evaluation of Architecture