Book description
Learn How Coupling Impacts Every Software Design Decision You Make--and How to Control It
If you want to build modular, evolvable, and resilient software systems, you have to get coupling right. Every design decision you make influences coupling, which in turn shapes the design options available to you. Despite its importance, coupling often doesn't receive the attention it deserves--until now.
Since the dawn of software engineering, it's been clear that proper management of coupling is essential for architecting modular software systems. This topic has been extensively researched over the years, but some of that knowledge has been forgotten, and some of it is challenging to apply in this day and age. In Balancing Coupling in Software Design, author Vlad Khononov has built a model that not only draws on this accumulated knowledge, but also adapts it to modern software engineering practices, offering a fresh perspective on modular software design.
With principles grounded in practice, Vlad teaches you not only to navigate the multi-dimensional nature of coupling but also to use coupling as a tool for managing complexity and increasing modularity. And who knows, maybe this book will change the way you think about software design as whole.
Defines the concept of coupling and the role it plays in system design and architecture
Explains how coupling can both increase complexity and foster modularity of a system
Introduces a holistic model that turns coupling into a tool for designing modular software
Shows how to evolve design decisions to support continuous growth of software systems
Illustrates the discussed principles with detailed examples based on real-life case studies
"Coupling is one of those words that is used a lot, but little understood. Vlad propels us from simplistic slogans like 'always decouple components' to a nuanced discussion of coupling in the context of complexity and software evolution. If you build modern software, read this book!"
--Gregor Hohpe, author of The Software Architect Elevator
Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
Table of contents
- Cover Page
- About This eBook
- Title Page
- Copyright Page
- Dedication Page
- Contents
- Series Editor Foreword
- Foreword by Rebecca Wirfs-Brock
- Foreword by Kent Beck
- Preface
- Acknowledgments
- About the Author
- Introduction
- Part I: Coupling
- Part II: Dimensions
- Part III: Balance
- Epilogue
- Appendix A. The Ballad of Coupling
- Appendix B. Glossary of Coupling
-
Appendix C. Answers to Quiz Questions
- Chapter 1: Coupling and System Design
- Chapter 2: Coupling and Complexity: Cynefin
- Chapter 3: Coupling and Complexity: Interactions
- Chapter 4: Coupling and Modularity
- Chapter 5: Structured Design’s Module Coupling
- Chapter 6: Connascence
- Chapter 7: Integration Strength
- Chapter 8: Distance
- Chapter 9: Volatility
- Chapter 10: Balancing Coupling
- Chapter 11: Rebalancing Coupling
- Chapter 12: Fractal Geometry of Software Design
- Bibliography
- Index
- Code Snippets
Product information
- Title: Balancing Coupling in Software Design: Universal Design Principles for Architecting Modular Software Systems
- Author(s):
- Release date: October 2023
- Publisher(s): Addison-Wesley Professional
- ISBN: 9780137353514
You might also like
book
Designing Software Architectures: A Practical Approach, 2nd Edition
Learn how to create successful architectural designs and improve your current design practices! Designing Software Architectures, …
book
Designing Event-Driven Systems
Many forces affect software today: larger datasets, geographical disparities, complex company structures, and the growing need …
book
Software Architecture in Practice, 4th Edition
The Definitive, Practical, Proven Guide to Architecting Modern Software--Fully Updated with New Content on Mobility, the …
book
Software Architecture Patterns
The success of any application or system depends on the architecture pattern you use. By describing …