Documentos de Académico
Documentos de Profesional
Documentos de Cultura
HERRAMIENTAS
HERRAMIENTAS DEDE MODELAMIENTO
MODELAMIENTO
SEMANA 7
SEMANA 2
Perfiles en UML
Vistas y Diagramas en UML
IACC-2020
1
SEMANA 7 – HERRAMIENTAS DE MODELAMIENTO
APRENDIZAJES ESPERADOS
El estudiante será capaz de:
IACC-2020
2
SEMANA 7 – HERRAMIENTAS DE MODELAMIENTO
IACC-2020
3
SEMANA 7 – HERRAMIENTAS DE MODELAMIENTO
INTRODUCCIÓN
Los perfiles son un mecanismo definido por el corresponda correctamente con lo que se
lenguaje UML que permtien la adaptación de pretende realizar.
este lenguaje a plataformas o dominios
particulares. En UML, un perfil se puede Finalmente, un valor etiquetado es una
conceptualizar como un conjunto de extensión de las propiedades de un elemento
estereotipos, restricciones y valores de UML que permite añadir nueva
etiquetados. información en la especificación del
elemento.
A través de los estereotipos se pueden crear
nuevos tipos de elementos a partir de otros Al modelar un problema o una situacion que
que ya existen. Los estereotipos están se requiera diseñar con UML, es preciso partir
definidos por un nombre y algunos elementos con la definición de un perfil. Si no existiese,
del metamodelo a los que puede asociarse. entonces se necesita definir dicho
metamodelo utilizando los mecanismos del
Por otro lado, las restricciones imponen las propio UML (clases, relaciones de herencia,
condiciones que se deben cumplir para que el asociaciones, etc.) de la forma usual como se
modelo de datos quede validado y realizaría si el objetivo nuestro no fuese
definir un perfil UML.
IACC-2020
4
SEMANA 7 – HERRAMIENTAS DE MODELAMIENTO
1. RFILES EN UML
El lenguaje de modelado de datos UML es el estándar más utilizado para especificar y documentar
cualquier sistema de forma precisa. Sin embargo, el hecho de que UML sea una notación de
propósito muy general, obliga a que muchas veces sea deseable poder contar con algún lenguaje
más específico para modelar y representar los conceptos de ciertos dominios particulares, es decir,
poder realizar adaptaciones que permitan implementar el principio de los diagramas UML, pero
ajustados a herramientas más específicas para ciertas organizaciones o procesos.
En este sentido, la solución para hacer esta integración es por medio de perfiles, estos constituyen
la forma que UML utiliza para extender su sintaxis y su semántica para expresar los conceptos
específicos de un determinado dominio de aplicación.
Para establecer perfiles en UML es necesario definir unos conceptos iniciales. Estos elementos se
describen a continuación.
1.1.1 Estereotipos:
El primer elemento que compone un perfil es el estereotipo. Este se puede definir con un nombre,
y por una serie de elementos del metamodelo sobre los que puede asociarse. Gráficamente, los
estereotipos se definen dentro de cajas, estereotipadas «stereotype».
IACC-2020
5
SEMANA 7 – HERRAMIENTAS DE MODELAMIENTO
En la imagen 1 se muestra el perfil UML denominado Ejemplo que define dos estereotipos, Colores
y Peso, que proporcionan color y peso a un elemento UML. Tal y como se indica en el Perfil, solo las
clases y las asociaciones de UML pueden colorearse, y solo las asociaciones pueden tener asociado
un peso. Observe cómo el Perfil especifica los elementos del metamodelo de UML sobre los que se
pueden asociar los estereotipos estereotipados «metaclass», mediante flechas continuas de punta
triangular en negrita.
IACC-2020
6
SEMANA 7 – HERRAMIENTAS DE MODELAMIENTO
Un valor etiquetado se define como un meta-atributo adicional que se asocia a una metaclase del
metamodelo extendido por un perfil. Todo valor etiquetado ha de contar con un nombre y un tipo,
y se asocia un determinado estereotipo.
De esta forma, al ver el ejemplo de la figura 1, el estereotipo «Peso» puede contar con un valor
etiquetado denominado “weight”, de tipo Integer, y que indicará el peso de cada asociación que
haya sido estereotipada como «Peso». Los valores etiquetados se representan de forma gráfica
como atributos de la clase que define el estereotipo.
Se pueden hacer adaptaciones del lenguaje UML para ajustarlo a necesidades particulares o para
adaptarlo a otros sistemas sin modificar la semántica original. Los perfiles son el mecanismo de
extensión en el propio lenguaje que permite definir lenguajes de modelado que son derivados de
UML.
IACC-2020
7
SEMANA 7 – HERRAMIENTAS DE MODELAMIENTO
De forma más precisa, el paquete Profiles de UML define una serie de mecanismos para extender y
adaptar las metaclases de un metamodelo cualquiera (y no solo el de UML) a las necesidades
concretas de una plataforma (como por ejemplo, al desarrollar en .NET o J2EE) o de un dominio de
aplicación (tiempo real, modelado de procesos de negocio, etc.).
El uso de otros modelos distintos a UML se produce cuando el diseñador de software o el equipo de
diseño desean extender y adaptar un metamodelo de datos. Los principales motivos para realizar
esto son:
Así, estas condiciones fundamentan el uso de perfiles definiendo de manera concreta un perfil como
un paquete UML, estereotipado «profile», que extiende a un metamodelo o a otro perfil. Tres son
los mecanismos que se utilizan para definir perfiles:
• Estereotipos (stereotypes)
• Restricciones (constraints)
• Valores etiquetados (tagged values)
IACC-2020
8
SEMANA 7 – HERRAMIENTAS DE MODELAMIENTO
En la actualidad ya hay definidos varios perfiles UML, algunos de los cuales han sido incluso
estandarizados por la OMG, como lo son los Perfiles UML para CORBA y para CCM (CORBA
Component Model), el Perfil UML para EDOC (Enterprise Distributed Object Computing), el Perfil
UML para EAI (Enterprise Application Integration), y el Perfil UML para Planificación, Prestaciones, y
Tiempo (Scheduling, Performance, and Time). Otros muchos perfiles UML se encuentran
actualmente en proceso de definición y estandarización por parte de la OMG, y se espera que
queden establecidos y definidos pronto.
También hay perfiles UML definidos por otras organizaciones y empresas fabricantes de lenguajes
de programación y herramientas que, aun no siendo estándares oficiales, están disponibles de
forma pública y son comúnmente utilizados (convirtiéndose, por tanto, en estándares “de facto”).
Un ejemplo de tales perfiles es el “UML/EJB Mapping Specification”, que ha sido definido por JCP
(Java Community Process).
Se dispone, por otro lado, de perfiles UML para determinados lenguajes de programación, como
pueden ser Java o C#. Cada uno de estos perfiles define una forma concreta de usar UML en un
entorno particular. Así, por ejemplo, el perfil UML para CORBA define una forma de usar UML para
modelar interfaces y artefactos de CORBA, mientras que el perfil UML para Java define una forma
concreta de modelar código Java usando UML.
A modo de resumen, los perfiles que ya están definidos y aceptados por UML son:
IACC-2020
9
SEMANA 7 – HERRAMIENTAS DE MODELAMIENTO
Para definir la semántica de los elementos de un perfil, se presenta la siguiente tabla con los
componentes, de acuerdo con IBM (2005).
En la tabla anterior, se enumeraron los elementos del metamodelo de UML 2.0 que se usan como
metaclases para estereotipos del perfil de UML.
A continuación, se presenta la semántica y la notación de cada elemento de acuerdo con IBM (2005).
IACC-2020
10
SEMANA 7 – HERRAMIENTAS DE MODELAMIENTO
Entre las restricciones de los mensajes se pueden mencionar que estos no tendrán operaciones de
propiedad ni ningún comportamiento de propiedad. Además, todas sus propiedades serán públicas.
• Accesorio de Mensaje: este estereotipo se usa para indicar que algún componente de un
mensaje es un accesorio del mismo (lo contrario de una parte directa del propio mensaje).
En general, este probablemente no se utilice mucho en las actividades de diseño de nivel
superior, pero en muchos procesos es importante diferenciar los datos adjuntados de los
datos del mensaje incrustados. Por ejemplo, un servicio de catálogo puede devolver detalles
generales de producto como parte del mensaje estructurado y las imágenes como
accesorios del mensaje; esto también nos permite indicar que la codificación de las
imágenes es binaria (al contrario de la codificación textual del mensaje principal).
IACC-2020
11
SEMANA 7 – HERRAMIENTAS DE MODELAMIENTO
• Conector: de acuerdo con IBM (2005), el conector es un canal que representa la vía de
acceso de comunicación entre dos servicios. Es importante observar que la interacción se
puede producir a través de un canal, pero el canal no representará ninguna interacción
particular. En el mundo de los servicios web, cada servicio indica los vínculos asociados con
él (para que un cliente pueda tener acceso a él). En un perfil de modelado, se indica el
vínculo en la comunicación entre servicios o entre un servicio y los clientes. De esta forma,
puede ser flexible en la comprensión de los requisitos de vinculación.
IACC-2020
12
SEMANA 7 – HERRAMIENTAS DE MODELAMIENTO
IACC-2020
13
SEMANA 7 – HERRAMIENTAS DE MODELAMIENTO
• Clasificador: cualquier clasificador (clase, componente, etc.) puede actuar como cliente de
un servicio, e incluir otro servicio. Aunque este estereotipo sea definitivamente más
opcional, puede ser útil en la identificación de elementos de un modelo (que no sean ellos
mismos servicios) como los clientes de servicios. Por otro lado, puede ser una carga y no
usarse.
• Pasarela de servicio: una pasarela de servicio se parece a un servicio, pero solo está
disponible para uso en particiones y no en proveedores de servicios. Una pasarela actúa
como un servicio proxy y se puede usar para mediar protocolos o indicar la interfaz
disponible para una partición. Por ejemplo, podríamos indicar que, aunque un determinado
número de servicios se implementa dentro de una partición, solo algunos están disponibles
para uso fuera de la partición y, por lo tanto, se proporcionan pasarelas para estos servicios.
Esto impide que otros servicios o particiones se comuniquen con los servicios que no estén
expuestos a través de pasarelas.
• Partición de Servicio: de acuerdo con IBM (2005), una partición representa un límite lógico
o físico del sistema. Es opcional modelar particiones, pero es útil. Por ejemplo, las
particiones podrían usarse para representar niveles web, empresariales o de datos de una
aplicación de nivel tradicional. Las particiones podrían también usarse para indicar más
fronteras físicas (como, por ejemplo, mi centro de datos principal, mi sitio secundario, mi
sitio de clientes, socios, etc.), en cuyo caso, el cruce de particiones podría tener restricciones
especiales de seguridad, protocolos permitidos, ancho de banda, etc.
Una partición solo puede tener propiedades que representen a las partes anidadas, sean
servicios u otras particiones. Observe que esta es una restricción (ningún otro elemento
puede actualmente representarse en una partición).
IACC-2020
14
SEMANA 7 – HERRAMIENTAS DE MODELAMIENTO
Una partición también tiene la noción de ser "estricta", si una partición indica que toda la
comunicación entre ella y las demás particiones debe dirigirse a través de pasarelas
clasificadas, entonces se dirá que es una partición estricta.
• Proveedor de Servicios: en concordancia con lo que plantea IBM (2005), “el proveedor de
servicios es un elemento de software que proporciona uno o más servicios”. En términos de
modelado, uno debería esperar ver un componente UML aquí, sin embargo, tal restricción
parece arbitraria y, por lo tanto, la metaclase se anota como clase para mayor flexibilidad.
Un proveedor de servicios tiene una propiedad que captura información acerca de su
ubicación, aunque el significado de esto sea dependiente de implementación. La clase que
actúa como proveedor de servicios puede no exponer atributos u operaciones
directamente, solo se pueden proporcionar puertos públicos (estereotipados como servicio)
y estos se clasifican mediante especificaciones de servicios.
IACC-2020
15
SEMANA 7 – HERRAMIENTAS DE MODELAMIENTO
Más allá de definir las herramientas y los lenguajes para realizar perfiles, es importante
conocer los pasos que permitirán elaborarlos independientemente de la herramienta que
se utilice:
IACC-2020
16
SEMANA 7 – HERRAMIENTAS DE MODELAMIENTO
1.3. VALORES
Tal como se definió anteriormente, los valores etiquetados son elementos fundamentales de un
perfil en UML. Las características de un valor etiquetado son:
IACC-2020
17
SEMANA 7 – HERRAMIENTAS DE MODELAMIENTO
IACC-2020
18
SEMANA 7 – HERRAMIENTAS DE MODELAMIENTO
COMENTARIO FINAL
Los perfiles en UML son, sin duda, un mecanismo muy adecuado para la definición de lenguajes
específicos de dominio cuya semántica sea una extensión de la de UML. También hemos ilustrado
la importancia de los perfiles UML dentro del desarrollo de aplicaciones guiado por modelos
específicos, donde el diseñador cada vez tiene más protagonismo frente a la codificación y diseño
del modelado de datos.
IACC-2020
19
SEMANA 7 – HERRAMIENTAS DE MODELAMIENTO
REFERENCIAS
IBM (2005). Perfil de UML 2.0 para servicios de software. Recuperado de:
https://cgrw01.cgr.go.cr/rup/RUP.es/LargeProjects/soa.rup_soma/guidances/whitepapers/r
esources/uml2_profile_for_software_services.htm
IACC-2020
20
SEMANA 7 – HERRAMIENTAS DE MODELAMIENTO
IACC-2020
21