Software components
   HOME

TheInfoList



OR:

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, separation of concerns is a design principle for separating a computer program into distinct sections. Each section addresses a separate '' concern'', a set of information that affects the code of a computer program. A concern ...
with respect to the wide-ranging functionality available throughout a given software system. It is a reuse-based approach to defining, implementing and composing loosely coupled independent components into systems. This practice aims to bring about an equally wide-ranging degree of benefits in both the short-term and the long-term for the software itself and for organizations that sponsor such software. Software engineering practitioners regard components as part of the starting platform for
service-orientation Service-orientation is a design paradigm for computer software in the form of services. The principles of service-oriented design stress the separation of concerns in the software. Applying service-orientation results in units of software partiti ...
. Components play this role, for example, in web services, and more recently, in
service-oriented architecture In software engineering, service-oriented architecture (SOA) is an architectural style that focuses on discrete services instead of a monolithic design. By consequence, it is also applied in the field of software design where services are provide ...
s (SOA), whereby a component is converted by the web service into a ''service'' and subsequently inherits further characteristics beyond that of an ordinary component. Components can produce or consume events and can be used for
event-driven architecture Event-driven architecture (EDA) is a software architecture paradigm promoting the production, detection, consumption of, and reaction to events. Overview An ''event'' can be defined as "a significant change in state". For example, when a consumer p ...
s (EDA).


Definition and characteristics of components

An individual software component is a software package, a web service, a
web resource A web resource is any identifiable resource (digital, physical, or abstract) present on or connected to the World Wide Web.< ...
, or a
module Module, modular and modularity may refer to the concept of modularity. They may also refer to: Computing and engineering * Modular design, the engineering discipline of designing complex devices using separately designed sub-components * Mo ...
that encapsulates a set of related
function Function or functionality may refer to: Computing * Function key, a type of key on computer keyboards * Function model, a structured representation of processes in a system * Function object or functor or functionoid, a concept of object-oriente ...
s (or data). All system processes are placed into separate components so that all of the data and functions inside each component are semantically related (just as with the contents of classes). Because of this principle, it is often said that components are ''modular'' and ''cohesive''. With regard to system-wide co-ordination, components communicate with each other via '' interfaces''. When a component offers services to the rest of the system, it adopts a ''provided'' interface that specifies the services that other components can utilize, and how they can do so. This interface can be seen as a signature of the component - the client does not need to know about the inner workings of the component (implementation) in order to make use of it. This principle results in components referred to as ''encapsulated''. The UML illustrations within this article represent provided interfaces by a lollipop-symbol attached to the outer edge of the component. However, when a component needs to use another component in order to function, it adopts a ''used'' interface that specifies the services that it needs. In the UML illustrations in this article, ''used interfaces'' are represented by an open socket symbol attached to the outer edge of the component. Another important attribute of components is that they are ''substitutable'', so that a component can replace another (at design time or run-time), if the successor component meets the requirements of the initial component (expressed via the interfaces). Consequently, components can be replaced with either an updated version or an alternative without breaking the system in which the component operates. As a rule of thumb for engineers substituting components, component B can immediately replace component A, if component B provides at least what component A provided and uses no more than what component A used. Software components often take the form of
objects Object may refer to: General meanings * Object (philosophy), a thing, being, or concept ** Object (abstract), an object which does not exist at any particular time or place ** Physical object, an identifiable collection of matter * Goal, an ...
(not classes) or collections of objects (from
object-oriented programming Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of ...
), in some binary or textual form, adhering to some interface description language (IDL) so that the component may exist autonomously from other components in a computer. In other words, a component acts without changing its source code. Although the behavior of the component's source code may change based on the application's extensibility, provided by its writer. When a component is to be accessed or shared across execution contexts or network links, techniques such as serialization or marshalling are often employed to deliver the component to its destination.
Reusability In computer science and software engineering, reusability is the use of existing ''assets'' in some form within the software product development process; these ''assets'' are products and by-products of the software development life cycle and in ...
is an important characteristic of a high-quality software component. Programmers should design and implement software components in such a way that many different programs can reuse them. Furthermore, component-based usability testing should be considered when software components directly interact with users. It takes significant effort and awareness to write a software component that is effectively reusable. The component needs to be: * fully documented * thoroughly tested ** robust - with comprehensive input-validity checking ** able to pass back appropriate
error message An error message is information displayed when an unforeseen occurs, usually on a computer or other device. On modern operating systems with graphical user interfaces, error messages are often displayed using dialog boxes. Error messages are use ...
s or return codes * designed with an awareness that it ''will'' be put to unforeseen uses In the 1960s, programmers built scientific subroutine libraries that were reusable in a broad array of engineering and scientific applications. Though these subroutine libraries reused well-defined
algorithms In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing ...
in an effective manner, they had a limited domain of application. Commercial sites routinely created application programs from reusable modules written in assembly language, COBOL,
PL/1 PL/I (Programming Language One, pronounced and sometimes written PL/1) is a procedural, imperative computer programming language developed and published by IBM. It is designed for scientific, engineering, business and system programming. I ...
and other second- and third-generation languages using both system and user application libraries. , modern reusable components encapsulate both data structures and the algorithms that are applied to the data structures. Component-based software engineering builds on prior theories of software objects,
software architecture Software architecture is the fundamental structure of a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations. ...
s, software frameworks and
software design pattern In software engineering, a software design pattern is a general, reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be transformed directly into source or machine co ...
s, and the extensive theory of
object-oriented programming Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of ...
and the
object-oriented design Object-oriented design (OOD) is the process of planning a Object-oriented programming, system of interacting objects for the purpose of solving a software problem. It is one approach to software design. Overview An Object (computer science), obje ...
of all these. It claims that software components, like the idea of hardware components, used for example in telecommunications, can ultimately be made interchangeable and reliable. On the other hand, it is argued that it is a mistake to focus on independent components rather than the framework (without which they would not exist).


