OCLFO: first-order expressive OCL constraints for efficient integrity checking
Rights accessRestricted access - publisher's policy (embargoed until 2019-08-24)
OCL is the standard language for defining constraints in UML class diagrams. Unfortunately, as we show in this paper, full OCL is so expressive that it is not possible to check general OCL constraints efficiently. In particular, we show that checking general OCL constraints is not only not polynomial, but not even semidecidable. To overcome this situation, we identify OCLFO , a fragment of OCL which is expressively equivalent to relational algebra (RA). By equivalent we mean that any OCLFO constraint can be checked through a RA query (which guarantees that OCLFO checking is efficient, i.e., polynomial), and any RA query encoding some constraint can be written as an OCLFO constraint (which guarantees expressiveness of OCLFO ). In this paper we define the syntax of OCLFO , we concisely determine its semantics through set theory, and we prove its equivalence to RA. Additionally, we identify the core of this language, i.e., a minimal subset of OCLFO equivalent to RA.
CitationFranconi, E., Mosca, A., Oriol, X., Rull, G., Teniente, E. OCLFO: first-order expressive OCL constraints for efficient integrity checking. "Software and systems modeling", 24 Agost 2018.