The basic concept of Software Design includes various aspects like software design, tasks involved in the design process, and good software design.
Software Design
- Software design is the process to transform the user requirements into some suitable form, which helps the programmer in software coding and implementation.
- During the software design phase, the design document is produce, based on the customer requirements. The aim of this phase is to transform the SRS document into the design document.
- It describes how you plan to solve the problem of designing software, the logic, or thinking behind software design.
- It allows the software engineer to create the model of the software that is to be develop.
- The software design concept provides a supporting and essential model for developing the right software.
General tasks involved in the design process
- Design the overall system processes.
- Segmenting the system into smaller, compact workable modules.
- Designing the database structure.
- Specifying the details of the program to be created to achieve the desired functionality.
- Designing the input and output documents.
- Designing controls for the system.
- Documenting the system design.
Good software design
- The concept of good software design has different meaning that depends upon the applications being designed.
- The design must implement all of the explicit requirements contained in the analysis model.
- The good software design must accommodate all of the implicit requirements desired by the customer.
- The design must be readable, understandable guide for developers and testers of the code.
- The design should address the data, functional and behavioral domains of the software.
- The goodness of design dependent on the targeted application, but also the notion of goodness of a design itself varies widely across software engineers.
- However, most software engineers agree on a few desirable characteristics that every good software design for general application must possess.
- The list of characterstics :
i. Correctness : Implement all the functionalities identified in the SRS document.
ii. Understandibility : A good design is easily understandable.
iii. Efficiency : It should be efficient.
iv. Maintainability : It should be easily amenable to change.