Coupling and Cohesion as Modularization Drivers: Are we being over-persuaded?

Abstract:

For around three decades Software Engineering gurus
have “sold” us the ideal of minimal coupling and maximal
cohesion at all levels of abstraction as a way to reduce the effort to understand and maintain software systems. The object-oriented paradigm brought a new design philoso-
phy and encapsulation mechanisms that apparently would
help us to achieve that desideratum. However, after a
decade where this paradigm has emerged as the dominant
one, we are faced with practitioners’ reality: coupling and cohesion do not seem to be the dominant driving forces when it comes to modularization. This conclusion was based on a relatively large sample of heterogeneous systems. We describe an environment that allows not only assessing this reality but also deriving better modularization solutions in what concems coupling and cohesion.
These solutions are generated by means of cluster analysis
techniques and partially preserve the original modulariza-
tion criteria. We believe this approach can be of great help in reengineering actions of object-oriented legacy systems.