Plantillas UML
En UModel puede usar plantillas UML y crear asignaciones entre ellas y genéricos Java, C# y Visual Basic.
•Las plantillas son elementos de modelado potenciales con parámetros formales sin enlazar.
•Estos elementos de modelado parametrizados describen un grupo de elementos de modelado de un tipo concreto: clasificadores u operaciones.
•Las plantillas no se pueden usar como tipos directamente, sus parámetros deben estar enlazados.
•Generar instancias significa enlazar los parámetros de la plantilla con valores reales.
•Los valores reales de los parámetros son expresiones.
•El enlace que existe entre una plantilla y un elemento de modelado produce un elemento de modelado nuevo (elemento enlazado) basado en la plantilla.
•Si en C# existen varios clasificadores de restricción, los parámetros de la plantilla se pueden editar directamente en la ventana Propiedades cuando se selecciona el parámetro de la plantilla.
Presentación de firmas de plantilla en UModel:
•En la imagen que aparece a continuación puede verse la plantilla de clase MiVector, cuyo parámetro de plantilla formal (T) aparece en la esquina superior derecha en un rectángulo discontinuo.
•Los parámetros formales sin información de tipo (T) son clasificadores implícitos: clase, tipo de datos, enumeración, tipo primitivo e interfaz. Los demás tipos de parámetro deben mostrarse explícitamente (p. ej. los enteros).
•La propiedad miMatriz tiene un número ilimitado de elementos de tipo T.
Cuando se hace clic con el botón derecho en la plantilla, aparece un menú contextual con el comando Mostrar | Elementos enlazados. Este comando muestra los elementos enlazados propiamente dichos.
Presentación de enlaces de plantilla en UModel:
•En la imagen que aparece a continuación puede verse la plantilla con nombre enlazada intvector.
•Se trata de una plantilla de tipo miVector.
•El parámetro T se sustituye con int.
•Los caracteres -> significan sustituido con.
Uso de plantillas en operaciones/propiedades:
•En la imagen anterior puede ver un enlace de plantilla anónimo.
•Tiene la propiedad MiVectorFloat de tipo MiVector<T->float>.
También puede definir plantillas cuando defina propiedades u operaciones. La función de finalización automática le ayudará a utilizar la sintaxis correcta.
•La operación Operación1 devuelve un vector de tipo float.