Experience-Based Model Refinement

  • Didier Buchs
  • Steve Hostettler
  • Alexis Marechal
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6968)


The resilience of a software system can be guaranteed, among other techniques, by model checking. In that setting, it consists in exploring every execution of the system to detect violations of resilience properties. One approach is to automatically transform the program into a model. To harness the system complexity and the state space explosion, designers usually abstract details of the studied system. However, abstracting too many details may dramatically impact the validity of the model checking. This includes details about the execution environment on which resilience properties are often based. This article sketches an iterative methodology to verify and refine the transformation. We introduce the concept of witness programs to reveal a set of behaviors that the transformation must preserve.


Model Check Model Transformation Execution Environment Race Condition Instance Variable 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Di Marzo Serugendo, G., Fitzgerald, J., Romanovsky, A., Guelfi, N.: A metadata-based architectural model for dynamically resilient systems. In: Proceedings of the 2007 ACM Symposium on Applied Computing, SAC 2007, pp. 566–572. ACM, New York (2007)CrossRefGoogle Scholar
  2. 2.
    Clarke, E.M., Emerson, E.A.: Design And Synthesis Of Synchronization Skeletons Using Branching Time Temporal Logic. In: Grumberg, O., Veith, H. (eds.) 25 Years of Model Checking. LNCS, vol. 5000, pp. 196–215. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  3. 3.
    Schmidt, D.C.: Model-driven engineering. IEEE Computer 39(2), 25–31 (2006)CrossRefGoogle Scholar
  4. 4.
    Kraemer, F.A., Herrmann, P.: Automated encapsulation of uml activities for incremental development and verification. In: Schürr, A., Selic, B. (eds.) MODELS 2009. LNCS, vol. 5795, pp. 571–585. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  5. 5.
    IBM: Rational Software Architect for WebSphere Software (2010), (visited in June 2010)
  6. 6.
    Visser, W., Havelund, K., Brat, G., Park, S., Lerda, F.: Model checking programs. Automated Software Engineering 10, 203–232 (2003), doi:10.1023/A:1022920129859CrossRefGoogle Scholar
  7. 7.
    Holzmann, G.J., Joshi, R., Groce, A.: Model driven code checking. Automated Software Engineering. 15, 283–297 (2008)CrossRefzbMATHGoogle Scholar
  8. 8.
    Di Marzo Serugendo, G., Guelfi, N., Romanovsky, A., Zorzo, A.F.: Formal development and validation of java dependable distributed systems. In: Proceedings of the 5th International Conference on Engineering of Complex Computer Systems, ICECCS 1999, pp. 98–108. IEEE Computer Society, Washington, DC, USA (1999)Google Scholar
  9. 9.
    Holzmann, G.: Spin model checker, the: primer and reference manual, 1st edn. Addison-Wesley Professional, Reading (2003)Google Scholar
  10. 10.
    Klebanov, V.: Verify This,

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Didier Buchs
    • 1
  • Steve Hostettler
    • 1
  • Alexis Marechal
    • 1
  1. 1.Université de Genève, Centre Universitaire d’InformatiqueCarougeSwitzerland

Personalised recommendations