This paper presents a minimal and complete set of structural refactoring rules for the Object-Z specification language that allow for the derivation of arbitrary object-oriented architectures. The rules are equivalence preserving and work in concert with existing class refinement theory, so that any design derived using the rule set can be shown to be equivalent to, or a refinement of, the original specification.


System Class Class Union Inheritance Hierarchy Inheritance Relationship Fresh Class 


  1. 1.
    Java 2 Platform Standard Edition 5.0, http://java.sun.com/j2se/1.5.0/guide/
  2. 2.
    Borba, P., Sampaio, A., Cavalcanti, A., Cornelio, M.: Algebraic Reasoning for Object-Oriented Programming. Sci. Comput. Program. 52(1-3), 53–100 (2004)MATHCrossRefMathSciNetGoogle Scholar
  3. 3.
    Derrick, J., Boiten, E.: Refinement in Z and Object-Z: Foundations and Advanced Applications. FACIT Series. Springer, Heidelberg (2001)MATHGoogle Scholar
  4. 4.
    Estler, H.-C., Ruhroth, T., Wehrheim, H.: Modelchecking correctness of refactorings – some experiments. ENTCS 187, 3–17 (2007)Google Scholar
  5. 5.
    Gheyi, R., Borba, P.: Refactoring Alloy specifications. ENTCS 95, 227–243 (2004)Google Scholar
  6. 6.
    Jackson, D.: Alloy: a lightweight object modelling notation. Software Engineering and Methodology 11(2), 256–290 (2002)CrossRefGoogle Scholar
  7. 7.
    Lano, K.: Formal Object-oriented Development. Springer, Heidelberg (1995)Google Scholar
  8. 8.
    Lano, K., Goldsack, S.: Refinement of Distributed Object Systems. In: Najm, E., Stefani, J.-B. (eds.) Proc. of Workshop on Formal Methods for Open Object-based Distributed Systems, pp. 99–114. Chapman and Hall, Boca Raton (1996)Google Scholar
  9. 9.
    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
  10. 10.
    McComb, T.: Formal Derivation of Object-Oriented Designs. PhD thesis, The University of Queensland (2007)Google Scholar
  11. 11.
    McComb, T., Smith, G.: Architectural Design in Object-Z. In: Strooper, P. (ed.) ASWEC 2004: Australian Software Engineering Conference, pp. 77–86. IEEE Computer Society Press, Los Alamitos (2004)Google Scholar
  12. 12.
    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
  13. 13.
    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
  14. 14.
    Smith, G.: The Object-Z Specification Language. Kluwer Academic Publishers, Dordrecht (2000)MATHGoogle Scholar
  15. 15.
    Stroustrup, B.: The C + +  Programming Language, 3rd edn. Addison-Wesley Longman Publishing Co., Inc, Boston (1997)Google Scholar
  16. 16.
    Woodcock, J.C.P., Davies, J.: Using Z: Specification, Proof and Refinement. Prentice Hall International Series in Computer Science (1996)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Tim McComb
    • 1
  • Graeme Smith
    • 2
  1. 1.ARC Centre of Excellence in Bioinformatics Institute for Molecular BioscienceThe University of QueenslandAustralia
  2. 2.School of Information Technology and Electrical EngineeringThe University of QueenslandAustralia

Personalised recommendations