Thorough and continuous architecting is the key to overall success in software engineering, and architecture evaluation is a crucial part of it. This book presents a pragmatic architecture evaluation approach and insights gained from its application in more than 75 projects with industrial customers in the past decade. It presents context factors, empirical data, and example cases, as well as lessons learned on mitigating the risk of change through architecture evaluation.
By providing comprehensive answers to more than 100 typical questions and discussing more than 60 frequent mistakes and lessons learned, the book allows readers to not only learn how to conduct architecture evaluations and interpret its results, but also to become aware of risks such as false conclusions, manipulating data, and unsound lines of argument. It equips readers to become confident in assessing quantitative measurement results and recognize when it is better to rely on qualitative expertise.
The target readership includes both practitioners and researchers. By demonstrating its impact and providing clear guidelines, data, and examples, it encourages practitioners to conduct architecture evaluations. At the same time, it offers researchers insights into industrial architecture evaluations, which serve as the basis for guiding research in this area and will inspire future research directions.
“This book starts off nicely, with a rather unusually structured table of contents, which brings out the character of a book written by practitioners for practitioners. The style of the language is casual and entertaining, sometimes even a little sarcastic ("Bermuda Triangle", "patient dies on the way to the hospital",...), which I like a lot. In terms of content, the most pressing issues regarding this subject are answered. All in all, a good overview is provided. I really enjoyed reading this book.”
Stefan Georg, IT Architect, Cosmos Finanzservice GmbH, Saarbruecken, Germany
“This book addresses the very important field of software architecture evaluations. It is important for two reasons: First, it provides practical means for evaluating software architectures, which is relevant for the reasons given above. Second, it bundles experiences and how-to guidelines for the manual approaches, which particularly benefit from exactly such experiences and direct guidelines. This book is an invaluable help in bundling the existing body of knowledge and enriching it strongly with real-world project expertise of the authors. It is not only a major step towards the practical applicability of software architecture evaluation but also helps to find good designs right at the beginning, as it helps to avoid design errors in all phases of a software system’s lifecycle. I wish the readers many insights from the abundant experience of the authors and a lot of fun when applying the knowledge gained.”
Prof. Dr. Ralf H. Reussner, Chair Software Design and Quality, Karlsruhe Institute of Technology (KIT) and Executive Director, Forschungszentrum Informatik (FZI), Karlsruhe, Germany