ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Transactions on Programming Languages and Systems (TOPLAS)
Component software: beyond object-oriented programming
Component software: beyond object-oriented programming
Concurrency: state models & Java programs
Concurrency: state models & Java programs
Contract Soundness for object-oriented languages
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Linear Control System Analysis and Design: Conventional and Modern
Linear Control System Analysis and Design: Conventional and Modern
Behavior Protocols for Software Components
IEEE Transactions on Software Engineering
Fine-grained Contract Negotiation for Hierarchical Software Components
EUROMICRO '05 Proceedings of the 31st EUROMICRO Conference on Software Engineering and Advanced Applications
Proofs of Networks of Processes
IEEE Transactions on Software Engineering
A contracting system for hierarchical components
CBSE'05 Proceedings of the 8th international conference on Component-Based Software Engineering
Contract-based web service composition framework with correctness guarantees
ISAS'05 Proceedings of the Second international conference on Service Availability
Using Assertions to Enhance the Correctness of Kmelia Components and their Assemblies
Electronic Notes in Theoretical Computer Science (ENTCS)
Component service promotion: contracts, mechanisms and safety
FACS'10 Proceedings of the 7th international conference on Formal Aspects of Component Software
Hi-index | 0.00 |
Abadi and Lamport established a general theorem for composing specifications [1]. Based on an assume-guarantee principle, it enables one to prove the specification of a composite system from the ones of its components. But the general application of this theorem to software composition is not that straightforward because the resulting abstract specification of the composite depends upon the hidden guarantees of its subcomponents. In this paper, we investigate how this result can be exploited without blurring responsibilities between the different participants. Our contributions leverage an existing contracting framework for hierarchical software components [7], in which contracts are first-class objects during configuration and run times. This framework already associates specifications and responsibilities to software components, within the traditional horizontal form of composition. We show here how the vertical one can be made operational using the theorem as a sound formal basis. The resulting composite contracts make possible not only to detect violations, but also to determine and exploit precisely responsibilities upon them, related to both forms of composition.