Extensibilidad UML
¿Qué es el mecanismo de extensibilidad UML?
El UML es un lenguaje de modelado estandarizado, compatible con
herramientas y de propósito general que se utiliza para especificar,
visualizar, construir y documentar todos los elementos de una amplia
gama de procesos intensivos del sistema. Promueve un proceso
impulsado por casos de uso, centrado en la arquitectura, iterativo e
incremental, que está orientado a objetos y basado en componentes. El
UML es ampliamente aplicable a diferentes tipos de sistemas, dominios,
métodos y procesos, razón por la cual es un lenguaje tan popular y
ampliamente utilizado.
Sin embargo, a pesar de que el UML está muy bien definido, puede
haber situaciones en las que se encuentre deseando doblar o extender
el lenguaje de alguna manera controlada para adaptarlo al dominio de
su problema específico con el fin de simplificar la comunicación de su
objetivo. . Aquí es donde entran en juego los mecanismos de extensión
Los tres mecanismos de extensibilidad de UML
UML proporciona un lenguaje estándar para escribir planos de software,
pero no es posible que un lenguaje cerrado sea suficiente para expresar
todos los matices posibles de todos los modelos en todos los dominios y
en todos los tiempos. Por esta razón, el UML tiene un final abierto, lo que
le permite extender el lenguaje de forma controlada.
UML define tres mecanismos de extensibilidad para permitir a los
modeladores agregar extensiones sin tener que modificar el lenguaje de
modelado subyacente. Estos tres mecanismos son:
•Estereotipos
•Restricciones
•valores etiquetados
Estereotipos
Un estereotipo amplía el vocabulario de UML, lo que le permite crear
nuevos tipos de construcción.
bloques que se derivan de los existentes pero que son específicos de su
problema. Se utilizan para clasificar o marcar los bloques de construcción
UML con el fin de introducir nuevos bloques de construcción que hablen el
lenguaje de su dominio y que parezcan elementos de modelo primitivos o
básicos.
Por ejemplo, si está trabajando en un lenguaje de programación, como Java o C ++, a
menudo querrá modelar excepciones. En estos idiomas, las excepciones son solo
clases, aunque se tratan de formas muy especiales. Por lo general, solo desea permitir
que sean arrojados y atrapados, nada más. Puede hacer excepciones ciudadanos de
primera clase en sus modelos, lo que significa que se tratan como bloques de
construcción básicos, marcándolos con un estereotipo apropiado, como para la clase
Overflow como se muestra en la Figura siguiente:
Ejemplo de estereotipo de excepción
Modelar nuevos tipos en UML
Otro ejemplo, un tipo de enumeración, como Coloroolean y Status, se
puede modelar como enumeraciones, con sus valores individuales
proporcionados como atributos:
Relación especial modelo
Una dependencia puede tener un nombre, aunque rara vez se
necesitan nombres a menos que desee utilizar estereotipos para
distinguir diferentes tipos de dependencias. Por ejemplo:
Valores etiquetados
Un valor etiquetado extiende las propiedades de un bloque de construcción
UML, lo que le permite crear nueva información en la especificación de ese
elemento. Son propiedades para especificar pares de palabras clave-valor
de elementos del modelo, donde las palabras clave son atributos. Le
permiten ampliar las propiedades de un bloque de construcción UML para
que pueda crear nueva información en la especificación de ese elemento.
Los valores etiquetados se pueden definir para elementos de modelo
existentes o para estereotipos individuales, de modo que todo lo que tenga
ese estereotipo tenga ese valor etiquetado. Es importante mencionar que
un valor etiquetado no es igual a un atributo de clase. En su lugar, puede
considerar un valor etiquetado como metadatos, ya que su valor se aplica al
elemento en sí y no a sus instancias.
Gráficamente, un valor etiquetado se representa como una cadena
entre corchetes, que se coloca debajo del nombre de otro elemento
del modelo. La cadena consta de un nombre (la etiqueta), un
separador (el símbolo =) y un valor (de la etiqueta) como se muestra
en la Figura siguiente:
Puede especificar solo el valor si su significado no es ambiguo, como
cuando el valor es el nombre de la enumeración.
Uso de valores etiquetados
Uno de los usos más comunes de un valor etiquetado es especificar
propiedades que son relevantes para la generación de código o la gestión
de la configuración. Entonces, por ejemplo, puede hacer uso de un valor
etiquetado para especificar el lenguaje de programación al que mapea una
clase en particular, o puede usarlo para indicar el autor y la versión de un
componente.
Ejemplo de valor etiquetado: sistema de gestión de la configuración
Suponga que desea vincular los modelos que crea al sistema de gestión de
la configuración de su proyecto. Entre otras cosas, esto significa realizar un
seguimiento del número de versión, el estado actual de registro / salida y
quizás incluso las fechas de creación y modificación de cada
subsistema. Debido a que se trata de información específica del proceso,
no es una parte básica de UML, aunque puede agregar esta información
como valores etiquetados. Además, esta información tampoco es solo un
atributo de clase. El número de versión de un subsistema es parte de sus
La Figura siguiente muestra cuatro subsistemas, cada uno de los cuales
se ha ampliado para incluir su número de versión y su estado. En el caso
del subsistema de facturación, se muestra otro valor etiquetado: la
persona que actualmente ha verificado el subsistema
Restricciones
Una restricción es una extensión de la semántica de un elemento UML, lo
que le permite agregar nuevas reglas o modificar las existentes. Le
permiten extender la semántica de un bloque de construcción UML
agregando nuevas reglas o modificando las existentes. Una restricción
especifica las condiciones que deben cumplirse para que el modelo esté
bien formado. Esta notación también se puede utilizar para adornar la
notación básica de un elemento del modelo, con el fin de visualizar partes
de la especificación de un elemento que no tienen una pista gráfica. Por
ejemplo, puede utilizar la notación de restricción para proporcionar
algunas propiedades de las asociaciones, como el orden y la capacidad de
cambio.
Gráficamente, una restricción se representa como una cadena encerrada
entre corchetes y se coloca cerca del elemento asociado o se conecta a ese
elemento o elementos mediante relaciones de dependencia. El siguiente
ejemplo muestra que es posible que desee especificar que, en una
asociación determinada, la comunicación está cifrada. De manera similar,
es posible que desee especificar que entre un conjunto de asociaciones,
solo se manifiesta una a la vez.
UML proporciona varios mecanismos de extensión que le permiten hacer
esto sin tener que modificar el lenguaje de modelado subyacente. Estos
mecanismos le permiten agregar nuevos bloques de construcción,
modificar las propiedades de los existentes e incluso cambiar su semántica.
Cuando amplía un modelo con estereotipos, valores etiquetados o
restricciones,
•Estandarice en un pequeño conjunto de estereotipos, valores etiquetados
y restricciones para usar en su proyecto, y evite permitir que los
desarrolladores individuales creen muchas extensiones nuevas.
•Elija nombres cortos y significativos para sus estereotipos y valores
etiquetados.
•Cuando la precisión se pueda relajar, utilice texto de forma libre para
especificar restricciones. Si necesita más rigor, use el OCL para escribir
expresiones de restricción.