Modular programming
Modular programming is a programming paradigm that emphasizes organizing the functions of a codebase into independent modules, each providing an aspect of a computer program in its entirety without providing other aspects. A module interface expresses the elements that are provided and required by the module.