Refinement-Preserving Co-evolution

  • Thomas Ruhroth
  • Heike Wehrheim
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5885)


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.


State Schema Model Drive Development Lower Level Model Triple Graph Grammar Model Drive Development 
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.
    Briand, L.C., Labiche, Y., Yue, T.: Automated traceability analysis for UML model refinements. Inf. Softw. Technol. 51(2), 512–527 (2009)CrossRefGoogle Scholar
  2. 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. 3.
    de Roever, W.-P., Engelhardt, K.: Data Refinement: Model-Oriented Proof Methods and their Comparison. In: CUP (1998)Google Scholar
  4. 4.
    Derrick, J., Boiten, E.A.: Calculating upward and downward simulations of state-based specifications. Information & Software Technology 41(13), 917–923 (1999)CrossRefGoogle Scholar
  5. 5.
    Derrick, J., Boiten, E.A.: Refinement in Z and Object-Z. Springer, Heidelberg (2001)zbMATHGoogle Scholar
  6. 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. 7.
    Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison Wesley, Reading (2004)Google Scholar
  8. 8.
    Giese, H., Wagner, R.: From model transformation to incremental bidirectional model synchronization. Software and Systems Modeling 8(1) (2009)Google Scholar
  9. 9.
    Groves, L.: A formal approach to program evolution. In: Proc. Workshop on Evolutionary Formal Software Development EFSD 2002 (July 2002)Google Scholar
  10. 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. 11.
    Kosiuczenko, P.: Redesign of UML class diagrams: a formal approach. Software and Systems Modeling 8(2) (April 2009)Google Scholar
  12. 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. 13.
    Liskov, B., Wing, J.: A behavioural notion of subtyping. ACM Transactions on Programming Languages and Systems 16(6), 1811–1841 (1994)CrossRefGoogle Scholar
  14. 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. 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)CrossRefGoogle Scholar
  16. 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. 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. 18.
    Opdyke, W.F.: Refactoring Object-Oriented Frameworks. PhD thesis, University of Illinois at Urbana-Champaign (1992)Google Scholar
  19. 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. 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. 21.
    Roberts, D.B.: Practical Analysis For Refactoring. PhD thesis, University of Illinois at Urbana-Champaign (1999)Google Scholar
  22. 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)CrossRefGoogle Scholar
  23. 23.
    Smith, G.: The Object-Z Specification Language. Kluwer Academic Publishers, Dordrecht (2000)zbMATHGoogle Scholar
  24. 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. 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)CrossRefGoogle Scholar
  26. 26.
    Vadera, S.: Proof by analogy in mural. Formal Aspects of Computing 7 (1995)Google Scholar
  27. 27.
    Wehrheim, H.: Behavioral subtyping relations for active objects. Formal Methods in System Design 23(2), 143–170 (2003)zbMATHCrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Thomas Ruhroth
    • 1
  • Heike Wehrheim
    • 1
  1. 1.Institut für InformatikUniversität PaderbornPaderbornGermany

Personalised recommendations