Software architecture as langauge construction



Language construction as the major metaphor for software architecture

We either

  construct language


  apply language to solve business problems.

Principles for language construction

  minimal number of moving pieces

  each sentence reads on its own

  components have no more dependencies than they actually need

Principles for applying language to solve business problems

  straightforward is best - avoid indirection

  solving business problems when the right modules / words / namespaces are provided should be trivial