Towards Faithful Model Extraction Based on Contexts

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


Behaviour models facilitate the analysis of software systems using model-checking tools to detect errors and generate counterexamples. Such models can be generated from existing implementations using a model extraction process. This process should guarantee that an extracted model is a faithful representation of the system, so that analysis results may be trusted. This paper discusses the formal foundations of our model extraction process based on contexts. Contexts are abstractions of concrete states of a system, providing valuable information about dependencies between actions. Models are generated by a tool called LTS Extractor and can be refined to improve correctness by augmenting context information. This refinement process eliminates some false negatives and is property-preserving. Completeness of the models depends on the coverage provided by a set of traces describing behaviours of the system. We discuss the faithfulness of our models and results of two case studies.


Model Check Context Information Abstract State Label Transition System Concrete State 
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.


  1. 1.
    Ball, T., Rajamani, S.K.: The SLAM Project: Debugging System Software via Static Analysis. In: POPL, Portland, OR, USA, January 2002, pp. 1–3 (2002)Google Scholar
  2. 2.
    Chaki, S., Clarke, E.M., Ouaknine, J., et al.: State/Event-Based Software Model Checking. In: Boiten, E.A., Derrick, J., Smith, G.P. (eds.) IFM 2004. LNCS, vol. 2999, pp. 128–147. Springer, Heidelberg (2004)Google Scholar
  3. 3.
    Chaki, S., Clarke, E.M., Groce, A., et al.: Modular Verification of Software Components in C. IEEE TSE 30(6), 388–402 (2004)Google Scholar
  4. 4.
    Clarke, E.M., Wing, J.M.: Formal Methods: State of the Art and Future Directions. ACM Computing Surveys 28(4), 626–643 (1996)CrossRefGoogle Scholar
  5. 5.
    Clarke, E.M., Grumberg, O., Peled, D.A.: Model Checking. The MIT Press, Cambridge (1999)Google Scholar
  6. 6.
    Cook, J.E., Wolf, A.L.: Discovering Models of Software Processes from Event-Based Data. ACM ToSEM 7(3), 215–249 (1998)CrossRefGoogle Scholar
  7. 7.
    Corbett, J.C., Dwyer, M.B., Hatcliff, J., et al.: Bandera: Extracting Finite-State Models from Java Source Code. In: ICSE, Limerick, Ireland, June 2000, pp. 439–448 (2000)Google Scholar
  8. 8.
    Duarte, L.M., Kramer, J., Uchitel, S.: Model Extraction Using Context Information. In: Nierstrasz, O., Whittle, J., Harel, D., Reggio, G. (eds.) MoDELS 2006. LNCS, vol. 4199, pp. 380–394. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  9. 9.
    Duarte, L.M.: Behaviour Model Extraction using Context Information. Ph.D. thesis, Imperial College London, University of London (November 2007)Google Scholar
  10. 10.
    Garcia-Molina, H.: Elections in a Distributed Computing System. IEEE Trans. on Computers C-31(1), 48–59 (1982)CrossRefGoogle Scholar
  11. 11.
    Giannakopoulou, D., Magee, J.: Fluent Model Checking for Event-Based Systems. In: ESEC/FSE, Helsinki, Finland, September 2003, pp. 257–266 (2003)Google Scholar
  12. 12.
    Graf, S., Saidi, H.: Construction of Abstract State Graphs with PVS. In: Grumberg, O. (ed.) CAV 1997. LNCS, vol. 1254, pp. 72–83. Springer, Heidelberg (1997)Google Scholar
  13. 13.
    Havelund, K., Pressburguer, T.: Model Checking Java Programs Using Java PathFinder. STTT 2(4), 366–381 (2000)MATHGoogle Scholar
  14. 14.
    Henzinger, T.A., Jahla, R., Majumdar, R., et al.: Lazy Abstraction. In: POPL, Portland, OR, USA, January 2002, pp. 58–70 (2002)Google Scholar
  15. 15.
    Holzmann, G.J., Smith, M.H.: A Practical Method for Verifying Event-Driven Software. In: ICSE, Los Angeles, USA, May 1999, pp. 597–607 (1999)Google Scholar
  16. 16.
    Jackson, D., Damon, C.A.: Software Analysis: A Roadmap. In: ICSE, Limerick, Ireland, June 2000, pp. 133–145 (2000)Google Scholar
  17. 17.
    Leuschel, M., Massart, T., Currie, A.: How to Make FDR Spin: LTL Model Checking of CSP by Refinement. In: Oliveira, J.N., Zave, P. (eds.) FME 2001. LNCS, vol. 2021, pp. 99–118. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  18. 18.
    Ludewig, J.: Models in Software Engineering - An Introduction. SoSyM 2(1), 5–14 (2003)CrossRefGoogle Scholar
  19. 19.
    Magee, J., Kramer, J.: Concurrency: State Models and Java Programming, 2nd edn. Wiley and Sons, Chichester (2006)Google Scholar
  20. 20.
    Manna, Z., Pnueli, A.: The Temporal Logic of Reactive and Concurrent Systems. Springer, New York (1992)Google Scholar
  21. 21.
    Mariani, L.: Behavior Capture and Test: Dynamic Analysis of Component-Based Systems. Ph.D. thesis, Università degli Studi di Milano Bicocca (2005)Google Scholar
  22. 22.
    Uchitel, S., Kramer, J., Magee, J.: Behaviour Model Elaboration Using Partial Labelled Transition Systems. In: ESEC/FSE, Helsinki, Finland, September 2003, pp. 19–27 (2003)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

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

Personalised recommendations