It is quite likely that the required interface of the collaboration is not provided exactly by the application but that some adaptation code is needed. This adaptation code belongs to a connector that provides the glue between the collaboration and the class library. It also makes sense to have composite collaborations. From the point of view of AP, connectors play the role of mapping a partial class structure to a concrete class structure. In other words, they fill in the structural information that was left out from the structure-shy program.
Connectors also provide functional detail that was left out from the collaboration.
A connector for a collaboration specifies how the collaboration differs from a concrete application of the collaboration. Connectors for collaborations are maps from participants to participants or from participants to classes with code that implements the required interface of the collaboration. The small graph is the structure of the collaboration and the large graph is the structure of the application. The embedding is of the form that one edge in the small graph is mapped into a set of paths in the large graph. A simple tool for Java programmers .