Modules are self-contained part of a program which can be developed simultaneously by different programmers or teams of programmers. Modules have clearly defined relationships with the other parts of the system, which enables them to be independently designed, programmed and maintained. Some modules may be independently executable programs, while others may be designed to provide facilities for the suite of programs to which they belong.