Eiffel: the language
Protocol specifications and component adaptors
ACM Transactions on Programming Languages and Systems (TOPLAS)
A formal basis for architectural connection
ACM Transactions on Software Engineering and Methodology (TOSEM)
Property specification patterns for finite-state verification
FMSP '98 Proceedings of the second workshop on Formal methods in software practice
Adding more “DL” to IDL: towards more knowledgeable component inter-operability
Proceedings of the 21st international conference on Software engineering
Patterns in property specifications for finite-state verification
Proceedings of the 21st international conference on Software engineering
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Object-Oriented Software Construction
Object-Oriented Software Construction
Architecting families of software systems with process algebras
ACM Transactions on Software Engineering and Methodology (TOSEM)
Behavior Protocols for Software Components
IEEE Transactions on Software Engineering
Formal Specification and Prototyping of CORBA Systems
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
Techniques for Embedding Executable Specifications in Software Component Interfaces
ICCBSS '03 Proceedings of the Second International Conference on COTS-Based Software Systems
iContract - The Java(tm) Design by Contract(tm) Tool
TOOLS '98 Proceedings of the Technology of Object-Oriented Languages and Systems
Enforcing a lips Usage Policy for CORBA Components
EUROMICRO '03 Proceedings of the 29th Conference on EUROMICRO
Ensuring Compatible Interactions within Component-based Software Systems
APSEC '03 Proceedings of the Tenth Asia-Pacific Software Engineering Conference Software Engineering Conference
Java-MaC: A Run-Time Assurance Approach for Java Programs
Formal Methods in System Design
An Overview of the Runtime Verification Tool Java PathExplorer
Formal Methods in System Design
A Taxonomy and Catalog of Runtime Software-Fault Monitoring Tools
IEEE Transactions on Software Engineering
ICCBSS'05 Proceedings of the 4th international conference on COTS-Based Software Systems
Pattern-Based specification and validation of web services interaction properties
ICSOC'05 Proceedings of the Third international conference on Service-Oriented Computing
Hi-index | 0.01 |
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.