Software design. This stage of a software development lifecycle comprises the process of interpreting requirements set on the previous stage into software architecture, defining how the application will carry out the tasks and what software technologies and tools are to be used for a successful outcome of the software project. Hence, the requirements are represented in a comprehensible way for software developers to set about implementing the software solution. A software design is to design a software structure that realizes the specification. It is the process of converting the system specification (requirements) into a software structure that realizes that specification. The “how” of the software life cycle. This stage of a software development lifecycle comprises the process of interpreting requirements set on the previous stage into software architecture, defining how the application will carry out the tasks and what software technologies and tools are to be used for a successful outcome of the software project. Hence, the requirements are represented in a comprehensible way for software developers to set about implementing the software solution. The software design process involves following activities: 1. Architectural design 2. Abstract specification 3. Interface design 4. Component design 5. Data structure design 6. Algorithm design A good design characteristics are: Minimal complexity Ease of maintenance
Loose coupling Extensibility Reusability High fan-in Low to medium fan out Portability Leanness Stratification Standard techniques