Floreth's Blog 2016-10-25 09:50:00

What is software design?


Moraru, S. (2016). Question the software design – Part 5 – Big project  [Ilustración]. Recuperado de http://mozaicworks.com/blog/question-software-design-part-5-big-projects/


"Software design is the process of defining software methods, functions, objects, and the overall structure and interaction of your code so that the resulting functionality will satisfy your users requirements" (UCAR, 2016). So software design is a break down of the architecture of your program, which should include databases, frameworks and hardware that your program will use or interact with. You should also include API's that your code has or that your code calls, because once it's used it is very difficult to change it without breaking other people's code.
They're actual flaws that programmers make when they're trying to design software:
  1. Writing code that isn't needed: It's not about whether you're going to need it in the future, it's about good design.
  2. Not making the code easy to change: Also called "Rigid design". They're two ways to accomplish this: the first one is the failure to understand that the requirements will change and number two writing code without enough design.
  3. Being too generic: AKA Over engineering. It's a flaw that senior developers fall into, too much effort for too little value.
Videos about the three flaws explained by Max Kanat-Alexander the author of Code Simplicity: The Fundamentals of Software.

Part 1:

Part 2, 3 and 4:


Sources & Links: