Even a chimp can write code

Tuesday, May 04, 2004

Modular and Loosely-Coupled Systems

Bertrand Meyer, the father of the Eiffel method and language, introduced the five main characteristics of modular systems. Known as Meyer's criteria for evaluating modularity, these are things every developer must know. They are as follows:

  • Decomposability: decompose a problem into smaller sub-problems that can be solved separately. An example is Top-Down design

  • Composability: Freely combine modules to produce new systems. For e.g., Math libraries, Unix command & pipes

  • Understandability: Individual modules must be understandable by a human reader. A counter-example of this is Sequential Dependencies

  • Continuity: A small change in specification must result in changes in only a few modules and must not affect the architecture. In relation to this I recommended reading Bill DeHora's article titled "Foundations for component and service models".

  • Protection: Effects of an abnormal run-time condition must be confined to a few modules. For e.g. Validating input arguments at source.

In his Manageability web log, Carlos Perez extolls the virtues of loosely-coupled systems using an excellent compare-and-contrast method. Do take a good look at the tabulated differences.

Email this | Bookmark this