This chapter started with a sum of coupling analysis. With that analysis, we identified the architecturally significant modules. We also noted that those modules aren’t necessarily the ones we’d expect from our formal specification or design.
After that, we saw how a temporal coupling analysis gives us information we cannot extract from the code alone. It’s information that gives us design insights and refactoring directions. When used as a refactoring guide, we can assume that modules that have changed together in the past are likely to continue to change together. We looked at that in our second analysis of Craft.Net.
You then learned to spot architectural decay by applying trend analyses to the coupling. Finally, you learned how to track potential decay with an evolutionary storyboard.
With temporal coupling behind us, we’ve completed our initial set of analysis methods. Before we move on to discuss teams and social dynamics, we’re going to build on what we’ve learned so far. Until now, we have limited the analyses to individual files. But now you’ll see how temporal coupling scales to system architecture, too. That will be exciting!