What is Software Design
Software design is a process to transform user requirements into some suitable form, which helps the programmer in software implementation.
It is the first step in SDLC after SRS (System requirement Specifications) analysis
Level of software design:
- High-level Design
- Low-level Design
High level Design
It defines the system modules, API and components and how it interfaces.
Define the system timing constraints and action behaviour that can be visualised using layered architecture and sequence diagrams.
It has 2 types:
- Static Design/Architecture (Layered Architecture)
- Dynamic Design (Sequence Diagrams): show the interactions
Low level Design
It is the second phase design in the SDLC and it defines:
- the internal structure of the components APIs and Error handling for each module (internally)
It can be visualised using flowcharts and state-machine