2.3. Objects and Components

Writing in Byte, John Udell once announced that 'Objects are dead!' and said that they would soon be replaced by components. He wrote this in May 1994, whereas objects didn't really hit the mainstream of information technology until around 1996. In fact, most CBD offerings that were popular in 1994, such as OpenDoc, OpenStep and Hyperdesk, didn't survive for very long after that. Probably the only significant survivor was the humble VBX. There are, even now, several understandings of what the term 'component' means. Some commentators just use it to mean any module. Others mean a deliverable object or framework: a unit of deployment. Still others mean a binary that can create instances (of multiple classes). Serious writers on object-orientation tended to mean a set of interfaces with offers and requires constraints. The requires constraints are often called outbound interfaces. Daniels (2000) questioned this and showed that while these aspects of a component must be defined, they do not form part of the component's contract. Szyperski (1998) defined a component as 'a binary unit of independent production, acquisition and deployment' and later as 'a unit of composition with contractually specified interfaces and explicit context dependencies only'. We prefer 'a unit of executable deployment that plays a part in a composition'.

In many ways, VB was the paradigm for component-based development, though now largely overtaken by C# or Java for much development ...

Get Requirements Modelling and Specification for Service Oriented Architecture now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.