Verification of Component Behavioral Compatibility
D.C. Craig, and Zuberek, W.M.
Proc. 2-nd Int. Conf. on Dependability of Computer Systems (DepCoS-07),
Szklarska Poreba, Poland, 14-16 June 2007, pp.294-304.
In component-based systems, two components are behaviorally compatible if
all possible sequences of services requested by one component can be provided
by the other component. Verification of this compatibility is essential if
subtle software failures, which are difficult to detect and correct, are to
be eliminated. For verification of compatibility, the behavior of interacting
components, at their interfaces, is modeled by labeled Petri nets with labels
representing the requested and provided services. The paper discusses the
verification process for several classes of interface languages, with emphasis
on the algorithmic aspects of verification.
Software architecture, software components, component compatibility,
Petri nets, deadlock detection.
S.T. Albin, The art of software architecture: design methods and
techniques; Wiley 2003.
A.W. Brown, Large-scale component-based development; Prentice-Hall 2000.
A.W. Brown, "An overview of components and component-based development"; in
Advances in Computers, vol.54 - Trends in Software Engineering, pp.1-34,
Academic Press 2001.
D. Bugden, Software design (2 ed.); Addison-Wesley 2003.
F. Chu, X. Xie, "Deadlock analysis of Petri nets using siphons and
mathematical programming"; IEEE Trans. on Robotics and Automation,
vol.13, no.6, pp.793-804, 1997.
P. Clements, R. Kazman, M. Klein, Evaluating software architectures -
methods and case studies; Addison-Wesley 2002.
D.C. Craig, "Compatibility of software components - modeling and
verification"; Ph.D. Thesis, Department of Computer Science, Memorial
University, St.John's, Canada A1B 3X5, 2006.
D.C. Craig, W.M. Zuberek, "Compatibility of software
components - modeling and verification"; Proc. Int. Conf. on Dependability
of Computer Systems, Szklarska Poreba, Poland, pp.11-18, 2006.
D. Garlan, D.E. Perry, "Introduction to the special issue on software
architecture"; IEEE Trans. on Software Engineering, vol.21, no.4,
pp. 269-274, 1995.
M. Hack, "Analysis of production schemata by Petri nets";
Technical Report TR-94, Massachusetts Institute of Technology,
Cambridge, MA, USA, 1972.
J.E. Hopcroft, R. Motwani, J.D. Ullman, Introduction to automata theory,
languages, and computations (2 ed.); Addison Wesley 2001.
R. Janicki, P.E. Lauer, Specification and analysis of concurrent systems -
the COSY approach; Springer-Verlag 1992.
T. Murata, "Petri nets: properties, analysis, and applications",
Proceedings of the IEEE, vol.77, no.4, pp.541-580, 1989.
M. Shaw, D. Garlan, Software architecture: perspectives on an emerging
discipline; Prentice Hall 1996.
M. Silva, E. Teruel, J. Couvreur, "Linear algebra in and linear programming
techniques for the analysis of place/transition net systems"; in Lecture
on Petri nets - basic models (Lecture Notes in Computer Science 1491),
pp.309-373, Springer-Verlag 1998.
I. Sommerville, Software Engineering (6 ed.), Addison-Wesley 2001.
D.H. Steinberg, D.W. Palmer, Extreme software engineering: a hands-on
approach, Pearson/Prentice Hall 2004.
C. Szyperski (with D. Gruntz, S. Murer), Component software: beyond
object-oriented programming (2 ed.); Addison-Wesley 2002.
C. Szyperski, "Component software and the way ahead"; in Foundations of
component-based systems, G.T. Leavens, M. Sitaraman (eds.), pp.1-20,
Cambridge University Press 2000.
W.M Zuberek, "Timed Petri nets - definitions, properties
and applications"; Microelectronics and Reliability (Special Issue on Petri
Nets and Related Graph Models), vol.31, no.4, pp.627-644, 1991.
Available in pdf.