Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2318202.2318209acmotherconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
research-article

Verifying backwards compatibility of object-oriented libraries using Boogie

Published: 12 June 2012 Publication History

Abstract

Proving that a library is backwards compatible to an older version can be challenging, as the internal representation of the libraries might completely differ and the clients of the library are usually unknown. This is especially difficult in the setting of object-oriented programs with complex heaps and callbacks. Mechanical verification is a key success factor to make such proofs practicable.
In this paper, we present a technique to verify the backwards compatibility or equivalence of class libraries in the setting of unknown program contexts. For a number of textbook examples we have formulated the verification conditions as input to the Boogie program verification system and validated the approach.

References

[1]
Ábrahám, E., Bonsangue, M. M., Boer, F. S. de, Steffen, M. "Object Connectivity and Full Abstraction for a Concurrent Calculus of Classes". In: ICTAC 2004. Ed. by Liu, Z., Araki, K. Vol. 3407. LNCS. Springer, Heidelberg, 2004, pp. 37--51.
[2]
Banerjee, A., Naumann, D. A. "Ownership confinement ensures representation independence for object-oriented programs". In: Journal of the ACM 52.6 (2005), pp. 894--960.
[3]
Banerjee, A., Naumann, D. A. "State Based Ownership, Reentrance, and Encapsulation". In: ECOOP. Ed. by Black, A. P. Vol. 3586. LNCS. Springer, 2005, pp. 387--411.
[4]
Barnett, M., DeLine, R., Fähndrich, M., Leino, K. R. M., Schulte, W. "Verification of Object-Oriented Programs with Invariants". In: Journal of Object Technology 3.6 (2004), pp. 27--56.
[5]
Barnett, M., Leino, K. R. M., Schulte, W. "The Spec# Programming System: An Overview". In: vol. 3362. LNCS. Springer-Verlag, 2005, pp. 49--69.
[6]
Barnett, M., Chang, B.-Y. E., DeLine, R., Jacobs, B., Leino, K. R. M. "Boogie: A Modular Reusable Verifier for Object-Oriented Programs". In: FMCO 2005. Vol. 4111. LNCS. Springer-Verlag, 2006, pp. 364--387.
[7]
Beckert, B., Hähnle, R., Schmitt, P. H. Verification of Object-Oriented Software: The KeY Approach. Vol. 4334. LNCS. Berlin: Springer-Verlag, 2007.
[8]
Benton, N., Koutavas, V. A Mechanized Bisimulation for the Nu-Calculus. 2008.
[9]
Cook, W. R. "A Denotational Semantics of Inheritance". PhD thesis. Brown University, 1989.
[10]
Damiani, F., Poetzsch-Heffter, A., Welsch, Y. "A Type System for Checking Specialization of Packages in Object-Oriented Programming". In: SAC (OOPS). 2012.
[11]
Dig, D., Johnson, R. "How do APIs evolve? A story of refactoring". In: Journal of Software Maintenance and Evolution (2006), pp. 83--107.
[12]
Drossopoulou, S., Francalanza, A., Müller, P., Summers, A. "A Unified Framework for Verification Techniques for Object Invariants". In: ECOOP. LNCS. 2008, pp. 412--437.
[13]
Eclipse PDE API Tools. http://www.eclipse.org/pde/pde-api-tools/.
[14]
Filipovic, I., O'Hearn, P. W., Rinetzky, N., Yang, H. "Abstraction for concurrent objects". In: Theor. Comput. Sci 411.51--52 (2010), pp. 4379--4398.
[15]
Filliâtre, J.-C., Marché, C. "The Why/Krakatoa/Caduceus Platform for Deductive Program Verification". In: CAV. Ed. by Damm, W., Hermanns, H. Vol. 4590. LNCS. Springer, 2007, pp. 173--177.
[16]
Geilmann, K., Poetzsch-Heffter, A. "Modular Checking of Confinement for Object-Oriented Components using Abstract Interpretation". In: International Workshop on Aliasing, Confinement and Ownership. 2011.
[17]
Godlin, B., Strichman, O. "Regression verification". In: DAC. ACM, 2009, pp. 466--471.
[18]
Gotsman, A., Yang, H. "Liveness-Preserving Atomicity Abstraction". In: ICALP (2). Ed. by Aceto, L., Henzinger, M., Sgall, J. Vol. 6756. LNCS. Springer, 2011, pp. 453--465.
[19]
Hennessy, M., Milner, R. "On Observing Nondeterminism and Concurrency." In: ICALP. 1980, pp. 299--309.
[20]
Igarashi, A., Pierce, B. C., Wadler, P. "Featherweight Java: a minimal core calculus for Java and GJ". In: ACM Transactions on Programming Languages and Systems 23.3 (2001), pp. 396--450.
[21]
Jacobs, B., Smans, J., Piessens, F. "A Quick Tour of the VeriFast Program Verifier". In: APLAS. Ed. by Ueda, K. Vol. 6461. LNCS. Springer, 2010, pp. 304--311.
[22]
Jeffrey, A., Rathke, J. "Java Jr.: Fully Abstract Trace Semantics for a Core Java Language". In: ESOP. 2005, pp. 423--438.
[23]
Koutavas, V., Levy, P. B., Sumii, E. "From Applicative to Environmental Bisimulation". In: Electr. Notes Theor. Comput. Sci 276 (2011).
[24]
Koutavas, V., Wand, M. "Bisimulations for Untyped Imperative Objects". In: ESOP 2006. Ed. by Sestoft, P. Vol. 3924. LNCS. Springer, Heidelberg, 2006, pp. 146--161.
[25]
Koutavas, V., Wand, M. "Reasoning About Class Behavior". In: Informal Workshop Record of FOOL. 2007.
[26]
Leino, K. R. M. "Dafny: An Automatic Program Verifier for Functional Correctness". In: LPAR-16. LNCS. Springer-Verlag, 2010.
[27]
Leino, K. R. M. This is Boogie 2. Manuscript KRML 178. http://research.microsoft.com/~leino/papers.html. 2008.
[28]
Leino, K. R. M., Müller, P., Smans, J. "Verification of Concurrent Programs with Chalice". In: FOSAD. Ed. by Aldini, A., Barthe, G., Gorrieri, R. Vol. 5705. LNCS. Springer, 2009, pp. 195--222.
[29]
Meyer, B. Object-Oriented Software Construction. Second. Prentice-Hall, 1997.
[30]
Müller, P., Poetzsch-Heffter, A., Leavens, G. T. "Modular invariants for layered object structures". In: Sci. Comput. Program. 62.3 (2006), pp. 253--286.
[31]
Rivières, J. des. Evolving Java-based APIs. http://wiki.eclipse.org/Evolving_Java-based_APIs.
[32]
Steffen, M. "Object-Connectivity and Observability for Class-Based, Object-Oriented Languages". Habilitation thesis. Technische Faktultät der Christian-Albrechts-Universität zu Kiel, July 2006.
[33]
Sumii, E., Pierce, B. C. "A Bisimulation for Dynamic Sealing". In: Theoretical Computer Science 375 (2007).
[34]
Sumii, E., Pierce, B. C. "A Bisimulation for Type Abstraction and Recursion". In: Journal of the ACM 54 (2007).
[35]
Welsch, Y., Poetzsch-Heffter, A. "Full Abstraction at Package Boundaries of Object-Oriented Languages". In: SBMF 2011. LNCS. Springer, 2011, pp. 28--43.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
FTfJP '12: Proceedings of the 14th Workshop on Formal Techniques for Java-like Programs
June 2012
53 pages
ISBN:9781450312721
DOI:10.1145/2318202
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

  • AITO: Assoc Internationale por les Technologies Objects

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 12 June 2012

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. backward compatibility
  2. class libraries
  3. contextual equivalence
  4. full abstraction
  5. trace semantics

