Information about Modularity (programming)
For other uses of "Modularity", see Modularity (disambiguation).
Modularity is a concept that has applications in the contexts of computer science, particularly programming, as well as cognitive science in investigating the structure of mind. A module can be defined variously, but generally must be a component of a larger system, and operate within that system independently from the operations of the other components.
Modules provide a separation between interface and implementation. 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 explicitly support the module concept include Ada, D, F, Fortran, Pascal (some derivatives), ML, Modula-2, 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.
Modules and classes
The differences between classes and modules are:- Classes can be instantiated to create objects,
- Classes can inherit behavior and data from another class,
- Polymorphism allows relationships between class instances to change at run-time, while relations between modules are static.
- Both can be used to hide implementation details from public view.
- Both can form a hierarchy of modules/classes.
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.Modularity in Computer Science
Modularity is the property of computer programs that measures the extent to which they have been composed out of separate parts called modules. A modular approach to programming is gaining popularity in fields of artificial intelligence systems integration, where a large-scale general A.I. system is composed of modules that each serve a specific purpose and communicate with each other to produce the system's overall behavior.Programs that have many direct interrelationships between any two random parts of the program code are less modular (more tightly coupled) than programs where those relationships occur mainly at well-defined interfaces between modules.
Modular programming techniques are those which increase modularity. (See also: modular programming, structured programming, procedural programming, object-oriented programming and aspect-oriented programming, distributed computing.)
Works Cited
- Guimerá, R. & L.A. Nunes Amaral (2005). Functional Cartography of Complex Metabolic Networks. Nature, 433: 895-900.
- Yang, A.S. (2001). Modularity, Evolvability and Adaptive Radiations. Evolution and Development, 3:2, 59-72.
See also
- Modular programming
- Cognitive Science
- Cohesion
- Coupling
- Encapsulation
- Library (computing)
- David Parnas
- Ilities
- Modularity of mind
- Philosophy of mind
- Constructionist design methodology. A methodology for creating modular, broad A.I. systems.
External links
Modularity can refer to one of the following things:
..... Click the link for more information.
- In biology, modularity (biology) refers to the concept that organisms or metabolic pathways are composed of modules.
..... Click the link for more information.
Computer science, or computing science, is the study of the theoretical foundations of information and computation and their implementation and application in computer systems.
..... Click the link for more information.
..... Click the link for more information.
Computer programming (often shortened to programming or coding) is the process of writing, testing, and maintaining the source code of computer programs. The source code is written in a programming language.
..... Click the link for more information.
..... Click the link for more information.
Cognitive science is most simply defined as the scientific study either of mind or of intelligence (e.g. Luger 1994). It is an interdisciplinary study drawing from relevant fields including psychology, philosophy, neuroscience, linguistics, anthropology, computer science,
..... Click the link for more information.
..... Click the link for more information.
MIND High School
Address
4563 St. Urbain
Montreal, Quebec, H2T 2V9, Canada
..... Click the link for more information.
Address
4563 St. Urbain
Montreal, Quebec, H2T 2V9, Canada
..... Click the link for more information.
An interface defines the communication boundary between two entities, such as a piece of software, a hardware device, or a user. It generally refers to an abstraction that an entity provides of itself to the outside.
..... Click the link for more information.
..... Click the link for more information.
Implementation is the realization of an application, or execution of a plan, idea, model, design, specification, standard, algorithm, or policy.
In computer science, an implementation is a realization of a technical specification or algorithm as a program, software
..... Click the link for more information.
In computer science, an implementation is a realization of a technical specification or algorithm as a program, software
..... Click the link for more information.
Ada
Paradigm: multi-paradigm: concurrent, distributed, generic-programming, imperative, object-oriented
Appeared in: 1983, last revised 2005
Designed by: Jean Ichbiah, extended
by S.
..... Click the link for more information.
Paradigm: multi-paradigm: concurrent, distributed, generic-programming, imperative, object-oriented
Appeared in: 1983, last revised 2005
Designed by: Jean Ichbiah, extended
by S.
..... Click the link for more information.
D
Paradigm: multiparadigm
Appeared in: 1999
Designed by: Walter Bright
Latest release: 1.022 (stable)/ October 1, 2007[1]
Typing discipline: strong, static
Major implementations: DMD , GDC
Influenced by: C, C++, C#, Java, Eiffel
The
..... Click the link for more information.
Paradigm: multiparadigm
Appeared in: 1999
Designed by: Walter Bright
Latest release: 1.022 (stable)/ October 1, 2007[1]
Typing discipline: strong, static
Major implementations: DMD , GDC
Influenced by: C, C++, C#, Java, Eiffel
The
..... Click the link for more information.
F is a compiled, structured, array programming language especially well suited to education and scientific computing. It is a subset of Fortran 95 developed by Walter Brainerd, Richard Hendrickson, and David Epstein.
..... Click the link for more information.
..... Click the link for more information.
Fortran
Paradigm: multi-paradigm: procedural, imperative, structured, object-oriented
Appeared in: 1957
Designed by: John W. Backus
Developer: John W.
..... Click the link for more information.
Paradigm: multi-paradigm: procedural, imperative, structured, object-oriented
Appeared in: 1957
Designed by: John W. Backus
Developer: John W.
..... Click the link for more information.
Pascal is a structured imperative computer programming language, developed in 1970 by Niklaus Wirth as a language particularly suitable for structured programming. A derivative known as Object Pascal was designed for object oriented programming.
..... Click the link for more information.
..... Click the link for more information.
ML
Paradigm: multi-paradigm: imperative, functional
Appeared in: 1973
Designed by: Robin Milner & others at the University of Edinburgh
Typing discipline: static, strong, inferred
Dialects: Standard ML, OCaml, F#
Influenced by: ISWIM
..... Click the link for more information.
Paradigm: multi-paradigm: imperative, functional
Appeared in: 1973
Designed by: Robin Milner & others at the University of Edinburgh
Typing discipline: static, strong, inferred
Dialects: Standard ML, OCaml, F#
Influenced by: ISWIM
..... Click the link for more information.
Modula-2
Paradigm: imperative, structured, modular
Appeared in: 1978
Designed by: Niklaus Wirth
Typing discipline: strong, static
Major implementations: Gardens Point , p1 , Native XDS-x86
Dialects: PIM2, PIM3, PIM4, ISO
..... Click the link for more information.
Paradigm: imperative, structured, modular
Appeared in: 1978
Designed by: Niklaus Wirth
Typing discipline: strong, static
Major implementations: Gardens Point , p1 , Native XDS-x86
Dialects: PIM2, PIM3, PIM4, ISO
..... Click the link for more information.
Python
Paradigm: Multi-paradigm
Appeared in: 1991
Designed by: Guido van Rossum
Developer: Python Software Foundation
Latest release: 2.5.1/ April 18 2007
Latest unstable release: 3.
..... Click the link for more information.
Paradigm: Multi-paradigm
Appeared in: 1991
Designed by: Guido van Rossum
Developer: Python Software Foundation
Latest release: 2.5.1/ April 18 2007
Latest unstable release: 3.
..... Click the link for more information.
Ruby
Paradigm: multi-paradigm (functional, imperative, logic, object-oriented (class-based))
Appeared in: 1995
Designed by: Yukihiro Matsumoto
Developer: Yukihiro Matsumoto (among others)
Latest release: 1.8.
..... Click the link for more information.
Paradigm: multi-paradigm (functional, imperative, logic, object-oriented (class-based))
Appeared in: 1995
Designed by: Yukihiro Matsumoto
Developer: Yukihiro Matsumoto (among others)
Latest release: 1.8.
..... Click the link for more information.
This article or section may be confusing or unclear for some readers.
Please [improve the article] or discuss this issue on the talk page. This article has been tagged since December 2006.
..... Click the link for more information.
Please [improve the article] or discuss this issue on the talk page. This article has been tagged since December 2006.
..... Click the link for more information.
In the programming paradigm of object-oriented programming, an object is the individual run-time unit that is used as the basic building block of programs. These objects act on each other, as opposed to a traditional view in which a program may be seen as a collection of functions,
..... Click the link for more information.
..... Click the link for more information.
In object-oriented programming, inheritance is a way to form new classes (instances of which are called objects) using classes that have already been defined. The new classes, known as derived classes, take over (or inherit
..... Click the link for more information.
..... Click the link for more information.
This article or section may be confusing or unclear for some readers.
Please [improve the article] or discuss this issue on the talk page. This article has been tagged since April 2007.
..... Click the link for more information.
Please [improve the article] or discuss this issue on the talk page. This article has been tagged since April 2007.
..... Click the link for more information.
A computer program is one or more instructions that are intended for execution by a computer. Specifically, it is a symbol or combination of symbols forming an algorithm that may or may not terminate, and that algorithm is written in a programming language.
..... Click the link for more information.
..... Click the link for more information.
Modularity is a concept that has applications in the contexts of computer science, particularly programming, as well as cognitive science in investigating the structure of mind.
..... Click the link for more information.
..... Click the link for more information.
OpenAIR is a message routing and communication protocol that has been gaining in popularity over the past two years. The protocol is managed by Mindmakers.org , and is described on their site in the following manner:
"
..... Click the link for more information.
"
..... Click the link for more information.
In computer science, coupling or dependency is the degree to which each program module relies on each one of the other modules.
Coupling is usually contrasted with cohesion. Low coupling often correlates with high cohesion, and vice versa.
..... Click the link for more information.
Coupling is usually contrasted with cohesion. Low coupling often correlates with high cohesion, and vice versa.
..... Click the link for more information.
An interface defines the communication boundary between two entities, such as a piece of software, a hardware device, or a user. It generally refers to an abstraction that an entity provides of itself to the outside.
..... Click the link for more information.
..... Click the link for more information.
Structured programming can be seen as a subset or subdiscipline of procedural programming, one of the major programming paradigms. It is most famous for removing or reducing reliance on the GOTO statement.
..... Click the link for more information.
..... Click the link for more information.
Procedural programming is sometimes used as a synonym for imperative programming (specifying the steps the program must take to reach the desired state), but can also refer (as in this article) to a programming paradigm based upon the concept of the procedure call.
..... Click the link for more information.
..... Click the link for more information.
Object-oriented programming (OOP) is a programming paradigm that uses "objects" and their interactions to design applications and computer programs. It is based on several techniques, including inheritance, modularity, polymorphism, and encapsulation.
..... Click the link for more information.
..... Click the link for more information.
In software engineering, the programming paradigms of aspect-oriented programming (AOP), and aspect-oriented software development (AOSD) attempt to aid programmers in the separation of concerns, specifically cross-cutting concerns, as an advance in
..... Click the link for more information.
..... Click the link for more information.
Distributed computing is a method of computer processing in which different parts of a program run simultaneously on two or more computers that are communicating with each other over a network.
..... Click the link for more information.
..... Click the link for more information.
This article is copied from an article on Wikipedia.org - the free encyclopedia created and edited by online user community. The text was not checked or edited by anyone on our staff. Although the vast majority of the wikipedia encyclopedia articles provide accurate and timely information please do not assume the accuracy of any particular article. This article is distributed under the terms of GNU Free Documentation License.
Herod_Archelaus