Software design is a process of defining the architecture, components, interfaces, and other characteristics of a system or component and planning for a software solution. After the purpose and specifications of software is determined, software developers will design or employ designers to develop a plan for a solution (archive.cnx.org, n.d).
Developing software involves many important steps and phases, just as any product does. The product’s efficacy, the customer’s satisfaction, and the cost-effectiveness are all as important as they are for any developed hardware product, and are likewise reliant on a multi-stepped and sometimes complicated process. The actual design, which can be thought of as a blue print, cannot begin until the requirements are determined. Software requirements documents help determine what the software must accomplish. After this step, the actual design is done, and then the coding can take place, after which testing, debugging, and maintenance occur (“Software design”, n.d., para 1).
We can see software design in three main levels:
- Architectural Design – The architectural design is the highest abstract version of the system. It identifies the software as a system with many components interacting with each other (Tutorialspoint, n.d.).
- High-level Design- Focuses on how the system along with all of its components can be implemented in forms of modules. It recognizes modular structure of each sub-system and their relation and interaction among each other(Tutorialspoint, n.d.)..
- Detailed Design- It is more detailed towards modules and their implementations. It defines logical structure of each module and their interfaces to communicate with other modules(Tutorialspoint, n.d.).
archive.cnx.org. (n.d.) Software Design. archive.cnx.org. Retrieved from: http://archive.cnx.org/contents/ac67c233-feb5-45fa-a49d-078899b6408b@3/software-design
“Software design”. (n.d.) What Do Software Designers Do? & How Does
Tutorialspoint. (n.d.) Software Design Basics. Retrieved from: https://www.tutorialspoint.com/software_engineering/software_design_basics.htm
Udacity. (23 feb 2015). Software Architecture & Design. Retrieved from: https://www.youtube.com/playlist?list=PLAwxTw4SYaPkMTetlG7xKWaI5ZAZFX8fL