12 Loosely coupled software architecture

 

This chapter covers

  • Minimizing coupling in software architecture
  • Designing software architecture aligned to the domain
  • Validating the design of individual subsystems
  • Determining the optimal level of modernization for each subsystem
  • Migrating subsystems from the current to the target state

Achieving independent value streams in software development requires a loosely coupled software architecture. When software changes become costly, it creates a bottleneck that impedes fast flow, regardless of the quality of domain design and team structure. For some leaders, grasping the importance of loosely coupled architecture takes time. But there are no quick fixes to address the technical requirements of fast flow; doing the hard work of confronting the legacy systems cannot be avoided.

To embark on the journey toward fast flow, the first step is to understand the concept of loose coupling. Even engineers can struggle with this somewhat nebulous idea, as there are no established standards for describing coupling in software. However, there have been attempts to develop models for describing coupling. This chapter introduces Vladik Khononov’s modern approach.

12.1 Coupling types and strength

 
 

12.1.1 Local vs global complexity

 
 

12.2 Modeling architectural flows

 
 
 

12.2.1 Model exploration whirlpool

 
 

12.2.2 Domain message flow modelling

 
 

12.2.3 Industry Example: Modernizing an accounting system

 

12.3 Individual subsystem design

 
 
 

12.3.1 Using a canvas

 
 

12.3.2 Software Design EventStorming

 
 

12.4 Subsystem modernization strategies

 
 
 

12.4.1 The Modernization Strategy Selector

 
 
 
 

12.4.2 Migration patterns

 
 

12.4.3 Assessing current-state complexity

 
 
 
 

12.5 Summary

 
 
 
sitemap

Unable to load book!

The book could not be loaded.

(try again in a couple of minutes)

manning.com homepage
test yourself with a liveTest