Software EngineeringOpen accessPublished 3 Oct 2026
Design cohesive modules, packages, libraries, or components with clear responsibilities, public interfaces, dependency rules, state ownership, and tests. Use when a codebase needs stronger internal boundaries without introducing separate services.