Un diagrama de perfiles permite extender UML para su uso con una plataforma de programación en particular (como el framework .NET de Microsoft o la plataforma Java Enterprise Edition), o modelar sistemas destinados a ser usados en un dominio en particular (por ejemplo, medicina, servicios financieros o ingeniería especializada).
Las herramientas de generación de código pueden usar perfiles para generar código dirigido a una plataforma o entorno específico (la forma precisa en que se implementan los perfiles depende en cierto modo de la herramienta de modelado UML utilizada).
Para comprender cómo funcionan los perfiles y el diagrama de perfiles es necesario comprender la naturaleza fundamental de UML, ya que se trata de un metamodelo. La palabra modelo implica una abstracción de algún sistema del mundo real. La palabra meta implica una abstracción adicional de cualquier concepto al que lo apliquemos. La palabra metadatos se usa a menudo en el contexto de una base de datos, por ejemplo, y en términos simples se entiende que hace referencia a datos sobre los datos. Por lo tanto, un metamodelo (como podrás deducir) describe las propiedades de un modelo, es como un modelo de un modelo. Un modelo está limitado por su metamodelo de la misma manera que un software está limitado por la gramática y la sintaxis del lenguaje de programaciónque ha sido utilizado a la hora de escribirlo. Cada elemento del Lenguaje de modelado unificado está definido por una metaclase incluida en el metamodelo.
Elementos de un diagrama de perfiles
Los nodos y elementos gráficos utilizados en los diagramas de perfil son: perfil, metaclase, estereotipo, extensión, referencia y aplicación de perfil.
Perfil
Un perfil es un paquete que extiende a un metamodelo de referencia (en este caso podría ser UML) permitiendo adaptar el metamodelo con directrices que son específicas de un dominio, plataforma o método de desarrollo de software en particular. En otras palabras, el perfil es un mecanismo de extensión ligero al estándar UML.
Un perfil introduce varias restricciones en el metamodelo ordinario mediante el uso de las metaclases definidas en este paquete. La construcción de la extensión primaria es el estereotipo, que se define como parte del perfil y extiende algún elemento de la metaclase. No es posible definir un perfil independiente, sin su metamodelo de referencia.
Un perfil utiliza la misma notación que un paquete del diagrama de paquetes, con la adición de que la palabra clave «perfil» se muestra antes o encima del nombre del paquete.
Metaclase
Una metaclase es una clase de perfiles y un elemento empaquetable que puede extenderse a través de uno o más estereotipos.
Se puede mostrar una metaclase con el estereotipo opcional «Metaclase» que se muestra arriba o antes de su nombre (toda la «metaclase» en minúsculas se usó en versiones UML anteriores a 2.4).
La metaclase puede extenderse por uno o más estereotipos utilizando un tipo especial de asociación: extensión.
Estereotipo
Un estereotipo es una clase de perfil que define cómo una metaclase existente puede extenderse como parte de un perfil. Permite el uso de una plataforma o una terminología específica del dominio o una notación en lugar de, o además de, los utilizados para la metaclase extendida.
Un estereotipo no puede usarse solo, sino que siempre debe usarse con una de las metaclases que extiende. El estereotipo no puede extenderse por otro estereotipo.
Un estereotipo usa la misma notación que una clase, con la palabra clave «estereotipo» mostrada antes o encima del nombre del estereotipo. Los nombres de estereotipos no deben coincidir con los nombres de palabras clave para el elemento del modelo extendido.
Dado que el estereotipo es una clase, puede tener propiedades. Las propiedades de un estereotipo se conocen como definiciones de etiqueta. Cuando se aplica un estereotipo a un elemento del modelo, los valores de las propiedades se denominan valores etiquetados.
Extensión
Una extensión es la relación de asociación que se usa para indicar que las propiedades de una metaclase se extienden a través de un estereotipo, y brinda la posibilidad de agregar flexiblemente los estereotipos a las clases y eliminarlas más adelante, si es necesario.
Un extremo de la asociación de extensión es una propiedad ordinaria y el otro extremo es un extremo de extensión. La propiedad vincula la extensión a una metaclase, mientras que el extremo de la extensión vincula la extensión al estereotipo que extiende la metaclase.
El extremo de la extensión es un extremo navegable, propiedad de la extensión. Esto permite que una instancia de estereotipo se adjunte a una instancia del clasificador extendido sin agregar una propiedad al clasificador.
La notación para una extensión es una flecha con la punta de flecha de triángulo rellena que apunta desde un estereotipo a la metaclase extendida.
La extensión es una asociación que indica que las propiedades de una metaclase se extienden a través de un estereotipo.
Una extensión no requerida significa que una instancia de un estereotipo puede vincularse a una instancia de una metaclase extendida a voluntad, y también eliminarse posteriormente a voluntad. Sin embargo, no es necesario que cada instancia de una metaclase sea extendida. Una instancia de un estereotipo se elimina cuando se elimina la instancia de la metaclase extendida o cuando el perfil que define el estereotipo se elimina de los perfiles aplicados del paquete.
Una extensión requerida significa que una instancia de un estereotipo siempre debe estar vinculada a una instancia de la metaclase extendida. La instancia del estereotipo generalmente se elimina solo cuando se elimina la instancia de la metaclase extendida o cuando el perfil que define el estereotipo se elimina de los perfiles aplicados del paquete.
Para que una extensión sea obligatoriamente requerida se utiliza la propiedad {required}.
Referencia
La referencia es una relación de importación representada por la importación del elemento «metaclassReference» y la importación del paquete «metamodelReference».
Las importaciones de elementos «metaclassReference» y las importaciones de paquetes «metamodelReference» sirven para dos propósitos:
- Identificar los elementos del metamodelo de referencia que importa el perfil.
- Especificar las reglas de filtrado del perfil. Las reglas de filtrado determinan qué elementos del metamodelo son visibles cuando se aplica el perfil y cuáles están ocultos.
Hay que tener en cuenta que la aplicación de un perfil no cambia el modelo subyacente de ninguna manera; simplemente define una vista del modelo subyacente. En general, solo los elementos del modelo que son instancias de metaclases de referencia importadas serán visibles cuando se aplique el perfil. De forma predeterminada, los elementos del modelo cuyas metaclases son públicas y son propiedad del metamodelo de referencia son visibles.
Aplicación de perfil
La aplicación de perfil es una relación dirigida que se utiliza para mostrar qué perfiles se han aplicado a un paquete.
Se pueden aplicar uno o más perfiles a un paquete que se crea a partir del mismo metamodelo que se extiende por el perfil. Aplicar un perfil significa que está permitido, pero no necesariamente requerido, aplicar los estereotipos que se definen como parte del perfil.
Es posible aplicar múltiples perfiles a un paquete siempre que no tengan restricciones en conflicto. Si un perfil que se está aplicando depende de otros perfiles, entonces esos perfiles deben aplicarse primero.
Cuando se aplica un perfil, se deben crear instancias de los estereotipos apropiados para aquellos elementos que son instancias de metaclases con extensiones requeridas. El modelo no está bien formado sin estos casos.
Una vez que se ha aplicado un perfil a un paquete, se le permite eliminar el perfil aplicado a voluntad. Eliminar un perfil implica que todos los elementos que son instancias de elementos definidos en un perfil se eliminan. Un perfil que se ha aplicado no puede eliminarse a menos que otros perfiles aplicados que dependen de él se eliminen primero.
El perfil aplicado se muestra mediante una flecha discontinua con una punta de flecha abierta desde el paquete al perfil aplicado con la palabra clave «apply» cerca de la flecha.
¿Quieres colaborar con esta web? ¡Envíanos tus diagramas UML a la dirección aportaciones@diagramasuml.com para que sirvan de ejemplo a otras personas!
También puedes contactar con nosotros a través de la Página de contacto.