Behavioral Compatibility Without State Explosion: Design and Verification of a Component-Based Elevator Control System

Most methods for designing component-based systems and verifying their compatibility address only the syntactic compatibility of components; no analysis of run-time behavior is made. Those methods that do address run-time behavior suffer from state-explosion: the exponential increase of the number of global states, and hence the complexity of the analysis, with the number of components. We present a method for designing component-based systems and verifying their behavioral compatibility and temporal behavior that is not susceptible to state explosion. Our method is mostly automatic, with little manual deduction required, and does not analyze a large system of connected components at once, but instead analyzes components two-at-a-time. This pair-wise approach enables the automatic verification of temporal behavior, using model-checking, in time polynomial in the number and size of all components. Our method checks that behavior of a pair of interacting components conforms to given properties, specified in temporal logic. Interaction of the components is captured in a product of their behavioral automata, which are provided as a part of each component's interface. We demonstrate the effectiveness of our method by applying it to the design and verification of a component-based elevator control algorithm.

[1]  E. Allen Emerson,et al.  Temporal and Modal Logic , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[2]  Paul C. Attie,et al.  Synthesis of concurrent systems with many similar processes , 1998, TOPL.

[3]  A. Prasad Sistla,et al.  Symmetry and model checking , 1993, Formal Methods Syst. Des..

[4]  Ivica Crnkovic,et al.  4th ICSE workshop on component-based software engineering: component certification and system prediction , 2001, ACM SIGSOFT Softw. Eng. Notes.

[5]  David H. Lorenz,et al.  Design-time assembly of runtime containment components , 2000, Proceedings. 34th International Conference on Technology of Object-Oriented Languages and Systems - TOOLS 34.

[6]  Paul C. Attie,et al.  Synthesis of Large Concurrent Programs via Pairwise Composition , 1999, CONCUR.

[7]  Fred Kröger,et al.  Temporal Logic of Programs , 1987, EATCS Monographs on Theoretical Computer Science.

[8]  T. Systa,et al.  MAS - an interactive synthesizer to support behavioral modeling in UML , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[9]  P. Neumann,et al.  Toward a Methodology for Designing Large Systems and Verifying Their Properties , 1974, GI Jahrestagung.

[10]  Seif Haridi,et al.  Distributed Algorithms , 1992, Lecture Notes in Computer Science.

[11]  Ivica Crnkovic,et al.  4/sup th/ ICSE workshop on component-based software engineering: component certification and system prediction , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[12]  Wim Vanderperren,et al.  Visual component composition using composition patterns , 2001, Proceedings 39th International Conference and Exhibition on Technology of Object-Oriented Languages and Systems. TOOLS 39.

[13]  George T. Heineman,et al.  Component-Based Software Engineering: Putting the Pieces Together , 2001 .

[14]  Amir Pnueli,et al.  Verification by Augmented Abstraction: The Automata-Theoretic View , 2001, J. Comput. Syst. Sci..

[15]  Nancy A. Lynch,et al.  An introduction to input/output automata , 1989 .

[16]  Shing-Chi Cheung,et al.  Incorporating verification of liveness properties in compositional reachability analysis , 1996 .

[17]  Edmund M. Clarke,et al.  Compositional model checking , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[18]  Thomas A. Henzinger,et al.  Interface automata , 2001, ESEC/FSE-9.

[19]  David H. Lorenz,et al.  Designing components versus objects: a transformational approach , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[20]  Wolfgang Thomas,et al.  Handbook of Theoretical Computer Science, Volume B: Formal Models and Semantics , 1990 .

[21]  Wim Vanderperren,et al.  A pattern based approach to separate tangled concerns in component based development , 2002 .

[22]  Thomas A. Henzinger,et al.  You Assume, We Guarantee: Methodology and Case Studies , 1998, CAV.

[23]  J Bosch ICSE 2002: PROCEEDINGS OF THE 24TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING , 2002, ICSE 2002.

[24]  Gerard J. Holzmann,et al.  The SPIN Model Checker , 2003 .

[25]  Martín Abadi,et al.  Composing Specifications , 1989, REX Workshop.

[26]  하수철,et al.  [서평]「Component Software」 - Beyond Object-Oriented Programming - , 2000 .

[27]  Amir Pnueli,et al.  Verification by Augmented Finitary Abstraction , 2000, Inf. Comput..

[28]  Hana Chockler,et al.  Automatic Verification of Fault-Tolerant Register Emulations , 2005, INFINITY.

[29]  Leslie Lamport Composition: A Way to Make Proofs Harder , 1997, COMPOS.

[30]  Thomas A. Henzinger,et al.  Hybrid Systems: Computation and Control , 1998, Lecture Notes in Computer Science.

[31]  Shing-Chi Cheung,et al.  Checking subsystem safety properties in compositional reachability analysis , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[32]  Wim Vanderperren,et al.  Separating concerns in a high-level component-based context , 2002, SC@ETAPS.

[33]  Somesh Jha,et al.  Exploiting symmetry in temporal logic model checking , 1993, Formal Methods Syst. Des..

[34]  F. Vaandrager Forward and Backward Simulations Part I : Untimed Systems , 1993 .

[35]  Wim Vanderperren,et al.  Towards a new component composition process , 2001, Proceedings. Eighth Annual IEEE International Conference and Workshop On the Engineering of Computer-Based Systems-ECBS 2001.

[36]  Erkki Mäkinen,et al.  MAS — an interactive synthesizer to support behavioral modelling in UML , 2001, ICSE.

[37]  Nancy A. Lynch,et al.  Forward and Backward Simulations: I. Untimed Systems , 1995, Inf. Comput..

[38]  Orna Grumberg,et al.  Model checking and modular verification , 1994, TOPL.

[39]  S.A. Hissam,et al.  Building systems from commercial components , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[40]  David H. Lorenz,et al.  ContextBox (extended abstract) (poster session): a visual builder for context beans , 2000, OOPSLA '00.