Component-oriented software development

Object-oriented programming techniques promote a new approach to software engineering in which reliable, open applications can be lar gely constructed, rather than programmed, by reusing “frameworks” [3] of plug-compatible software components. Although the dream of a components-based software industry is very old [9], only now does it appear that we are close to realizing the dream. The reason for this is twofold: • Modern applications are increasingly open in terms of topology, platform and evolution, and so the need for a component-oriented approach to development is even more acute than in the past; • Objects provide an organizational paradigm for decomposing large applications into cooperating objects as well as a reuse paradigm for composing applications from pre-packaged software components. Despite the contributions of object-oriented technology , there are several open research problems that must be resolved to reach the goal of ef f ctive component-oriented development. First, object-oriented mechanisms for composition and reuse must be cleanly integrated with other features, such as concurrency , persistence and distribution. Second, ef fective reuse of software presupposes the existence of tools to support the organisation and retrieval of components according to application requirements and the interactive construction of running applications from components. Third, the design of reusable frameworks is an iterative, evolutionary process, so it is necessary to manage software and software information in such a way that designs and implementations can evolve gracefully. Finally, present object-oriented methodologies do not explicitly address the design of reusable frameworks. Not only the languages and tools, but the economics, methods and culture of software development must ultimately adapt to a new evolutionary software life-cycle if we are to realize the benefits of large-scale software reuse [2][17].

[1]  L. P. Deutsch,et al.  Design reuse and frameworks in the smalltalk-80 system , 1989 .

[2]  Brad J. Cox,et al.  Planning the software industrial revolution , 1990, IEEE Software.

[3]  Oscar Nierstrasz,et al.  Viewing object as patterns of communicating agents , 1990, OOPSLA/ECOOP '90.

[4]  James L. Green,et al.  The evolution of DVI system software , 1992, CACM.

[5]  Oscar Nierstrasz,et al.  Active objects in hybrid , 1987, OOPSLA '87.

[6]  Oscar Nierstrasz,et al.  Class management for software communities , 1990, CACM.

[7]  Oscar Nierstrasz,et al.  Towards and Object Calculus , 1991, Object-Based Concurrent Computing.

[8]  Peter Wegner Capital-Intensive Software Technology , 1984, IEEE Software.

[9]  Oscar Nierstrasz,et al.  An Implementation of Hybrid A Concurrent, Object-Oriented Language , 1988 .

[10]  Oscar Nierstrasz Active objects in hybrid , 1987, OOPSLA 1987.

[11]  Rajendra K. Raj,et al.  A Compositional Model for Software Reuse , 1989, Computer/law journal.

[12]  Oscar Nierstrasz,et al.  The ITHACA Technology A Landscape for Object-Oriented Application Development , 1990 .

[13]  Oscar Nierstrasz,et al.  Towards an Object Calculus ∗ , 1991 .

[14]  Composite multimedia and active objects , 1991, OOPSLA '91.

[15]  Peter Wegner,et al.  Dimensions of object-based language design , 1987, OOPSLA '87.

[16]  Dennis G. Kafura,et al.  Inheritance in Actor Based Concurrent Object-Oriented Languages , 1989, Comput. J..

[17]  P. Wegner,et al.  Capital-intensive software technology , 1989 .

[18]  Oscar Nierstrasz,et al.  Beyond Objects: Objects , 1992, Int. J. Cooperative Inf. Syst..

[19]  Dennis Tsichritzis,et al.  Virtual Museums and Virtual Realities , 1991, ICHIM.