New Approaches in Systems Development

Discusses the extension of object-oriented application development with components.

The differences between the emerging, component-based development and long-standing, object-oriented (OO) development are often unclear. This paper discusses the similarities and differences between OO and component-based development. It begins by describing the evolution of the abstraction process and the emergence of OO programming. Next, the limitations of OO programming are discussed, along with an explanation of how component-based development was born to serve as a complimentary extension to OO to overcome its primary disadvantages. Given the differences between objects and components, this paper concludes with recommendations for developing systems using both constructs. Finally, the future of objects and components is discussed. The paper includes figures.
“There are also other differences between components and objects. One is the division of labor (Hurwitz, 1998). Components create two classes of developers. The first group of developers are highly skilled developers who can use all the power of objects to create fine-grained objects that they then string together to create large-grained business-oriented components. The second group is the traditional corporate developers who do not know how to program in complex object-oriented languages. These developers use components created by the more skilled developers. The corporate programmer is not allowed to change the component’s content. Thus, a coarse-grained component does not allow inheritance to be applied, which protects the integrity of the component and helps prevent mistakes.”