What is software design?

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).

archive.cnx.org

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.).

Software Architecture & Design | Udacity

References

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

Enter This Field? Software Engineer Insider: Syracuse University. Retrieved from: http://www.softwareengineerinsider.com/careers/software-designer.html#.WBTS8eHhDBI

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