One of the methods advocated for achieving simplicity in design, for avoiding complexity, is modularization. Modular, structured, and object-oriented programming all aim at the construction of large programs and software systems by decomposition into smaller pieces . Complexity is addressed by the separation of concerns: by decomposing a problem into smaller units, the complexity of individual units is reduced. Modularization is taken to increase the likelihood of correct designs: smaller units, when correct, are more transparently so. Presumably, as a result of breaking a problem into smaller units, the solutions to such units have a better chance of being elegant and parsimonious.
Unable to display preview. Download preview PDF.