Design it like one of your french modules

550x-draw-me-like-one-of-your-french

Software design is the first step in SDLC (Software Design Life Cycle), which moves the concentration from problem domain to solution domain. It is the process of defining the overall structure and interaction of code so that it will satisfy the user’s requirements using modularization, a technique to divide a software system into multiple discrete and independent modules capable of carrying out tasks independently.

The design should include the hardware, databases, APIs and third party frameworks the software will use or interact with.

Architectural -identifies the software as a system with many components interacting with each other.

High-level  – how the system & its components can be implemented in forms of modules.

Detailed –  towards modules and their implementations.

The output of software design process is design documentation, pseudo codes, detailed logic diagrams, process diagrams, and detailed description of all functional or non-functional requirements.

The next phase, which is the implementation of software, depends on all outputs mentioned above.

RESOURCES: TutorialsPoint