This document discusses key concepts in software design including:
- Top-down design which involves starting at the highest level components and working down to lower levels in a stepwise refinement process.
- Loose coupling and high cohesion are desirable design principles where components have minimal interdependencies and each focuses on a single logical function.
- Span of control refers to the number of sub-modules controlled by a main module in software design.
- Key concepts are illustrated through diagrams of tight vs loose coupling and examples of how modules can be organized at different levels with sub-procedures.