Composition of Model Programs

  • Margus Veanes
  • Colin Campbell
  • Wolfram Schulte
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4574)


Model programs are a useful formalism for software testing and design analysis. They are used in industrial tools, such as SpecExplorer, as a compact, expressive and precise way to specify complex behavior. One of the challenges with model programs has been the difficulty to separate contract modeling from scenario modeling. It has not been clear how to separate those concerns in a clean way. In this paper we introduce composition of model programs, motivate why it is useful to be able to compose model programs, and what composition of model programs formally means.


  1. 1.
    Spec Explorer. released (January 2005),
  2. 2.
    Börger, E., Stärk, R.: Abstract State Machines: A Method for High-Level System Design and Analysis. Springer (2003)CrossRefMATHGoogle Scholar
  3. 3.
    Brinksma, E., Tretmans, J.: Testing Transition Systems: An Annotated Bibliography. In: Summer School MOVEP’2k – Modelling and Verification of Parallel Processes. LNCS, vol. 2067, pp. 187–193. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  4. 4.
    Campbell, C., Grieskamp, W., Nachmanson, L., Schulte, W., Tillmann, N., Veanes, M.: Testing concurrent object-oriented systems with Spec Explorer (extended abstract). In: Fitzgerald, J.A., Hayes, I.J., Tarlecki, A. (eds.) FM 2005. LNCS, vol. 3582, pp. 542–547. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  5. 5.
    de Alfaro, L.: Game models for open systems. In: Dershowitz, N. (ed.) Verification: Theory and Practice. LNCS, vol. 2772, pp. 269–289. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  6. 6.
    El-Fakih, K., Petrenko, A., Yevtushenko, N.: Fsm test translation through context. In: Uyar, M.Ü., Duale, A.Y., Fecko, M.A. (eds.) TestCom 2006. LNCS, vol. 3964, Springer, Heidelberg (2006)CrossRefGoogle Scholar
  7. 7.
    Frantzen, L., Tretmans, J., Willemse, T.: A symbolic framework for model-based testing. In: Havelund, K., Núñez, M., Roşu, G., Wolff, B. (eds.) Formal Approaches to Software Testing and Runtime Verification. LNCS, vol. 4262, pp. 40–54. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  8. 8.
    Grieskamp, W., Kicillof, N., Tillmann, N.: Action machines: a framework for encoding and composing partial behaviors. International Journal on Software and Knowledge Engineering 16(5), 705–726 (2006)CrossRefGoogle Scholar
  9. 9.
    Gurevich, Y.: Evolving Algebras 1993: Lipari Guide. In: Börger, E. (ed.) Specification and Validation Methods, pp. 9–36. Oxford University Press, Oxford (1995)Google Scholar
  10. 10.
    Hopcroft, J.E., Ullman, J.D.: Introduction to Automata Theory, Languages, and Computation. Addison-Wesley, Reading (1979)MATHGoogle Scholar
  11. 11.
    Jacky, J., Veanes, M., Campbell, C., Schulte, W.: Model-based Software Testing and Analysis with C#. Cambridge University Press (Submitted to publisher) (2007)Google Scholar
  12. 12.
    Keller, R.: Formal verification of parallel programs. Communications of the ACM, pp. 371–384 (July 1976)Google Scholar
  13. 13.
    Lee, D., Yannakakis, M.: Principles and methods of testing finite state machines – a survey. Proceedings of the IEEE 84(8), 1090–1123 (1996)CrossRefGoogle Scholar
  14. 14.
    Lynch, N., Tuttle, M.: Hierarchical correctness proofs for distributed algorithms. In: Proceedings of the sixth annual ACM Symposium on Principles of distributed computing, pp. 137–151. ACM Press, New York (1987)CrossRefGoogle Scholar
  15. 15.
    Tretmans, J., Brinksma, E.: TorX: Automated model based testing. In: 1st European Conference on Model Driven Software Engineering, Nuremberg, Germany, pp. 31–43 (December 2003)Google Scholar
  16. 16.
    Veanes, M., Campbell, C., Grieskamp, W., Nachmanson, L., Schulte, W., Tillmann, N.: Model-based testing of object-oriented reactive systems with Spec Explorer, 2005, Tech. Rep. MSR-TR-2005-59, Microsoft Research (to appear as a book chapter in Formal Methods and Testing)Google Scholar
  17. 17.
    Veanes, M., Campbell, C., Schulte, W., Tillmann, N.: Online testing with model programs. In: ESEC/FSE-13. Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering, pp. 273–282. ACM, New York (2005)CrossRefGoogle Scholar

Copyright information

© IFIP International Federation for Information Processing 2007

Authors and Affiliations

  • Margus Veanes
    • 1
  • Colin Campbell
    • 2
  • Wolfram Schulte
    • 1
  1. 1.Microsoft Research, Redmond, WAUSA
  2. 2.Modeled Computation LLC, Seattle, WAUSA

Personalised recommendations