Week 10 - Software Architecture Analysis Method (SAAM)
Week 10 - Software Architecture Analysis Method (SAAM)
CT059-3-2
CT059-3-2 Software Architecture And Testing Software Architecture Analysis Method (SAAM) Slide 2 Out of 21
Learning Outcomes
CT059-3-2 Software Architecture And Testing Software Architecture Analysis Method (SAAM) Slide 3 Out of 21
Key Terms you must be able to use
CT059-3-2 Software Architecture And Testing Software Architecture Analysis Method (SAAM) Slide 5 Out of 21
Overview SAAM
• Request scenarios
• Scenarios will scrutinised, prioritised and mapped onto the
representation of the architecture and analyse where
– the problem area where architecture overly complex
– key design details are not encapsulated but rather are distributed
throughout the architecture
• Also indicate areas where architectural documentation is not
correctly presented.
• Allows group work
• Requires many inputs and produces number of outputs
CT059-3-2 Software Architecture And Testing Software Architecture Analysis Method (SAAM) Slide 6 Out of 21
Inputs to a SAAM Evaluation
• Description of the architecture
• Fine-grained representation of the architecture
• Number of scenarios
CT059-3-2 Software Architecture And Testing Software Architecture Analysis Method (SAAM) Slide 7 Out of 21
Output from a SAAM Evaluation
CT059-3-2 Software Architecture And Testing Software Architecture Analysis Method (SAAM) Slide 9 Out of 21
Steps 1 – Develop Scenario
CT059-3-2 Software Architecture And Testing Software Architecture Analysis Method (SAAM) Slide 10 Out of 21
Step 2 – Describe the
Architecture
• Should use the architectural notation that
understand by all parties
• Must indicate the system computation and
data components as well as all relevant
connections.
• Meta-data should be provide for the above
representation
CT059-3-2 Software Architecture And Testing Software Architecture Analysis Method (SAAM) Slide 11 Out of 21
Step 3 – Classify and Prioritise
the Scenarios
• Use direct scenario
• If not do some changes to the architecture
and classify as indirect scenario
• Should use limited time to evaluate
• Define entire stakeholder and their
concerns
CT059-3-2 Software Architecture And Testing Software Architecture Analysis Method (SAAM) Slide 12 Out of 21
Step 4 – Individually evaluate
Indirect Scenarios
• Once the scenario is selected, map to the architectural
description
• Show how the architecture would need to be changed to
accommodate the scenario
• This will allow the stakeholders to have in-depth
understanding
• For each scenario the changes to the architecture must
be listed and the costs of performing the change must be
estimated
• End of this task a summary table should be produced
that lists all scenarios (direct and indirect)
CT059-3-2 Software Architecture And Testing Software Architecture Analysis Method (SAAM) Slide 13 Out of 21
Example of SAAM Scenario
Evaluation
CT059-3-2 Software Architecture And Testing Software Architecture Analysis Method (SAAM) Slide 14 Out of 21
Step 5 – Assess Scenario
Interactions
• Two or more scenarios require changes to a single
component, it said to have interaction.
• It will exposes the allocation of functionality to the
product’s design.
– Areas of high scenario interaction reveal potentially poor
separation of concerns in the component.
– It leads to structural complexity (coupling and cohesion)
• It reveal that the architecture is not documented to the
right level of structural decomposition.
– When scenarios interact within a component but that component
can actually be decomposed into smaller sub-components that
do not exhibit the scenario interaction
CT059-3-2 Software Architecture And Testing Software Architecture Analysis Method (SAAM) Slide 15 Out of 21
Step 6 – Create the Overall
Evaluation
• Each scenario will be evaluated and assign a
weight.
• This weight usually ties back to the business
goals that each scenario is supporting
• Assigning weight is subjective process but
should follow some structured fashion whereby
the weights and their rationale are publicly
discussed and debated.
CT059-3-2 Software Architecture And Testing Software Architecture Analysis Method (SAAM) Slide 16 Out of 21
A Sample SAAM Agenda
CT059-3-2 Software Architecture And Testing Software Architecture Analysis Method (SAAM) Slide 17 Out of 21
Reference
Clements, Kazman & Klein – Evaluating Software Architectures –– Addison-Wesley.
CT059-3-2 Software Architecture And Testing Software Architecture Analysis Method (SAAM) Slide 18 Out of 21
Summary of Main Teaching Points
CT059-3-2 Software Architecture And Testing Software Architecture Analysis Method (SAAM) Slide 19 Out of 21
Question and Answer Session
Q&A
CT059-3-2 Software Architecture And Testing Software Architecture Analysis Method (SAAM) Slide 20 Out of 21
Next Session
CT059-3-2 Software Architecture And Testing Software Architecture Analysis Method (SAAM) Slide 21 Out of 21