FACTOID # 91: In the Maldives, there are more than 2 jails for every 1000 people.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RECENT ARTICLES
More Recent Articles »
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > Software componentry
Software component representations: above the representation used in UML, below the representation commonly used by Microsoft's COM objects. The "lollipops" sticking out from the components are their interfaces. Note the characteristic IUnknown interface of the COM component.
Software component representations: above the representation used in UML, below the representation commonly used by Microsoft's COM objects. The "lollipops" sticking out from the components are their interfaces. Note the characteristic IUnknown interface of the COM component.

Software componentry is a field of study within software engineering. It 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. It claims that software components, like the idea of hardware components, used for example in telecommunications, can ultimately be made interchangeable and reliable. Wikipedia does not have an article with this exact name. ... It has been suggested that this article or section be merged with Software componentry. ... An image of graphical software component representations, created by myself. ... In the field of software engineering, the Unified Modeling Language (UML) is a standardized specification language for object modeling. ... Component Object Model (COM) is a Microsoft platform for software componentry introduced by Microsoft in 1993. ... The published COM specification mandates that COM objects must minimally implement the IUnknown interface. ... Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. ... An object is fundamental concept in object-oriented programming. ... The software architecture of a system consists of software components, their external properties, and their relationships with one another. ... A software framework is a reusable design for a software system (or subsystem). ... In software engineering, design patterns are standard solutions to common problems in software design. ... Object-oriented programming (OOP) is a programming paradigm that uses objects to design applications and computer programs. ... It has been suggested that this article or section be merged into Object-oriented analysis and design. ... An electronic component is a basic electronic building block packaged in a discrete form with two or more connecting leads or metallic pads. ...

Contents

Software component

A software component is a system element offering a predefined service and able to communicate with other components. Clemens Szyperski and David Messerschmitt give the following five criteria for what a software component shall be to fulfill the definition: David G. Messerschmitt (born in 1945 in Denver, Colorado) is an engineer, currently an emeritus professor at the University of California, Berkeley. ...

  • Multiple-use
  • Non-context-specific
  • Composable with other components
  • Encapsulated i.e., non-investigable through its interfaces
  • A unit of independent deployment and versioning

A simpler definition can be: A component is an object written to a specification. It does not matter what the specification is: COM, Java Beans, etc., as long as the object adheres to the specification. It is only by adhering to the specification that the object becomes a component and gains features like reusability and so forth. In computer science, the principle of information hiding is the hiding of design decisions in a computer program that are most likely to change, thus protecting other parts of the program from change if the design decision is changed. ... Component Object Model (COM) is a Microsoft platform for software componentry introduced by Microsoft in 1993. ... The Enterprise Java Beans specification is one of the several Java APIs in the Java 2 Platform, Enterprise Edition. ...


Software components often take the form of objects 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 object is fundamental concept in object-oriented programming. ... Object-oriented programming (OOP) is a programming paradigm that uses objects to design applications and computer programs. ... An interface description language (or alternately, interface definition language), or IDL for short, is a computer language used to describe a software components interface. ... A BlueGene supercomputer cabinet. ...


When a component is to be accessed or shared across execution contexts or network links, some form of serialization (also known as marshalling) is employed to turn the component or one of its interfaces into a bitstream. In computer science, in the context of data storage and transmission in programming languages like Java, serialization is the process of saving an object onto a storage medium (such as a file, or a memory buffer) or to transmit it across a network connection link, either as a series of... A bitstream or bit stream is a time series of bits. ...


History

Image from Douglas McIlroy's historic lecture on software components at the NATO conference in Garmisch, Germany (1968).
Image from Douglas McIlroy's historic lecture on software components at the NATO conference in Garmisch, Germany (1968).

The idea that software should be componentized, built from prefabricated components, was first published in Douglas McIlroy's address at the NATO conference on software engineering in Garmisch, Germany, 1968 titled Mass Produced Software Components. This conference set out to counter the so-called software crisis. His subsequent inclusion of pipes and filters into the Unix operating system was the first implementation of an infrastructure for this idea. From Douglas McIlroys lecture on software components, 1968. ... From Douglas McIlroys lecture on software components, 1968. ... Computer software (or simply software) refers to one or more computer programs and data held in the storage of a computer for some purpose. ... Portrait of Douglas McIlroy taken at the NATO conference in Garmisch 1968, courtesy of Brian Randell. ... NATO 2002 Summit in Prague. ... Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. ... Garmisch-Partenkirchen (29,875 inhabitants; 01-01-2004) is a market town, and the administrative centre of the district of Garmisch-Partenkirchen, in the Oberbayern region of Bavaria, Germany, near the border with Austria. ... 1968 (MCMLXVIII) was a leap year starting on Monday. ... The software crisis was a term used in the early days of software engineering, before it was a well-established subject. ... In software engineering, a pipeline consisting of chain of processes or other data processing entities, arranged so that the output of each element of the chain is the input of the of the next one. ... Filiation of Unix and Unix-like systems Unix (officially trademarked as UNIX®) is a computer operating system originally developed in the 1960s and 1970s by a group of AT&T employees at Bell Labs including Ken Thompson, Dennis Ritchie and Douglas McIlroy. ... An operating system (OS) is a set of computer programs that manage the hardware and software resources of a computer. ...


The modern concept of a software component was largely defined by Brad Cox of Stepstone, who called them Software ICs and set out to create an infrastructure and market for these components by inventing the Objective-C programming language. (He summarizes this view in his book Object-Oriented Programming - An Evolutionary Approach 1986.) Cox's attempt did not succeed because of the most obvious, yet fundamental, difference between silicon and software ICs. The former are made of atoms, so it is possible to buy and sell them through scarcity-based economics. The latter are made of bits which don't live under the same constraints, which undercuts the incentive to provide them. Brad Cox is a computer scientist and Ph. ... Objective-C, often referred to as ObjC or more seldomly as Objective C or Obj-C, is an object oriented programming language implemented as an extension to C. It is used primarily on Mac OS X and GNUstep, two environments based on the OpenStep standard, and is the primary language... Objective-C, often referred to as ObjC or more seldomly as Objective C or Obj-C, is an object oriented programming language implemented as an extension to C. It is used primarily on Mac OS X and GNUstep, two environments based on the OpenStep standard, and is the primary language... 1986 (MCMLXXXVI) was a common year starting on Wednesday of the Gregorian calendar. ...


IBM lead the path with their System Object Model (SOM) in the early 1990s. Some claim that Microsoft paved the way for actual deployment of component software with OLE and COM. Today, several successful software component models exist. The System Object Model is an object-oriented shared library system developed by IBM. A distributed version based on CORBA, DSOM allowed objects on different computers to communicate. ... Object Linking and Embedding (OLE) is a distributed object system and protocol developed by Microsoft. ... Component Object Model (COM) is a Microsoft platform for software componentry introduced by Microsoft in 1993. ...


Differences from object-oriented programming

The idea in object-oriented programming (OOP) is that software should be written according to a mental model of the actual or imagined objects it represents. OOP and the related disciplines of object-oriented design and object-oriented analysis focus on modelling real-world interactions and attempting to create 'verbs' and 'nouns' which can be used in intuitive ways, ideally by end users as well as by programmers coding for those end users. Object-oriented programming (OOP) is a programming paradigm that uses objects to design applications and computer programs. ... It has been suggested that this article or section be merged into Object-oriented analysis and design. ... Object-oriented analysis builds a model of a system that is composed of objects. ...


