Abstract
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.
This research is partly funded by the EU project FP7-231620 HATS (Highly Adaptable and Trustworthy Software using Formal Models) and the German Research Foundation (DFG) under the project MoveSpaci in the priority programme RS3 (Reliably Secure Software Systems).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Agha, G., Mason, I.A., Smith, S.F., Talcott, C.L.: A foundation for actor computation. J. Funct. Program. 7(1), 1–72 (1997)
Ammons, G., Bodík, R., Larus, J.R.: Mining specifications. In: POPL, pp. 4–16. ACM, New York (2002)
Baier, C., Katoen, J.: Principles of Model Checking, vol. 950. MIT Press (2008)
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)
Dürr, E., Katwijk, J.: VDM++, A Formal Specification Language for Object Oriented Designs. In: COMP EURO, pp. 214–219. IEEE (May 1992)
Hewitt, C., Bishop, P., Steiger, R.: A universal modular ACTOR formalism for artificial intelligence. In: IJCAI, pp. 235–245 (1973)
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)
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)
Koutavas, V., Wand, M.: Reasoning about class behavior. In: Informal Workshop Record of FOOL (2007)
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)
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)
Smith, G.: The Object-Z Specification Language. Kluwer Academic Publishers (2000)
Smith, S.F., Talcott, C.L.: Specification diagrams for actor systems. Higher-Order and Symbolic Computation 15(4), 301–348 (2002)
Vasconcelos, V.T.: Trace semantics for concurrent objects. MA Thesis, Keio University (March 1992)
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)
Welsch, Y., Poetzsch-Heffter, A.: Verifying backwards compatibility of object-oriented libraries using Boogie. In: FTfJP, Beijing, China (2012)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Poetzsch-Heffter, A., Feller, C., Kurnia, I.W., Welsch, Y. (2012). Model-Based Compatibility Checking of System Modifications. In: Margaria, T., Steffen, B. (eds) Leveraging Applications of Formal Methods, Verification and Validation. Technologies for Mastering Change. ISoLA 2012. Lecture Notes in Computer Science, vol 7609. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-34026-0_8
Download citation
DOI: https://doi.org/10.1007/978-3-642-34026-0_8
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-34025-3
Online ISBN: 978-3-642-34026-0
eBook Packages: Computer ScienceComputer Science (R0)