Design Principles¶
Principles are compact statements about desirable dependency and responsibility structures. This module turns slogans into testable design reasoning.
Module objectives¶
- Use change scenarios to evaluate modularity and information hiding.
- Separate cohesion/coupling metrics from the design phenomena they approximate.
- Apply SOLID/GRASP/contracts with awareness of trade-offs and context.
- Reason about package/component dependency direction and stability.
Working method¶
For each concept, move between code, design structure, change scenarios, and evidence. Avoid pattern-name matching without explaining the underlying design problem.