<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>2227-1899</journal-id>
<journal-title><![CDATA[Revista Cubana de Ciencias Informáticas]]></journal-title>
<abbrev-journal-title><![CDATA[Rev cuba cienc informat]]></abbrev-journal-title>
<issn>2227-1899</issn>
<publisher>
<publisher-name><![CDATA[Editorial Ediciones Futuro]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S2227-18992013000400001</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Análisis de la capacidad de OCL para generar restricciones de integridad de negocio]]></article-title>
<article-title xml:lang="en"><![CDATA[Analisys of OCL capability to generate business integrity constraints]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Saura-Guerra]]></surname>
<given-names><![CDATA[José Enrique]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[González-González]]></surname>
<given-names><![CDATA[Luisa]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad de las Ciencias Informáticas Facultad 1 Departamento de Programación]]></institution>
<addr-line><![CDATA[La Habana ]]></addr-line>
<country>Cuba</country>
</aff>
<aff id="A02">
<institution><![CDATA[,Universidad Central Martha Abreu de las Villas  ]]></institution>
<addr-line><![CDATA[Villa Clara ]]></addr-line>
<country>Cuba</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>12</month>
<year>2013</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>12</month>
<year>2013</year>
</pub-date>
<volume>7</volume>
<numero>4</numero>
<fpage>1</fpage>
<lpage>15</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_arttext&amp;pid=S2227-18992013000400001&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_abstract&amp;pid=S2227-18992013000400001&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_pdf&amp;pid=S2227-18992013000400001&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[Toda implementación de un sistema de información debe asegurar no solamente que una operación se aplicó sino que al hacerlo no derive en una violación de alguna restricción de integridad del sistema de información a modelar, definidas en el modelo conceptual. La violación de alguna de estas implicaría obtener un modelo de datos impreciso o incompleto. Para garantizar una correcta definición de las restricciones que modela cada Universo del Discurso, es preciso conocer las principales caracteristicas y clasificaciones de las restricciones de integridad y las herramientas que faciliten la definición de estas en el modelo conceptual. En el presente trabajo se desglosan varias clasificaciones de restricciones de integridad, los tipos que existen y las causas que producen las violaciones. Se enuncia el concepto de lenguajes de especificación y se caracteriza a, Object Constraint Language al ser este un lenguaje para la definición de restricciones ampliamente utilizado. Obteniéndose al final herramientas que permiten identificar y definir adecuadamente las restricciones de integridad en dependencia del Universo del discurso a modelar.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[Every system implementation most ensure that not only an operation has been applied but also that doing that does not break any information system's integrity constraints defined in the conceptual model. To guarantee a correct definition of the constraints that each information system carries out is necessary to know the main characteristics and classifications of the integrity constraints and the tools that ensures their definition in the conceptual model. This paper describes how restrictions are classified, different types of constraints and causes of constraints violations. Also, Object Constraint Language is characterized, as an language for constraints definition, integrated with UML and widely used to this end. The main objective is to obtain the tools that ensures the correct indentification of restrictions and it integration with a modeling language such as UML.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[Modelo conceptual]]></kwd>
<kwd lng="es"><![CDATA[OCL]]></kwd>
<kwd lng="es"><![CDATA[restricciones de integridad]]></kwd>
<kwd lng="es"><![CDATA[sistemas de información]]></kwd>
<kwd lng="en"><![CDATA[Conceptual model]]></kwd>
<kwd lng="en"><![CDATA[integrity constraints]]></kwd>
<kwd lng="en"><![CDATA[information systems]]></kwd>
<kwd lng="en"><![CDATA[OCL]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <p align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><B>ART&Iacute;CULO    DE REVISI&Oacute;N</B></font></p>     <p>&nbsp;</p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="4"> <b>An&aacute;lisis    de la capacidad de OCL para generar restricciones de integridad de negocio</b></font></p>     <p>&nbsp;</p>     <P><font face="Verdana, Arial, Helvetica, sans-serif"><b><font size="3">Analisys    of OCL capability to generate business integrity constraints</font></b> </font>      <p>&nbsp;</p>     <p>&nbsp;</p>     <P><font face="Verdana, Arial, Helvetica, sans-serif"><b><font size="2"> Jos&eacute;    Enrique Saura Guerra <sup>1*</sup>, Luisa Gonz&aacute;lez Gonz&aacute;lez<sup>2</sup></font></b></font>      <P><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><sup>1</sup> </font><font face="Verdana, Arial, Helvetica, sans-serif"><font size="2">Departamento    de Programaci&oacute;n, Facultad 1. Universidad de las Ciencias Inform&aacute;ticas,    Carretera a San Antonio de los Ba&ntilde;os, km 2 &frac12;, Torrens, Boyeros,    La Habana, Cuba. CP.: 19370. e-mail:<a href="mailto:jsaura@uci.cu">jsaura@uci.cu</a></font></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">    <br>   <sup>2</sup> Universidad Central Martha Abreu de las Villas, Santa Clara, Villa    Clara, Cuba </font><font face="Verdana, Arial, Helvetica, sans-serif"><font size="2">E-mail:    <a href="mailto:luisagon@uclv.edu.cu">luisagon@uclv.edu.cu</a></font></font>      ]]></body>
<body><![CDATA[<P>&nbsp;      <P>&nbsp;</p> <hr>     <P><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><B>RESUMEN</B></font>      <P><font face="Verdana, Arial, Helvetica, sans-serif" size="2"> Toda implementaci&oacute;n    de un sistema de informaci&oacute;n debe asegurar no solamente que una operaci&oacute;n    se aplic&oacute; sino que al hacerlo no derive en una violaci&oacute;n de alguna    restricci&oacute;n de integridad del sistema de informaci&oacute;n a modelar,    definidas en el modelo conceptual. La violaci&oacute;n de alguna de estas implicar&iacute;a    obtener un modelo de datos impreciso o incompleto. Para garantizar una correcta    definici&oacute;n de las restricciones que modela cada Universo del Discurso,    es preciso conocer las principales caracteristicas y clasificaciones de las    restricciones de integridad y las herramientas que faciliten la definici&oacute;n    de estas en el modelo conceptual. En el presente trabajo se desglosan varias    clasificaciones de restricciones de integridad, los tipos que existen y las    causas que producen las violaciones. Se enuncia el concepto de lenguajes de    especificaci&oacute;n y se caracteriza a, Object Constraint Language al ser    este un lenguaje para la definici&oacute;n de restricciones ampliamente utilizado.    Obteni&eacute;ndose al final herramientas que permiten identificar y definir    adecuadamente las restricciones de integridad en dependencia del Universo del    discurso a modelar. </font>      <P><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><B>Palabras clave:    </B> Modelo conceptual; OCL, restricciones de integridad, sistemas de informaci&oacute;n</font><font face="Verdana, Arial, Helvetica, sans-serif">.    </font>  <hr> <font face="Verdana, Arial, Helvetica, sans-serif" size="2"><B>ABSTRACT</b></font>      <P><font face="Verdana, Arial, Helvetica, sans-serif" size="2"> Every system implementation    most ensure that not only an operation has been applied but also that doing    that does not break any information system's integrity constraints defined in    the conceptual model. To guarantee a correct definition of the constraints that    each information system carries out is necessary to know the main characteristics    and classifications of the integrity constraints and the tools that ensures    their definition in the conceptual model. This paper describes how restrictions    are classified, different types of constraints and causes of constraints violations.    Also, Object Constraint Language is characterized, as an language for constraints    definition, integrated with UML and widely used to this end. The main objective    is to obtain the tools that ensures the correct indentification of restrictions    and it integration with a modeling language such as UML.</font>      <P> <font size="2" face="Verdana, Arial, Helvetica, sans-serif"><B>Key words:    </B> Conceptual model, integrity constraints, information systems, OCL. </font>  <hr>     <p>&nbsp;</p>     <p>&nbsp;</p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><b>INTRODUCCI&Oacute;N</b></font>  </p>     ]]></body>
<body><![CDATA[<p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">En una sociedad    moderna, la din&aacute;mica de la cotidianidad trae consigo, que las aplicaciones    con las que se interactua a diario, deben encontrarse en constante cambio y    actualizaci&oacute;n. Traduci&eacute;ndose estas actualizaciones en modificaci&oacute;n    de los datos que conforman el universo del discurso (</font><font face="Verdana, Arial, Helvetica, sans-serif" size="2">UD)    del sistema de informaci&oacute;n (SI) al que sirven de interfaz. El enorme    volumen de informaci&oacute;n que se maneja no est&aacute; ajeno a que aparezcan    errores u omisiones, dado que existen hechos o mensajes err&oacute;neos que    tienden a introducirse en nuestros sistemas (P&eacute;rez, 2013). Seg&uacute;n    plantea (Cabot, 2008), la generalidad de estos problemas son producidos por    factores humanos.</font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">El prevenir la    ocurrencia de estos problemas est&aacute; acotado dentro del campo de Verificaci&oacute;n    de Integridad. El chequeo y validaci&oacute;n de la integridad en un sistema    de informaci&oacute;n, contribuye a contar con un universo del discurso sem&aacute;nticamente    conciso ya que la integridad de un sistema es igual a la validez + completitud,    por lo que restricci&oacute;n de integridad (RI) es una condici&oacute;n que    no podr&iacute;a satisfacerse en algunos estados de la base de informaci&oacute;n    o por algunos eventos y que el sistema (interfaz + BD) debe resolver (Cabot,    2008).</font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Las RI son reglas    definidas para garantizar la exactitud y consistencia de los datos almacenados    en una base de datos relacional. Codd (1990) define cuatro tipos de restricciones    en el modelo relacional estas son: Integridad de Entidad, Integridad Referencial,    Integridad de Dominio e Integridad definida por el usuario.</font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Las RI son parte    incidente de modelos conceptuales y son utilizadas extensivamente durante el    an&aacute;lisis y dise&ntilde;o de un SI. Estas son esenciales para asegurar    la exactitud del modelo de informaci&oacute;n dado su capacidad para representar    una sem&aacute;ntica adecuada del dominio del problema. Seg&uacute;n (Elita,    y otros, 2005) pueden llevarse a cabo restricciones de integridad en sistemas    de almacenamiento de datos (la base de datos) o en el de c&oacute;digo del software    (aplicaci&oacute;n que maneja los datos), para proteger contra cambios no admisibles    en la informaci&oacute;n.</font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">En gran parte de    los sistemas, la integridad total puede ser lograda s&oacute;lo por la intervenci&oacute;n    humana. Para asegurar la integridad, debemos verificar los hechos sistem&aacute;ticamente    en la base de informaci&oacute;n contra el dominio (Oliv&eacute;, 2007).</font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Sin embargo, es    posible construir los mecanismos en un sistema de informaci&oacute;n que autom&aacute;ticamente    garantice alg&uacute;n nivel de integridad. Se puede definir las condiciones    en la base de informaci&oacute;n (BI) y los eventos la alteran tal que, si es    satisfecho, se contar&aacute; con alg&uacute;n nivel de confianza en la integridad    de la BI. Se entiende que el sistema de informaci&oacute;n incluir&aacute; los    mecanismos para garantizar la satisfacci&oacute;n de las RI en cualquier momento.    (Morgan, 2002) </font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">La gesti&oacute;n    de las RI en la actualidad cae principalmente dentro de las responsabilidades    del administrador de la Base de Datos (BBDD) en el propio gestor luego de pasar    por todo el proceso de dise&ntilde;o o al desarrollador del software garantizarlas    al implementar.</font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Seg&uacute;n (Richters,    2000), debe quedar clara la idea de que el modelo y sus restricciones deben    ser validadas antes de comenzar su implementaci&oacute;n, porque de esa forma    se pueden evitar muchos errores de dise&ntilde;o e implementaci&oacute;n.</font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Como parte de los    mecanismos para garantizar un nivel sem&aacute;ntico adecuado al UD es aconsejable    que una RI sea definida desde el mismo modelado conceptual, para ello el dise&ntilde;ador    cuenta con diversas herramientas que lo asistan en ese proceso, por ejemplo    los lenguajes de especificaciones de RI.</font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Un lenguaje de    especificaci&oacute;n o lenguaje de descripci&oacute;n es un lenguaje formal    o semiformal cuya funci&oacute;n es construir modelos de los sistemas que se    desea elaborar (Elsmari, y otros, 2012). A diferencia de los lenguajes de programaci&oacute;n,    que son lenguajes interpretables o traducibles por una computadora hacia una    representaci&oacute;n ejecutable, los lenguajes de especificaci&oacute;n no    son utilizados para implementar el sistema, sino para especificarlo, conceptualizarlo    o incluso validarlo, aunque suelen ser legibles para un programa de computadora,    que puede asistir en el proceso de validaci&oacute;n (Cabot, 2008). Existen    una gran variedad de lenguajes de especificaci&oacute;n, algunos de los m&aacute;s    representativos son:</font></p> <ul>       ]]></body>
<body><![CDATA[<li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">OCL el cual      es un lenguaje para la descripci&oacute;n formal de expresiones en los modelos      UML.</font></li>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Alloy, lenguaje      de especificaciones que utiliza la l&oacute;gica de primer orden y se basa      en el uso de relaciones.</font></li>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Aut&oacute;matas      es un formalismo utilizado para modelar sistemas discretos en general.</font></li>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">B, lenguaje      de descripci&oacute;n formal basado en la l&oacute;gica de predicados.</font></li>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">C&aacute;lculo      Pi, lenguaje de especificaci&oacute;n para sistemas distribuidos y paralelos.</font></li>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">CSP, lenguaje      formal basado en el &aacute;lgebra de procesos.    <br>     Estelle, lenguaje formal basado en aut&oacute;matas de estado finito para      la especificaci&oacute;n de sistemas distribuidos.</font></li>     </ul>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Todos estos lenguajes    son aplicables a problemas especif&iacute;cos dentro de distintas ramas de la    inform&aacute;tica, ingenieria el&eacute;ctrica y ramas afines.</font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Partiendo de la    importancia de asegurar la integridad de un sistema de informaci&oacute;n expresada    anteriormente, en el presente trabajo se caracterizan las RI y posteriormente    se analiza OCL (del ingl&eacute;s, Object Constraints Language), un lenguaje    de especificaci&oacute;n ampliamente utilizado para especificar restricciones    de integridad con una fuerte integraci&oacute;n con el lenguaje de modelado    unificado (UML, por sus siglas en ingl&eacute;s). Enfoc&aacute;ndose la segunda    parte de esta investigaci&oacute;n en este lenguaje para la especificaci&oacute;n    de RI y la descripci&oacute;n formal de expresiones. Adem&aacute;s se definen    en la investigaci&oacute;n algunas de las caracter&iacute;sticas del lenguaje    OCL que permiten la gesti&oacute;n de las restricciones y como quedan definidas    en su sintaxis</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">.</font>  </p>     ]]></body>
<body><![CDATA[<p>&nbsp;</p>     <P><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><b>DESARROLLO</b></font>      <P><font face="Verdana, Arial, Helvetica, sans-serif" size="2">La validez y totalidad    de los datos son componentes primordiales en la integridad de un sistema de    informaci&oacute;n. La integridad es garantizada cuando todos los hechos pertenecientes    al sistema son v&aacute;lidos y este contiene todos los hechos relevantes (Oliv&eacute;,    2007).</font>     <P><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Validez:</b>    SI -&gt; s implica Realidad -&gt; s    <br>   <b>Totalidad:</b> Realidad -&gt; s implica SI -&gt; s    <br>   SI: Sistema de informaci&oacute;n s: sentencia</font>     <P><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Seg&uacute;n (P&eacute;rez,    2013) la falta de integridad trae m&uacute;ltiples problemas que pueden indistintamente    presentarse a corto, mediano o largo plazo. En el trabajo de Pakalnickiene (2007)    se definen las ventajas de un modelo conceptual organizado. Al extenderse estos    modelos con chequeo de restricciones de integridad, permite obtener modelos    m&aacute;s precisos y capaces de asegurar que la sem&aacute;ntica del dominio    est&aacute; expresada adecuadamente (Halping, 2003).</font>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Clasificaciones    de RI</b></font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Las restricciones    de integridad nos permiten obtener un modelo, sem&aacute;nticamente preciso    atendiendo al dominio del sistema de informaci&oacute;n a modelar, por ende    optimizando el proceso de dise&ntilde;o. El chequeo de las RI est&aacute; orientado    a determinar, de forma eficiente, cu&aacute;ndo el estado de la base de informaci&oacute;n    es consistente despu&eacute;s de un conjunto de eventos estructurales.</font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Existen diversas    clasificaciones para las restricciones, atendiendo a ciertos puntos de vista.    Estos grupos se solapan generalmente y son escasos los estudios que estructuran    las RI a partir de una misma ra&iacute;z, uno de ellos lo podemos encontrar    en (Elita, y otros, 2005). Otras clasificaciones de RI son presentadas en (Oliv&eacute;,    2007) (Chomicki, 2005) (Halping, 2006).</font></p>     ]]></body>
<body><![CDATA[<p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Las RI se pueden    clasificar seg&uacute;n:</font></p> <ul>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">La raz&oacute;n      que la restricci&oacute;n debe sostener (la fuente);</font></li>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Los hechos involucrados      por la restricci&oacute;n (el alcance);</font></li>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">La causa de      la violaci&oacute;n de la restricci&oacute;n.</font></li>     </ul>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Fuente</b></font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Las restricciones    de integridad pueden ser clasificadas seg&uacute;n su fuente en anal&iacute;tico,    de&oacute;ntico o emp&iacute;rico (Oliv&eacute;, 2007).</font></p> <ul>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Las violaciones      de restricciones anal&iacute;ticas son debidas a los errores en la representaci&oacute;n      de hechos. Por ejemplo: &quot;una puerta no puede ser abierta y cerrada al      mismo tiempo&quot; es anal&iacute;tico.</font></li>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Las violaciones      de restricciones de&oacute;nticas pueden ser causadas por los errores en la      representaci&oacute;n de hechos o porque la conducta del dominio se desv&iacute;a      de la condici&oacute;n declarada. Por ejemplo: &quot;el salario de un empleado      no puede disminuir&quot; es de&oacute;ntico.</font></li>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Las violaciones      de restricciones emp&iacute;ricas pueden ser causadas por los errores en la      representaci&oacute;n de hechos o porque alguna excepci&oacute;n se ha levantado      en el dominio. Por ejemplo: &quot;Un cliente no compra m&aacute;s de 999 unidades      de cualquier art&iacute;culo&quot; ser&iacute;a emp&iacute;rico.</font></li>     ]]></body>
<body><![CDATA[</ul>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Alcance</b></font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Las restricciones    son condiciones que deben satisfacerse por la base de informaci&oacute;n y los    eventos. Normalmente, una restricci&oacute;n involucra s&oacute;lo un juego    limitado de hechos en la base de informaci&oacute;n y/o un juego limitado de    eventos, y esto permite clasificarlo seg&uacute;n los hechos que involucra o    su alcance (Alonso, 2010).</font></p> <ul>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Una restricci&oacute;n      est&aacute;tica abarca los hechos de un solo estado de la base de informaci&oacute;n,      y debe satisfacerse en cada estado. Todos los lenguajes de modelado conceptual      permiten definir las restricciones est&aacute;ticas.</font></li>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Una restricci&oacute;n      de transici&oacute;n comprende los hechos de dos o m&aacute;s estados de la      base de informaci&oacute;n. Normalmente, una restricci&oacute;n incluye hechos      de s&oacute;lo dos estados consecutivos, reprimiendo la transici&oacute;n      entre ellos, pero en general la restricci&oacute;n puede referirse a cualquier      n&uacute;mero de estados.</font></li>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Una restricci&oacute;n      de evento implica s&oacute;lo un evento.</font></li>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Una restricci&oacute;n      de historia de evento define dos o m&aacute;s eventos que ocurren en los mismos      o diferentes momentos. Las restricciones de este tipo son usadas a menudo      para determinar las clasificaciones temporales permitidas, de ocurrencias      de evento.</font></li>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Una restricci&oacute;n      global involucra los hechos de uno o m&aacute;s estados de la base de informaci&oacute;n      y uno o m&aacute;s eventos.</font></li>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Una restricci&oacute;n      de condici&oacute;n previa de evento (es un tipo particular de restricci&oacute;n      global), ata&ntilde;e s&oacute;lo a un evento y el estado de la base de informaci&oacute;n      cuando este ocurre. Los lenguajes de modelado conceptuales permiten su definici&oacute;n.</font></li>     </ul>     ]]></body>
<body><![CDATA[<p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Los siguientes    son ejemplos de restricciones, con su clasificaci&oacute;n seg&uacute;n su alcance:</font></p> <ul>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Todos los empleados      siempre se asignan a alg&uacute;n proyecto (est&aacute;tica).</font></li>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">El sueldo de      un empleado no puede disminuir (transici&oacute;n).</font></li>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">El dep&oacute;sito      inicial de una nueva cuenta bancaria debe ser por lo menos un euro (evento).</font></li>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Un cliente no      puede abrir dos cuentas en el mismo d&iacute;a (historia de evento).</font></li>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Un cliente no      puede abrir una nueva cuenta si &eacute;l es un poseedor de alguna cuenta      que se ha sobregirado para m&aacute;s de 30 d&iacute;as durante el &uacute;ltimo      a&ntilde;o (global).</font></li>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Un cliente no      puede abrir una nueva cuenta si el equilibrio total de las cuentas que &eacute;l      ya tiene es negativo (condici&oacute;n previa de evento).</font></li>     </ul>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Causa de violaci&oacute;n</b></font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Se ha mencionado    que una restricci&oacute;n puede violarse por la llegada de un mensaje en la    entrada o por la ausencia de uno o m&aacute;s mensajes durante un intervalo    de tiempo. En el primer caso, se dice que la causa de la violaci&oacute;n es    el evento informado por el mensaje, y que la restricci&oacute;n es evento-violable.    En el segundo caso, que la causa de la violaci&oacute;n es el paso de tiempo,    y entonces la restricci&oacute;n es tiempo-violable (Oliv&eacute;, 2007).</font></p>     ]]></body>
<body><![CDATA[<p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Unos ejemplos de    cada clase son:</font></p> <ul>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">El sueldo de      un empleado no puede disminuir (evento - violable).</font></li>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">El dep&oacute;sito      inicial en una cuenta debe ser por lo menos 50 pesos (evento - violable).</font></li>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Una cuenta no      puede sobregirarse para m&aacute;s de 30 d&iacute;as (tiempo - violable).</font></li>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Todos los empleados      deben reportar sus actividades por lo menos una vez al mes (tiempo - violable).      </font></li>     </ul>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>De acuerdo al    modelo</b></font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Todos los modelos    de datos conceptuales permiten definir una serie de Restricciones de Integridad    en sus diagramas. El soporte de estas restricciones var&iacute;a seg&uacute;n    el modelo utilizado (Elita, y otros, 2005) (Oliv&eacute;, 2003). Vale destacar    que un esquema conceptual = diagrama + Restricciones de Integridad (Elsmari,    y otros, 2012). Por lo cual se puede clasificar una RI en expl&iacute;cita y    en impl&iacute;cita o estructural, para un modelo determinado.</font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">En un ejemplo asociado    al Modelo Entidad Relaci&oacute;n, la siguiente restricci&oacute;n es estructural:    Un cliente se identifica un&iacute;vocamente por su n&uacute;mero. El ME/R(Modelo    Entidad Relaci&oacute;n) permite en sus diagramas especificar el o los atributos    identificadores (Date, 2006), por lo que esta restricci&oacute;n se representa    estructuralmente. Sin embargo para el diagrama de clases de UML esta misma restricci&oacute;n    se clasifica en expl&iacute;cita, pues este modelo no soporta los atributos    identificadores (Gomaa, 2011). Esta restricci&oacute;n debe ser definida en    otro lenguaje de manera expl&iacute;cita.</font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>RI en el dise&ntilde;o    de una Base de Datos</b></font></p>     ]]></body>
<body><![CDATA[<p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Lo m&aacute;s sensato    es pensar que el lugar ideal para implementar Restricciones de Integridad, sea    la base de datos del negocio. Esto es debido a un contacto m&aacute;s directo    con los datos a trav&eacute;s de gestores especializados para su manejo (Morgan,    2002).</font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">En el dise&ntilde;o    de bases de datos relacionales (Elsmari, y otros, 2012) se observan varios dise&ntilde;os    asociados a los datos: el dise&ntilde;o conceptual, l&oacute;gico y f&iacute;sico.    En los dos primeros se ubican los tres niveles de expresi&oacute;n de las RI.    Conceptualmente se definen RI naturales o t&eacute;cnicas y l&oacute;gicamente    restricciones en un nivel formal, tal como muestra el trabajo (P&eacute;rez,    2013) presente en la <a href="#f01">figura 1</a>.</font></p>     <p align="center"><a name="f01"></a><img src="img/revistas/rcci/v7n4/f0101413.jpg" width="573" height="133"></p>     <p>&nbsp;</p>     <P><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>RESULTADOS Y    DISCUSI&Oacute;N</b></font>     <P><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Partiendo de la    premisa de captar Restricciones de Integridad al modelar para obtener un sistema    conciso y preciso atendiendo al negocio, es importante contar con herramientas    que agilicen y conduzcan el trabajo del dise&ntilde;ador. Existen diferentes    lenguajes de modelaci&oacute;n que simplifican el trabajo. Los m&aacute;s extendidos    para dise&ntilde;ar conceptualmente Bases de Datos son UML y el ER. Pero estos    lenguajes por si solos carecen de la capacidad para modelar las restricciones    y necesitan otros que complementen sus funcionalidades. Para suplir estas deficiencias    surgen los llamados lenguajes de especificaci&oacute;n.</font>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Lenguajes de    especificaci&oacute;n</b></font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">En el contexto    de la computaci&oacute;n y ciencias afines, se puede definir un lenguaje de    especificaci&oacute;n o descripci&oacute;n, como el lenguaje formal o semi formal    cuya funci&oacute;n es construir modelos de los sistemas que se desean obtener.</font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">A diferencia de    los lenguajes de programaci&oacute;n que son interpretables o traducibles por    un dispositivo hacia una representaci&oacute;n ejecutable, los lenguajes de    especificaci&oacute;n seg&uacute;n su definici&oacute;n en (OMG, 2006), no son    utilizados para implementar el sistema sino para especificarlo, conceptualizarlo    o validarlo. Dentro de esos lenguajes de especificaci&oacute;n tenemos a OCL    como uno de los m&aacute;s extendidos. El lenguaje de restricci&oacute;n OCL    se encuentra definido seg&uacute;n los conceptos de UML al ser un sub-lenguaje    de este.</font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Lenguaje de    especificaci&oacute;n OCL</b></font></p>     ]]></body>
<body><![CDATA[<p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">OCL es un lenguaje    notacional, subconjunto del UML est&aacute;ndar, industrial, que permite a los    desarrolladores de software escribir restricciones sobre modelos de objetos    (pre y pos condiciones, invariantes, valores derivados y restricciones sobre    operaciones). Estas restricciones son particularmente &uacute;tiles, en la medida    en que permiten a los desarrolladores crear un amplio conjunto de reglas que    rigen el aspecto de un objeto individual (Cabot, y otros, 2012).</font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Es un lenguaje    formal para expresar restricciones libres de efectos colaterales. Los usuarios    del Lenguaje Unificado para Modelado (UML) y de otros lenguajes, pueden usar    el OCL para especificar restricciones y otras expresiones incluidas en sus modelos.    Seg&uacute;n (Pandey; 2011) el OCL tiene caracter&iacute;sticas de un lenguaje    de expresi&oacute;n, de un lenguaje de modelado y de un lenguaje formal.</font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">En el modelado    orientado a objetos, un modelo gr&aacute;fico como el de clases no es suficiente    para lograr una especificaci&oacute;n precisa y no ambigua. Existe la necesidad    de describir caracter&iacute;sticas adicionales sobre los objetos del modelo.    Muchas veces estas caracter&iacute;sticas se describen en lenguaje natural.    La pr&aacute;ctica ha revelado que muy frecuentemente esto produce ambig&uuml;edades.    Para escribir caracter&iacute;sticas no ambiguas se han desarrollado los lenguajes    formales (Romero, 2010).</font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">OCL tiene las caracter&iacute;sticas    de un lenguaje de expresiones, un lenguaje de modelos y un lenguaje formal:</font></p> <ul>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">OCL es un lenguaje      de expresiones puro. Esto significa que un estado del sistema nunca cambiar&aacute;      debido a una expresi&oacute;n OCL, incluso una expresi&oacute;n OCL podr&iacute;a      usarse para describir tal cambio de estado (p.e. en una postcondici&oacute;n).      Los valores de todos los objetos, incluidos los enlaces, no cambiar&aacute;n.      En cualquier momento en que se eval&uacute;a una expresi&oacute;n OCL, simplemente      devuelve un valor (Oliv&eacute;, y otros, 2007).</font></li>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">OCL es un lenguaje      de modelos y no un lenguaje de programaci&oacute;n. No se puede escribir un      programa l&oacute;gico o un flujo de control en OCL. Especialmente, no se      puede invocar procesos o activar operaciones de consulta en OCL. Debido a      que OCL es en primer lugar un lenguaje de modelos, no se puede asegurar que      todo sea directamente ejecutable. Como lenguaje de modelos, todos los aspectos      de implementaci&oacute;n est&aacute;n fuera de alcance y no pueden expresarse      en OCL. Cada expresi&oacute;n OCL es conceptualmente at&oacute;mica. El estado      de los objetos en el sistema no puede cambiar durante la evaluaci&oacute;n.</font></li>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">OCL es un lenguaje      formal donde todos los constructores tienen un significado formal definido.      La especificaci&oacute;n de OCL es parte de la especificaci&oacute;n de UML.      OCL no tiene la intenci&oacute;n de reemplazar los lenguajes formales existentes.      Los lenguajes formales tradicionales se usaban por personas con conocimientos      matem&aacute;ticos, pero dificulta su uso para la mitad de empresas y modeladores      de sistemas. OCL ha sido desarrollado para llenar este hueco (Casas, y otros,      2010).</font></li>     </ul>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Puesto que en un    proyecto hay muchas personas involucradas (usuario, expertos, encargados del    mantenimiento y dem&aacute;s.) los modelos deben ser entendidos por una amplia    y variada audiencia. OCL es f&aacute;cil de aprender y usar por los desarrolladores    sin amplios conocimientos matem&aacute;ticos. OCL tiene ciertas caracter&iacute;sticas    que permiten a los desarrolladores adoptarlo a su ritmo y s&oacute;lo donde    lo necesiten. Hace accesibles las especificaciones formales con un trasfondo    matem&aacute;tico limitado (Cabot, y otros, 2012).</font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Seg&uacute;n OMG    (del ingl&eacute;s, Object Managment Group) (OMG, 2006), OCL puede ser usado    con distintos prop&oacute;sitos:</font></p> <ul>       ]]></body>
<body><![CDATA[<li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Para especificar      caracter&iacute;sticas est&aacute;ticas sobre clases y tipos en un modelo      de clases.</font></li>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Para especificar      caracter&iacute;sticas est&aacute;ticas de tipo para Estereotipos.</font></li>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Para especificar      pre y post-condiciones sobre Operaciones y M&eacute;todos.</font></li>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Como lenguaje      de navegaci&oacute;n.</font></li>       <li><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Para especificar      restricciones sobre operaciones.</font></li>     </ul>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Dentro de la sem&aacute;ntica    del UML, el OCL es usado en la secci&oacute;n reglas, como constantes est&aacute;ticas    sobre las meta-clases en la sintaxis abstracta. Varios dise&ntilde;adores tambi&eacute;n    lo utilizan para definir operaciones 'adicionales', que son tomadas en cuenta    en la formaci&oacute;n de reglas.</font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Definici&oacute;n    de restricciones con OCL</b></font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Usualmente se debe    definir otras restricciones a instancias, independientemente de las ya existentes    en UML y otros lenguajes de modelado conceptual. Para ello OMG propone el uso    de OCL (Cabot, y otros, 2005).</font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">En la <a href="#f02">figura    2</a> se define el diagrama de clases para un caso de estudio de una familia    y posteriormente se define c&oacute;mo quedar&iacute;a una restricci&oacute;n    de dominio descrita en OCL (Ebert, y otros, 2011).</font></p>     ]]></body>
<body><![CDATA[<p align="center"><a name="f02"></a><img src="img/revistas/rcci/v7n4/f0201413.jpg" width="428" height="288"></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Un ejemplo ser&iacute;a    que: se requiere describir en la restricci&oacute;n el hecho de que los padres    nacen antes que sus hijos.</font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">En OCL quedar&iacute;a    de la siguiente manera:</font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><i>context Persona    <br>   inv: padre.FechaN &lt; self.FechaN    <br>   and mother.FechaN &lt; self.FechaN</i></font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Seg&uacute;n las    definiciones de RI vistas anteriormente esta se podr&iacute;a clasificar como;    de fuente emp&iacute;rica, alcance est&aacute;tico y la causa de la violaci&oacute;n    es evento-violable.</font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Esta restricci&oacute;n    posteriormente deber&iacute;a ser portada a SQL est&aacute;ndar al pasar al    esquema f&iacute;sico, mediante el uso de la cl&aacute;usula CHECK o TRIGGERS,    quedando esto en manos del administrador de la BD.</font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">En la <a href="#f03">figura    3</a> se presenta otro modelo de clases en este caso el correspondiente con    un caso de uso de gesti&oacute;n de una flota de veh&iacute;culos, el cual debe    restringir; la cantidad de due&ntilde;os por veh&iacute;culos, la edad requerida    para los due&ntilde;os de auto y que toda persona debe tener al menos un auto    negro.</font></p>     <p align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><a name="f03"></a><img src="img/revistas/rcci/v7n4/f0301413.jpg" width="486" height="338"></font></p>     ]]></body>
<body><![CDATA[<p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Las restricciones    de dominio definidas anteriormente quedar&iacute;an de la siguiente forma:</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><i>Context AutoInv:    self.due&ntilde;o.edad &gt;= 18 (el due&ntilde;o de un auto debe ser mayor de    18)    <br>   Context Persona    <br>   Inv: self.flota-&gt;size() &lt;= 3 (nadie tiene m&aacute;s de tres veh&iacute;culos)        <br>   Context Persona    <br>   Inv: self.flota-&gt;forall(v| v.color = 'negro' ) (todos los veh&iacute;culos    de una persona son negros)</i></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">N&oacute;tese su    lenguaje natural m&aacute;s af&iacute;n a dise&ntilde;adores sin amplios conocimientos    matem&aacute;ticos. OCL usa operaciones para describir las restricciones. Se    define en una operaci&oacute;n primeramente un contexto en el cual se especifica    la RI, el atributo a restringir y por &uacute;ltimo el valor que acota la expresi&oacute;n.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Dichas operaciones    presentan algunos problemas en OCL. Por ejemplo, una operaci&oacute;n puede    entrar en un ciclo infinito o puede ser indefinida y esto hace a OCL menos preciso.    Otra deficiencia del lenguaje radica en las operaciones aplicadas a varias clases    que tienen la relaci&oacute;n de herencia, en donde las operaciones pueden ser    redefinidas por los objetos de esas clases. Quedando ambiguo para decidir, el    significado de la expresi&oacute;n que contiene las operaciones (He, 2011).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Otra de las deficiencias    presentes en OCL es que este verifica todas las instancias de un tipo espec&iacute;fico,    sobre el que se defini&oacute; la RI, no siendo esto &oacute;ptimo pues las    instancias no deber&iacute;an verificarse teni&eacute;ndose en cuenta, por ejemplo    que si asumimos que usualmente la base de informaci&oacute;n es consistente    antes de la actualizaci&oacute;n, solamente han sido modificados por un conjunto    de eventos estructurales aplicados a la base de informaci&oacute;n estos pueden    violar la RI asociada (Cabot, y otros, 2005).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Partiendo de las    deficiencias encontradas en OCL durante su revisi&oacute;n y su integraci&oacute;n    total con UML, ser&iacute;a interesante buscar alternativas a este lenguaje    de especificaci&oacute;n. Logrando que estas se integren con otros lenguajes    o m&eacute;todos de modelados m&aacute;s cercanos a dise&ntilde;adores con perfil    matem&aacute;ticos o sin experiencia en programaci&oacute;n como es el ER. Este    modelo es muy utilizado a escala acad&eacute;mica por su sencillez y expresividad    y se encuentra en constante evoluci&oacute;n existiendo m&uacute;ltiples extensiones    al modelo original planteado por (Chen, 1976) como por ejemplo las planteadas    por (Elsmari, y otros, 2012).</font></p>     ]]></body>
<body><![CDATA[<p>&nbsp;</p>     <P><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><B>CONCLUSIONES</B></font>      <P><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La definici&oacute;n    correcta de las RI pasa por conocer las diversas clasificaciones de estas atendiendo    fundamentalmente a la fuente, alcance y la causa de la violaci&oacute;n.</font>     <P><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El chequeo de RI    desde el modelo conceptual optimiza el dise&ntilde;o, al ser este sem&aacute;nticamente    m&aacute;s preciso que dejar la responsabilidad de chequear la integridad a    la etapa del modelado f&iacute;sico, al introducir el modelo en el gestor de    base de datos escogido, cambiando por tanto lo modelado en los pasos anteriores;    conceptual y l&oacute;gico.</font>     <P><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La mayor&iacute;a    de los lenguajes de modelaci&oacute;n no traen impl&iacute;citos un chequeo    de las RI sino que agregan otros lenguajes, extenciones o herramientas para    lograr este prop&oacute;sito.</font>     <P><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El lenguaje UML    integra el sub lenguaje OCL para describir las restricciones. Es un lenguaje    formal, f&aacute;cil de leer y de escribir.</font>      <P><font size="2" face="Verdana, Arial, Helvetica, sans-serif">OCL no carece de    deficiencias a la hora de su implementaci&oacute;n y definici&oacute;n de RI    y para solucionar estos problemas existen otras alternativas como las propuestas    en (Miliauskaite, 2005) y otros trabajos que plantean el chequeo de RI en el    modelo entidad relaci&oacute;n (Saura, 2013), aun as&iacute; OCL es una s&oacute;lida    opci&oacute;n, especialmente si se modela utilizando UML como lenguaje para    el modelado conceptual.    <br>   </font>     <P>&nbsp;</p>     <P><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><B>REFERENCIAS    BIBLIOGR&Aacute;FICAS</B></font></p>     ]]></body>
<body><![CDATA[<!-- ref --><p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">ALONSO, A. P. &quot;Reglas    de Negocio En Bases de Datos Relacionales&quot;. 2010.    </font></p>     <!-- ref --><p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">CABOT, J. &quot;Verification    of UML/OCL Class Diagrams Using Constraint Programming.&quot; In IEEE International    Conference. 2008.    </font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">CABOT, J. and GOGOLLA,    M. &quot;Object Constraint Language (OCL): a Definitive Guide.&quot; In Proceedings    of the 12th International Conference on Formal Methods for the Design of Computer,    Communication, and Software Systems: Formal Methods for Model-driven Engineering,    58-90. SFM'12. Berlin, Heidelberg: Springer-Verlag. doi: 10.1007/978-3-642-30982-3_3.    2012. Disponible en: [<a href="http://dx.doi.org/10.1007/978-3-642-30982-3_3" target="_blank">http://dx.doi.org/10.1007/978-3-642-30982-3_3</a>].</font></p>     <!-- ref --><p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">CABOT, J. and TENIENTE,    E. Computing Relevant Instances That May Violate an OCL Constraint. Springer-Verlang.    2005.    </font></p>     <!-- ref --><p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">CASAS CUEVAS, J.    and Arenas Fern&aacute;ndez, M. &quot;OCL (Object Constraint Language).&quot;    2010.    </font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">CHEN, PETER PIN-SHAN.    &quot;The Entity-relationship Model&amp;mdash;toward a Unified View of Data.&quot;    ACM Trans. Database Syst. 1 (1) (March): 9-36. doi:10.1145/320434.320440. 1976.</font></p>     ]]></body>
<body><![CDATA[<!-- ref --><p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Chomicki, J. Minimal    Change Integrity Maintenance Using Tuple Deletions. Vol. 197. Information and    Computation. 2005.    </font></p>     <!-- ref --><p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">CODD, E. F. The    Relational Model for Database Management: Version 2. Boston, MA, USA: Addison-Wesley    Longman Publishing Co., Inc. 1990.    </font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Conceptual Modelling    of Information Systems. Berl&iacute;n: Springer-Verlang. 2007.</font></p>     <!-- ref --><p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">DATE, C J. &quot;An    Introduction to Database Systems&quot;. 2006.    </font></p>     <!-- ref --><p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">EBERT, J. and TOBIAS    W. &quot;Interoperability Services for Models and Ontologies&quot; 2011.    </font></p>     <!-- ref --><p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">ELSMARI, R, and    S NAVATHE. &quot;Database Systems: Models, Languages, Design, and Application    Programming&quot;. 2012.    </font></p>     <!-- ref --><p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">GOMAA, H. Software    Modeling and Design: UML, Use Cases, Patterns, and Software Architectures. 1st    ed. New York, NY, USA: Cambridge University Press. 2011.    </font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">HALPING, T. &quot;UML    Data Models from an ORM Perspective: Part 1 ? 10.&quot; Journal of Conceptual    Modeling, 2003. Disponible en: [<a href="http://www.orm.net/uml_orm.html" target="_blank">http://www.orm.net/uml_orm.html</a>].</font></p>     <!-- ref --><p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">HALPING, TERRY.    &quot;Business Rule Modality&quot;. Neumot University. 2006.    </font></p>     <!-- ref --><p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">HE, YUJING. &quot;Comparison    of the Modeling Languages Alloy and UML.&quot; Department of Computer Science.    Portland State University. 2011.    </font></p>     <!-- ref --><p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">MILIAUSKAITE, E.    &quot;Representation of Integrity Constraints in Conceptual Models.&quot; Information    Technology and Control, Kauno Technologijos Universitetas 34-4: 335-365. 2005.    </font></p>     ]]></body>
<body><![CDATA[<!-- ref --><p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">MILIAUSKAITE, E.    &quot;Taxonomy of Integrity Constraints in Conceptual Models.&quot; In. 2005.    </font></p>     <!-- ref --><p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">MORGAN, T. Business    Rules and Information Systems: Aligning It with Business Goals. Boston, MA,    USA: Addison-Wesley Longman Publishing Co., Inc. 2002.    </font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">OLIV&Eacute;, A.    &quot;Integrity Constraints Definition in Object-Oriented Conceptual Modeling    Languages.&quot; In Conceptual Modeling - ER 2003, edited by Il-Yeol Song, StephenW.    Liddle, Tok-Wang Ling, and Peter Scheuermann, 2813:349-362. Lecture Notes in    Computer Science. Springer Berlin Heidelberg. 2003 Disponible en: [<a href="http://dx.doi.org/10.1007/978-3-540-39648-2_28" target="_blank">http://dx.doi.org/10.1007/978-3-540-39648-2_28</a>].</font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">OLIV&Eacute;, A.    and CABOT, J. &quot;A Research Agenda for Conceptual Schema-Centric Development.&quot;    In Conceptual Modelling in Information Systems Engineering, edited by John Krogstie,</font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">AndreasLothe Opdahl,    and Sjaak Brinkkemper, 319-334. Springer Berlin Heidelberg. Disponible en: [<a href="http://dx.doi.org/10.1007/978-3-540-72677-7_20.%202007" target="_blank">http://dx.doi.org/10.1007/978-3-540-72677-7_20.    2007</a>].</font></p>     <!-- ref --><p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">OMG. &quot;Object    Constraint Language V2.0. Technical Report.&quot; 2006.    </font></p>     <!-- ref --><p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">PAKALNICKIENE,    E. &quot;The Orderliness and Precision in Conceptual Modelling.&quot; In, 341-350.    2007.    </font></p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">PANDEY, R. K. &quot;Object    Constraint Language (OCL): Past, Present and Future.&quot; SIGSOFT Softw. Eng.    Notes 36 (1) (January): 1-4. doi:10.1145/1921532.1921543. 2011.</font></p>     <!-- ref --><p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">P&Eacute;REZ ALONSO,    A.; PEREIRA TOLEDO, A. and GONZ&Aacute;LEZ GONZ&Aacute;LEZ, L. &quot;Generaci&oacute;n    de Restricciones de Integridad en Bases de Datos Relacionales.&quot; In. 2013.    </font></p>     <!-- ref --><p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">RICHTERS, M. &quot;Validating    UML Models and OCL Constraints.&quot; In. 2000.    </font></p>     <!-- ref --><p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">ROMERO GUILL&Eacute;N,    P. &quot;An&aacute;lisis y Dise&ntilde;o Orientado a Objetos.&quot; 2010.    </font></p>     <!-- ref --><p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">SAURA GUERRA, J.    E. &quot;Captaci&oacute;n de Restricciones de Integridad En El Modelo Entidad    Relaci&oacute;n.&quot; In. 2013.    </font> </p>     ]]></body>
<body><![CDATA[<P>&nbsp;</p>     <P>&nbsp; </p>     <P><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Recibido: 23/09/2013    <br>   Aceptado: 31/10/2013</font>       ]]></body><back>
<ref-list>
<ref id="B1">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[ALONSO]]></surname>
<given-names><![CDATA[A. P.]]></given-names>
</name>
</person-group>
<source><![CDATA[Reglas de Negocio En Bases de Datos Relacionales]]></source>
<year>2010</year>
</nlm-citation>
</ref>
<ref id="B2">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[CABOT]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
</person-group>
<source><![CDATA[Verification of UML/OCL Class Diagrams Using Constraint Programming]]></source>
<year>2008</year>
</nlm-citation>
</ref>
<ref id="B3">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[CABOT]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[GOGOLLA]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
</person-group>
<source><![CDATA[Object Constraint Language (OCL): a Definitive Guide]]></source>
<year>2012</year>
<page-range>58-90</page-range><publisher-loc><![CDATA[Berlin ]]></publisher-loc>
<publisher-name><![CDATA[Springer-Verlag]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B4">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[CABOT]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[TENIENTE]]></surname>
<given-names><![CDATA[E.]]></given-names>
</name>
</person-group>
<source><![CDATA[Computing Relevant Instances That May Violate an OCL Constraint]]></source>
<year>2005</year>
<publisher-name><![CDATA[Springer-Verlang]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B5">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[CASAS CUEVAS]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Arenas Fernández]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
</person-group>
<source><![CDATA[OCL (Object Constraint Language)]]></source>
<year>2010</year>
</nlm-citation>
</ref>
<ref id="B6">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[CHEN]]></surname>
<given-names><![CDATA[PETER PIN-SHAN]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[The Entity-relationship Model: Toward a Unified View of Data]]></article-title>
<source><![CDATA[ACM Trans. Database Syst.]]></source>
<year>1976</year>
<volume>1</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>9-36</page-range></nlm-citation>
</ref>
<ref id="B7">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Chomicki]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
</person-group>
<source><![CDATA[Minimal Change Integrity Maintenance Using Tuple Deletions]]></source>
<year>2005</year>
<volume>197</volume>
<publisher-name><![CDATA[Information and Computation]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B8">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[CODD]]></surname>
<given-names><![CDATA[E. F.]]></given-names>
</name>
</person-group>
<source><![CDATA[The Relational Model for Database Management: Version 2]]></source>
<year>1990</year>
<publisher-loc><![CDATA[Boston ]]></publisher-loc>
<publisher-name><![CDATA[Addison-Wesley Longman Publishing Co. Inc.]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B9">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[MORGAN]]></surname>
<given-names><![CDATA[T.]]></given-names>
</name>
</person-group>
<source><![CDATA[Conceptual Modelling of Information Systems]]></source>
<year>2007</year>
<publisher-loc><![CDATA[Berlín ]]></publisher-loc>
<publisher-name><![CDATA[Springer-Verlang]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B10">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[DATE]]></surname>
<given-names><![CDATA[C. J.]]></given-names>
</name>
</person-group>
<source><![CDATA[An Introduction to Database Systems]]></source>
<year>2006</year>
</nlm-citation>
</ref>
<ref id="B11">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[EBERT]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[TOBIAS]]></surname>
<given-names><![CDATA[W.]]></given-names>
</name>
</person-group>
<source><![CDATA[Interoperability Services for Models and Ontologies]]></source>
<year>2011</year>
</nlm-citation>
</ref>
<ref id="B12">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[ELSMARI]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[S]]></surname>
<given-names><![CDATA[NAVATHE]]></given-names>
</name>
</person-group>
<source><![CDATA[Database Systems: Models, Languages, Design, and Application Programming]]></source>
<year>2012</year>
</nlm-citation>
</ref>
<ref id="B13">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[GOMAA]]></surname>
<given-names><![CDATA[H.]]></given-names>
</name>
</person-group>
<source><![CDATA[Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures]]></source>
<year>2011</year>
<edition>1st</edition>
<publisher-loc><![CDATA[New York ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B14">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[HALPING]]></surname>
<given-names><![CDATA[T.]]></given-names>
</name>
</person-group>
<source><![CDATA[UML Data Models from an ORM Perspective]]></source>
<year>2003</year>
</nlm-citation>
</ref>
<ref id="B15">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[HALPING]]></surname>
<given-names><![CDATA[TERRY]]></given-names>
</name>
</person-group>
<source><![CDATA[Business Rule Modality]]></source>
<year>2006</year>
<publisher-name><![CDATA[Neumot University]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B16">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[HE]]></surname>
<given-names><![CDATA[YUJING]]></given-names>
</name>
</person-group>
<source><![CDATA[Comparison of the Modeling Languages Alloy and UML]]></source>
<year>2011</year>
<publisher-name><![CDATA[Portland State University]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B17">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[MILIAUSKAITE]]></surname>
<given-names><![CDATA[E.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Representation of Integrity Constraints in Conceptual Models]]></article-title>
<source><![CDATA[Information Technology and Control]]></source>
<year>2005</year>
<volume>34</volume>
<numero>4</numero>
<issue>4</issue>
<page-range>335-365</page-range><publisher-name><![CDATA[Kauno Technologijos Universitetas]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B18">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[MILIAUSKAITE]]></surname>
<given-names><![CDATA[E.]]></given-names>
</name>
</person-group>
<source><![CDATA[Taxonomy of Integrity Constraints in Conceptual Models]]></source>
<year>2005</year>
</nlm-citation>
</ref>
<ref id="B19">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[MORGAN]]></surname>
<given-names><![CDATA[T.]]></given-names>
</name>
</person-group>
<source><![CDATA[Business Rules and Information Systems: Aligning It with Business Goals]]></source>
<year>2002</year>
<publisher-loc><![CDATA[^eBoston Boston]]></publisher-loc>
<publisher-name><![CDATA[Addison-Wesley Longman Publishing Co., Inc.]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B20">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[OLIVÉ]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
</person-group>
<source><![CDATA[Integrity Constraints Definition in Object-Oriented Conceptual Modeling Languages]]></source>
<year>2003</year>
<publisher-name><![CDATA[Springer Berlin Heidelberg]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B21">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[OLIVÉ]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
<name>
<surname><![CDATA[CABOT]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
</person-group>
<source><![CDATA[A Research Agenda for Conceptual Schema-Centric Development]]></source>
<year>2007</year>
<page-range>319-334</page-range><publisher-name><![CDATA[Springer Berlin Heidelberg]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B22">
<nlm-citation citation-type="">
<collab>OMG</collab>
<source><![CDATA[Object Constraint Language V2.0. Technical Report]]></source>
<year>2006</year>
</nlm-citation>
</ref>
<ref id="B23">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[PAKALNICKIENE]]></surname>
<given-names><![CDATA[E.]]></given-names>
</name>
</person-group>
<source><![CDATA[The Orderliness and Precision in Conceptual Modelling.]]></source>
<year>2007</year>
<page-range>341-350</page-range></nlm-citation>
</ref>
<ref id="B24">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[PANDEY]]></surname>
<given-names><![CDATA[R. K.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Object Constraint Language (OCL): Past, Present and Future.]]></article-title>
<source><![CDATA[SIGSOFT Softw. Eng.]]></source>
<year>2011</year>
<volume>36</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>1-4</page-range></nlm-citation>
</ref>
<ref id="B25">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[PÉREZ ALONSO]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
<name>
<surname><![CDATA[PEREIRA TOLEDO]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
<name>
<surname><![CDATA[GONZÁLEZ GONZÁLEZ]]></surname>
<given-names><![CDATA[L.]]></given-names>
</name>
</person-group>
<source><![CDATA[Generación de Restricciones de Integridad en Bases de Datos Relacionales]]></source>
<year>2013</year>
</nlm-citation>
</ref>
<ref id="B26">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[RICHTERS]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
</person-group>
<source><![CDATA[Validating UML Models and OCL Constraints]]></source>
<year>2000</year>
</nlm-citation>
</ref>
<ref id="B27">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[ROMERO GUILLÉN]]></surname>
<given-names><![CDATA[P.]]></given-names>
</name>
</person-group>
<source><![CDATA[Análisis y Diseño Orientado a Objetos]]></source>
<year>2010</year>
</nlm-citation>
</ref>
<ref id="B28">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[SAURA GUERRA]]></surname>
<given-names><![CDATA[J. E.]]></given-names>
</name>
</person-group>
<source><![CDATA[Captación de Restricciones de Integridad En El Modelo Entidad Relación]]></source>
<year>2013</year>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
