Software Design is the process of creating the blueprint for the Software system being build. Generally, there are 3 major activities in Software Design –
- External Design
- Architectural Design
- Detailed Design
The Architectural design and Detailed design are collectively known as Internal Design.
- External Design – External design involves conceiving, planning out and specifying the externally observable characteristics of Software Product such as User interface, report formats, data sources, functional characteristics and performance requirements.
- Internal Design – Internal design involves conceiving, planning out and specifying the internal structure and processing details of the software product. The goals of internal design are to specify internal structure and processing details, to record design, to elaborate the test plan and to provide alternatives, provide the blueprint design for implementation, specifying using and maintenance activities.
- Architectural Design – Architectural Design involves the refining of the conceptual view of the system, identifying data entities, attributes, internal processing flows and their relationships.
- Detailed Design – Detailed design include specifications of algorithms/activity flows and detailed class diagrams that provide detailed blueprints for concrete implementation of data models/objects and their interrelationships.