Introduction
The implementation stage of software development converts a system specification into an executable system. Architectural design is required to design software. Now let's understand software design in detail.
Software Design
The implementation stage of software development is converting a system specification into an executable system. Architectural design is required to design software. Software design is a mechanism to transform user requirements into a suitable form, which helps the programmer implement and code. It shows the client's requirement, described in the Software Requirement Specification document. Or we can say that it (software design) deals with transforming the client's requirements (as described in the SRS or Software Requirement Specification document) into a set of documents suitable for implementation while programming. Before moving on, let's briefly understand what an SRS document is.
SRS stands for Software Requirement Specification. As the name suggests, an SRS is a document that describes how the software will be expected to perform and what it will do.
Software Design Levels
The process of software design can be further divided into the following three levels:
- Architectural design
- Preliminary or Interface design
- Detailed Design
Now, we will learn about these levels in detail.
Architectural Design
In architectural design, we identify the system's overall structure, including the principal components (also called modules or sub-systems ), relationships between them, and how they are distributed.
This design is the highest summarized version of the system. The internal details of significant components are ignored in the architectural design while the overall structure is chosen.
Preliminary or Interface Design
In Preliminary or interface design, interfaces between system components are defined, and the specifications of this Interface must be ambiguous. A component can be used with a precise interface without other components knowing how it is implemented. Once interface specifications are agreed upon, the components can be designed and developed concurrently.
Detailed Design
In this level of software design, the data structures and algorithms are designed for different modules. Thus at this stage, the design includes principal components (also called modules or sub-systems ), relationships between them, and how they are distributed along with the data structures and algorithms. The outcome in this stage is also known as the module specification document.
Objectives of Software Design
The following are the main objectives while designing software:
- Correctness: While designing software, we need to ensure that it is correct as per user requirements.
- Efficiency: To design software, we have to ensure that all the resources will be used efficiently by the program.
- Completeness: Completeness in software design means the design should contain all the components such as external interfaces, data structure modules, etc.
- Flexibility: It means the software design can be modified when needed according to user requirements.
- Maintainability: The Software design should be so simple that other designers can maintain it easily.
-
Consistency: Design should be consistent during software design.
Also see, V Model in Software Engineering
FAQs
-
What is software design?
It deals with transforming the client's requirements (as described in the SRS or Software Requirement Specification document) into a set of documents that is suitable for implementation while programming.
-
What are some characteristics of a good software design?
The following are the properties for a good software design:
Correctness
Completeness
Flexibility
Efficient
Maintainable
Consistent
-
What is the difference between analysis and design in software designing?
The analysis aims to understand the problem to eliminate any deficiencies in the requirement specification, such as incompleteness, inconsistencies, etc. while the design aims to produce a model that will provide a seamless transition to the coding phase.
-
What are the features of a design document?
The following are some features:
A good design should correctly implement all the functionalities that are given in the SRS document.
It must be easily understandable and it should be efficient.
-
What is an SRS document?
SRS stands for Software Requirement Specification. As the name suggests, an SRS document is a document that describes how the software will be expected to perform and what it will do.