1. Subsystem Decomposition

1.1 The Decomposition Problem

A subsystem decomposes a codebase into smaller, cohesive units. Two primary axes of decomposition exist:

Technical axis: grouping by component type (controller, service, model, view)

Functional axis: grouping by business capability (cataloguing, circulation, etc.)