Software Architecture Knowlege Management
On August 1st, the book Software Architecture Knowlege Management, edited by M. Ali Babar, T. Dingsøyr, P. Lago, and H. van Vliet will be published by Springer-Verlag.
In this book I contributed chapter 3: Documentation of Software Architecture from a Knowledge Management Perspective–Design representation, pp. 39-57.
I review how software architects have represented architectural knowledge and in particular architectural design. This has evolved over the last 3 decades, from very intuitive and informal, to very structured, abstract and formal, from simple diagrams and metaphors, to design notations, and specific languages. As our understanding of architectural knowledge evolved, the importance of design rationale and the decision process became more and more prominent. There is however a constant through this evolution: the systematic use of metaphors.
The book itself is pretty interesting:
“A software architecture manifests the major early design decisions, which determine the system’s development, deployment and evolution. Thus, making better architectural decisions is one of the large challenges in software engineering. Software architecture knowledge management is about capturing practical experience and translating it into generalized architectural knowledge, and using this knowledge in the communication with stakeholders during all phases of the software lifecycle. This book presents a concise description of knowledge management in the software architecture discipline. It explains the importance of sound knowledge management practices for improving software architecture processes and products, and makes clear the role of knowledge management in software architecture and software development processes. It presents many approaches that are in use in software companies today, approaches that have been used in other domains, and approaches under development in academia. After an initial introduction by the editors, the contributions are grouped in three parts on Architecture Knowledge Management, Strategies and Approaches for Managing Architectural Knowledge, and Tools and Techniques for Managing Architectural Knowledge. For the industrial audience, the book gives a broad and concise understanding of the importance of knowledge management for improving software architecture process and building capabilities in designing and evaluating better architectures for their mission- and business-critical systems. For researchers, the book will help to understand the applications of various knowledge management approaches in an industrial setting and to identify research challenges and opportunities.”