Foundations of Software Architecture

Module 1

What is Software Architecture?

Define architecture by consequence rather than by diagram: the decisions that are expensive to reverse, why they exist, and how to tell one from an ordinary design choice.

47 min4 lessons
Start module

What you will be able to do

  • Apply a concrete test for whether a decision is architectural.
  • Explain architecture in terms of quality attributes rather than components.
  • Separate architecture, design and implementation without arguing about labels.
  • Recognise the four failure modes that account for most damaged systems.
  1. 01Architecture Is What You Cannot Cheaply Undo

    Every popular definition of architecture is either circular or useless in a meeting. This one is neither: architecture is the set of decisions whose cost of reversal is high.

  2. 02Structure Serves Quality Attributes

    Structure is never the goal. It is the mechanism by which a system achieves the qualities someone is willing to pay for — and those qualities are always in conflict.

  3. 03Architecture, Design, and Implementation

    Where the line falls between the three, why arguing about the labels is a waste of time, and the one question that actually settles it.

  4. 04Four Ways Architecture Fails in Practice

    The big ball of mud, the distributed monolith, gold-plating, and the ivory tower — what each one looks like from the inside, and the early signal for each.

What is Software Architecture?

8 questions · pass at 70%