Skip to main content

Abstract

An intrinsic property of real world software is that it needs to evolve. The software is continuously changed during the initial development phase, and existing software may need modifications to meet new requirements. To facilitate the development and maintenance of programs, it is an advantage to have programming environments which allow the developer to alternate between programming and verification tasks in a flexible manner and which ensures correctness of the final program with respect to specified behavioral properties.

This paper proposes a formal framework for the flexible development of object-oriented programs, which supports an interleaving of programming and verification steps. The motivation for this framework is to avoid imposing restrictions on the programming steps to facilitate the verification steps, but rather to track unresolved proof obligations and specified properties of a program which evolves. A proof environment connects unresolved proof obligations and specified properties by means of a soundness invariant which is maintained by both programming and verification steps. Once the set of unresolved obligations is empty, the invariant ensures the soundness of the overall program verification.

Partly funded by the EU project FP7-231620 HATS: Highly Adaptable and Trustworthy Software using Formal Models ( http://www.hats-project.eu ).

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Clarke, D., Diakov, N., Hähnle, R., Johnsen, E.B., Schaefer, I., Schäfer, J., Schlatte, R., Wong, P.Y.H.: Modeling Spatial and Temporal Variability with the HATS Abstract Behavioral Modeling Language. In: Bernardo, M., Issarny, V. (eds.) SFM 2011. LNCS, vol. 6659, pp. 417–457. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  2. Damiani, F., Dovland, J., Johnsen, E.B., Schaefer, I.: Verifying traits: A proof system for fine-grained reuse. In: Proc. 13th Workshop on Formal Techniques for Java-like Programs (FTfJP 2011), 8:1–8:6. ACM (2011)

    Google Scholar 

  3. Dhara, K.K., Leavens, G.T.: Forcing behavioural subtyping through specification inheritance. In: 18th Conf. on Software Engineering. IEEE Press (1996)

    Google Scholar 

  4. Dovland, J., Johnsen, E.B., Owe, O., Steffen, M.: Lazy behavioral subtyping. Journal of Logic and Algebraic Programming 79(7), 578–607 (2010)

    Article  MathSciNet  MATH  Google Scholar 

  5. Dovland, J., Johnsen, E.B., Owe, O., Steffen, M.: Incremental reasoning with lazy behavioral subtyping for multiple inheritance. Science of Computer Programming 76(10), 915–941 (2011)

    Article  MATH  Google Scholar 

  6. Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley (August 1999)

    Google Scholar 

  7. Igarashi, A., Pierce, B.C., Wadler, P.: Featherweight Java: a minimal core calculus for Java and GJ. ACM TOPLAS 23(3), 396–450 (2001)

    Article  Google Scholar 

  8. Liskov, B.H., Wing, J.M.: A behavioral notion of subtyping. ACM TOPLAS 16(6), 1811–1841 (1994)

    Article  Google Scholar 

  9. Marković, S., Baar, T.: Refactoring ocl annotated uml class diagrams. Software and Systems Modeling 7, 25–47 (2008)

    Google Scholar 

  10. Massoni, T., Gheyi, R., Borba, P.: Synchronizing Model and Program Refactoring. In: Davies, J. (ed.) SBMF 2010. LNCS, vol. 6527, pp. 96–111. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  11. Mens, T., Tourwé, T.: A survey of software refactoring. IEEE Transactions on Software Engineering 30(2), 126–139 (2004)

    Article  Google Scholar 

  12. Owicki, S., Gries, D.: An axiomatic proof technique for parallel programs I. Acta Informatica 6(4), 319–340 (1976)

    Article  MathSciNet  MATH  Google Scholar 

  13. Pierik, C., de Boer, F.S.: A proof outline logic for object-oriented programming. Theoretical Computer Science 343(3), 413–442 (2005)

    Article  MathSciNet  MATH  Google Scholar 

  14. Schaefer, I., Bettini, L., Bono, V., Damiani, F., Tanzarella, N.: Delta-Oriented Programming of Software Product Lines. In: Bosch, J., Lee, J. (eds.) SPLC 2010. LNCS, vol. 6287, pp. 77–91. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  15. Soundarajan, N., Fridella, S.: Inheritance: From code reuse to reasoning reuse. In: 5th Intl. Conf. on Software Reuse (ICSR5), pp. 206–215. IEEE Press (1998)

    Google Scholar 

  16. Ubayashi, N., Piao, J., Shinotsuka, S., Tamai, T.: Contract-based verification for aspect-oriented refactoring. In: Proc. Intl. Conf. on Software Testing, Verification, and Validation, pp. 180–189. IEEE Press (2008)

    Google Scholar 

  17. Van Der Straeten, R., Jonckers, V., Mens, T.: A formal approach to model refactoring and model refinement. Software and Sys. Modeling 6, 139–162 (2007)

    Article  Google Scholar 

  18. Wehrheim, H.: Slicing techniques for verification re-use. Theoretical Computer Science 343(3), 509–528 (2005)

    Article  MathSciNet  MATH  Google Scholar 

  19. Yin, X., Knight, J., Weimer, W.: Exploiting refactoring in formal verification. In: Proc. Dependable Systems and Networks (DSN 2009). IEEE Press (2009)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Dovland, J., Johnsen, E.B., Yu, I.C. (2012). Tracking Behavioral Constraints during Object-Oriented Software Evolution. 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_19

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-34026-0_19

  • 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)

Publish with us

Policies and ethics