Software componentry, by contrast, makes no such assumptions, and instead states that software should be developed by gluing prefabricated components together much like in the field of electronics or mechanics. It accepts that the definitions of useful components, unlike objects, can be counter-intuitive. In general it discourages anthropomorphism and naming, and is far more pessimistic about the potential for end user programming. Some peers will even talk of software components in terms of a new programming paradigm: component-oriented programming. // Electronics is the study of electron mechanics. ... Mechanics (Greek ) is the branch of physics concerned with the behaviour of physical bodies when subjected to forces or displacements, and the subsequent effect of the bodies on their environment. ... An anthropomorphic character; a cat ascribed human characteristics. ... Since the late 1960s, the word paradigm (IPA: ) has referred to a thought pattern in any scientific discipline or other epistemological context. ...


Some argue that this distinction was made by earlier computer scientists, with Donald Knuth's theory of "literate programming" optimistically assuming there was convergence between intuitive and formal models, and Edsger Dijkstra's theory in the article The Cruelty of Really Teaching Computer Science, which stated that programming was simply, and only, a branch of mathematics. Computer science (informally: CS or compsci) is, in its most general sense, the study of computation and information processing, both in hardware and in software. ... Donald Ervin Knuth ( or Ka-NOOTH[1], Chinese: [2]) (b. ... Literate programming is the writing of computer programs primarily for human beings to read, similar to a work of literature; hence the name literate programming. ... Edsger Dijkstra Edsger Wybe Dijkstra (Rotterdam, May 11, 1930 – Nuenen, August 6, 2002; IPA: ) was a Dutch computer scientist. ... The Cruelty of Really Teaching Computer Science is a 1988 paper by E. W. Dijkstra, which argues that computer programming should be understood as a branch of mathematics, and that the formal provability of a program is a major criterion for correctness. ... Euclid, Greek mathematician, 3rd century BC, as imagined by by Raphael in this detail from The School of Athens. ...


In both forms, this notion has led to many academic debates about the pros and cons of the two approaches and possible strategies for uniting the two. Some consider them not really competitors, but only descriptions of the same problem from two different points of view.


It takes significant effort and awareness to write a software component that is effectively reusable. The component needs:

  • to be fully documented;
  • more thorough testing;
  • robust input validity checking;
  • to pass back useful error messages as appropriate;
  • to be built with an awareness that it will be put to unforeseen uses;
  • a mechanism for compensating developers who invest the (substantial) effort implied above.

This page is a candidate for speedy deletion. ...

Architecture

A computer running several software components is called an application server. Using this combination of application servers and software components is usually called distributed computing. The usual real-world application of this is in financial applications or business software. This article or section does not cite its references or sources. ... 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. ...


Technologies

In software engineering, a pipeline consisting of chain of processes or other data processing entities, arranged so that the output of each element of the chain is the input of the of the next one. ... Filiation of Unix and Unix-like systems Unix (officially trademarked as UNIX®) is a computer operating system originally developed in the 1960s and 1970s by a group of AT&T employees at Bell Labs including Ken Thompson, Dennis Ritchie and Douglas McIlroy. ... An operating system (OS) is a set of computer programs that manage the hardware and software resources of a computer. ... // Fractal is a modular and extensible component model that can be used with various programming languages to design, implement, deploy and reconfigure various systems and applications, from operating systems to middleware platforms and to graphical user interfaces. ... In computer programming, a Visual Basic Extension (commonly abbreviated VBX) or custom control, was the component model used in Microsoft Visual Basic versions 1. ... Component Object Model (COM) is a Microsoft platform for software componentry introduced by Microsoft in 1993. ... DCOM (Distributed Component Object Model) is a Microsoft proprietary technology for software components distributed across several networked computers. ... Microsoft is one of few companies engaging itself in the console wars Where they are up against sony, nintendo, and of course sharps new console which may cause a threat. ... XPCOM (Cross Platform Component Object Model) is a simple, cross platform component model similar to CORBA or Microsoft COM. It has multiple language bindings and IDL descriptions so programmers can plug their custom functionality into the framework and connect it with other components. ... The Mozilla Foundation (abbreviated MF or MoFo) is a non-profit organization that exists to support and provide leadership for the open source Mozilla project. ... In computing, VCL (Visual Component Library) is a visual component-based framework for developing Microsoft Windows applications, developed by Borland for use in its Delphi and C++Builder software development environment. ... In computing, Component Library for Cross Platform (CLX), is a cross-platform visual component-based framework for developing Microsoft Windows and Linux applications. ... Borland Software Corporation is a software company headquartered in California. ... This article concerns the software IDE named Lazarus. ... The Enterprise Java Beans specification is one of the several Java APIs in the Java 2 Platform, Enterprise Edition. ... SUN redirects here. ... In computing, Universal Network Objects (UNO) is the component model used in OpenOffice. ... OpenOffice. ... Eiffel is an ISO-standardized object-oriented programming language designed for extensibility, reusability, reliability and programmer productivity. ... Oberon is a reflective programming language created in the late 1980s by Professor Niklaus Wirth (creator of the Pascal, Modula, and Modula-2 programming languages) and his associates at ETHZ in Switzerland. ... The OSGi Alliance (formerly known as the Open Services Gateway initiative) is an open standards organization founded in March 1999. ... Microsoft . ... In computer science, flow-based programming (FBP) is a programming paradigm that defines applications as networks of black box processes, which exchange data across predefined connections. ... The Midgard Project Midgard CMS is an Open Source Content management system built on the Midgard Framework. ... PHP (PHP:Hypertext Preprocessor) is a reflective programming language originally designed for producing dynamic web pages. ... Example of a compound document in Microsoft Office Word In computing, a compound document is a document type typically produced using word processing software, and is a regular text document intermingled with e. ... Bonobo is a component model for compound documents used in GNOME, a desktop environment. ... A gnome (or Nisse) hiding behind a toadstool. ... Object Linking and Embedding (OLE) is a distributed object system and protocol developed by Microsoft. ... OpenDoc was a multi-platform software componentry framework standard for compound documents, inspired by the Xerox Star system and intended as an alternative to Microsofts Object Linking and Embedding (OLE). ... In computing, Fresco (formerly known as Berlin) is a windowing system. ... Business objects are objects in a computer program that abstract the entities in the domain that the program is written to represent. ... Newi is actually an acronym for NEw World Infrastructure, a software architecture for software componentry, mostly known as Newi Business Objects which coined the term business object. ... 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. ... 9P, or the Plan 9 Filesystem Protocol, is a network protocol developed for the Plan 9 distributed operating system as the means of connecting the components of a Plan 9 system (site). ... To meet Wikipedias quality standards, this article or section may require cleanup. ... Inferno is an operating system for creating and supporting distributed services. ... In computing, Common Object Request Broker Architecture (CORBA) is a standard for software componentry, created and controlled by the Object Management Group (OMG). ... CORBA Component Model (CCM) is an addition to the family of CORBA definitions. ... Object Management Group (OMG) is a consortium, originally aimed at setting standards for distributed object-oriented systems, and is now focused on modeling (programs, systems and business processes) and model-based standards in some 20 vertical markets. ... D-Bus is a free software project which offers a simple way for applications to communicate with one another. ... freedesktop. ... DCOM (Distributed Component Object Model) is a Microsoft proprietary technology for software components distributed across several networked computers. ... Component Object Model (COM) is a Microsoft platform for software componentry introduced by Microsoft in 1993. ... Microsoft is one of few companies engaging itself in the console wars Where they are up against sony, nintendo, and of course sharps new console which may cause a threat. ... DCOP, which stands for Desktop COmmunication Protocol, is a light-weight interprocess and software componentry communication system. ... KDE (K Desktop Environment) (IPA: ) is a free software project which aims to be a powerful ecosystem for an easy-to-use desktop environment. ... The System Object Model is an object-oriented shared library system developed by IBM. A distributed version based on CORBA, DSOM allowed objects on different computers to communicate. ... International Business Machines Corporation (IBM, or colloquially, Big Blue) (NYSE: IBM) (incorporated June 15, 1911, in operation since 1888) is headquartered in Armonk, New York, USA. The company manufactures and sells computer hardware, software, and services. ... The Internet Communications Engine, or Ice, is a Remote Procedure Call and object middleware system developed by ZeroC and dual-licensed under the GNU GPL and a proprietary license. ... ZeroC, Inc. ... Java 2 Platform, Enterprise Edition or Java EE (formerly also J2EE) is a programming platform — part of the Java platform — for developing and running distributed multi-tier architecture applications, based largely on modular components running on an application server. ... SUN redirects here. ... . ... Microsoft is one of few companies engaging itself in the console wars Where they are up against sony, nintendo, and of course sharps new console which may cause a threat. ... The W3C defines a Web service[1] as a software system designed to support interoperable Machine to Machine interaction over a network. ... Representational State Transfer (REST) is a style of software architecture for distributed hypermedia systems such as the World Wide Web. ... In computing, Universal Network Objects (UNO) is the component model used in OpenOffice. ... OpenOffice. ... XML-RPC is a remote procedure call protocol encoded in XML. It is a very simple protocol, defining only a handful of data types and commands, and the entire description can be printed on two pages of paper. ... This article is about a computer protocol. ... An interface description language (or alternately, interface definition language), or IDL for short, is a computer language used to describe a software components interface. ... The World Wide Web Consortium (W3C) is a consortium that produces standards—recommendations, as they call them—for the World Wide Web. ... WDDX (Web Distributed Data eXchange) is a mechanism to pass data between different computers. ... Component Object Model (COM) is a Microsoft platform for software componentry introduced by Microsoft in 1993. ... In computing, Common Object Request Broker Architecture (CORBA) is a standard for software componentry, created and controlled by the Object Management Group (OMG). ... // Description Open Service Interface Definitions (OSIDs) are programmatic interface specifications describing services. ...

References

  • Brad J. Cox, Andrew J. Novobilski: Object-Oriented Programming: An Evolutionary Approach. 2nd ed. Addison-Wesley, Reading 1991 ISBN 0-201-54834-8
  • Bertrand Meyer: Object-Oriented Software Construction. 2nd ed. Prentice Hall, 1997.
  • Clemens Szyperski: Component Software: Beyond Object-Oriented Programming. 2nd ed. Addison-Wesley Professional, Boston 2002 ISBN 0-201-74572-0
  • George T. Heineman, William T. Councill, Component-Based Software Engineering: Putting the Pieces Together. Addison-Wesley Professional, Reading 2001 ISBN 0-201-70485-4

See also

Business Logic is a non-technical term generally used to describe the functional algorithms which handle information exchange between a database and a user interface. ... The W3C defines a Web service[1] as a software system designed to support interoperable Machine to Machine interaction over a network. ... In computer programming, and particularly in Microsoft Windows programming, third party software component refers to a reusable software component developed to be either freely distributed or sold by an entity other than the original vendor of the development platform. ...

External links


  Results from FactBites:
 
Software componentry (1042 words)
Software componentry is a common and convenient means for inter-process communication (IPC).
Software components often take the form 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.
Software componentry, by contrast, makes no such assumptions, and instead states that software should be developed by gluing prefabricated components together much like in the field of electronics or mechanics.
Software componentry - Wikipedia, the free encyclopedia (1005 words)
Software componentry is a field of study within software engineering.
Software componentry is a common and convenient means for inter-process communication (IPC).
Software componentry, by contrast, makes no such assumptions, and instead states that software should be developed by gluing prefabricated components together much like in the field of electronics or mechanics.
  More results at FactBites »


 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments
Please enter the 5-letter protection code

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.