Modular programming
From Wikipedia, the free encyclopedia
Modular programming is a software design technique that increases the extent to which software is composed from separate parts, called modules. Conceptually, modules represent a separation of concerns, and improve maintainability by enforcing logical boundaries between components. Modules are typically incorporated into the program through interfaces. A module interface expresses the elements that are provided and required by the module. The elements defined in the interface are visible to other modules. The implementation contains the working code that corresponds to the elements declared in the interface.
Languages that formally support the module concept include Ada, D, F, Fortran, Pascal (some derivatives), ML, Modula-2, Erlang, Python and Ruby. The IBM System i (aka AS/400 and iSeries) also uses Modules in RPG, COBOL and CL when programming in the ILE environment.
Modular programming can often be performed even where the language lacks explicit syntax or semantics to support modules. The use of libraries hooked together by a linker are a common mechanism for separating parts of the software into distinct modules.
[edit] Module Interconnection Languages (MILs)
Module Interconnection Languages (MILs) provide formal grammar constructs for deciding the various module interconnection specifications required to assemble a complete software system. MILs enable the separation between programming-in-the-small and programming-in-the-large. Coding a module represents programming in the small, while assembling a system with the help of a MIL represents programming in the large. An example of MIL is MIL-75.
[edit] See also
- Cohesion
- Coupling
- Information hiding (encapsulation)
- Library (computing)
- David Parnas
- List of System Quality Attributes
- Constructionist design methodology, a methodology for creating modular, broad Artificial Intelligence systems
- Structured programming