Model-Based Compatibility Checking of System Modifications

  • Arnd Poetzsch-Heffter
  • Christoph Feller
  • Ilham W. Kurnia
  • Yannick Welsch
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7609)


Maintenance and evolution of software systems require to modify or exchange system components. In many cases, we would like the new component versions to be backward compatible to the old ones, at least for the use in the given context. Whereas on the program level formal techniques to precisely define and verify backward compatibility are under development, the situation on the system level is less mature. A system component C has not only communication interfaces to other system components, but also to human users or the environment of the system. In such scenarios, compatibility checking of different versions of C needs more than program analysis:
  • The behavior of the users are not part of the program, but needs to be considered for the overall system behavior.

  • If the user interaction in the new version is different from the old one, the notion of compatibility needs clarification.

  • Analyzing the user interface code makes checking technically difficult.

We suggest to use behavioral software models for compatibility checking. In our approach, the underlying system, the old and new component, and the nondeterministic behavior of the environment are modeled with the concurrent object-oriented behavioral modeling language ABS. Abstracting from implementation details, the checking becomes simpler than on the program level.


Transition System Transition Relation Label Transition System Incoming Message Simulation Relation 
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.
    Agha, G., Mason, I.A., Smith, S.F., Talcott, C.L.: A foundation for actor computation. J. Funct. Program. 7(1), 1–72 (1997)MathSciNetzbMATHCrossRefGoogle Scholar
  2. 2.
    Ammons, G., Bodík, R., Larus, J.R.: Mining specifications. In: POPL, pp. 4–16. ACM, New York (2002)Google Scholar
  3. 3.
    Baier, C., Katoen, J.: Principles of Model Checking, vol. 950. MIT Press (2008)Google Scholar
  4. 4.
    Din, C.C., Dovland, J., Johnsen, E.B., Owe, O.: Observable behavior of distributed systems: Component reasoning for concurrent objects. Journal of Logic and Algebraic Programming 81(3), 227–256 (2012)MathSciNetzbMATHCrossRefGoogle Scholar
  5. 5.
    Dürr, E., Katwijk, J.: VDM++, A Formal Specification Language for Object Oriented Designs. In: COMP EURO, pp. 214–219. IEEE (May 1992)Google Scholar
  6. 6.
    Hewitt, C., Bishop, P., Steiger, R.: A universal modular ACTOR formalism for artificial intelligence. In: IJCAI, pp. 235–245 (1973)Google Scholar
  7. 7.
    Jeffrey, A., Rathke, J.: Java JR: Fully Abstract Trace Semantics for a Core Java Language. In: Sagiv, M. (ed.) ESOP 2005. LNCS, vol. 3444, pp. 423–438. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  8. 8.
    Johnsen, E.B., Hähnle, R., Schäfer, J., Schlatte, R., Steffen, M.: ABS: A Core Language for Abstract Behavioral Specification. In: Aichernig, B.K., de Boer, F.S., Bonsangue, M.M. (eds.) FMCO 2010. LNCS, vol. 6957, pp. 142–164. Springer, Heidelberg (2011)Google Scholar
  9. 9.
    Koutavas, V., Wand, M.: Reasoning about class behavior. In: Informal Workshop Record of FOOL (2007)Google Scholar
  10. 10.
    Miller, M.S., Tribble, E.D., Shapiro, J.S.: Concurrency Among Strangers. In: De Nicola, R., Sangiorgi, D. (eds.) TGC 2005. LNCS, vol. 3705, pp. 195–229. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  11. 11.
    Schäfer, J., Poetzsch-Heffter, A.: JCoBox: Generalizing Active Objects to Concurrent Components. In: D’Hondt, T. (ed.) ECOOP 2010. LNCS, vol. 6183, pp. 275–299. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  12. 12.
    Smith, G.: The Object-Z Specification Language. Kluwer Academic Publishers (2000)Google Scholar
  13. 13.
    Smith, S.F., Talcott, C.L.: Specification diagrams for actor systems. Higher-Order and Symbolic Computation 15(4), 301–348 (2002)zbMATHCrossRefGoogle Scholar
  14. 14.
    Vasconcelos, V.T.: Trace semantics for concurrent objects. MA Thesis, Keio University (March 1992)Google Scholar
  15. 15.
    Welsch, Y., Poetzsch-Heffter, A.: Full Abstraction at Package Boundaries of Object-Oriented Languages. In: Simao, A., Morgan, C. (eds.) SBMF 2011. LNCS, vol. 7021, pp. 28–43. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  16. 16.
    Welsch, Y., Poetzsch-Heffter, A.: Verifying backwards compatibility of object-oriented libraries using Boogie. In: FTfJP, Beijing, China (2012)Google Scholar
  17. 17.
    Welsch, Y., Schäfer, J.: Location Types for Safe Distributed Object-Oriented Programming. In: Bishop, J., Vallecillo, A. (eds.) TOOLS 2011. LNCS, vol. 6705, pp. 194–210. Springer, Heidelberg (2011)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Arnd Poetzsch-Heffter
    • 1
  • Christoph Feller
    • 1
  • Ilham W. Kurnia
    • 1
  • Yannick Welsch
    • 1
  1. 1.University of KaiserslauternGermany

Personalised recommendations