Khononov V. Balancing Coupling in Software Design...Design Principles 2025
- Type:
- Other > E-books
- Files:
- 1
- Size:
- 14.46 MiB (15162456 Bytes)
- Uploaded:
- 2024-12-14 10:43 GMT
- By:
- andryold1
- Seeders:
- 35
- Leechers:
- 13
- Info Hash: 35409561225BE2B75BED0D7096100064500BE997
Textbook in PDF format 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. This book aims to achieve two main goals. The first is to provide a comprehensive explanation of coupling and the various ways it manifests in software design. Second, by learning to evaluate the multidimensional forces of coupling, you will uncover the intriguing possibility of turning the traditionally vilified concept of coupling into a constructive design tool. This tool will help you guide your systems away from complexity and toward modularity, embodying the principle of balanced coupling. 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 Preface Introduction Coupling Coupling and System Design Coupling and Complexity: Cynefin Coupling and Complexity: Interactions Coupling and Modularity Dimensions Structured Design’s Module Coupling Connascence Integration Strength Distance Volatility Balance Balancing Coupling Rebalancing Coupling Fractal Geometry of Software Design Balanced Coupling in Practice Conclusion