Abstract
System specifications are often structured as collections of scenarios and use-cases that describe desired and forbidden sequences of events. A recently proposed behavioral programming approach, which evolved from the visual language of live sequence charts (LSCs), calls for coding software modules in alignment with such scenarios. We present a methodology and a supporting model-checking tool for verifying behavioral Java programs, without having to first translate them into a specific input language for the model checker. Our method facilitates early discovery of conflicting or under-specified scenarios, which can often be resolved by adding new scenarios rather than by changing existing code. Also, counterexamples provided by the tool are themselves event sequences that can serve directly for refinements and corrections. Our tool reduces the size of the execution state-space using an abstraction that focuses on behaviorally interesting states and treats transitions between them as atomic.
References (33)
- REFERENCES
- Apache Commons. The Javaflow component. commons.apache.org/sandbox/javaflow/.
- C. Baier and J.-P. Katoen. Principles of Model Checking. The MIT Press, 2008.
- T. Ball and S. Rajamani. Automatically validating temporal safety properties of interfaces. Model Checking Software, pages 102-122, 2001.
- J. Burch, E. Clarke, K. McMillan, D. Dill, and L. Hwang. Symbolic model checking: 10 20 states and beyond. Information and Computation, 98(2):142-170, 1992.
- E. Clarke, O. Grumberg, S. Jha, Y. Lu, and H. Veith. Counterexample-guided abstraction refinement. In Proc. 12th Int. Conf. on Computer Aided Verification (CAV), LNCS 1855, pages 154-169, 2000.
- P. Combes, D. Harel, and H. Kugler. Modeling and verification of a telecommunication application using live sequence charts and the play-engine tool. Software and System Modeling, 7(2):157-175, 2008.
- W. Damm and D. Harel. LSCs: Breathing life into message sequence charts. J. on Formal Methods in System Design, 19(1):45-80, 2001.
- W. Damm and B. Westphal. Live and let die: LSC based verification of UML models. Sci. Comput. Program., 55(1-3):117 -159, 2005.
- E. W. Dijkstra. Hierarchical ordering of sequential processes. Acta Inf., 1:115-138, 1971.
- N. Eitan, M. Gordon, D. Harel, A. Marron, and G. Weiss. On visualization and comprehension of scenario-based programs. In Proc. 19th IEEE Int. Conf. on Program Comprehension (ICPC), pages 189-192, 2011.
- J. P. Ernits. Memory arbiter synthesis and verification for a radar memory interface card. Nord. J. Comput., 12(2):68-88, 2005.
- M. Glusman and S. Katz. Model checking conformance with scenario-based specifications. In Proc. 15th Int. Conf. on Computer Aided Verification (CAV), LNCS 2725, pages 328-340, 2003.
- O. Grumberg and D. E. Long. Model checking and modular verification. ACM Trans. Program. Lang. Syst., 16:843-871, 1994.
- D. Harel, H. Kugler, R. Marelly, and A. Pnueli. Smart play-out of behavioral requirements. In Proc. 4th Int. Conf. on Formal Methods in Computer-Aided Design (FMCAD), LNCS 2517, pages 378-398, 2002.
- D. Harel, H. Kugler, and G. Weiss. Some methodological observations resulting from experience using LSCs and the play-in/play-out approach. In Scenarios: Models, Transformations and Tools, pages 26-42, 2003.
- D. Harel and R. Marelly. Come, Let's Play: Scenario-Based Programming Using LSCs and the Play-Engine. Springer, 2003.
- D. Harel, A. Marron, and G. Weiss. The BPJ package. www.cs.bgu.ac.il/~geraw.
- D. Harel, A. Marron, and G. Weiss. Programming coordinated scenarios in Java. In Proc. 24th European Conf. on Object-Oriented Programming (ECOOP), LNCS 6183, pages 250-274, 2010.
- D. Harel and I. Segall. Planned and traversable play-out: A flexible method for executing scenario-based programs. In Proc. 13th Int. Conf. on Tools and Algorithms for the Construction and Analysis of Systems (TACAS), LNCS 4424, pages 485-499, 2007.
- T. Henzinger, R. Jhala, and R. Majumdar. Counterexample-guided control. Automata, Languages and Programming, pages 188-188, 2003.
- G. Holzmann. The Spin Model Checker: Primer and Reference Manual. Addison-Wesley, 2003. spinroot.com/spin/whatispin.html.
- B. Jobstmann, A. Griesmayer, and R. Bloem. Program repair as a game. In Proc. 17th Int. Conf. on Computer Aided Verification (CAV), LNCS 3576, pages 226-238, 2005.
- N. Kam, D. Harel, H. Kugler, R. Marelly, A. Pnueli, E. J. A. Hubbard, and M. J. Stern. Formal modeling of C. elegans development: A scenario-based approach. In Proc. 1st Int. Workshop on Computational Methods in Systems Biology (CMSB), LNCS 2602, pages 4-20, 2003.
- E. Katz. Verifying Scenario-Based Aspect Specifications. PhD thesis, Technion -Israel Institute of Technology, Computer Science Department, 2006.
- E. Katz and S. Katz. Verifying scenario-based aspect specifications. In Proc. Int. Symp. of Formal Methods Europe (FM), LNCS 3582, pages 432-447, 2005.
- H. Kugler, D. Harel, A. Pnueli, Y. Lu, and Y. Bontemps. Temporal logic for scenario-based specifications. In Proc. 11th Int. Conf. on Tools and Algorithms for the Construction and Analysis of Systems (TACAS), LNCS 3440, pages 445-460, 2005.
- H. Kugler, C. Plock, and A. Roberts. Synthesizing biological theories. In Proc. 23rd Int. Conf. on Computer Aided Verification (CAV), LNCS 6806, pages 579-584, 2011.
- D. J. Lehmann, A. Pnueli, and J. Stavi. Impartiality, justice and fairness: The ethics of concurrent termination. In Proc. 8th Int. Colloq. on Automata, Languages, and Programming (ICALP), LNCS 115, pages 264-277, 1981.
- A. Pnueli, Y. Sa'ar, and L. D. Zuck. Jtlv: A framework for developing verification algorithms. In Proc. 22nd Int. Conf. on Computer Aided Verification (CAV), LNCS 6174, pages 171-174, 2010. jtlv.ysaar.net/.
- J. Queille and J. Sifakis. Fairness and related properties in transition systems -a temporal logic to deal with fairness. Acta Inf., 19:195-220, 1983.
- W. Visser, K. Havelund, G. Brat, S. Park, and F. Lerda. Model checking programs. Automated Software Engineering, 10:203-232, 2003.
- G. Weiss. Optimal scheduler for a memory card. Technical report, IST-2001-35304 AMETIST Project, Weizmann Institute of Science, 2002.