A Software Architecture Primer presents a fresh, pragmatic approach to the study of software architecture. Written by two practitioners with extensive industry and academic experience, it contains a series of chapters that introduce and develop an understanding of software architecture, by means of careful explanation and elaboration of a range of key concepts. Chapters on architectural analysis and design, on fundamental views of complex software systems, and on architectural styles and quality attributes, combine to ensure that the reader or student will master the art of "architectural thinking." This book will be of value to anyone involved in software systems analysis, design, or development. A complete set of course materials is available to support the use of this book as an undergraduate or post-graduate textbook.