Skip to main content

Refinement-Preserving Co-evolution

  • Conference paper
Book cover Formal Methods and Software Engineering (ICFEM 2009)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 5885))

Included in the following conference series:

Abstract

Software changes during its lifetime. Likewise, specifications change during their design time, e.g. by removing, adding or changing operations. In a refinement-based approach to software design, we moreover do not deal with a single but with a chain of specifications, related via refinement. Changes thus need to be consistently made to all specifications in the chain so as to keep the refinement structure.

In this paper, we describe such co-evolutions of specifications in the context of the formal method Object-Z. More specifically, given a particular evolution of a specification we show how to construct a corresponding evolution for its refinements. We furthermore formally prove our co-evolutions to maintain refinement, thus giving rise to a notion of refinement-preserving co-evolution.

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 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.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. Briand, L.C., Labiche, Y., Yue, T.: Automated traceability analysis for UML model refinements. Inf. Softw. Technol. 51(2), 512–527 (2009)

    Article  Google Scholar 

  2. Cazzola, W., Pini, S., Ghoneim, A., Saake, G.: Co-evolving application code and design models by exploiting meta-data. In: SAC, pp. 1275–1279. ACM, New York (2007)

    Google Scholar 

  3. de Roever, W.-P., Engelhardt, K.: Data Refinement: Model-Oriented Proof Methods and their Comparison. In: CUP (1998)

    Google Scholar 

  4. Derrick, J., Boiten, E.A.: Calculating upward and downward simulations of state-based specifications. Information & Software Technology 41(13), 917–923 (1999)

    Article  Google Scholar 

  5. Derrick, J., Boiten, E.A.: Refinement in Z and Object-Z. Springer, Heidelberg (2001)

    MATH  Google Scholar 

  6. Engels, G., Heckel, R., Malte Küster, J., Groenewegen, L.: Consistency-preserving model evolution through transformations. In: Jézéquel, J.-M., Hussmann, H., Cook, S. (eds.) UML 2002. LNCS, vol. 2460, pp. 212–226. Springer, Heidelberg (2002)

    Google Scholar 

  7. Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison Wesley, Reading (2004)

    Google Scholar 

  8. Giese, H., Wagner, R.: From model transformation to incremental bidirectional model synchronization. Software and Systems Modeling 8(1) (2009)

    Google Scholar 

  9. Groves, L.: A formal approach to program evolution. In: Proc. Workshop on Evolutionary Formal Software Development EFSD 2002 (July 2002)

    Google Scholar 

  10. Henkel, J., Diwan, A.: Catchup!: capturing and replaying refactorings to support API evolution. In: ICSE 2005: Proceedings of the 27th international conference on Software engineering, pp. 274–283. ACM, New York (2005)

    Google Scholar 

  11. Kosiuczenko, P.: Redesign of UML class diagrams: a formal approach. Software and Systems Modeling 8(2) (April 2009)

    Google Scholar 

  12. Krishna, A., Ghose, A.K., Vilkomir, S.A.: Co-evolution of complementary formal and informal requirements. In: IWPSE 2004, pp. 159–164 (2004)

    Google Scholar 

  13. Liskov, B., Wing, J.: A behavioural notion of subtyping. ACM Transactions on Programming Languages and Systems 16(6), 1811–1841 (1994)

    Article  Google Scholar 

  14. McComb, T.: Refactoring Object-Z Specifications. In: Wermelinger, M., Margaria-Steffen, T. (eds.) FASE 2004. LNCS, vol. 2984, pp. 69–83. Springer, Heidelberg (2004)

    Google Scholar 

  15. McComb, T., Smith, G.: Compositional class refinement in Object-Z. In: Misra, J., Nipkow, T., Sekerinski, E. (eds.) FM 2006. LNCS, vol. 4085, pp. 205–220. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  16. Mens, T., Van Der Straeten, R., DHondt, M.: Detecting and resolving model inconsistencies using transformation dependency analysis. In: Model Driven Engineering Languages and Systems (2006)

    Google Scholar 

  17. Olsen, T., Grundy, J.: Supporting traceability and inconsistency management between software artefacts. In: International Conference on Software Engineering and Applications, IASTED Press (2002)

    Google Scholar 

  18. Opdyke, W.F.: Refactoring Object-Oriented Frameworks. PhD thesis, University of Illinois at Urbana-Champaign (1992)

    Google Scholar 

  19. Poppleton, M., Groves, L.: Software evolution with refinement and retrenchment. In: RCS 2003: 2nd Annual Workshop on Refinement of Critical Systems (June 2003)

    Google Scholar 

  20. Poppleton, M., Groves, L.: Formal perspectives on software evolution: from refinement to retrenchment. In: Software Evolution and Feedback: Theory and Practice, pp. 313–338 (2006)

    Google Scholar 

  21. Roberts, D.B.: Practical Analysis For Refactoring. PhD thesis, University of Illinois at Urbana-Champaign (1999)

    Google Scholar 

  22. Ruhroth, T., Wehrheim, H.: Refactoring object-oriented specifications with data and processes. In: Bonsangue, M.M., Johnsen, E.B. (eds.) FMOODS 2007. LNCS, vol. 4468, pp. 236–251. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  23. Smith, G.: The Object-Z Specification Language. Kluwer Academic Publishers, Dordrecht (2000)

    MATH  Google Scholar 

  24. Stepney, S., Polack, F., Toyn, I.: A Z Patterns Catalogue I: Specification and refactorings, v0.1. Technical Report YCS-2003-349, University of York (2003)

    Google Scholar 

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

    Article  Google Scholar 

  26. Vadera, S.: Proof by analogy in mural. Formal Aspects of Computing 7 (1995)

    Google Scholar 

  27. Wehrheim, H.: Behavioral subtyping relations for active objects. Formal Methods in System Design 23(2), 143–170 (2003)

    Article  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2009 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Ruhroth, T., Wehrheim, H. (2009). Refinement-Preserving Co-evolution. In: Breitman, K., Cavalcanti, A. (eds) Formal Methods and Software Engineering. ICFEM 2009. Lecture Notes in Computer Science, vol 5885. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-10373-5_32

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-10373-5_32

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-10372-8

  • Online ISBN: 978-3-642-10373-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics