Software architecture is an important factor for the success of any software project. In the context of systematic design and construction, solid software architecture ensures the fulfilment of quality requirements such as expandability, flexibility, performance, and time-to-market.Software architects reconcile customer requirements with the available technical options and the prevailing conditions and constraints. They ensure the creation of appropriate structures and smooth interaction of all system components. As team players, they work closely with software developers and other parties involved in the project.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 is designed for self-study and covers the curriculum for the Certified Professional for Software Architecture - Foundation Level (CPSA-F) exam as defined by the International Software Architecture Qualification Board (iSAQB).