On the progress of communication between two finite state machines
Information and Control
A formal protocol conversion method
SIGCOMM '86 Proceedings of the ACM SIGCOMM conference on Communications architectures & protocols
Module reuse by interface adaptation
Software—Practice & Experience
Hermes: a language for distributed computing
Hermes: a language for distributed computing
Regular types for active objects
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
A type system for prototyping languages
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automated synthesis of interface adapters for reusable classes
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ABC++: concurrency by inheritance in C++
IBM Systems Journal
Formalizing architectural connection
ICSE '94 Proceedings of the 16th international conference on Software engineering
On Communicating Finite-State Machines
Journal of the ACM (JACM)
IEEE Transactions on Software Engineering
Object Oriented Interoperability
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
The specification of process synchronization by path expressions
Operating Systems, Proceedings of an International Symposium
Signature matching: a tool for using software libraries
ACM Transactions on Software Engineering and Methodology (TOSEM)
Object-oriented state machines: subclassing, composition, delegation, and genericity
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Subject-oriented composition rules
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Architectural mismatch or why it's hard to build systems out of existing parts
Proceedings of the 17th international conference on Software engineering
Requirements for a layered software architecture supporting cooperative multi-user interaction
Proceedings of the 18th international conference on Software engineering
Using object-oriented typing to support architectural design in the C2 style
SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
Reuse of off-the-shelf components in C2-style architectures
ICSE '97 Proceedings of the 19th international conference on Software engineering
A formal basis for architectural connection
ACM Transactions on Software Engineering and Methodology (TOSEM)
Representing and querying reusable object frameworks
Proceedings of the 1997 symposium on Software reusability
Reuse of off-the-shelf components in C2-style architectures
Proceedings of the 1997 symposium on Software reusability
Specification matching of software components
ACM Transactions on Software Engineering and Methodology (TOSEM)
Software Reuse by Specialization of Generic Procedures through Views
IEEE Transactions on Software Engineering
Executable connectors: towards reusable design elements
ESEC '97/FSE-5 Proceedings of the 6th European SOFTWARE ENGINEERING conference held jointly with the 5th ACM SIGSOFT international symposium on Foundations of software engineering
A language and environment for architecture-based software development and evolution
Proceedings of the 21st international conference on Software engineering
A catalog of techniques for resolving packaging mismatch
SSR '99 Proceedings of the 1999 symposium on Software reusability
Towards a taxonomy of software connectors
Proceedings of the 22nd international conference on Software engineering
Implicit context: easing software evolution and reuse
SIGSOFT '00/FSE-8 Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications
Avoiding Packaging Mismatch with Flexible Packaging
IEEE Transactions on Software Engineering - Special issue on 1999 international conference on software engineering
Interface-Based Protocol Specification of Open Systems using PSL
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Connector Modeling Method for Component Extraction
APSEC '99 Proceedings of the Sixth Asia Pacific Software Engineering Conference
Framework Composition: Problems, Causes and Solutions
TOOLS '97 Proceedings of the Tools-23: Technology of Object-Oriented Languages and Systems
Bounding Component Behavior via Protocols
TOOLS '99 Proceedings of the Technology of Object-Oriented Languages and Systems
Object-Oriented Behaviour Modelling or Real-Time Design
WORDS '97 Proceedings of the 3rd Workshop on Object-Oriented Real-Time Dependable Systems - (WORDS '97)
A Case Study in Architectural Modelling: The AEGIS System
IWSSD '96 Proceedings of the 8th International Workshop on Software Specification and Design
Concern-driven design for a specification language supporting component-based software engineerin
IWSSD '96 Proceedings of the 8th International Workshop on Software Specification and Design
COMPASS: Tool-Supported Adaptation of Interactions
Proceedings of the 19th IEEE international conference on Automated software engineering
DISCOA: architectural adaptations for security and QoS
SESS '05 Proceedings of the 2005 workshop on Software engineering for secure systems—building trustworthy applications
Trust-By-Contract: Modelling, Analysing And Predicting Behaviour Of Software Architectures
Journal of Integrated Design & Process Science
Collaborative approach for modeling and performing mobile software process components
CTS'05 Proceedings of the 2005 international conference on Collaborative technologies and systems
An architecture for implementing application interoperation with heterogeneous systems
DAIS'05 Proceedings of the 5th IFIP WG 6.1 international conference on Distributed Applications and Interoperable Systems
Improving composition support with lightweight metadata-based extensions of component models
SC'05 Proceedings of the 4th international conference on Software Composition
Towards an engineering approach to component adaptation
Proceedings of the 2004 international conference on Architecting Systems with Trustworthy Components
Hi-index | 0.00 |
In this paper we show how to augment object-oriented application interfaces with enhanced specifications that include sequencing constraints called protocols. Protocols make explicit the relationship between messages (methods) supported by the application. These relationships are usually only given implicitly, either in the code or in textual comments. We define notions of interface compatibility based upon protocols and show how compatibility can be checked, discovering a class of errors that cannot be discovered via the type system alone. We then define software adaptors that can be used to bridge the difference between object-oriented applications that have functionally compatible but type incompatible interfaces. We discuss what it means for an adaptor to be well-formed. Leveraging the information provided by protocols, we show how adaptors can be automatically generated from a high-level description, called an interface mapping.