Software architecture is an important factor in ensuring the success of any software project. It provides a systematically designed framework that ensures the fulfilment of quality requirements such as expandability, flexibility, performance, and time-to-market. A software architect's job is to reconcile customer requirements with the available technical options and constraints while designing an overall structure that allows all components of the system to interact smoothly. This book gives you all the basic know-how you need to begin designing scalable system software architectures. It goes into detail on all the most important terms and concepts and how they relate to other IT practices. Following on from the basics, it describes the techniques and methods required for the planning, documentation, and quality management of software architectures. It details the role, the tasks, and the work environment of a software architect, as well as looking at how the job itself is embedded in company and project structures. The book also addresses the tools required for the job. This edition has been updated to conform to the ISO/IEC 25010 and ISO/IEC/IEEE 42010 standards. It also puts increased emphasis on domain-driven design, and looks at contemporary architectures such as microservices. The book is based on the International Software Architecture Qualification Board's Certified Professional for Software Architecture - Foundation Level (CPSA-F) syllabus, version 4.1.1. (July 2017).
I appreciate the intent to provide resources for the CPSA-F preparation. This book however failed my expectations in a few ways:
- As a mere "study guide" it's too bloated. Also, it lists the CPSA-F curriculum but only sloppily maps that to the book's content. The "Test your knowledge" sections at the end of each chapter in parts bare little resemblance to the preceding material. A much better (although german) "study guide" is https://www.goodreads.com/book/show/5...
- As a self-contained resource for the CPSA-F exam preparation, it is too shallow. A much better (although german) option would be https://www.goodreads.com/book/show/4...
- It is simply not well written. In particular pages 24 to 59 stretched my good will to its limit. Inconsistent terminology, imprecise wording, contradictions, mistakes, self-serving conceptualizations, ambiguous grammar, generic tautologies, very little depth and unbelievable amounts of redundancy were real turn-offs for me. Again, a much better (although german) choice is https://www.goodreads.com/book/show/5...
Outdated technologies and approaches for modern architecture. It talks for example of MDA, SOA, RMI, etc. It doesn’t provide, importantly, an overview/summary at the end of each chapter about the content but a syllabus, although it is presented like that. It’d be good that at the end of each chapter it had a set of questions with alternatives like in the exam.
This is a good book for the exam but there are some holes and assumptions that require further investigation with supplemental research. Also, some of the concepts have different names.