November 2017
Intermediate to advanced
670 pages
17h 35m
English
Designing software architecture is the process of defining a structured solution to address our application's user, business, and system requirements. In each case, we must ask, "What do you need?" that is, the requirements, and "Why do you need it?" and document our understanding in a way that the business stakeholders understand. Finally, we must implement the "How?":

The art of software architecture lies in the ability to understand what is important, to make the key decisions in structuring application components and their interfaces, and to make the right decisions regarding things that are hard to change. ...