History

The idea that
software Software is a set of computer programs and associated software documentation, documentation and data (computing), data. This is in contrast to Computer hardware, hardware, from which the system is built and which actually performs the work. ...
should be componentized - built from prefabricated ''components'' - first became prominent with
Douglas McIlroy Malcolm Douglas McIlroy (born 1932) is a mathematician, engineer, and programmer. As of 2019 he is an Adjunct Professor of Computer Science at Dartmouth College. McIlroy is best known for having originally proposed Unix pipelines and developed se ...
's address at the
NATO The North Atlantic Treaty Organization (NATO, ; french: Organisation du traité de l'Atlantique nord, ), also called the North Atlantic Alliance, is an intergovernmental military alliance between 30 member states – 28 European and two No ...
conference on
software engineering Software engineering is a systematic engineering approach to software development. A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term '' ...
in
Garmisch Garmisch-Partenkirchen (; Bavarian: ''Garmasch-Partakurch''), nicknamed Ga-Pa, is an Alpine ski town in Bavaria, southern Germany. It is the seat of government of the district of Garmisch-Partenkirchen (abbreviated ''GAP''), in the Ob ...
,
Germany Germany,, officially the Federal Republic of Germany, is a country in Central Europe. It is the second most populous country in Europe after Russia, and the most populous member state of the European Union. Germany is situated betwe ...
, 1968, titled ''Mass Produced Software Components''. The conference set out to counter the so-called
software crisis Software crisis is a term used in the early days of computing science for the difficulty of writing useful and efficient computer programs in the required time. The software crisis was due to the rapid increases in computer power and the complexity ...
. McIlroy's subsequent inclusion of
pipes and filters Pipe(s), PIPE(S) or piping may refer to: Objects * Pipe (fluid conveyance), a hollow cylinder following certain dimension rules ** Piping, the use of pipes in industry * Smoking pipe ** Tobacco pipe * Half-pipe and quarter pipe, semi-circula ...
into the
Unix Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, an ...
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also i ...
was the first implementation of an infrastructure for this idea.
Brad Cox Brad J. Cox (May 2, 1944 – January 2, 2021) was an American computer scientist who was known mostly for creating the Objective-C programming language with his business partner Tom Love and for his work in software engineering (specifically ...
of Stepstone largely defined the modern concept of a software component. He called them ''Software ICs'' and set out to create an infrastructure and market for these components by inventing the
Objective-C Objective-C is a general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the C programming language. Originally developed by Brad Cox and Tom Love in the early 1980s, it was selected by NeXT for its NeXT ...
programming language. (He summarizes this view in his book ''Object-Oriented Programming - An Evolutionary Approach'' 1986.) The software components are used in two different contexts and two kinds: i) using components as parts to build a single executable, or ii) each executable is treated as a component in a distributed environment, where components collaborate with each other using internet or intranet communication protocols for IPC (Inter Process Communications). The above belongs to former kind, while the below belongs to later kind. IBM led the path with their System Object Model (SOM) in the early 1990s. As a reaction,
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washin ...
paved the way for actual deployment of component software with
Object linking and embedding Object Linking & Embedding (OLE) is a proprietary technology developed by Microsoft that allows embedding and linking to documents and other objects. For developers, it brought OLE Control Extension (OCX), a way to develop and use custom user i ...
(OLE) and Component Object Model (COM). many successful software component models exist. In 2021 open-source toolchai
Bit
provided a free infrastructure for the development and composition of components into software applications, products, services and systems.


