28.06.2014 Views

Perfil UML para el modelado visual de requisitos difusos - Dialnet

Perfil UML para el modelado visual de requisitos difusos - Dialnet

Perfil UML para el modelado visual de requisitos difusos - Dialnet

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Enl@ce: Revista Venezolana <strong>de</strong> Información, Tecnología y Conocimiento<br />

Año 6: No. 3, Septiembre-Diciembre 2009, pp. 29-46<br />

<strong>Perfil</strong>es <strong>UML</strong><br />

<strong>UML</strong> (Unified Mod<strong>el</strong>ing Language), <strong>de</strong>finido<br />

por Booch, Rumbaugh y Jacobson (2005), es<br />

un lenguaje <strong>de</strong> propósito general usado <strong>para</strong> especificar,<br />

<strong>visual</strong>izar y construir artefactos <strong>de</strong> sistemas<br />

<strong>de</strong> software. Un artefacto se correspon<strong>de</strong> a<br />

un mod<strong>el</strong>o o pieza <strong>de</strong> información producido en <strong>el</strong><br />

proceso <strong>de</strong> <strong>de</strong>sarrollo <strong>de</strong> software.<br />

Dado que <strong>UML</strong> es un lenguaje <strong>de</strong> propósito<br />

general, la <strong>de</strong>scripción <strong>de</strong> dominios <strong>de</strong> aplicación<br />

específicos requiere <strong>de</strong> la <strong>de</strong>finición <strong>de</strong> un nuevo<br />

lenguaje que <strong>de</strong>scribe <strong>el</strong> metamod<strong>el</strong>o, utilizando<br />

<strong>el</strong> estándar MOF (OMG, 2006b), o la extensión<br />

propiamente <strong>de</strong> <strong>UML</strong> a través <strong>de</strong> un mecanismo<br />

<strong>de</strong>nominado <strong>Perfil</strong>es <strong>UML</strong>. Los perfiles <strong>UML</strong> proveen<br />

un mecanismo <strong>de</strong> extensión genérico <strong>para</strong><br />

construir mod<strong>el</strong>os <strong>UML</strong> en dominios particulares.<br />

Están basados en estereotipos, restricciones y valores<br />

etiquetados adicionales que son aplicados a los<br />

<strong>el</strong>ementos o r<strong>el</strong>aciones <strong>de</strong> un diagrama. En primer<br />

lugar, un estereotipo es un nuevo <strong>el</strong>emento d<strong>el</strong> lenguaje<br />

extendido que se <strong>de</strong>fine sobre algún <strong>el</strong>emento<br />

pre-existente <strong>de</strong> <strong>UML</strong>. Gráficamente, los estereotipos<br />

se <strong>de</strong>notan entre comillas francesas («stereotype»)<br />

<strong>de</strong>ntro <strong>de</strong> cajas. En segundo lugar, los estereotipos<br />

pue<strong>de</strong>n tener restricciones que imponen condiciones<br />

sobre los <strong>el</strong>ementos estereotipados. Para<br />

la especificación <strong>de</strong> restricciones pue<strong>de</strong> utilizarse<br />

<strong>el</strong> lenguaje natural o un lenguaje formal como OCL<br />

(Object Constraint Language) propuesto por OMG<br />

(2006a). En tercer lugar, los valores etiquetados<br />

son meta-atributos asociados a una metaclase extendida<br />

por <strong>el</strong> perfil. Un valor etiquetado se caracteriza<br />

por un nombre y un tipo, y se representa como<br />

un atributo <strong>de</strong> la clase que <strong>de</strong>fine <strong>el</strong> estereotipo.<br />

Aunque la <strong>de</strong>finición <strong>de</strong> un nuevo lenguaje<br />

permite una mayor expresividad <strong>para</strong> mod<strong>el</strong>ar<br />

los conceptos <strong>de</strong> dominios particulares, se adoptará<br />

la opción <strong>de</strong> perfiles como solución. La solución<br />

basada en perfiles tiene la ventaja <strong>de</strong> que<br />

las herramientas <strong>de</strong> <strong>UML</strong> existentes manejan <strong>de</strong><br />

forma natural los conceptos d<strong>el</strong> dominio especifico<br />

puesto que la extensión <strong>de</strong> <strong>UML</strong> está basada en<br />

<strong>el</strong> metamod<strong>el</strong>o estándar <strong>de</strong> <strong>UML</strong>. Por lo tanto, se<br />

propone exten<strong>de</strong>r <strong>UML</strong> con un perfil que permite<br />

representar y <strong>visual</strong>izar los <strong>requisitos</strong> <strong>difusos</strong>. El<br />

perfil propuesto se basa en estereotipos y en <strong>el</strong> uso<br />

d<strong>el</strong> lenguaje OCL <strong>para</strong> la especificación formal <strong>de</strong><br />

tales <strong>requisitos</strong>.<br />

Lenguaje OCL<br />

OCL (Object Constraint Language) es un<br />

lenguaje formal, propuesto por OMG (2006a),<br />

usado <strong>para</strong> <strong>de</strong>scribir expresiones sobre <strong>UML</strong>. Típicamente,<br />

estas expresiones mod<strong>el</strong>an condiciones<br />

invariantes que <strong>el</strong> sistema <strong>de</strong>be cumplir, pero<br />

también pue<strong>de</strong>n ser usadas <strong>para</strong> mod<strong>el</strong>ar pre y<br />

post condiciones, así como también, consultas<br />

sobre los objetos d<strong>el</strong> mod<strong>el</strong>o. Las restricciones en<br />

OCL pue<strong>de</strong>n ser colocadas o no <strong>de</strong>ntro d<strong>el</strong> mod<strong>el</strong>o<br />

gráfico. Cuando <strong>el</strong> mod<strong>el</strong>o no es suficientemente<br />

expresivo y/o se quiere evitar estados in<strong>de</strong>seables<br />

d<strong>el</strong> sistema, OCL permite la especificación formal<br />

<strong>de</strong> invariantes <strong>de</strong> los objetos. Los invariantes son<br />

expresiones lógicas cuyo resultado <strong>de</strong>be ser verda<strong>de</strong>ro<br />

<strong>para</strong> todas las instancias <strong>de</strong> un tipo.<br />

Las expresiones OCL son <strong>de</strong> la forma<br />

context TypeName inv Expression, siendo<br />

context e inv palabras reservadas d<strong>el</strong> lenguaje;<br />

TypeName <strong>el</strong> nombre <strong>de</strong> la clase que representa<br />

35

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!