Model Extraction Using Context Information

  • Lucio Mauro Duarte
  • Jeff Kramer
  • Sebastian Uchitel
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4199)


This work describes a new approach for behaviour model extraction which combines static and dynamic information. We exploit context information as a way of merging these types of information. Contexts are defined by evaluated control predicates and values of attributes. They create a nested structure that can facilitate the extraction of causal relations between system actions. We show how context information can guide the process of constructing LTS models that are good approximations of the actual behaviour of the systems they describe. These models can be used for automated analysis and property verification. Augmentation of the values of attributes recorded in contexts produces further refined models and leads towards correct models. Completeness of the extracted models depends on the coverage achieved by samples of executions. Our approach is partially automated by a tool called LTSE. Results of one of our case studies are presented and discussed.


Model Check Context Information Label Transition System Symbolic Execution Model Extraction 
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.
    Aho, A., Sethi, R., Ullman, J.: Compilers: Principles, Techniques and Tools. Addison-Wesley, Reading (1986)Google Scholar
  2. 2.
    Ball, T., Rajamani, S.K.: The SLAM Project: Debugging System Software via Static Analysis. In: POPL 2002, Portland, OR, USA, pp. 1–3 (2002)Google Scholar
  3. 3.
    Boroday, S., Petrenko, A., Singh, J., et al.: Dynamic Analysis of Java Applications for Multithreaded Antipatterns. In: WODA 2005, pp. 1–7 (2005)Google Scholar
  4. 4.
    Clarke, E.M., Grumberg, O., Peled, D.A.: Model Checking. The MIT Press, Cambridge (1999)Google Scholar
  5. 5.
    Cook, J.E., Wolf, A.L.: Discovering Models of Software Processes from Event-Based Data. ACM TOSEM 7(3), 215–249 (1998)CrossRefGoogle Scholar
  6. 6.
    Corbett, J.C., Dwyer, M.B., Hatcliff, J., Laubach, S., Pasareanu, C.S., Robby, Zheng, H.: Bandera: Extracting Finite-State Models from Java Source Code. In: ICSE 2000, Limerick, Ireland, pp. 439–448 (2000)Google Scholar
  7. 7.
    Cordy, J.R., Dean, T.R., Malton, A.J., Schneider, K.A.: Source Transformation in Software Engineering Using the TXL Transformation System. Journal of Information and Software Technology, Special Issue on Source Code Analysis and Manipulation 44(13), 827–837 (2002)Google Scholar
  8. 8.
    Ernst, M.D.: Static and Dynamic Analysis: Synergy and Duality. In: WODA 2003, Portland, OR, USA, pp. 24–27 (2003)Google Scholar
  9. 9.
    Godefroid, P.: Software Model Checking: The Verisoft Approach. Bell Labs Technical Memorandum ITD-03-44189G, Bell Laboratories (August 2003)Google Scholar
  10. 10.
    Havelund, K., Pressburguer, T.: Model Checking Java Programs Using Java PathFinder. Intl. Journal on Software Tools for Technology Transfer 2(4), 366–381 (2000)MATHCrossRefGoogle Scholar
  11. 11.
    Henzinger, T.A., Jahla, R., Majumdar, R., et al.: Lazy Abstraction. In: POPL 2002, pp. 58–70 (2002)Google Scholar
  12. 12.
    Holzmann, G.J.: From Code to Models. In: ACSD 2001, Newcastle upon Tyne, UK, pp. 3–10 (2001)Google Scholar
  13. 13.
    Holzmann, G.J., Smith, M.H.: A Practical Method for Verifying Event-Driven Software. In: ICSE 1999, Los Angeles, USA, pp. 597–607 (1999)Google Scholar
  14. 14.
    Jackson, D., Rinard, M.: Software Analysis: A Roadmap. In: ICSE 2000, Limerick, Ireland, pp. 133–145 (2000)Google Scholar
  15. 15.
    King, J.C.: Symbolic Execution and Program Testing. CACM 19(7), 385–394 (1976)MATHGoogle Scholar
  16. 16.
    Magee, J., Kramer, J.: Concurrency: State Models and Java Programs. Wiley, Chichester (1999)MATHGoogle Scholar
  17. 17.
    Mariani, L.: Behavior Capture and Test: Dynamic Analysis of Component-Based Systems. Phd, Università degli Studi di Milano Bicocca (2005)Google Scholar
  18. 18.
    Milner, R.: An algebraic definition of simulation between programs. In: IJCAI, pp. 481–489 (1971)Google Scholar
  19. 19.
    Nimmer, J.W., Ernst, M.D.: Automatic Generation of Program Specifications. In: ISSTA 2002, Rome, Italy, pp. 232–242 (2002)Google Scholar
  20. 20.
    Robschink, T., Snelting, G.: Efficient Path Conditions in Dependence Graphs. In: ICSE 2002, Orlando, Florida, USA, pp. 478–488 (2002)Google Scholar
  21. 21.
    Visser, W., Havelund, K., Brat, G., Park, S., Lerda, F.: Model Checking Programs. Automated Software Engineering Journal 10(2), 203–232 (2003)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Lucio Mauro Duarte
    • 1
  • Jeff Kramer
    • 1
  • Sebastian Uchitel
    • 1
  1. 1.Department of ComputingImperial College LondonLondonUK

Personalised recommendations