Checking software component behavior using behavior protocols and spin

Using software components is a modern approach for building extensible and reliable applications. To ensure high dependability, a component application should undergo verification, e.g. model checking, to prove it has certain properties. The implementation of an application is usually too complex to be verified at a formal level; therefore, a model being an abstraction of the implementation is to be used. Behavior protocols [11] are a platform for modeling of software component behavior. In this paper, we propose a method for translation behavior protocols to Promela [7], which is consequently used as the input for the Spin model checker [7]. Having the Promela code describing the component behavior, one can efficiently check for the behavior compatibility and LTL (Linear Temporal Logic) properties of cooperating software components.

[1]  Kenneth L. McMillan,et al.  Symbolic model checking: an approach to the state explosion problem , 1992 .

[2]  Jan Kofron,et al.  Behavior Protocols Verification: Fighting State Explosion , 2004 .

[3]  Frantisek Plasil,et al.  Behavior Protocols for Software Components , 2002, IEEE Trans. Software Eng..

[4]  Tomas Bures,et al.  Component Reliability Extensions for Fractal component model : Architecture / Design manual and User manual : Final deliverable ( T 0 + 18 ) , 2006 .

[5]  Matthew B. Dwyer,et al.  Bandera: extracting finite-state models from Java source code , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[6]  Ludovic Henrio,et al.  Verification of Distributed Hierarchical Components , 2006, Electron. Notes Theor. Comput. Sci..

[7]  Matthew B. Dwyer,et al.  Automated environment generation for software model checking , 2003, 18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings..

[8]  Frantisek Plasil,et al.  Specification and Generation of Environment for Model Checking of Software Components , 2007, Electron. Notes Theor. Comput. Sci..

[9]  Jirí Adámek,et al.  Component composition errors and update atomicity: static analysis , 2005, J. Softw. Maintenance Res. Pract..

[10]  J. Kofron Software Component Verification : On Translating Behavior Protocols to Promela ∗ Technical Report , 2006 .

[11]  Petr Hnetynka,et al.  Dynamic Reconfiguration and Access to Services in Hierarchical Component Models , 2006, CBSE.

[12]  Frantisek Plasil,et al.  Component composition errors and update atomicity: static analysis: Research Articles , 2005 .

[13]  Claudio Demartini,et al.  dSPIN: A Dynamic Extension of SPIN , 1999, SPIN.

[14]  Shin Nakajima,et al.  The SPIN Model Checker : Primer and Reference Manual , 2004 .

[15]  Romain Rouvoy,et al.  Towards a model-driven approach to build component-based adaptable middleware , 2004, Adaptive and Reflective Middleware.