Concepts provide solutions to recurring problems.

We use the term “concept” for rules, principles or other decisions, guidelines, processes that influence one or more elements of the architecture.

  • Decisions, or concepts that cannot adequatly be assigned to a single building block
  • Decisions or rules that influence several:
    • building blocks
    • parts of the implementation
    • runtime scenarios
    • interfaces
    • several developers

Other people like to call crosscutting aspects by different names. In practice we encountered the following terms:

  • approaches
  • aspects: like in “aspect-oriented-programming”
  • concepts: our favorite
  • principles
  • regulations
  • rules
  • tactics: like in design tactics, a term coined in 2003 by the Software Engineering Institute. They define tactics as “architectural decisions that can be used to achieve desired quality attribute requirements”
  • strategies