Software Architecture Evaluation and Maintenance
This domain tests scenario-based evaluation before major commitment, the vocabulary of evaluation outputs, and keeping architecture valid as systems and drivers change.
Core rules and concepts
- Methods include SAAM for scenario-based modifiability, ATAM for quality attribute and trade-off analysis, CBAM for cost-benefit economics, ARID for intermediate designs, and ALMA for modifiability analysis.
- ATAM phases run from presenting the method and business drivers, through presenting the architecture and approaches, building the quality attribute utility tree, analysing and prioritising scenarios, to presenting results.
- Outputs have precise meanings: risks are decisions that may miss a quality goal; non-risks are sound decisions; a sensitivity point is a decision to which one quality attribute is sensitive; a tradeoff point affects two or more attributes in tension.
- Maintenance means detecting drift and erosion with dependency analysis, fitness functions and periodic review, and using coupling metrics such as instability, calculated as efferent divided by total coupling, and distance from the main sequence.
- Evolution uses incremental patterns such as the strangler fig, plus explicit sunsetting plans and re-evaluation when drivers change.
Worked example
An ATAM runs on a payments platform. A utility tree branch states that card authorisation must complete in under 300 milliseconds at 500 transactions per second. Analysis shows response time is highly sensitive to the size of the in-memory token cache, making that a sensitivity point. Enlarging the cache also extends retention of personal data, which conflicts with a security and regulatory concern, so it becomes a tradeoff point between performance and security. The finding is recorded as a risk with a mitigation: a short-lived cache holding tokenised values only. The reasoning is that ATAM yields structured insight and risks, not a pass or fail score.
Traps that cost marks
- Treating ATAM as a certification or a single numeric verdict.
- Confusing a sensitivity point with a tradeoff point; the latter involves attributes in tension.
- Evaluating after commitments are made, when findings cannot change anything.
- Running an evaluation without business drivers or stakeholder scenarios, or letting drift accumulate until a rewrite is the only option.