Many programs are too long or complex to write as a single unit.
Programming becomes much simpler when the code is divided into small
functional units. Modular programs are usually easier to code, debug,
and change than monolithic programs.
The modular approach to programming is similar to the design of
hardware that contains numerous circuits. The device or program is
logically divided into "black boxes" with specific inputs and
outputs. Once the interfaces between the units have been defined, the
detailed design of each unit can proceed separately.
The benefits of modular programming are:
Efficient Program Development
Programs can be developed more quickly with the modular approach
since small subprograms are easier to understand, design, and test
than large programs. With the module inputs and outputs defined,
the programmer can supply the needed input and verify the
correctness of the module by examining the output. The separate
modules are then linked and located by the linker into an absolute
executable single program module. Finally, the complete module is
Multiple Use of Subprograms
Code written for one program is often useful in others. Modular
programming allows these sections to be saved for future use.
Because the code is relocatable, saved modules can be linked to any
program which fulfills their input and output requirements. With
monolithic programming, such sections of code are buried inside the
program and are not so available for use by other programs.
Ease of Debugging and Modifying
Modular programs are generally easier to debug than monolithic
programs. Because of the well defined module interfaces of the
program, problems can be isolated to specific modules. Once the
faulty module has been identified, fixing the problem is
considerably simpler. When a program must be modified, modular
programming simplifies the job. You can link new or debugged
modules to an existing program with the confidence that the rest of
the program will not change.