HOME

TheInfoList




Modular programming is a
software design Software design is the process by which an Agency (philosophy), agent creates a specification of a Artifact (software development), software artifact intended to accomplish goals, using a set of primitive components and subject to Constraint (m ...
technique that emphasizes separating the functionality of a program into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality. A module
interface Interface or interfacing may refer to: Academic journals * Interface (journal), ''Interface'' (journal), by the Electrochemical Society * ''Interface, Journal of Applied Linguistics'', now merged with ''ITL International Journal of Applied Lin ...
expresses the elements that are provided and required by the module. The elements defined in the interface are detectable by other modules. The
implementation Implementation is the realization of an application, or execution of a plan A plan is typically any diagram or list of steps with details of timing and resources, used to achieve an Goal, objective to do something. It is commonly understood as ...

implementation
contains the working code that corresponds to the elements declared in the interface. Modular programming is closely related to
structured programming Structured programming is a programming paradigm Programming paradigms are a way to classify programming languages based on their features. Languages can be classified into multiple paradigms. Some paradigms are concerned mainly with impl ...
and
object-oriented programming Object-oriented programming (OOP) is a programming paradigm Programming paradigms are a way to classify programming languages based on their features. Languages can be classified into multiple paradigms. Some paradigms are concerned mai ...
, all having the same goal of facilitating construction of large software programs and systems by
decomposition Decomposition is the process by which dead organic substance , CH4; is among the simplest organic compounds. In chemistry Chemistry is the scientific discipline involved with Chemical element, elements and chemical compound, compounds co ...
into smaller pieces, and all originating around the 1960s. While the historical usage of these terms has been inconsistent, "modular programming" now refers to the high-level decomposition of the code of an entire program into pieces: structured programming to the low-level code use of structured
control flow In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of Algor ...
, and object-oriented programming to the ''data'' use of objects, a kind of
data structure In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of ...

data structure
. In object-oriented programming, the use of interfaces as an architectural pattern to construct modules is known as
interface-based programming Interface-based programming, also known as interface-based architecture, is an architectural pattern for implementing modular programming at the software component, component level in an object-oriented programming language which does not have a ...
.


Terminology

The term
assembly Assembly may refer to: Organisations and meetings * Deliberative assembly A deliberative assembly is a gathering of members (of any kind of collective) who use parliamentary procedure Parliamentary procedure is the body of ethics, Procedural l ...
(as in .NET languages like C#, F# or Visual Basic .NET) or package (as in Dart, Go or
Java Java ( id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 147.7 million people, Java is the world's List of ...
) is sometimes used instead of module. In other implementations, these are distinct concepts; in
Python PYTHON was a Cold War contingency plan of the Government of the United Kingdom, British Government for the continuity of government in the event of Nuclear warfare, nuclear war. Background Following the report of the Strath Committee in 1955, the ...
a package is a collection of modules, while in
Java 9 The Java (programming language), Java language has undergone several changes since Java Development Kit, JDK 1.0 as well as numerous additions of class (computer science), classes and packages to the standard library (computer science), libra ...
the introduction of the new module concept (a collection of packages with enhanced access control) was implemented. Furthermore, the term "package" has other uses in software (for example .NET NuGet packages). A
component Component may refer to: In engineering, science, and technology Generic systems *System components, an entity with discrete structure, such as an assembly or software module, within a system considered at a particular level of analysis *Lumped ele ...
is a similar concept, but typically refers to a higher level; a component is a piece of a whole
system A system is a group of Interaction, interacting or interrelated elements that act according to a set of rules to form a unified whole. A system, surrounded and influenced by its environment, is described by its boundaries, structure and purp ...
, while a module is a piece of an individual program. The scale of the term "module" varies significantly between languages; in Python it is very small-scale and each file is a module, while in
Java 9 The Java (programming language), Java language has undergone several changes since Java Development Kit, JDK 1.0 as well as numerous additions of class (computer science), classes and packages to the standard library (computer science), libra ...
it is planned to be large-scale, where a module is a collection of packages, which are in turn collections of files. Other terms for modules include unit, used in
Pascal Pascal, Pascal's or PASCAL may refer to: People and fictional characters * Pascal (given name), including a list of people with the name * Pascal (surname), including a list of people and fictional characters with the name ** Blaise Pascal, French ...
dialects.


Language support

Languages that formally support the module concept include
Ada Ada may refer to: Places Africa * Ada Foah Ada Foah is a town on the southeast coast of Ghana, where the Volta River meets the Atlantic Ocean. The town is located along the Volta River, off of the Accra-Aflao motorway. Known for Palm tree, pal ...
,
Algol Algol , designated Beta Persei (β Persei, abbreviated Beta Per, β Per), known colloquially as the Demon Star, is a bright multiple star in the constellation A constellation is an area on the celestial s ...
,
BlitzMax Blitz BASIC is the programming language A programming language is a formal language comprising a Instruction set architecture, set of instructions that produce various kinds of Input/output, output. Programming languages are used in computer p ...
,
C++ C++ () is a general-purpose programming language In computer software, a general-purpose programming language is a programming language dedicated to a general-purpose, designed to be used for writing software in a wide variety of application ...

C++
, C#,
Clojure Clojure (, like ''closure'') is a dynamic programming language, dynamic and functional programming, functional dialect (computing), dialect of the Lisp (programming language), Lisp programming language on the Java (software platform), Java plat ...
,
COBOL COBOL (; an acronym An acronym is a word In linguistics, a word of a spoken language can be defined as the smallest sequence of phonemes that can be uttered in isolation with semantic, objective or pragmatics, practical meaning (lingui ...

COBOL
,
Common_Lisp Common Lisp (CL) is a dialect of the Lisp programming language Lisp (historically LISP) is a family of programming language A programming language is a formal language In mathematics Mathematics (from Ancient Greek, Greek: ) incl ...
, D, Dart, eC, Erlang,
Elixir An elixir is a sweet liquid used for medical purposes, to be taken orally and intended to cure one's illness. When used as a pharmaceutical preparation, an elixir contains at least one active ingredient An active ingredient is the ingredient ...
,
Elm Elms are and s comprising the genus ''Ulmus'' in the plant family . The genus first appeared in the about 20 million years ago, originating in what is now central Asia.Richens, R. H. (1983). ''Elm''. Cambridge University Press. These tree ...
, F, F#,
Fortran Fortran (; formerly FORTRAN) is a general-purpose, compiled language, compiled imperative programming, imperative programming language that is especially suited to numerical analysis, numeric computation and computational science, scientific com ...

Fortran
, Go, Haskell,
IBM/360 The IBM System/360 (S/360) is a family of mainframe computer A mainframe computer, informally called a mainframe or big iron, is a computer A computer is a machine that can be programmed to carry out sequences of arithmetic or log ...
Assembler Assembler may refer to: Arts and media * Nobukazu Takemura Nobukazu Takemura (竹村延和 ''Takemura Nobukazu'') is a Japanese musician and artist. Born in Hirakata, Osaka in August 1968, he became interested in music at a young age by listenin ...
,
Control Language The Control Language (CL) is a scripting language originally created by IBM for the System/38 Control Program Facility and later used in OS/400 (now known as IBM i). It bears a resemblance to the IBM Job Control Language and consisting of a set of ...
(CL),
IBM RPG RPG is a high-level programming language for business applications, introduced in 1959 for the IBM 1401. It is most well known as the primary programming language of IBM's midrange computer product line, including the IBM i operating system ...
,
Java Java ( id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 147.7 million people, Java is the world's List of ...
,
MATLAB MATLAB (an abbreviation of "MATrix LABoratory") is a and environment developed by . MATLAB allows manipulations, plotting of and data, implementation of s, creation of s, and interfacing with programs written in other languages. Althoug ...
, ML,
Modula The Modula programming language A programming language is a formal language comprising a Instruction set architecture, set of instructions that produce various kinds of Input/output, output. Programming languages are used in computer programmi ...

Modula
,
Modula-2 Modula-2 is a structured, procedural programming language A programming language is a formal language In logic, mathematics, computer science, and linguistics, a formal language consists of string (computer science), words whose symbol ( ...
,
Modula-3 Modula-3 is a programming language conceived as a successor to an upgraded version of Modula-2 known as Modula-2+. While it has been influential in research circles (influencing the designs of languages such as Java (programming language), Java, C ...

Modula-3
, Morpho,
NEWP New Executive Programming Language (NEWP) is a high-level programming language In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as pract ...
,
Oberon Oberon () is a king of the fairy, fairies in Middle ages, medieval and Renaissance literature. He is best known as a character in William Shakespeare's play ''A Midsummer Night's Dream'', in which he is King of the Fairies and spouse of Titania, ...
,
Oberon-2 Oberon-2 is an extension of the original Oberon (programming language), Oberon programming language that adds limited Reflection (computer science), reflection and object-oriented programming facilities, open Array data structure, arrays as point ...
,
Objective-C Objective-C is a general-purpose, object-oriented Object-oriented programming (OOP) is a programming paradigm Program, programme, programmer, or programming may refer to: Business and management * Program management, the process of m ...
,
OCaml OCaml ( , formerly Objective Caml) is a general-purpose, multi-paradigm programming language Programming paradigms are a way to classify programming languages based on their features. Languages can be classified into multiple paradigms. S ...
, several derivatives of
Pascal Pascal, Pascal's or PASCAL may refer to: People and fictional characters * Pascal (given name), including a list of people with the name * Pascal (surname), including a list of people and fictional characters with the name ** Blaise Pascal, French ...
(
Component Pascal Component Pascal is a programming language A programming language is a formal language comprising a Instruction set architecture, set of instructions that produce various kinds of Input/output, output. Programming languages are used in compute ...
,
Object Pascal Object Pascal is an extension to the programming language Pascal Pascal, Pascal's or PASCAL may refer to: People and fictional characters * Pascal (given name), including a list of people with the name * Pascal (surname), including a list of ...
,
Turbo Pascal Turbo Pascal is a software development system that includes a compiler In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into ano ...
,
UCSD Pascal UCSD Pascal is a Pascal programming language Pascal is an imperative and procedural programming language A programming language is a formal language comprising a Instruction set architecture, set of instructions that produce various kinds ...
),
Perl Perl is a family of two high-level High-level and low-level, as technical terms, are used to classify, describe and point to specific Objective (goal), goals of a systematic operation; and are applied in a wide range of contexts, such as, for ...
,
PL/I PL/I (Programming Language One, pronounced and sometimes written PL/1) is a procedural, imperative Imperative may refer to: *Imperative mood, a grammatical mood (or mode) expressing commands, direct requests, and prohibitions *Imperative prog ...
, PureBasic,
Python PYTHON was a Cold War contingency plan of the Government of the United Kingdom, British Government for the continuity of government in the event of Nuclear warfare, nuclear war. Background Following the report of the Strath Committee in 1955, the ...
, R,
Ruby A ruby is a pink-ish red to blood-red colored gemstone A gemstone (also called a fine gem, jewel, precious stone, or semi-precious stone) is a piece of mineral In geology and mineralogy, a mineral or mineral species is, broadly spea ...
,
Rust Rust is an iron oxide, a usually reddish-brown oxide formed by the reaction of iron and oxygen in the catalytic presence of water or air moisture. Rust consists of hydrous ferric oxides, hydrous iron(III) oxides (Fe2O3·nH2O) and iron(III) oxi ...
,
JavaScript JavaScript (), often abbreviated JS, is a programming language A programming language is a formal language In mathematics Mathematics (from Ancient Greek, Greek: ) includes the study of such topics as quantity (number theory), ma ...

JavaScript
, Visual Basic .NET and WebDNA. Conspicuous examples of languages that lack support for modules are C and have been
C++ C++ () is a general-purpose programming language In computer software, a general-purpose programming language is a programming language dedicated to a general-purpose, designed to be used for writing software in a wide variety of application ...

C++
and Pascal in their original form, C and
C++ C++ () is a general-purpose programming language In computer software, a general-purpose programming language is a programming language dedicated to a general-purpose, designed to be used for writing software in a wide variety of application ...

C++
do, however, allow separate compilation and declarative interfaces to be specified using
header file Many programming language A programming language is a formal language In logic, mathematics, computer science, and linguistics, a formal language consists of string (computer science), words whose symbol (formal), letters are taken from an ...
s. Modules were added to Objective-C in
iOS 7 iOS 7 is the of the developed by , being the successor to . It was announced at the company's on June 10, 2013, and was released on September 18 of that year. It was succeeded by on September 17, 2014. iOS 7 introduced a completely redesig ...

iOS 7
(2013); to C++ with C++20, and Pascal was superseded by
Modula The Modula programming language A programming language is a formal language comprising a Instruction set architecture, set of instructions that produce various kinds of Input/output, output. Programming languages are used in computer programmi ...

Modula
and
Oberon Oberon () is a king of the fairy, fairies in Middle ages, medieval and Renaissance literature. He is best known as a character in William Shakespeare's play ''A Midsummer Night's Dream'', in which he is King of the Fairies and spouse of Titania, ...
, which included modules from the start, and various derivatives that included modules.
JavaScript JavaScript (), often abbreviated JS, is a programming language A programming language is a formal language In mathematics Mathematics (from Ancient Greek, Greek: ) includes the study of such topics as quantity (number theory), ma ...

JavaScript
has had native modules since
ECMAScript ECMAScript () (or ES) is a JavaScript JavaScript (), often abbreviated JS, is a programming language A programming language is a formal language In mathematics Mathematics (from Ancient Greek, Greek: ) includes the study of s ...
2015. Modular programming can be performed even where the programming language lacks explicit syntactic features to support named modules, like, for example, in C. This is done by using existing language features, together with, for example,
coding conventions Coding conventions are a set of guidelines for a specific programming language A programming language is a formal language In logic, mathematics, computer science, and linguistics, a formal language consists of string (computer science), ...
,
programming idiomsA programming idiom or code idiom is a syntactic fragment that recurs frequently across software projects and has a single semantic role, often expressing a special feature of a recurring construct in one or more programming languages. Software devel ...
and the physical code structure.
IBM i IBM i (the ''i'' standing for ''integrated'') is an operating system An operating system (OS) is system software System software is software designed to provide a platform for other software. Examples of system software include operating sys ...

IBM i
also uses modules when programming in the Integrated Language Environment (ILE).


Key aspects

With modular programming, concerns are separated such that modules perform logically discrete functions, interacting through well-defined interfaces. Often modules form a
directed acyclic graph In mathematics Mathematics (from Greek: ) includes the study of such topics as numbers (arithmetic and number theory), formulas and related structures (algebra), shapes and spaces in which they are contained (geometry), and quantities and ...

directed acyclic graph
(DAG); in this case a cyclic dependency between modules is seen as indicating that these should be a single module. In the case where modules do form a DAG they can be arranged as a hierarchy, where the lowest-level modules are independent, depending on no other modules, and higher-level modules depend on lower-level ones. A particular program or library is a top-level module of its own hierarchy, but can in turn be seen as a lower-level module of a higher-level program, library, or system. When creating a modular system, instead of creating a monolithic application (where the smallest component is the whole), several smaller modules are written separately so when they are composed together, they construct the executable application program. Typically these are also
compiled In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily ...

compiled
separately, via separate compilation, and then linked by a
linker Linker or linkers may refer to: Computing * Linker (computing) In computing, a linker or link editor is a computer System software, system program that takes one or more object files (generated by a compiler or an assembler (computing), asse ...
. A just-in-time compiler may perform some of this construction "on-the-fly" at run time. These independent functions are commonly classified as either program control functions or specific task functions. Program control functions are designed to work for one program. Specific task functions are closely prepared to be applicable for various programs. This makes modular designed systems, if built correctly, far more reusable than a traditional monolithic design, since all (or many) of these modules may then be reused (without change) in other projects. This also facilitates the "breaking down" of projects into several smaller projects. Theoretically, a modularized software project will be more easily assembled by large teams, since no team members are creating the whole system, or even need to know about the system as a whole. They can focus just on the assigned smaller task.


History

Modular programming, in the form of subsystems (particularly for I/O) and software libraries, dates to early software systems, where it was used for
code reuse Code reuse, also called software reuse, is the use of existing software Software is a collection of instructions that tell a computer A computer is a machine that can be programmed to carry out sequences of arithmetic or logical operati ...
. Modular programming per se, with a goal of modularity, developed in the late 1960s and 1970s, as a larger-scale analog of the concept of
structured programming Structured programming is a programming paradigm Programming paradigms are a way to classify programming languages based on their features. Languages can be classified into multiple paradigms. Some paradigms are concerned mainly with impl ...
(1960s). The term "modular programming" dates at least to the National Symposium on Modular Programming, organized at the Information and Systems Institute in July 1968 by
Larry Constantine Larry LeRoy Constantine (pronounced ''Constanteen''; born 1943) is an American software engineer A software engineer is a person who applies the principles of software engineering to the design, development, maintenance, testing, and evaluation ...

Larry Constantine
; other key concepts were
information hiding In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of com ...
(1972) and
separation of concerns In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of compu ...
(SoC, 1974). Modules were not included in the original specification for ALGOL 68 (1968), but were included as extensions in early implementations,
ALGOL 68-R ALGOL 68-R was the first implementation of the Algorithmic Language ALGOL 68. In December 1968, the report on the Algorithmic Language ALGOL 68 was published. On 20–24 July 1970 a working conference was arranged by the International Federation fo ...
(1970) and
ALGOL 68C ALGOL 68C is an imperative Imperative may refer to: *Imperative mood, a grammatical mood (or mode) expressing commands, direct requests, and prohibitions *Imperative programming, a programming paradigm in computer science *Imperative logic *Imp ...
(1970), and later formalized. One of the first languages designed from the start for modular programming was the short-lived
Modula The Modula programming language A programming language is a formal language comprising a Instruction set architecture, set of instructions that produce various kinds of Input/output, output. Programming languages are used in computer programmi ...

Modula
(1975), by
Niklaus Wirth Niklaus Emil Wirth (born 15 February 1934) is a Swiss . He has designed several s, including , and pioneered several classic topics in software engineering. In 1984, he won the , generally recognized as the highest distinction in , for developin ...

Niklaus Wirth
. Another early modular language was
Mesa A mesa is an isolated, flat-topped elevation, ridge or hill, which is bounded from all sides by steep escarpments and stands distinctly above a surrounding plain. Mesas characteristically consist of flat-lying soft sedimentary rocks capped by ...
(1970s), by
Xerox PARC PARC (Palo Alto Research Center; formerly Xerox PARC) is a research and development Research and development (R&D, R+D), known in Europe Europe is a continent A continent is any of several large landmasses. Generally identifie ...
, and Wirth drew on Mesa as well as the original Modula in its successor,
Modula-2 Modula-2 is a structured, procedural programming language A programming language is a formal language In logic, mathematics, computer science, and linguistics, a formal language consists of string (computer science), words whose symbol ( ...
(1978), which influenced later languages, particularly through its successor,
Modula-3 Modula-3 is a programming language conceived as a successor to an upgraded version of Modula-2 known as Modula-2+. While it has been influential in research circles (influencing the designs of languages such as Java (programming language), Java, C ...

Modula-3
(1980s). Modula's use of dot- qualified names, like M.a to refer to object a from module M, coincides with notation to access a field of a record (and similarly for attributes or methods of objects), and is now widespread, seen in C#, Dart, Go, Java, and Python, among others. Modular programming became widespread from the 1980s: the original
Pascal Pascal, Pascal's or PASCAL may refer to: People and fictional characters * Pascal (given name), including a list of people with the name * Pascal (surname), including a list of people and fictional characters with the name ** Blaise Pascal, French ...
language (1970) did not include modules, but later versions, notably
UCSD Pascal UCSD Pascal is a Pascal programming language Pascal is an imperative and procedural programming language A programming language is a formal language comprising a Instruction set architecture, set of instructions that produce various kinds ...
(1978) and
Turbo Pascal Turbo Pascal is a software development system that includes a compiler In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into ano ...
(1983) included them in the form of "units", as did the Pascal-influenced
Ada Ada may refer to: Places Africa * Ada Foah Ada Foah is a town on the southeast coast of Ghana, where the Volta River meets the Atlantic Ocean. The town is located along the Volta River, off of the Accra-Aflao motorway. Known for Palm tree, pal ...
(1980). The Extended Pascal ISO 10206:1990 standard kept closer to Modula2 in its modular support.
Standard ML Standard ML (SML) is a general-purpose modular functional programming language with compile-time type checking and type inference. It is popular among compiler In computing, a compiler is a computer program that Translator (computing), trans ...
(1984) has one of the most complete module systems, including
functors In mathematics Mathematics (from Ancient Greek, Greek: ) includes the study of such topics as quantity (number theory), mathematical structure, structure (algebra), space (geometry), and calculus, change (mathematical analysis, analysis). I ...
(parameterized modules) to map between modules. In the 1980s and 1990s, modular programming was overshadowed by and often conflated with
object-oriented programming Object-oriented programming (OOP) is a programming paradigm Programming paradigms are a way to classify programming languages based on their features. Languages can be classified into multiple paradigms. Some paradigms are concerned mai ...
, particularly due to the popularity of C++ and Java. For example, the C family of languages had support for objects and classes in C++ (originally
C with Classes C++ () is a general-purpose programming language created by Bjarne Stroustrup as an extension of the C (programming language), C programming language, or "C with Class (programming), Classes". The language has expanded significantly over time, ...
, 1980) and Objective-C (1983), only supporting modules 30 years or more later. Java (1995) supports modules in the form of packages, though the primary unit of code organization is a class. However, Python (1991) prominently used both modules and objects from the start, using modules as the primary unit of code organization and "packages" as a larger-scale unit; and
Perl 5 Perl is a family of two high-level High-level and low-level, as technical terms, are used to classify, describe and point to specific Objective (goal), goals of a systematic operation; and are applied in a wide range of contexts, such as, for ...
(1994) includes support for both modules and objects, with a vast array of modules being available from
CPAN The Comprehensive Perl Archive Network (CPAN) is a software repository, repository of over 250,000 modular programming, software modules and accompanying documentation for 39,000 distributions, written in the Perl programming language by over 12,0 ...
(1993). Modular programming is now widespread, and found in virtually all major languages developed since the 1990s. The relative importance of modules varies between languages, and in class-based object-oriented languages there is still overlap and confusion with classes as a unit of organization and encapsulation, but these are both well-established as distinct concepts.


See also

*
Architecture description language Architecture description languages (ADLs) are used in several disciplines: system engineering, software engineering, and enterprise modelling and engineering. The system engineering community uses an architecture description language as a langu ...
*
Cohesion (computer science)In computer programming Computer programming is the process of designing and building an executable computer program to accomplish a specific computing result or to perform a specific task. Programming involves tasks such as: analysis, generatin ...
*
Component-based software engineering Component-based software engineering (CBSE), also called component-based development (CBD), is a branch of software engineering that emphasizes the separation of concerns In computer science Computer science deals with the theoretical found ...
*
Conway's law Conway's law is an adage stating that organizations design systems which mirror their own communication structure. It is named after computer programmer Melvin Conway, who introduced the idea in 1967. His original wording was: The law is based on ...
*
Coupling (computer science) In software engineering, coupling is the degree of interdependence between software modules; a measure of how closely connected two routines or modules are; the strength of the relationships between modules. Coupling is usually contrasted with co ...
*
David Parnas David Lorge Parnas (born February 10, 1941) is a Canadian Canadians (french: Canadiens) are people identified with the country of Canada Canada is a country in the northern part of North America. Its Provinces and territories of Ca ...

David Parnas
*
Information hiding In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of com ...
(encapsulation) *
Library (computing) In computer science Computer science deals with the theoretical foundations of information, algorithms and the architectures of its computation as well as practical techniques for their application. Computer science is the study of ...
*
List of system quality attributes Within systems engineering Systems engineering is an field of and that focuses on how to design, integrate, and manage s over their s. At its core, systems engineering utilizes principles to organize this body of knowledge. The individual ...
*
Modular design Modular design, or modularity Broadly speaking, modularity is the degree to which a system A system is a group of Interaction, interacting or interrelated elements that act according to a set of rules to form a unified whole. A system, surr ...
*
Plug-in (computing) In computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes and development of both computer hardware , hardware and so ...
*
Snippet (programming) Snippet is a programming term for a small region of re-usable source code, machine code, or text. Ordinarily, these are formally defined operative units to incorporate into larger Module (programming), programming modules. Snippet management is a ...
*
Structured Analysis In software engineering, structured analysis (SA) and structured design (SD) are methods for analyzing business requirements and developing specifications for converting practices into computer programs, hardware configurations, and related manual p ...
*
Structured programming Structured programming is a programming paradigm Programming paradigms are a way to classify programming languages based on their features. Languages can be classified into multiple paradigms. Some paradigms are concerned mainly with impl ...


Notes


References


External links


How To Decompose a System into Modules

SMC Platform
{{DEFAULTSORT:Modular Programming Programming paradigms Programming