Making Components Contract Aware

Components have long promised to encapsulate data and programs into a box that operates predictably without requiring that users know the specifics of how it does so. Many advocates have predicted that components will bring about widespread software reuse, spawning a market for components usable with such mainstream software buses as the Common Object Request Broker Architecture (CORBA) and the Distributed Component Object Model (DCOM). In the Windows world, at least, this prediction is becoming a reality. Yet recent reports indicate mixed results when using and reusing components in mission-critical settings. Such results raise disturbing questions. How can you trust a component? What if the component behaves unexpectedly, either because it is faulty or simply because you misused it? Before we can trust a component in mission-critical applications, we must be able to determine, reliably and in advance, how it will behave. In this article the authors define a general model of sofware contracts and show how existing mechanisms could be used to turn traditional components into contract-aware ones.

[1]  R. Kramer iContract - The Java(tm) Design by Contract(tm) Tool , 1998 .

[2]  Damien Watkins,et al.  Using interface definition languages to support path expressions and programming by contract , 1998, Proceedings. Technology of Object-Oriented Languages. TOOLS 26 (Cat. No.98EX176).

[3]  Antoine Beugnard,et al.  Real-Time Object-Oriented Distributed Processing with COREMO , 1997, ECOOP Workshops.

[4]  Jean-Marc Jézéquel,et al.  A framework managing quality of service contracts in distributed applications , 1998, Proceedings. Technology of Object-Oriented Languages. TOOLS 26 (Cat. No.98EX176).

[5]  Jean-Marc Jézéquel,et al.  Design by Contract: The Lessons of Ariane , 1997, Computer.

[6]  Bertrand Meyer,et al.  Object-oriented software construction (2nd ed.) , 1997 .

[7]  Jean-Marc Jézéquel,et al.  Reifying quality of service contracts for distributed software , 1998 .

[8]  Douglas C. Schmidt,et al.  The design of the TAO real-time object request broker , 1998, Comput. Commun..

[9]  Roy H. Campbell,et al.  The specification of process synchronization by path expressions , 1974, Symposium on Operating Systems.

[10]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[11]  Anneke Kleppe,et al.  The object constraint language: precise modeling with UML , 1998 .

[12]  Bertrand Meyer,et al.  Applying 'design by contract' , 1992, Computer.

[13]  Elaine J. Weyuker Testing Component-Based Software: A Cautionary Tale , 1998, IEEE Softw..