Software design methodology
Software design is where we:
- Gather requirements
- Create specifications from requirements
- Implement a solution based on the specifications
- Review results and iterate to improve the solution
Traditional waterfall development depends on a perfect understanding of the product requirements at the outset and minimal errors being executed in each phase. Source: http://scrumreferencecard.com/scrum-reference-card/
Scrum blends all the development activities into each iteration, adapting to discovered realities at fixed intervals:
 Source: http://scrumreferencecard.com/scrum-reference-card/
In the process of creating specifications, artifacts such as Unified Markup Language (UML) diagrams are often created to help us think about the problem and craft a viable solution.
Analysis is where we model real-world operations, breaking apart pieces into components. Design is where we craft a software solution based on the analysis work, our IT environment, and the frameworks/technology stacks...