Vés al contingut

Object Constraint Language

De la Viquipèdia, l'enciclopèdia lliure
Aquesta és una versió anterior d'aquesta pàgina, de data 00:47, 6 nov 2018 amb l'última edició de Antoliram (discussió | contribucions). Pot tenir inexactituds o contingut no apropiat no present en la versió actual.

L'Object Constraint Language (OCL) és un llenguatge que permet definir expressions formals vinculades a elements de models UML. Aquestes expressions són bàsicament restriccions, regles de derivació i condicions.[1] OCL fou desenvolupat inicialment el 1995 per IBM i posteriorment es va integrar amb l'UML. OMG el va adoptar com estàndard el 1997.[2]

Elements principals del llenguatge

A continuació s'introdueixen mitjançant exemples els elements principals de l'OCL. Els exemples es basaran en el model UML de la figura. És un model molt simplificat d'un sistema de gestió d'inscripcions a esdeveniments.

Invariants

Un invariant és una restricció associada a una classe d'un model. La restricció ha de ser certa (o s'ha de satisfer) per cada instància de la classe.

En el model de la figura, un exemple d'invariant és:

context Esdeveniment inv:

self.nombreInscrits <= self.nombrePlacesOfertes

La primera línia indica que s'està definint un invariant (inv) vinculat (context) a la classe Esdeveniment. La restricció es defineix en la segona línia, i es tracta d'una condició que ha de ser certa per cada instància d'Esdeveniment.

El terme self denota una instància del context (Esdeveniment en aquest cas). L'expressió self.nombreInscrits, on nombreInscrits és un atribut d'Esdeveniment, denota el valor de l'atribut per a la instància self. Semblantment, l'expressió self.nombrePlacesOfertes denota el valor de l'atribut nombrePlacesOfertes per a la instància self. La restricció indica doncs que, per cada esdeveniment, el nombre d'inscrits a l'esdeveniment no pot ser superior al nombre de places ofertes.

Referències

  1. OMG «Object Constraint Language. Version 2.4». OMG Document Number: formal/2014-02-03, 2-2014.
  2. Cabot, Jordi; Gogolla, Martin «Object Constraint Language (OCL):A Definitive Guide». Lecture Notes in Computer Science, vol 7320. Springer, Berlin, Heidelberg, 2012.