<ul><li>Los Perfiles UML son una herramienta para extender el Lenguaje UML, los cuales permiten construir modelos de UML p...
<ul><li>Un perfil se define en un paquete UML, estereotipado como «profile», y su objetivo es extender un metamodelo u otr...
<ul><li>El metamodelo UML define la notación de un modo riguroso, a través de diagramas de la propia notación y con OCL  (...
<ul><li>UML utiliza los estereotipos para un par de propósitos. En primer lugar, es para indicar qué elemento del metamode...
<ul><li>Los estereotipos se muestran de dos maneras. Ya sea una anotación de texto que se adjunta a la MetaClase que va a ...
La clase MQueue es estereotipada - se trata de un tipo &quot;especial&quot; de una clase llamada «MessageQueue». La clase ...
<ul><li>Hasta cierto punto, los estereotipos pueden ser usados para indicar que algo está en una clase de entidad en su do...
<ul><li>El valor de la etiqueta muestra la definición del tipo de información añadida al estereotipo. Los valores reales d...
<ul><li>Por ejemplo, un estereotipo «Semáforo» podría tener un valor etiquetado llamado &quot;capacidad&quot;, que indica ...
<ul><li>Teniendo en cuenta qué podemos utilizar para especificar las restricciones de los valores relacionados con las eti...
<ul><li>Un perfil es un metamodelo de dominio de interés particular, a través de un conjunto coherente de estereotipos  UM...
Figura3. Representación de Valores Etiquetados en hojas de propiedades Figura4. Representación de Valores Etiquetados con ...
<ul><li>La versión 2.0 de UML incluye varios mecanismos para extender y adaptar las metaclases de UML a las necesidades co...
<ul><li>UML 2.0 señala varias razones por las que un diseñador puede querer extender y adaptar un metamodelo existente, se...
<ul><li>Un Perfil se define en un paquete UML, estereotipado «profile», que extiende a un metamodelo o a otro Perfil. Tres...
<ul><li>En primer lugar, un estereotipo viene definido por un nombre, y por una serie de elementos del metamodelo sobre lo...
<ul><li>Finalmente, un valor etiquetado es un meta-atributo adicional que se asocia a una metaclase del metamodelo extendi...
<ul><li>También hay Perfiles UML definidos por otras organizaciones y empresas fabricantes de lenguajes de programación y ...
<ul><li>La especificación de UML 2.0 [7] sólo se limita a definir el concepto de Perfil y sus contenidos. A la hora de def...
<ul><li>Es importante tener claro cuáles son los elementos del metamodelo de UML que se va a extender, sobre los que es po...
<ul><li>A partir de este metamodelo, el Perfil UML que va a representar va a estar descrito como un paquete UML, estereoti...
<ul><li>Como puede observarse, dicho Perfil define cuatro estereotipos, correspondientes a las clases y asociaciones defin...
<ul><li>Es importante observar los contextos para los que se definen dichas restricciones, que son elementos del metamodel...
<ul><li>La versión de UML actualmente estandarizada y soportada por herramientas comerciales es la 1.5. Sin embargo, la nu...
Próxima SlideShare
Cargando en…5
×

Perfiles UML - Eliana Concha

3.098 visualizaciones

Publicado el

0 comentarios
2 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
3.098
En SlideShare
0
De insertados
0
Número de insertados
9
Acciones
Compartido
0
Descargas
0
Comentarios
0
Recomendaciones
2
Insertados 0
No insertados

No hay notas en la diapositiva.

Perfiles UML - Eliana Concha

  1. 2. <ul><li>Los Perfiles UML son una herramienta para extender el Lenguaje UML, los cuales permiten construir modelos de UML para dominios particulares. Ellos se basan en estereotipos y valores etiquetados adicionales que son aplicados a Elementos, Atributos, Métodos, Vínculos, Finales de Vínculo,etc. Un perfil es una colección de extensiones que juntas describen algún problema de modelado en particular y facilitan la construcción de modelos en ese dominio. </li></ul>
  2. 3. <ul><li>Un perfil se define en un paquete UML, estereotipado como «profile», y su objetivo es extender un metamodelo u otro perfil. </li></ul><ul><li>Los perfiles UML constituyen el mecanismo que proporciona el propio UML para extender su sintaxis y su semántica para expresar los conceptos específicos de un determinado dominio de apli- cación. </li></ul>
  3. 4. <ul><li>El metamodelo UML define la notación de un modo riguroso, a través de diagramas de la propia notación y con OCL (Object Constraint Language). </li></ul><ul><li>Es en el metamodelo donde se define el lenguaje que sirve para especificar los modelos que vamos a crear los usuarios de UML. En otras palabras, el metamodelo sirve para describir los elementos que van a componer nuestros diagramas. </li></ul><ul><li>Ejemplo de un metamodelo: </li></ul>
  4. 5. <ul><li>UML utiliza los estereotipos para un par de propósitos. En primer lugar, es para indicar qué elemento del metamodelo está describiendo un elemento del modelo en un diagrama. Por ejemplo, una clase Caja muestra las operaciones dentro de la interfaz, y el estereotipo que identifica a esta interfaz es una interfaz y no una clase. El segundo uso principal de un estereotipo es para indicar un tipo especializado de un elemento de un metamodelo dentro de un perfil definido. No se le permite añadir nuevos elementos al metamodelo de un perfil-deben ser de especialidades existentes en las metaclases del metamodelo. </li></ul>
  5. 6. <ul><li>Los estereotipos se muestran de dos maneras. Ya sea una anotación de texto que se adjunta a la MetaClase que va a ser estereotipada, como una clase, relación, o nodo, o el icono por defecto para la MetaClase se sustituye por un icono especial. La Figura1. muestra dos enfoques que se están utilizando. Se utilizan varios estereotipos. La primera es una clase «activa». Un clase «activa» propietaria de la raíz de un hilo y es la forma en que la concurrencia de un modelo de un sistema se construye con UML, instancias contenidas en la relación de composición (por ejemplo, las instancias de la clase MQueue en la figura) se ejecutan en el contexto del hilo de la instancia de la clase activa. UML 1.x utiliza una clase con un tablero grueso como en el icono de este tipo de clase, mientras que en UML 2.0 en el icono es una clase con un cuadro de doble línea de frontera a la izquierda y la derecha. Ambas formas se muestran en la Figura1. </li></ul>
  6. 7. La clase MQueue es estereotipada - se trata de un tipo &quot;especial&quot; de una clase llamada «MessageQueue». La clase MQueue también contiene, a través de la composición, una clase de bloqueo, que también es estereotipada como un «Semáforo». Los mismos Estereotipos, utilizando la opción de notación textual, también se muestran en la figura1. La clase MotorController es también estereotipadas como un «motor». Por último, cualquier MetaClase puede ser estereotipada - el nodo que se muestra en la figura es estereotipado como un «procesador», éstos pueden aplicarse a cualquier tipo de MetaClase en UML. Existen estereotipos para que los usuarios (y la construcción de perfiles de personas) puedan añadir su dominio de conceptos específicos a su lenguaje de modelado de forma fácil y ligera.   Figura1. Estereotipos UML
  7. 8. <ul><li>Hasta cierto punto, los estereotipos pueden ser usados para indicar que algo está en una clase de entidad en su dominio conceptual del entorno. El uso de estos estereotipos puede aclarar el modelo de dominio a los expertos que tratan de construir o entender su sistema. Sin embargo, los estereotipos son más útiles cuando contienen valores especiales que se aplican (sólo) para ese tipo de estereotipo. La primera forma en que los estereotipos son personalizados es mediante la adición de lo que se denomina una etiqueta o valor de propiedad. Una etiqueta es un valor de propiedad par nombre-valor. Es común para identificar los tipos de valores especiales que se aplican a este estereotipo y no a otros, y para capturalos en el modelo. </li></ul><ul><li>  </li></ul>
  8. 9. <ul><li>El valor de la etiqueta muestra la definición del tipo de información añadida al estereotipo. Los valores reales de las instancias de todo el estereotipo (por ejemplo, usar clases basadas en el estereotipo) se añaden mediante la asignación o el uso de las restricciones marcadas en los valores anclados en el estereotipo. </li></ul><ul><li>  </li></ul><ul><li>Una restricción es una norma definida por el usuario o regla de la corrección. UML tiene muchas limitaciones en la definición del metamodelo, del uso legal de las clases, las asociaciones, y otros elementos del modelo. Sin embargo, estos son necesariamente generalizadas para que UML se puede utilizar para modelar sistemas en múltiples ámbitos. Una restricción es una forma en la que un usuario puede expresar una limitación que tiene sentido en el dominio de un elemento del modelo que se dibuja. La Figura2. muestra un uso típico de las restricciones y la combinación de valores etiquetados que se definen para el estereotipo. </li></ul>
  9. 10. <ul><li>Por ejemplo, un estereotipo «Semáforo» podría tener un valor etiquetado llamado &quot;capacidad&quot;, que indica el número de usuarios activos de un recurso. En la figura, el valor de la etiqueta está explícitamente establecido en 1. Del mismo modo, un «MessageQueue» podría tener un valor etiquetado maxsize, una clase «activa» puede tener etiquetas como IsPeriodic, período, etc. Un nodo «processor» puede tener valores etiquetados como el tamaño de la memoria, la velocidad de la CPU, etc. Una restricción es la forma clásica para especificar valores concretos para las etiquetas que son válidos para un estereotipo. Las restricciones, como puede verse en la figura, normalmente se muestran en el interior de la nota y dentro de cajas de llaves para establecer fuera de ellos semántica sin comentarios. </li></ul>Figura2. Valores etiquetados y restricciones
  10. 11. <ul><li>Teniendo en cuenta qué podemos utilizar para especificar las restricciones de los valores relacionados con las etiquetas, ¿cómo podemos definir las etiquetas? Hay dos maneras. La primera, se muestra en la Figura3., es utilizar una hoja de propiedades que muestra de una manera sensible al contexto, las etiquetas que están disponibles para un determinado estereotipo. La segunda, se muestra en la Figura4., es mostrar las etiquetas en un compartimento de la etiqueta «etiquetas». Cualquiera se puede utilizar, dependiendo de su herramienta de diseño UML y las preferencias personales. </li></ul>
  11. 12. <ul><li>Un perfil es un metamodelo de dominio de interés particular, a través de un conjunto coherente de estereotipos UML, asociados con los valores etiquetados que se utilizan a través de restricciones, posiblemente acompañado de un modelo específico para la biblioteca de dominio (s) de interés. La limitación de esta definición es que todos los elementos de este metamodelo de dominio debe ser expresado en las MetaClases predefinidas de los estereotipos UML, tales como clase, de asociación, de nodo, componente, y así sucesivamente. A un perfil no se le permite &quot;romper&quot; la semántica de UML normal, no obstante, se permitirá subconjuntos de ella, éstos se especializan, y amplían, así como también se pueden añadir anotaciones, según sea necesario. </li></ul><ul><li>  </li></ul>
  12. 13. Figura3. Representación de Valores Etiquetados en hojas de propiedades Figura4. Representación de Valores Etiquetados con compartimientos especializados .
  13. 14. <ul><li>La versión 2.0 de UML incluye varios mecanismos para extender y adaptar las metaclases de UML a las necesidades concretas de una plataforma como puede ser .NET o J2EE o de un dominio de aplicación Tiempo Real, modelado de procesos de negocio, etc. </li></ul><ul><li>Actualmente ya hay definidos varios Perfiles UML, algunos de los cuales han sido incluso estandarizados por la OMG: 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). Muchos otros Perfiles UML se encuentran actualmente en proceso de definición y estandarización por parte de la OMG, y se espera que vean la luz muy pronto. </li></ul>
  14. 15. <ul><li>UML 2.0 señala varias razones por las que un diseñador puede querer extender y adaptar un metamodelo existente, sea el del propio UML, el de CWM, o incluso el de otro Perfil: </li></ul><ul><li>Disponer de una terminología y vocabulario propio de un dominio de aplicación o de una plataforma de implementación concreta. </li></ul><ul><li>Definir una sintaxis para construcciones que no cuentan con una notación propia (como sucede con las acciones). </li></ul><ul><li>Definir una nueva notación para símbolos ya existentes, más acorde con el dominio de la aplicación objetivo. </li></ul><ul><li>Añadir cierta semántica que no aparece determinada de forma precisa en el metamodelo. </li></ul><ul><li>Añadir restricciones a las existentes en el metamodelo, restringiendo su forma de utilización. </li></ul><ul><li>Añadir información que puede ser útil a la hora de transformar el modelo a otros modelos, o a código. </li></ul>
  15. 16. <ul><li>Un Perfil se define en 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), y valores etiquetados (tagged values). </li></ul><ul><li>Para ilustrar estos conceptos utilizaremos un pequeño ejemplo de Perfil UML, que va a definir dos nuevos elementos que pueden ser añadidos a cualquier modelo UML: colores y pesos . </li></ul>
  16. 17. <ul><li>En primer lugar, un estereotipo viene definido por 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». Se puede observar 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. </li></ul><ul><li>A los estereotipos es posible asociarles restricciones, que imponen condiciones sobre los elementos del metamodelo que han sido estereotipados. De esta forma pueden describirse, entre otras, las condiciones que ha de verificar un modelo “bien formado” de un sistema en un dominio de aplicación. Por ejemplo, supongamos que el metamodelo de el dominio de aplicación impone la restricción de que si dos o más clases están unidas por una asociación coloreada, el color de las clases debe coincidir con el de la asociación. </li></ul><ul><li> context UML::InfrastructureLibrary::Core::Constructs::Association </li></ul><ul><li> inv : self.isStereotyped(“Colored”) implies </li></ul><ul><li>self.connection-> forAll (isStereotyped(“Colored”) implies color=self.color) </li></ul>
  17. 18. <ul><li>Finalmente, un valor etiquetado es 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, el estereotipo «Weighed» 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 «Weighed». Los valores etiquetados se representan de forma gráfica como atributos de la clase que define el estereotipo. </li></ul><ul><li>Es importante señalar que estos tres mecanismos de extensión no son de primer nivel, es decir, no permiten modificar metamodelos existentes, sólo añadirles elementos y restricciones, pero respetando su sintaxis y semántica original. Sin embargo, sí que son muy adecuados para particularizar un metamodelo para uno o varios dominios o plataformas existentes. Cada una de estas particularizaciones o adaptaciones viene definida por un Perfil, que agrupa los estereotipos, restricciones, y valores etiquetados propios de tal adaptación. </li></ul>
  18. 19. <ul><li>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). También se dispone 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. </li></ul>
  19. 20. <ul><li>La especificación de UML 2.0 [7] sólo se limita a definir el concepto de Perfil y sus contenidos. A la hora de definir un Perfil UML se deben seguir los siguientes pasos: </li></ul><ul><li>Antes de comenzar, es preciso disponer de la correspondiente definición del metamodelo de la plataforma o dominio de aplicación a modelar con un Perfil. Si no existiese, entonces se debe definir dicho metamodelo utilizando los mecanismos del propio UML (clases, relaciones de herencia, asociaciones, etc.), de la forma usual como se haría si el objetivo no fuese definir un perfil UML. </li></ul><ul><li>Si ya se dispone del metamodelo del dominio, se pasa a definir el Perfil. Dentro del paquete «profile» se incluye un estereotipo por cada uno de los elementos del metamodelo que se desea incluir en el Perfil. Estos estereotipos tendrán el mismo nombre que los elementos del metamodelo, estableciéndose de esta forma una relación entre el metamodelo y el Perfil. </li></ul>
  20. 21. <ul><li>Es importante tener claro cuáles son los elementos del metamodelo de UML que se va a extender, sobre los que es posible aplicar un estereotipo. Ejemplo de tales elementos son las clases, sus asociaciones, sus atributos, las operaciones, las transiciones, los paquetes, etc. </li></ul><ul><li>Definir como valores etiquetados de los elementos del Perfil los atributos que aparezcan en el metamodelo. Incluir la definición de sus tipos, y sus posibles valores iniciales. </li></ul><ul><li>Definir las restricciones que forman parte del Perfil, a partir de las restricciones del dominio. </li></ul><ul><li>Ejemplo: En primer lugar, se quiere modelar las conexiones entre los elementos de ciertos sistemas de información según la topología en estrella, donde los nodos centrales de cada estrella pueden estar conectados entre sí. En este dominio se definen nodos (Node), conectados a través de arcos que pueden ser: locales (LocalEdge) si conectan nodos de una misma estrella con su nodo central (MainNode), o bien remotos (Edge) si conectan nodos centrales entre sí. Cada nodo identifica su posición mediante una cadena de caracteres (location). Como restricción, se impone que todos los nodos de una misma estrella compartan una misma posición geográfica. El metamodelo que describe tal dominio de aplicación puede ser descrito en UML como sigue: </li></ul>
  21. 22. <ul><li>A partir de este metamodelo, el Perfil UML que va a representar va a estar descrito como un paquete UML, estereotipado «profile»: </li></ul>
  22. 23. <ul><li>Como puede observarse, dicho Perfil define cuatro estereotipos, correspondientes a las clases y asociaciones definidas en el metamodelo, así como las metaclases de UML sobre las que pueden aplicarse tales estereotipos. Las metaclases corresponden al metamodelo a ser extendido, en este caso al metamodelo de UML. </li></ul><ul><li>El estereotipo Node tiene asociado además un valor etiquetado (location), de tipo String. </li></ul><ul><li>Además de los estereotipos y los valores etiquetados, el tercer elemento de un Perfil lo constituyen las restricciones. En este caso, las restricciones del metamodelo se traducen en las siguientes restricciones del Perfil: </li></ul><ul><li>context UML::InfrastructureLibrary::Core::Constructs::Class </li></ul><ul><li>inv : -- Nodes should be locally connected to exactly one MainNode </li></ul><ul><li> self.isStereotyped(“Node”) implies </li></ul><ul><li>self.connection->select(isStereotyped(“LocalEdge”))-> size = 1 and </li></ul><ul><li>self.connection-> select (isStereotyped(“Edge”))-> isEmpty </li></ul><ul><li>context UML::InfrastructureLibrary::Core::Constructs::Association </li></ul><ul><li>inv : self.isStereotyped(“LocalEdge”) implies </li></ul><ul><li>self.connection-> select (participant.isStereotyped(“Node”) or </li></ul><ul><li> participant.isStereotyped(“MainNode”) ) -> </li></ul><ul><li> forAll (n1, n2 | n1.location = n2.location) </li></ul><ul><li>inv : self.isStereotyped(“LocalEdge”) implies </li></ul><ul><li> self.connection-> exists (participant.isStereotyped(“MainNode”) and multiplicity.min=1 and multiplicity.max=1) </li></ul><ul><li>inv : self.isStereotyped(“Edge”) implies </li></ul><ul><li> self.connection->select(participant.isStereotyped(“Node”))-> isEmpty and </li></ul><ul><li> self.connection->select(participant.isStereotyped(“MainNode”) ) -> </li></ul><ul><li> forAll(n1, n2 | n1.location <> n2.location) </li></ul>
  23. 24. <ul><li>Es importante observar los contextos para los que se definen dichas restricciones, que son elementos del metamodelo de UML que estamos adaptando a nuestro modelo. De esta forma, estamos añadiendo restricciones semánticas sobre ellos. La gran ventaja del uso de Perfiles es que estas restricciones van a poder comprobarse en el modelo de un sistema final conforme a un Perfil, sobre aquellas asociaciones que han sido estereotipadas con los estereotipos de dicho Perfil. </li></ul><ul><li>Una vez se ha definido un Perfil UML, la forma de utilizarlo en una aplicación concreta se representa mediante una relación de dependencia (estereotipada «apply») entre el paquete UML que contiene la aplicación, y los paquetes que definen los Perfiles UML que se desean utilizar. </li></ul><ul><li>Ejemplo: el siguiente diagrama muestra una aplicación que hace uso de los dos Perfiles UML que se han definido con anterioridad. </li></ul>
  24. 25. <ul><li>La versión de UML actualmente estandarizada y soportada por herramientas comerciales es la 1.5. Sin embargo, la nueva versión 2.0 está definida y en proceso de adopción como estándar de OMG. Esta nueva versión es mucho más completa y ofrece numerosas ventajas respecto a la 1.5, mejorando muchas de sus limitaciones. </li></ul><ul><li>las herramientas actuales permiten definir y usar Perfiles UML únicamente de forma gráfica sin que aún soporten de forma adecuada la verificación de restricciones asociadas a estereotipos. Por lo tanto, un usuario que especifique un sistema a partir de un Perfil UML creado con una herramienta dada, no podrá estar completamente seguro de si su sistema es consistente con dicho perfil. Nos toca esperar que surjan herramientas que permitan definir Perfiles UML de acuerdo a la versión 2.0 y que permitan verificar las restricciones asociadas a los perfiles, gestionando de forma adecuada la definición de nuevos estereotipos y etiquetas. Igualmente estas herramientas deberían promover la definición y uso de perfiles UML como una buena práctica para la especificación e implementación de sistemas. </li></ul>

×