September 2017
Intermediate to advanced
432 pages
8h 20m
English

Which classes belong in which components? This is an important decision, and requires guidance from good software engineering principles. Unfortunately, over the years, this decision has been made in an ad hoc manner based almost entirely on context.
In this chapter we will discuss the three principles of component cohesion:
• REP: The Reuse/Release Equivalence Principle
• CCP: The Common Closure Principle
• CRP: The Common Reuse Principle
The granule of reuse is the granule of release.
The last decade has seen the rise of a menagerie of module management tools, such as Maven, Leiningen, ...