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).