Compatibility of software components - modeling and verification

D.C. Craig, and Zuberek, W.M.

Proc. Int. Conf. on Dependability of Computer Systems, Szklarska Poreba, Poland, 25-27 May 2006, pp.11-18.


Component-based software engineering (CBSE) has been emerging as a promising approach to the development of large-scale software architectures in which software components with well-defined interfaces can be quickly assembled into complex software systems. However, assembled components must be compatible in the sense that any sequence of operations requested by one of the interacting components must be provided by the other component(s). Component incompatibility may result in subtle software failures which are difficult to detect and correct. A formal model of component interaction is proposed by representing component behaviors by labeled Petri nets. These net models are designed in such a way that component incompatibility is manifested by deadlocks in the net model of interacting components. Reachability-based as well as structural methods of deadlock detection are discussed. A simple example illustrating the proposed approach is provided.


Software architecture, software components, component compatibility, Petri nets, deadlock detection.

Available in pdf.