Abstract
We introduce the concept of protocols. A protocol is a formal specification of potentially complex reusable pattern of inter-object behavior. To make it reusable, a protocol is defined independently of any specific object classes or instances. Even though they are defined independently of individual classes, we demonstrate how, using the notion of two-way interfaces called ports, protocols can be formally bound to structures of collaborating objects. This gives us a framework in which it is possible to formally verify if a particular combination of objects can indeed achieve the desired inter-object behavior. A further advantage is that programs with protocol specifications are more understandable and more maintainable than traditional object oriented programs since the required high level behavior is explicit. We describe both protocols and ports using the base concepts of the recent Unified Modeling Language (UML) standard.

This publication has 5 references indexed in Scilit: