Sofware design

https://farm1.static.flickr.com/143/357358126_63fb3325d6.jpg 
flickr photo by funkandjazz https://flickr.com/photos/phunk/357358126 shared under a Creative Commons (BY-NC-ND) license


Software design is the process of implementing solutions to a set of problems, it´s a plan to solve the problems with a constant aproach. Software design involves all the components of the software, from the specifications to the architecture. As I like to see it, is a set of rules created by you to fulfill the requirements. The design is not just about the looks, it is also about how it works internally and how the users interact with the program. It´s important because it defines and solidify the process of developing, defining a design is about setting the software requirement analysis and plan the other parts from these specifications, at the end you will have a complete development plan with a constant that makes sure your software makes sense and will do what you, the customer and the users wants, that is the design. As Reeves describes software development, "programming is not about building software; programming is about designing software".

One way of describing a sofware design is using any documentantion method, actually, there is no predefined way of describing a design. You can do it with Unified Modeling Language, flow charts or anything that is readable to somebody else, like just listing the steps. 

The design can be implemented by a framework or by software design patterns.

Just for fun, here is another music video:




source:
https://en.wikipedia.org/wiki/Software_design
http://www.developerdotstar.com/mag/articles/reeves_design.html