Difference between revisions of "Modular programming"
Karl Jones (Talk | contribs) (→See also) |
Karl Jones (Talk | contribs) (→See also) |
||
Line 22: | Line 22: | ||
* [[Architecture description language]] | * [[Architecture description language]] | ||
− | * [[Cohesion (computer science)]] | + | * [[Cohesion (computer science)]] - the degree to which the elements of a module belong together. |
* [[Component-based software engineering]] | * [[Component-based software engineering]] | ||
* [[Constructionist design methodology]], a methodology for creating modular, broad [[Artificial intelligence]] systems | * [[Constructionist design methodology]], a methodology for creating modular, broad [[Artificial intelligence]] systems |
Latest revision as of 08:51, 24 August 2016
Modular programming is a software design technique that emphasizes separating the functionality of a computer program into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality.
Description
A module interface expresses the elements that are provided and required by the module.
The elements defined in the interface are detectable by other modules. The implementation contains the working code that corresponds to the elements declared in the interface.
Modular programming is closely related to structured programming and object-oriented programming, all having the same goal of facilitating construction of large software programs and systems by decomposition into smaller pieces, and all originating around the 1960s.
While historically usage of these terms has been inconsistent, modern usage is:
- Modular programming refers to high-level decomposition of the code of an entire program into pieces
- Structured programming refers to the low-level code use of structured control flow, and object-oriented programming to the data use of objects, a kind of data structure
Object-oriented programming
In object-oriented programming, the use of interfaces as an architectural pattern to construct modules is known as interface-based programming.
See also
- Architecture description language
- Cohesion (computer science) - the degree to which the elements of a module belong together.
- Component-based software engineering
- Constructionist design methodology, a methodology for creating modular, broad Artificial intelligence systems
- Conway's law
- Coupling (computer programming)
- David Parnas
- Information hiding (encapsulation)
- Library (computing)
- List of system quality attributes
- Plug-in (computing)
- Separation of concerns - a design principle for separating a computer program into distinct sections, such that each section addresses a separate concern.
- Snippet (programming)
- Structured Design
- Structured programming
External links
- Modular programming @ Wikipedia