A Complete Set of Object Modeling Laws for Alloy

  • Rohit Gheyi
  • Tiago Massoni
  • Paulo Borba
  • Augusto Sampaio
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5902)

Abstract

Applying transformations to object-oriented systems usually affects source code and its associated models, involving complex maintenance efforts to keep those artifacts up to date. Most projects abandon design information in the form of models early in the life cycle, as their maintenance becomes extremely expensive. In this paper, we propose a complete catalog of object model laws (bidirectional semantics-preserving transformations) for Alloy, a formal object-oriented modeling language. We address relative completeness through a reduction process that transforms an arbitrary Alloy model into an equivalent model in a core language (normal form). We evaluate our completeness result using two distinct normal forms.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Massoni, T., Gheyi, R., Borba, P.: Formal model-driven program refactoring. In: Fiadeiro, J.L., Inverardi, P. (eds.) FASE 2008. LNCS, vol. 4961, pp. 362–376. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  2. 2.
    Gheyi, R.: A Refinement Theory for Alloy. PhD thesis, UFPE (2007)Google Scholar
  3. 3.
    Jackson, D.: Software Abstractions: Logic, Language and Analysis. MIT Press, Cambridge (2006)Google Scholar
  4. 4.
    Gheyi, R., Massoni, T., Borba, P.: Formally introducing alloy idioms. In: Brazilian Symposium on Formal Methods, Brazil, pp. 22–37 (2007)Google Scholar
  5. 5.
    Owre, S., et al.: PVS language reference (2007), http://pvs.csl.sri.com
  6. 6.
    Gheyi, R., Massoni, T., Borba, P.: A rigorous approach for proving model refactorings. In: 20th Automated Software Engineering Conference, pp. 372–375 (2005)Google Scholar
  7. 7.
    Gheyi, R., Massoni, T., Borba, P.: An abstract equivalence notion for object models. Electronic Notes in Theoretical Computer Science 130, 3–21 (2005)CrossRefGoogle Scholar
  8. 8.
    Hoare, C., et al.: Laws of programming. CACM 30(8), 672–686 (1987)MATHMathSciNetGoogle Scholar
  9. 9.
    Borba, P., et al.: Algebraic Reasoning for Object-Oriented Programming. Science of Computer Programming 52, 53–100 (2004)MATHCrossRefMathSciNetGoogle Scholar
  10. 10.
    Banerjee, J., et al.: Semantics and implementation of schema evolution in object-oriented databases. In: Int. Conf. on Management of Data, pp. 311–322 (1987)Google Scholar
  11. 11.
    Bergstein, P.: Object-preserving class transformations. In: OOPSLA, pp. 299–313 (1991)Google Scholar
  12. 12.
    Sunyé, G., et al.: Refactoring UML models. In: UML, pp. 134–148 (2001)Google Scholar
  13. 13.
    Gogolla, M., Richters, M.: Equivalence rules for UML class diagrams. In: UML, pp. 87–96 (1998)Google Scholar
  14. 14.
    Lano, K., Bicarregui, J.: Semantics and transformations for UML models. In: UML, pp. 97–106 (1998)Google Scholar
  15. 15.
    Evans, A.: Reasoning with UML class diagrams. In: 2nd IEEE Workshop on Industrial Strength Formal Specification Techniques, pp. 102–113 (1998)Google Scholar
  16. 16.
    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
  17. 17.
    Frias, M., Pombo, C., Baum, G., Aguirre, N., Maibaum, T.: Reasoning about static and dynamic properties in alloy: A purely relational approach. ACM Transactions on Software Engineering Methodology 14(4), 478–526 (2005)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Rohit Gheyi
    • 1
    • 2
  • Tiago Massoni
    • 1
    • 2
  • Paulo Borba
    • 1
    • 2
  • Augusto Sampaio
    • 1
    • 2
  1. 1.Department of Computing SystemsFederal University of Campina Grande 
  2. 2.Informatics CenterFederal University of Pernambuco 

Personalised recommendations