Building systems incrementally requires for practical reasons
already exposed e.g. by [Simon69-81], that the intermediate results
achieved so far be not jeopardized as the development continues. The
common answer to this problem is modularity.
[Meyer88] devises a definition of modularity as a synthesis of
otherwise contradictory criteria: decomposability, composability,
understandability, continuity and protection.
He further shows that suitable modules must satisfy two conditions. They must be both:
Building on ‘linguistic units’ which match this specification is
the common concern of object orientation.