Software Architecture · Cluster
Architecture Evaluation
Tradeoff analysis and fitness functions.
- 01 Quality-Attribute Scenarios as the Unit of Architectural Evaluation Why adjectives such as scalable or maintainable cannot be evaluated, and how a six-part scenario converts them into statements one can test, disagree about, and rank.
- 02 Dependency Structure Matrices and the Cost of a Cycle How a square matrix over modules exposes layering and reachability at a glance, how partitioning recovers a build order, and what a cycle costs once it is found.
- 03 Instability, Abstractness, and Distance from the Main Sequence How afferent and efferent coupling produce two ratios per package, why their sum locates a package in a zone of pain or uselessness, and where the arithmetic stops being informative.
- 04 Fitness Functions as Build-Time Architectural Constraints How an architectural decision becomes a check that runs on every commit: dependency rules, thresholds with baselines, and the ratchet that stops drift instead of freezing it.
- 05 Utility Trees, Sensitivity Points, and Tradeoff Points How a ranked tree of scenarios drives a structured walkthrough of a design, and how the decisions that move two quality attributes at once are separated from the ones that move only one.
- 06 How Deep to Evaluate: Analysis Cost Against Rework Cost Choosing the depth of an evaluation from the reversibility of the decision, the cost of undoing it, and whether the answer would change what anyone does next.
- 07 Change Coupling Mined from Version History Treating each commit as a set of files, computing co-change rates and lift over a window, and using the result to find coupling that no import graph can see.
- 08 Queueing Bounds as a Deployment Design Test Using Little's law, utilization curves, and the Kingman approximation to decide whether a proposed deployment can meet a latency scenario before anything is built.
- 09 Pareto Frontiers and Cost-Benefit Ranking of Architecture Options Filtering design options by dominance before anyone assigns weights, then comparing the surviving few on marginal cost per unit of quality gained.
- 10 Reliability Block Diagrams and Markov Availability Models Composing availability through series and parallel blocks, translating nines into downtime, and using a small state model where repair and degradation matter more than independence.