Software Design

A globally acclaimed specialist providing world-class business solutions

Software Design is the process of transforming user requirements into a suitable form, which helps the programmer in software coding and implementation. During the software design phase, the design document is produced, based on the customer requirements as documented in the SRS document. Hence, this phase aims to transform the SRS document into a design document.

The following items are designed and documented during the design phase:
- Different modules are required.
- Control relationships among modules.
- Interface among different modules.
- Data structure among the different modules.
- Algorithms are required to be implemented among the individual modules.



Objectives of Software Design:
Correctness:
A good design should be correct i.e., it should correctly implement all the functionalities of the system.

Efficiency:
A good software design should address the resources, time, and cost optimization issues.

Flexibility:
A good software design should have the ability to adapt and accommodate changes easily. It includes designing the software in a way, that allows for modifications, enhancements, and scalability without requiring significant rework or causing major disruptions to the existing functionality.

Understandability:
A good design should be easily understandable, it should be modular, and all the modules are arranged in layers.

Completeness:
The design should have all the components like data structures, modules, and external interfaces, etc.

Maintainability:
A good software design aims to create a system that is easy to understand, modify, and maintain over time. This involves using modular and well-structured design principles. Maintainability in software Design also enables developers to fix bugs, enhance features, and adapt the software to changing requirements without excessive effort or introducing new issues.