Runtime Validation of Behavioural Contracts for Component Software

In component software, the independence of components is achieved by separating their interfaces from implementations. The interface definition of a component serves as the contract with its neighbouring components regarding the use of its services. In general, such a contract should cover issues beyond interface signatures, such as service functionality, usage and quality. The Interface Definition Languages (IDLs) used by commercial middleware such as CORBA, however, lack mechanisms for capturing such semantic characteristics. In this paper, we introduce a framework and associated techniques that augment commercial IDLs with behavioural contract specifications and validate at runtime component interactions against such contracts. The behavioural contract of a component describes occurrence or sequencing constraints on its interactions with the environment. The validation of such constraints is achieved by intercepting runtime interactions between components and validating them against the finite state automata that semantically represent the constraints. The validation provides a useful tool for testing whether the component services are used properly and whether the component fulfils its behavioural obligations in a distributed system.

[1]  Philippe A. Palanque,et al.  Formal Specification and Prototyping of CORBA Systems , 1999, ECOOP.

[2]  Christine Hofmeister,et al.  Enforcing a lips usage policy for CORBA components , 2003, 2003 Proceedings 29th Euromicro Conference.

[3]  Ann Q. Gates,et al.  DynaMICs: Comprehensive Support for Run-Time Monitoring , 2001, RV@CAV.

[4]  Bertrand Meyer,et al.  Eiffel: The Language , 1991 .

[5]  Daniel M. Yellin,et al.  Protocol specifications and component adaptors , 1997, TOPL.

[6]  Premkumar T. Devanbu,et al.  Adding more "DL" to IDL: towards more knowledgeable component inter-operability , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[7]  Terry Shepard,et al.  Techniques for Embedding Executable Specifications in Software Component Interfaces , 2003, ICCBSS.

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

[9]  Heike Wehrheim,et al.  Jass - Java with Assertions , 2001, RV@CAV.

[10]  Lidia Fuentes,et al.  Extending CORBA Interfaces with Protocols , 2001, Comput. J..

[11]  Ralf H. Reussner An Enhanced Model for Component Interfaces to Support Automatic and Dynamic Adaption , 2000 .

[12]  David Garlan,et al.  A formal basis for architectural connection , 1997, TSEM.

[13]  George S. Avrunin,et al.  Patterns in property specifications for finite-state verification , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[14]  Frantisek Plasil,et al.  Behavior Protocols for Software Components , 2002, IEEE Trans. Software Eng..

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

[16]  Xavier Logean Run-time monitoring and on-line testing of middleware based communication services , 2000 .

[17]  Jun Han,et al.  Specifying Interaction Constraints of Software Components for Better Understandability and Interoperability , 2005, ICCBSS.

[18]  Jun Han,et al.  Ensuring compatible interactions within component-based software systems , 2003, Tenth Asia-Pacific Software Engineering Conference, 2003..

[19]  Paolo Ciancarini,et al.  Architecting families of software systems with process algebras , 2002, TSEM.

[20]  Ann Q. Gates,et al.  A taxonomy and catalog of runtime software-fault monitoring tools , 2004, IEEE Transactions on Software Engineering.

[21]  Grigore Rosu,et al.  An Overview of the Runtime Verification Tool Java PathExplorer , 2004, Formal Methods Syst. Des..

[22]  Mahesh Viswanathan,et al.  Java-MaC: A Run-Time Assurance Approach for Java Programs , 2004, Formal Methods Syst. Des..

[23]  George S. Avrunin,et al.  Property specification patterns for finite-state verification , 1998, FMSP '98.