The document discusses key concepts in software design including:
- The main activities in software design are data design, architectural design, procedural design, and sometimes interface design. Preliminary design transforms requirements into architecture while detail design refines the architecture.
- Data design develops data structures to represent information from analysis. Architectural design defines program structure and interfaces. Procedural design represents structural components procedurally using notations like flowcharts.
- Other concepts discussed include modularity, abstraction, software architecture, control hierarchy, data structures, and information hiding. Modular design, abstraction and information hiding help manage complexity. Software architecture and control hierarchy define program organization.