The variety of topics in section 8 might seem chaotic, but all topics contained have something in common: They are all crosscutting (for an explanation, see question C-8-1 (what is crosscutting)).

You shall remove (!) all concepts not relevant for your system (see question C-8-3 (deal with many concepts)).

Then you can group/order the remaining topics, either to system-specific criteria or after the following proposal:

  • Business or domain aspects: domain, entity or data models, the ubiquitous language from domain-driven design 
  • Architecture and design patterns: What (recurring) patterns have been applied, and how?
  • User Experience concepts (UX): How is the UI of the system implemented, what conventions or rules apply? How is usability achieved? User interface aspects, i18n, validation, accessibility
  • Safety and security concepts: These qualities are among the most fundamental or important for some systems.
  • Development: Build and build management, code generation, configuration, (automated) testing, migration
  • Under the hood: persistence, distribution, transactions, session-handling, caching, threading, exception and error handling, security
  • Operations concepts: deployment, installation, monitoring

(Initially, Stefan Zörner provided the idea of sub-structuring section 8. We expanded and slightly modified his original proposal)