A logical subdivision of a larger, more complex system.

Modules are simply just a convenient way to break down the main problem and divided into many sub problems/solutions. This way the main problem can be broken down into solutions that a team can work on. A module could consist of a the printing functionality of program. This can be handed to one programmer. The GUI (Graphical User Interface) could be another module, handed to another programmer, and so forth.

Modular design is meant to improve efficiency and speed of development by allowing programmers to work on specific aspects of the program independently of each other.