On the Semantics of Object-oriented Data Structures and Path Expressions

By Achim D. Brucker, Delphine Longuet, Frédéric Tuong, and Burkhart Wolff.

/is perceived as the de-facto standard for specifying object-oriented models in general and data models in particular. Since recently, all data types of / comprise two different exception elements: (``bottom” in semantics terminology) and (for ``non-existing element”). This has far-reaching consequences on both the logical and algebraic properties of expressions as well as the path expressions over object-oriented data structures, , class models.

In this paper, we present a formal semantics for object-oriented data models in which all data types and, thus, all class attributes and path expressions, support and . Based on this formal semantics, we present a set of test cases that can be used for evaluating the support of and in tools.

Keywords:
Object-oriented Data Structures, Path Expressions, Featherweight OCL, Null, Invalid, Formal Semantics

Extended by:
An extended version is available as:
A. D. Brucker, D. Longuet, F. Tuong, and B. Wolff, “On the semantics of object-oriented data structures and path expressions (extended version),” Laboratoire en Recherche en Informatique (LRI), Université Paris-Sud 11, France, 1565, 2013. Author copy: https://logicalhacking.com/publications/brucker.ea-path-expressions-2013-b/

Please cite this work as follows:
A. D. Brucker, D. Longuet, F. Tuong, and B. Wolff, “On the semantics of object-oriented data structures and path expressions,” in Proceedings of the MODELS 2013 OCL workshop (OCL 2013), 2013, vol. 1092, pp. 23–32. An extended version of this paper is available as LRI Technical Report 1565.. Author copy: https://logicalhacking.com/publications/brucker.ea-path-expressions-2013/

BibTeX
@InProceedings{ brucker.ea:path-expressions:2013,
  author     = {Achim D. Brucker and Delphine Longuet and Fr{\'e}d{\'e}ric
                Tuong and Burkhart Wolff},
  title      = {On the Semantics of Object-oriented Data Structures and Path
                Expressions},
  year       = {2013},
  booktitle  = {Proceedings of the MODELS 2013 OCL Workshop (OCL 2013)},
  location   = {Miami, USA},
  editor     = {Jordi Cabot and Martin Gogolla and Istv{\'a}n R{\'a}th and
                Edward D. Willink},
  publisher  = {CEUR-WS.org},
  series     = {CEUR Workshop Proceedings},
  volume     = {1092},
  ee         = {https://ceur-ws.org/Vol-1092},
  pages      = {23--32},
  abstract   = {\UML/\OCL is perceived as the de-facto standard for
                specifying object-oriented models in general and data models
                in particular. Since recently, all data types of \UML/\OCL
                comprise two different exception elements: \inlineocl{invalid}
                (``bottom'' in semantics terminology) and \inlineocl{null}
                (for ``non-existing element''). This has far-reaching
                consequences on both the logical and algebraic properties of
                \OCL expressions as well as the path expressions over
                object-oriented data structures, \ie, class models.
                
                In this paper, we present a formal semantics for
                object-oriented data models in which all data types and, thus,
                all class attributes and path expressions, support
                \inlineocl{invalid} and \inlineocl{null}. Based on this formal
                semantics, we present a set of \OCL test cases that can be
                used for evaluating the support of \inlineocl{null} and
                \inlineocl{invalid} in \OCL tools.},
  areas      = {formal methods, software},
  keywords   = {Object-oriented Data Structures, Path Expressions,
                Featherweight OCL, Null, Invalid, Formal Semantics},
  note       = {An extended version of this paper is available as LRI
                Technical Report 1565.. 
                Author copy: \url{https://logicalhacking.com/publications/brucker.ea-path-expressions-2013/}},
  extendedby = {brucker.ea:path-expressions:2013-b},
  pdf        = {https://logicalhacking.com/publications/brucker.ea-path-expressions-2013/brucker.ea-path-expressions-2013.pdf},
}