stringtranslate.com

Lenguaje de restricción de objetos

El lenguaje de restricción de objetos ( OCL ) es un lenguaje declarativo que describe reglas que se aplican a los modelos de lenguaje de modelado unificado (UML) desarrollados en IBM y que ahora forma parte del estándar UML. Inicialmente, OCL era simplemente una extensión del lenguaje de especificación formal para UML. [1] OCL ahora se puede utilizar con cualquier metamodelo de Meta-Object Facility (MOF) Object Management Group (OMG) , incluido UML. [2] El lenguaje de restricción de objetos es un lenguaje de texto preciso que proporciona expresiones de consulta de objetos y restricciones en cualquier modelo o metamodelo MOF que no se pueda expresar de otro modo mediante notación diagramática. OCL es un componente clave de la nueva recomendación estándar de OMG para modelos de transformación, la especificación de consultas/vistas/transformaciones ( QVT ).

Descripción

OCL es un descendiente de Syntropy , un método de análisis y diseño orientado a objetos de segunda generación. La definición de OCL 1.4 especificaba un lenguaje de restricciones. En OCL 2.0, la definición se ha ampliado para incluir definiciones generales de lenguaje de consulta de objetos. [3]

Las declaraciones OCL se construyen en cuatro partes:

  1. un contexto que define la situación limitada en la que la afirmación es válida
  2. una propiedad que representa algunas características del contexto (por ejemplo, si el contexto es una clase, una propiedad podría ser un atributo)
  3. una operación (por ejemplo, aritmética, orientada a conjuntos) que manipula o califica una propiedad, y
  4. palabras clave (por ejemplo, if, then, else, and, or, not, implications) que se utilizan para especificar expresiones condicionales.

Relación

OCL y UML

OCL complementa a UML al proporcionar expresiones que no tienen las ambigüedades del lenguaje natural ni la dificultad inherente de utilizar matemáticas complejas. [3] OCL también es un lenguaje de navegación para modelos basados ​​en gráficos.

OCL y MOF

OCL hace que un modelo de Meta-Object Facility sea más preciso al asociar afirmaciones con sus meta-elementos.

OCL y QVT

De particular importancia para la ingeniería basada en modelos (MDE) o la arquitectura basada en modelos es la noción de transformación de modelos . La OMG ha definido un estándar específico para la transformación de modelos llamado MOF/QVT o, en forma abreviada, QVT . Actualmente, hay disponibles varios lenguajes de transformación de modelos, como GReAT , VIATRA o Tefkat , con diferentes niveles de cumplimiento del estándar QVT. Muchos de estos lenguajes se basan en OCL, que es la parte principal del cumplimiento de QVT .

Alternativas

Al ser un lenguaje de validación basado en reglas, Schematron puede considerarse una alternativa a OCL. Sin embargo, Schematron funciona para árboles de lenguaje de marcado extensible (XML) , mientras que OCL permite navegar por modelos y metamodelos basados ​​en MOF (es decir, árboles de intercambio de metadatos XML ( XMI )). En otras palabras, OCL se relaciona con UML o MOF de manera similar a como Schematron se relaciona con XML . (Tenga en cuenta que Schematron usa XPath para navegar dentro de los árboles XML).
Al ser un lenguaje de especificación de modelos que permite a los diseñadores decorar un modelo o un metamodelo con anotaciones sin efectos secundarios, OCL podría reemplazarse por lenguajes como Alloy . La generación automatizada de OCL es, en principio, posible a partir del lenguaje natural. [4]


Extensiones

Eclipse OCL [5] amplía el OCL estándar con operadores adicionales y un tipo para mapas. AgileUML amplía el OCL estándar con tipos de mapas y funciones. [6] Estas extensiones son coherentes con los tipos de mapas y funciones presentes en los lenguajes de programación modernos, como Python y Swift.

Véase también

Referencias

  1. ^ Object Management Group (OMG); Especificación del lenguaje de restricción de objetos , Capítulo 7 de la Especificación del lenguaje de modelado unificado OMG , Versión 1.3, marzo de 2000 (primera edición)
  2. ^ Object Management Group (OMG); Lenguaje de restricción de objetos OMG Versión de especificación disponible 2.0 , mayo de 2006
  3. ^ ab Este artículo se basa en material tomado de Object+Constraint+Language en el Diccionario gratuito en línea de computación antes del 1 de noviembre de 2008 e incorporado bajo los términos de "relicencia" del GFDL , versión 1.3 o posterior.
  4. ^ Imran Sarwar Bajwa (octubre de 2010). "Generación de restricciones OCL a partir de especificaciones de lenguaje natural, 2010". IEEE . doi :10.1109/EDOC.2010.33. S2CID  7495256. {{cite journal}}: Requiere citar revista |journal=( ayuda )
  5. ^ "Eclipse OCL™ (lenguaje de restricción de objetos)". 31 de enero de 2013.
  6. ^ Lano, Kevin; Kolahdouz-Rahimi, Shekoufeh (2021). "Extensión de OCL con tipos de mapas y funciones". Fundamentos de ingeniería de software . Apuntes de clase en informática. Vol. 12818. págs. 108-123. doi :10.1007/978-3-030-89247-0_8. ISBN 978-3-030-89246-3. Número de identificación del sujeto  239029860.

Enlaces externos