A modular approach to programming is gaining popularity in fields of artificial intelligence systems integration, where a large-scale general A.I. system is composed of modules that each serve a specific purpose and communicate with each other to produce the system's overall behavior.
Programs that have many direct interrelationships between any two random parts of the program code are less modular than programs where those relationships occur mainly at well-defined interfaces between modules.
Modular programming techniques are those which increase modularity.