Component-based software engineering

software componentcomponentcomponentssoftware componentscomponent-basedsoftware componentrycomponent modelcomponent-orientedcomponent-based developmentapplication components
Component-based software engineering (CBSE), also called as component-based development (CBD), is a branch of software engineering that emphasizes the separation of concerns with respect to the wide-ranging functionality available throughout a given software system.wikipedia
332 Related Articles

Software system

software systemssystemssystem
Component-based software engineering (CBSE), also called as component-based development (CBD), is a branch of software engineering that emphasizes the separation of concerns with respect to the wide-ranging functionality available throughout a given software system.
A software system is a system on intercommunicating components based on software forming part of a computer system (a combination of hardware and software).

Service-oriented architecture

SOAservice oriented architectureservice-oriented
Components play this role, for example, in web services, and more recently, in service-oriented architectures (SOA), whereby a component is converted by the web service into a service and subsequently inherits further characteristics beyond that of an ordinary component.
Service-oriented architecture (SOA) is a style of software design where services are provided to the other components by application components, through a communication protocol over a network.

Interface description language

IDLinterface definition languagecall semantics
Software components often take the form of objects (not classes) or collections of objects (from object-oriented programming), 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.
An interface description language or interface definition language (IDL), is a specification language used to describe a software component's application programming interface (API).

Modular programming

modulesmodularmodule
An individual software component is a software package, a web service, a web resource, or a module that encapsulates a set of related functions (or data).
A component is a similar concept, but typically refers to a higher level; a component is a piece of a whole system, while a module is a piece of an individual program.

Component-based usability testing

Furthermore, component-based usability testing should be considered when software components directly interact with users.
The CBUT approach can be regarded as part of component-based software engineering branch of software engineering.

Serialization

serializeddata serializationserializable
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.
A method for distributing objects, especially in component-based software engineering such as COM, CORBA, etc.

Reusability

reusableoften re-usedre-usability
Reusability is an important characteristic of a high-quality software component.
Proponents claim that objects and software components offer a more advanced form of reusability, although it has been tough to objectively measure and define levels or scores of reusability.

Software framework

frameworkframeworksdevelopment framework
Component-based software engineering builds on prior theories of software objects, software architectures, software frameworks and software design patterns, and the extensive theory of object-oriented programming and the object-oriented design of all these.
Software frameworks may include support programs, compilers, code libraries, tool sets, and application programming interfaces (APIs) that bring together all the different components to enable development of a project or system.

Software design pattern

design patterndesign patternspattern
Component-based software engineering builds on prior theories of software objects, software architectures, software frameworks and software design patterns, and the extensive theory of object-oriented programming and the object-oriented design of all these.
By definition, a pattern must be programmed anew into each application that uses it. Since some authors see this as a step backward from software reuse as provided by components, researchers have worked to turn patterns into components.

Douglas McIlroy

Doug McIlroyD. McIlroyM. D. Mcilroy
The idea that software should be componentized - built from prefabricated components - first became prominent with Douglas McIlroy's address at the NATO conference on software engineering in Garmisch, Germany, 1968, titled Mass Produced Software Components.
McIlroy is best known for having originally developed Unix pipelines, software componentry and several Unix tools, such as spell, diff, sort, join, graph, speak, and tr.

Service-orientation

service-orientedservice orientedservice orientation
Software engineering practitioners regard components as part of the starting platform for service-orientation.
Service-orientation inherits a number of principles from earlier paradigms including object-oriented programming, component-based software engineering and open distributed processing.

Software architecture

architecturesoftwarearchitects
Component-based software engineering builds on prior theories of software objects, software architectures, software frameworks and software design patterns, and the extensive theory of object-oriented programming and the object-oriented design of all these.
Mary Shaw and David Garlan of Carnegie Mellon wrote a book titled Software Architecture: Perspectives on an Emerging Discipline in 1996, which promoted software architecture concepts such as components, connectors, and styles.

Enterprise JavaBeans

EJBCMPEnterprise Java Beans
A classification of the existing component models is given in. Examples of component models are: Enterprise JavaBeans (EJB) model, Component Object Model (COM) model, .NET model, and Common Object Request Broker Architecture (CORBA) component Model.
EJB is a server-side software component that encapsulates business logic of an application.

Objective-C

CategoryObjective-C categories#Import
He called them Software ICs and set out to create an infrastructure and market for these components by inventing the Objective-C programming language.
In order to demonstrate that real progress could be made, Cox showed that making interchangeable software components really needed only a few practical changes to existing tools.

Brad Cox

Brad Cox of Stepstone largely defined the modern concept of a software component.
Brad Cox is a computer scientist known mostly for creating the Objective-C programming language with his business partner Tom Love and for his work in software engineering (specifically software reuse) and software componentry.

Distributed Component Object Model

DCOM(D)COMDistributed COM
Component Object Model (OCX/ActiveX/COM) and DCOM from Microsoft
Distributed Component Object Model (DCOM) is a proprietary Microsoft technology for communication between software components on networked computers.

Object Linking and Embedding

OLEActiveXembedded
As a reaction, Microsoft paved the way for actual deployment of component software with Object linking and embedding (OLE) and Component Object Model (COM).
OLE 1.0 later evolved to become an architecture for software components known as the Component Object Model (COM), and later DCOM.

RCOS (computer sciences)

rCOS
rCOS method of component-based model driven design from UNU-IIST
rCOS stands for refinement of object and component systems.

Visual Component Library

VCL
VCL and CLX from Borland and similar free LCL library.
The Visual Component Library (VCL) is a visual component-based object-oriented framework for developing the user interface of Microsoft Windows applications.

Universal Network Objects

UNOUNO APIunoconv
UNO from the OpenOffice.org office suite
Universal Network Objects (UNO) is the component model used in the OpenOffice.org and LibreOffice computer software application suites.

XPCOM

XPCOM from Mozilla Foundation
Cross Platform Component Object Model (XPCOM) is a cross-platform component model from Mozilla.

Object-oriented programming

object-orientedobject orientedobject-oriented programming language
Software components often take the form of objects (not classes) or collections of objects (from object-oriented programming), 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. Component-based software engineering builds on prior theories of software objects, software architectures, software frameworks and software design patterns, and the extensive theory of object-oriented programming and the object-oriented design of all these.
Component-based software engineering

OpenDoc

OpenDoc
OpenDoc is a multi-platform software componentry framework standard created by Apple for compound documents, intended as an alternative to Microsoft's Object Linking and Embedding (OLE).