  Adaptation of software components is an important issue in Component Based
Software Engineering (CBSE). Building a system from reusable or
Commercial-Off-The-Shelf (COTS) components introduces a set of problems, mainly
related to compatibility and communication aspects. On one hand, components may
have incompatible interaction behavior. This might require to restrict the
system's behavior to a subset of safe behaviors. On the other hand, it might be
necessary to enhance the current communication protocol. This might require to
augment the system's behavior to introduce more sophisticated interactions
among components. We address these problems by enhancing our architectural
approach which allows for detection and recovery of incompatible interactions
by synthesizing a suitable coordinator. Taking into account the specification
of the system to be assembled and the specification of the protocol
enhancements, our tool (called SYNTHESIS) automatically derives, in a
compositional way, the glue code for the set of components. The synthesized
glue code implements a software coordinator which avoids incompatible
interactions and provides a protocol-enhanced version of the composed system.
By using an assume-guarantee technique, we are able to check, in a
compositional way, if the protocol enhancement is consistent with respect to
the restrictions applied to assure the specified safe behaviors.

Software Engineering