Architecture

A computer running several software components is often called an application server. This combination of application servers and software components is usually called
distributed computing A distributed system is a system whose components are located on different networked computers, which communicate and coordinate their actions by passing messages to one another from any system. Distributed computing is a field of computer sci ...
. Typical real-world application of this is in, e.g., financial applications or business software.


Component models

A component model is a definition of properties that components must satisfy, methods and mechanisms for the composition of components. During the last decades, researchers and practitioners have proposed several component models with different characteristics. A classification of the existing component models is given in. Examples of component models are:
Enterprise JavaBeans Jakarta Enterprise Beans (EJB; formerly Enterprise JavaBeans) is one of several Java APIs for modular construction of enterprise software. EJB is a server-side software component that encapsulates business logic of an application. An EJB web co ...
(EJB) model, Component Object Model (COM) model, .NET model, X-MAN component model, and Common Object Request Broker Architecture (CORBA) component model.


Technologies

* Business object technologies **
Newi Newi is an acronym for NEw World Infrastructure, a software architecture for Component-based software engineering, software componentry, mostly known as Newi Business Objects which coined the term ''Business object (computer science), business obj ...
* Component-based software frameworks for specific domains ** Advanced Component Framework ** Earth System Modeling Framework ( ESMF) ** MASH IoT Platform for Asset Management ** KOALA component model developed for software in consumer electronics **
React (JavaScript library) React (also known as React.js or ReactJS) is a free and open-source front-end JavaScript library for building user interfaces based on UI components. It is maintained by Meta (formerly Facebook) and a community of individual developers and co ...
** Software Communications Architecture (JTRS SCA) * Component-oriented programming ** Bundles as defined by the
OSGi OSGi is an open specification and open source project under the Eclipse Foundation. It is a continuation of the work done by the OSGi Alliance (formerly known as the Open Services Gateway initiative), which was an open standards organization fo ...
Service Platform ** Component Object Model (OCX/ActiveX/COM) and DCOM from
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washin ...
** TASCS -
SciDAC The ''Energy Citations Database (ECD)'' was created in 2001 in order to make scientific literature citations, and electronic documents, publicly accessible from U.S. Department of Energy (DOE), and its predecessor agencies, at no cost to the u ...
Center for Technology for Advanced Scientific Component Software **
Eiffel programming language Eiffel is an object-oriented programming language designed by Bertrand Meyer (an object-orientation proponent and author of '' Object-Oriented Software Construction'') and Eiffel Software. Meyer conceived the language in 1985 with the goal of i ...
**
Enterprise JavaBeans Jakarta Enterprise Beans (EJB; formerly Enterprise JavaBeans) is one of several Java APIs for modular construction of enterprise software. EJB is a server-side software component that encapsulates business logic of an application. An EJB web co ...
from Sun Microsystems (now Oracle) **
Flow-based programming In computer programming, flow-based programming (FBP) is a programming paradigm that defines applications as networks of "black box" processes, which exchange data across predefined connections by message passing, where the connections are speci ...
**
Fractal component model {{Unreferenced, date=May 2017 Fractal is a modular and extensible component model that can be used with various programming languages to software design, design, implement, Software deployment, deploy and reconfigure various systems and application ...
from
ObjectWeb OW2 is an independent non-profit international consortium dedicated to developing open-source software code infrastructure for middleware information systems. OW2 federates IT vendors and users, universities, and research centers from Europe, As ...
** MidCOM component framework for
Midgard In Germanic cosmology, Midgard (an anglicised form of Old Norse ; Old English , Old Saxon , Old High German , and Gothic ''Midjun-gards''; "middle yard", "middle enclosure") is the name for Earth (equivalent in meaning to the Greek term , "inhab ...
and
PHP PHP is a general-purpose scripting language geared toward web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementation is now produced by The PHP Group. ...
**
Oberon Oberon () is a king of the fairies in 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, Queen of the Fairi ...
, Component Pascal, and
BlackBox Component Builder BlackBox Component Builder is an integrated development environment (IDE) optimized for component-based software development developed by a small spin-off company, Oberon microsystems AG, of ETH Zurich in Switzerland. The IDE consists of develop ...
** rCOS method of component-based model driven design from UNU-IIST **
SOFA component system SOFA 2Bures, T., Hnetynka, P., Plasil, F.: SOFA 2.0: Balancing Advanced Features in a Hierarchical Component Model, Proceedings of SERA 2006, Seattle, USA, IEEE CS, , pp.40-48, Aug 2006 is a component system developed bDistributed Systems Researc ...
from
ObjectWeb OW2 is an independent non-profit international consortium dedicated to developing open-source software code infrastructure for middleware information systems. OW2 federates IT vendors and users, universities, and research centers from Europe, As ...
** The System.ComponentModel namespace in
Microsoft .NET The Microsoft .NET strategy is a marketing plan that Microsoft followed in the early 2000s. Steve Ballmer described it as the company's "most ambitious undertaking since Internet Strategy Day in 1995". In support of this strategy, between 2000 and ...
**
Unity Unity may refer to: Buildings * Unity Building, Oregon, Illinois, US; a historic building * Unity Building (Chicago), Illinois, US; a skyscraper * Unity Buildings, Liverpool, UK; two buildings in England * Unity Chapel, Wyoming, Wisconsin, US; ...
developed by
Unity Technologies Unity Software Inc. ( doing business as Unity Technologies) is a video game software development company based in San Francisco. It was founded in Denmark in 2004 as Over the Edge Entertainment (OTEE) and changed its name in 2007. Unity Technol ...
**
Unreal Engine Unreal Engine (UE) is a 3D computer graphics game engine developed by Epic Games, first showcased in the 1998 first-person shooter game '' Unreal''. Initially developed for PC first-person shooters, it has since been used in a variety of g ...
developed by Epic Games ** UNO from the
OpenOffice.org OpenOffice.org (OOo), commonly known as OpenOffice, is a discontinued open-source office suite. Active successor projects include LibreOffice (the most actively developed), Apache OpenOffice, Collabora Online (enterprise ready LibreOffice) a ...
office suite ** VCL and CLX from Borland and similar free LCL library. **
XPCOM Cross Platform Component Object Model (XPCOM) is a cross-platform component model from Mozilla. It is similar to Microsoft Component Object Model (COM) and Common Object Request Broker Architecture (CORBA). It features multiple language bindings ...
from
Mozilla Foundation The Mozilla Foundation (stylized as moz://a) is an American non-profit organization that exists to support and collectively lead the open source Mozilla project. Founded in July 2003, the organization sets the policies that govern development, ...
*
Compound document In computing, a compound document is a document that “combines multiple document formats, either by reference, by inclusion, or both.” Compound documents are often produced using word processing software, and may include text and non-text ele ...
technologies ** Active Documents in Oberon System and
BlackBox Component Builder BlackBox Component Builder is an integrated development environment (IDE) optimized for component-based software development developed by a small spin-off company, Oberon microsystems AG, of ETH Zurich in Switzerland. The IDE consists of develop ...
**
KParts KDE Frameworks is a collection of libraries and software frameworks readily available to any Qt-based software stacks or applications on multiple operating systems. Featuring frequently needed functionality solutions like hardware integration, fi ...
, the
KDE KDE is an international free software community that develops free and open-source software. As a central development hub, it provides tools and resources that allow collaborative work on this kind of software. Well-known products include the ...
compound document technology **
Object linking and embedding Object Linking & Embedding (OLE) is a proprietary technology developed by Microsoft that allows embedding and linking to documents and other objects. For developers, it brought OLE Control Extension (OCX), a way to develop and use custom user i ...
(OLE) **
OpenDoc OpenDoc is a defunct multi-platform software componentry framework standard created by Apple in the 1990s for compound documents, intended as an alternative to Microsoft's proprietary Object Linking and Embedding (OLE). It is one of Apple's e ...
*
Distributed computing A distributed system is a system whose components are located on different networked computers, which communicate and coordinate their actions by passing messages to one another from any system. Distributed computing is a field of computer sci ...
software components **
.NET Remoting .NET Remoting is a Microsoft application programming interface (API) for interprocess communication released in 2002 with the 1.0 version of .NET Framework. It is one in a series of Microsoft technologies that began in 1990 with the first version ...
from
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washin ...
** 9P distributed protocol developed for Plan 9, and used by
Inferno Inferno may refer to: * Hell, an afterlife place of suffering * Conflagration, a large uncontrolled fire Film * ''L'Inferno'', a 1911 Italian film * Inferno (1953 film), ''Inferno'' (1953 film), a film noir by Roy Ward Baker * Inferno (1973 fi ...
and other systems. **
CORBA The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collaboration between s ...
and the
CORBA Component Model The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collaboration between sys ...
from the
Object Management Group The Object Management Group (OMG) is a computer industry standards consortium. OMG Task Forces develop enterprise integration standards for a range of technologies. Business activities The goal of the OMG was a common portable and interoperab ...
**
D-Bus In computing, D-Bus (short for "Desktop Bus") is a message-oriented middleware mechanism that allows communication between multiple processes running concurrently on the same machine. D-Bus was developed as part of the freedesktop.org project, ...
from the
freedesktop.org freedesktop.org (fd.o) is a project to work on interoperability and shared base technology for free-software desktop environments for the X Window System (X11) and Wayland on Linux and other Unix-like operating systems. It was founded by Hav ...
organization ** DCOM and later versions of COM (and COM+) from
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washin ...
** DSOM and SOM from IBM (now scrapped) **
Ice Ice is water frozen into a solid state, typically forming at or below temperatures of 0 degrees Celsius or Depending on the presence of impurities such as particles of soil or bubbles of air, it can appear transparent or a more or less opaqu ...
from
ZeroC ZeroC is a software company based in Jupiter, Florida, United States. The company develops and publishes tools for software developers. Its main product is Ice, an open-source RPC framework that helps software developers build distributed appli ...
**
Java EE Jakarta EE, formerly Java Platform, Enterprise Edition (Java EE) and Java 2 Platform, Enterprise Edition (J2EE), is a set of specifications, extending Java SE with specifications for enterprise features such as distributed computing and web ser ...
from
Sun The Sun is the star at the center of the Solar System. It is a nearly perfect ball of hot plasma, heated to incandescence by nuclear fusion reactions in its core. The Sun radiates this energy mainly as light, ultraviolet, and infrared radi ...
** Kompics from SICS **
Universal Network Objects Universal Network Objects (UNO) is the software component, component model used in the OpenOffice.org and LibreOffice computer software application suites. It is interface-based and designed to offer interoperability between different programming ...
(UNO) from
OpenOffice.org OpenOffice.org (OOo), commonly known as OpenOffice, is a discontinued open-source office suite. Active successor projects include LibreOffice (the most actively developed), Apache OpenOffice, Collabora Online (enterprise ready LibreOffice) a ...
** Web services ***
REST Rest or REST may refer to: Relief from activity * Sleep ** Bed rest * Kneeling * Lying (position) * Sitting * Squatting position Structural support * Structural support ** Rest (cue sports) ** Armrest ** Headrest ** Footrest Arts and enter ...
**
Zope Zope is a family of free and open-source web application servers written in Python, and their associated online community. Zope stands for "Z Object Publishing Environment", and was the first system using the now common object publishing methodol ...
from
Zope Corporation Zope is a family of free and open-source web application servers written in Python, and their associated online community. Zope stands for "Z Object Publishing Environment", and was the first system using the now common object publishing methodolo ...
*
AXCIOMA
(the component framework for distributed, real-time, and embedded systems) b
Remedy IT
*
COHORTE
the cross-platform runtime for executing and managing robust and reliable distributed Service-oriented Component-based applications, b
isandlaTech
**DX-MAN Service Model *
Generic programming Generic programming is a style of computer programming in which algorithms are written in terms of types ''to-be-specified-later'' that are then ''instantiated'' when needed for specific types provided as parameters. This approach, pioneered b ...
emphasizes separation of algorithms from data representation * Interface description languages (IDLs) ** Open Service Interface Definitions (OSIDs) ** Part of both COM and
CORBA The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collaboration between s ...
**
Platform-Independent Component Modeling Language In computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several Computing platform, computing platforms. Some cross ...
** SIDL - Scientific Interface Definition Language *** Part of the Babel Scientific Programming Language Interoperability System (SIDL and Babel are core technologies of the CCA and the
SciDAC The ''Energy Citations Database (ECD)'' was created in 2001 in order to make scientific literature citations, and electronic documents, publicly accessible from U.S. Department of Energy (DOE), and its predecessor agencies, at no cost to the u ...
TASCS Center - see above.) **
SOAP Soap is a salt of a fatty acid used in a variety of cleansing and lubricating products. In a domestic setting, soaps are surfactants usually used for washing, bathing, and other types of housekeeping. In industrial settings, soaps are use ...
IDL from
World Wide Web Consortium The World Wide Web Consortium (W3C) is the main international standards organization for the World Wide Web. Founded in 1994 and led by Tim Berners-Lee, the consortium is made up of member organizations that maintain full-time staff working ...
(W3C) **
WDDX WDDX (Web Distributed Data eXchange) is a programming language-, platform- and transport-neutral data interchange mechanism designed to pass data between different environments and different computers. History WDDX was created by Simeon Simeonov ...
**
XML-RPC XML-RPC is a remote procedure call (RPC) protocol which uses XML to encode its calls and HTTP as a transport mechanism.Simon St. Laurent, Joe Johnston, Edd Dumbill. (June 2001) ''Programming Web Services with XML-RPC.'' O'Reilly. First Edit ...
, the predecessor of
SOAP Soap is a salt of a fatty acid used in a variety of cleansing and lubricating products. In a domestic setting, soaps are surfactants usually used for washing, bathing, and other types of housekeeping. In industrial settings, soaps are use ...
*
Inversion of control In software engineering, inversion of control (IoC) is a design pattern in which custom-written portions of a computer program receive the flow of control from a generic framework. A software architecture with this design inverts control as co ...
(IoC) and Plain Old C++/Java Object (POCO/POJO) component frameworks *
Pipes and filters Pipe(s), PIPE(S) or piping may refer to: Objects * Pipe (fluid conveyance), a hollow cylinder following certain dimension rules ** Piping, the use of pipes in industry * Smoking pipe ** Tobacco pipe * Half-pipe and quarter pipe, semi-circula ...
** Unix operating system


See also

*
Business logic In computer software, business logic or domain logic is the part of the program that encodes the real-world business rules that determine how data can be created, stored, and changed. It is contrasted with the remainder of the software that might ...
*
Modular programming Modular programming is a software design technique that emphasizes separating the functionality of a Computer program, program into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of th ...
*
Service Component Architecture Service Component Architecture (SCA) is a software technology designed to provide a model for applications that follow service-oriented architecture principles. The technology, created by major software vendors, including IBM, Oracle Corporatio ...
(SCA) * Software Communications Architecture (JTRS SCA) *
Third-party software component In computer programming, a third-party software component is a reusable software component developed to be either freely distributed or sold by an entity other than the original vendor of the development platform. The third-party software component ...
* Web service *
Web components Web Components are a set of features that provide a standard component model for the Web allowing for encapsulation and interoperability of individual HTML elements. Primary technologies used to create them include: * Custom Elements: APIs to ...


References


Further reading

* Brad J. Cox, Andrew J. Novobilski (1991). ''Object-Oriented Programming: An Evolutionary Approach''. 2nd ed. Addison-Wesley, Reading * Bertrand Meyer (1997). ''Object-Oriented Software Construction''. 2nd ed. Prentice Hall. * George T. Heineman, William T. Councill (2001). ''Component-Based Software Engineering: Putting the Pieces Together''. Addison-Wesley Professional, Reading 2001 *
Richard Veryard Richard Veryard FRSA (born 1955) is a British computer scientist, author and business consultant, known for his work on service-oriented architecture and the service-based business. Biography Veryard attended Sevenoaks School from 1966 to 1972, ...
(2001). ''Component-based business : plug and play''. London : Springer. * Clemens Szyperski, Dominik Gruntz, Stephan Murer (2002). ''Component Software: Beyond Object-Oriented Programming''. 2nd ed. ACM Press - Pearson Educational, London 2002


External links


''Why Software Reuse has Failed and How to Make It Work for You''
by
Douglas C. Schmidt Douglas C. Schmidt (born July 18, 1962) is a computer scientist and author in the fields of object-oriented programming, distributed computing and design patterns. Biography In August 1994 he joined the faculty of Washington University, St. Lo ...

''What is the True essence and reality of CBD?''
(Evidence to show existing CBD paradigm is flawed) * comprehensive list o
Component Systems
on
SourceForge SourceForge is a web service that offers software consumers a centralized online location to control and manage open-source software projects and research business software. It provides source code repository hosting, bug tracking, mirroring ...

''Brief Introduction to Real COP (Component Oriented Programming)''
by Using a small GUI application as an example {{DEFAULTSORT:Component-Based Software Engineering Object-oriented programming Software architecture Software engineering