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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Briand, L.C., Labiche, Y., Yue, T.: Automated traceability analysis for UML model refinements. Inf. Softw. Technol. 51(2), 512–527 (2009)
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)
de Roever, W.-P., Engelhardt, K.: Data Refinement: Model-Oriented Proof Methods and their Comparison. In: CUP (1998)
Derrick, J., Boiten, E.A.: Calculating upward and downward simulations of state-based specifications. Information & Software Technology 41(13), 917–923 (1999)
Derrick, J., Boiten, E.A.: Refinement in Z and Object-Z. Springer, Heidelberg (2001)
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)
Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison Wesley, Reading (2004)
Giese, H., Wagner, R.: From model transformation to incremental bidirectional model synchronization. Software and Systems Modeling 8(1) (2009)
Groves, L.: A formal approach to program evolution. In: Proc. Workshop on Evolutionary Formal Software Development EFSD 2002 (July 2002)
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)
Kosiuczenko, P.: Redesign of UML class diagrams: a formal approach. Software and Systems Modeling 8(2) (April 2009)
Krishna, A., Ghose, A.K., Vilkomir, S.A.: Co-evolution of complementary formal and informal requirements. In: IWPSE 2004, pp. 159–164 (2004)
Liskov, B., Wing, J.: A behavioural notion of subtyping. ACM Transactions on Programming Languages and Systems 16(6), 1811–1841 (1994)
McComb, T.: Refactoring Object-Z Specifications. In: Wermelinger, M., Margaria-Steffen, T. (eds.) FASE 2004. LNCS, vol. 2984, pp. 69–83. Springer, Heidelberg (2004)
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)
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)
Olsen, T., Grundy, J.: Supporting traceability and inconsistency management between software artefacts. In: International Conference on Software Engineering and Applications, IASTED Press (2002)
Opdyke, W.F.: Refactoring Object-Oriented Frameworks. PhD thesis, University of Illinois at Urbana-Champaign (1992)
Poppleton, M., Groves, L.: Software evolution with refinement and retrenchment. In: RCS 2003: 2nd Annual Workshop on Refinement of Critical Systems (June 2003)
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)
Roberts, D.B.: Practical Analysis For Refactoring. PhD thesis, University of Illinois at Urbana-Champaign (1999)
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)
Smith, G.: The Object-Z Specification Language. Kluwer Academic Publishers, Dordrecht (2000)
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)
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)
Vadera, S.: Proof by analogy in mural. Formal Aspects of Computing 7 (1995)
Wehrheim, H.: Behavioral subtyping relations for active objects. Formal Methods in System Design 23(2), 143–170 (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)