UML Domine el lenguaje de modelado más utilizado en la actualidad
3. COMENZARA MODELAR casi duplicación de código, Generics nos permite definir una estructura Hash de un tipo genérico (HASH <Tipo Genérico), sobre la cual especificamos métodos y operacio nes. Luego, cuando necesitamos un archivo Hash de un tipo especial, reemplazamos el tipo genérico por el que necesitamos, por ejemplo, HASH <Libro> o HASH <Autores>. A I I « b i n d » I I HASH <Genérico> A I I I « b i n d » I Hash <Autor> Hash <Libro> F igu ra 14. Modelización mediante el estereotipo « b i n d » , un tipo especial de dependencias. Existen varios tipos más de dependencias especiales, por ejemplo, Access e Import nos permiten definir interacciones no entre clases, sino entre paquetes. Aunque lo veremos en profiindidad más adelante, la idea es organizar y agrupar las clases que comparten un objetivo en común o que están fuertemente relacionadas bajo algún criterio o concepto en paquetes. Así, por ejemplo, para la especificación de un pro tocolo tendremos un paquete con todas las clases relativas al servidor, otro con las clases del cliente, otro con los casos de test, etcétera. A alto nivel es importante tener coordinada la interacción entre paquetes, ya que nos da una visión casi arquitectu ral de nuestro sistema. Concretamente, el objetivo es poder especificar cuándo los elementos de un paquete acceden o utilizan elementos definidos en otros paquetes. Podemos ver todos los tipos de dependencias en Visual Paradigm si abrimos el cons tructor de dependencias en el menú de constructores. La siguiente tabla nos per mite resumir todos los tipos especiales de dependencias disponibles en UML. Q Q PROGRAMACIÓN GENÉRICA La programación genérica fue un concepto introducido por el revolucionario lenguaje ADA en 1983. En la actualidad, está presente en casi todos los entornos de programación como Java o .Net Muchos de los patrones de diseño actuales también están basados en é l El nombre del lenguaje es un homenaje a Ada Lovelace, quien se presume fue el primer programador. 80
RkJQdWJsaXNoZXIy MjI4NDcx