Increasing client-side confidence in remote component implementations

When a client makes use of a remote component, it does not have direct access to the remote component's implementation or state information. By observing the component's interactions with its environment, however, the client can determine whether the component's behavior conforms to its promised specification. We present a distributedinfrastructure with which a client can make these observations and thereby increase its confidence in the correctness of the remote component. This infrastructure supports temporal specifications of distributed components with autonomous threads of control. It also supports multiple levels of confidence, with commensurate performance costs. As a proof-of-concept for this design, we have implemented a prototype in Java for distributed systems built using CORBA.

[1]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[2]  P. Ramadge Observability of discrete event systems , 1986, 1986 25th IEEE Conference on Decision and Control.

[3]  Cliff B. Jones,et al.  Systematic software development using VDM , 1986, Prentice Hall International Series in Computer Science.

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

[5]  A. Willsky,et al.  Observability of discrete event dynamic systems , 1990 .

[6]  Roger S. Pressman,et al.  Software engineering (3rd ed.): a practitioner's approach , 1992 .

[7]  Zohar Manna,et al.  The Temporal Logic of Reactive and Concurrent Systems , 1991, Springer New York.

[8]  David S. Rosenblum A Practical Approach to Programming With Assertions , 1995, IEEE Trans. Software Eng..

[9]  Murali Sitaraman,et al.  On the Practical Need for Abstraction Relations to Verify Abstract Data Type Representations , 1997, IEEE Trans. Software Eng..

[10]  Kai Engelhardt,et al.  Data Refinement: Model-Oriented Proof Methods and their Comparison , 1998 .

[11]  Willem P. de Roever,et al.  Data Refinement: Model-oriented Proof Theories and their Comparison , 1998, Cambridge Tracts in Theoretical Computer Science.

[12]  Stephen H. Edwards,et al.  A framework for detecting interface violations in component-based software , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).

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

[14]  Paolo A. G. Sivilotti,et al.  The specification of distributed objects: liveness and locality , 1999, CASCON.

[15]  Cynthia Della Torre Cicalese,et al.  Behavioral Specification of Distributed Software Component Interfaces , 1999, Computer.

[16]  Peter Zimmerer,et al.  International workshop on testing distributed component-based systems , 1999, ICSE 1999.

[17]  Paolo A. G. Sivilotti,et al.  A tool for testing liveness in distributed object systems , 2000, Proceedings. 34th International Conference on Technology of Object-Oriented Languages and Systems - TOOLS 34.

[18]  Paolo A. G. Sivilotti,et al.  The specification and testing of quantified progress properties in distributed systems , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[19]  Antonio Ramírez-Treviño,et al.  Observability of discrete event systems modeled by interpreted Petri nets , 2003, IEEE Trans. Robotics Autom..

[20]  Jayadev Misra A Logic for Concurrent Programming: Safety , 2003 .