Qualifiers

  • Research-article

Funding Sources

Conference

ECOOP'12
Sponsor:
  • AITO

Acceptance Rates

Overall Acceptance Rate 51 of 75 submissions, 68%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)8
  • Downloads (Last 6 weeks)0
Reflects downloads up to 21 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2019)Formal Verification of Evolutionary ChangesManaged Software Evolution10.1007/978-3-030-13499-0_11(309-332)Online publication date: 27-Jun-2019
  • (2018)Relational Program Reasoning Using Compiler IRJournal of Automated Reasoning10.1007/s10817-017-9433-560:3(337-363)Online publication date: 1-Mar-2018
  • (2018)Automating regression verification of pointer programs by predicate abstractionFormal Methods in System Design10.1007/s10703-017-0293-852:3(229-259)Online publication date: 1-Jun-2018
  • (2018)A Technology for Optimizing the Process of Maintaining Software Up-to-DateSoftware Technologies10.1007/978-3-319-93641-3_2(28-48)Online publication date: 8-Jun-2018
  • (2016)Relational Program Reasoning Using Compiler IRVerified Software. Theories, Tools, and Experiments10.1007/978-3-319-48869-1_12(149-165)Online publication date: 8-Nov-2016
  • (2016)Researching of the Problem of Solution Automation of Software Systems CompatibilityEurope and MENA Cooperation Advances in Information and Communication Technologies10.1007/978-3-319-46568-5_16(159-166)Online publication date: 23-Sep-2016
  • (2015)Regression verification for Java using a secure information flow calculusProceedings of the 17th Workshop on Formal Techniques for Java-like Programs10.1145/2786536.2786544(1-6)Online publication date: 7-Jul-2015
  • (2015)Regression Verification for Programmable Logic Controller SoftwareFormal Methods and Software Engineering10.1007/978-3-319-25423-4_15(234-251)Online publication date: 1-Dec-2015
  • (2014)Automating regression verificationProceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering10.1145/2642937.2642987(349-360)Online publication date: 15-Sep-2014
  • (2012)Model-Based compatibility checking of system modificationsProceedings of the 5th international conference on Leveraging Applications of Formal Methods, Verification and Validation: technologies for mastering change - Volume Part I10.1007/978-3-642-34026-0_8(97-111)Online publication date: 15-Oct-2012

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media