Hacer generalizaciones en uml 2

Es natural para clasificar objetos en categorías y organizar categorías en subcategorías. Si usted busca un lugar para vivir, te encuentras categorizar una unidad de vivienda como una casa, apartamento, casa, condominio, mansión, y así sucesivamente. Las casas pueden, a su vez, se organizarán además por estilos como el rancho, de dos niveles, colonial y saltbox. UML le proporciona la notación para capturar este tipo de clasificaciones - también conocido como la generalización y especialización - y hacer uso de ellos como modelador y un programador.

Algunos desarrolladores orientados a objetos se hacen grandes esfuerzos para ahorrar un poco de trabajo. Cuando pueden modelar algo una vez y volver a utilizarlo, que les interesa. Si son capaces de escribir un método (el código del programa para una operación) para una clase de una sola vez y usarlo muchas veces, y luego firmar para una mayor productividad. Si quieres ahorrar tiempo mediante la especificación de atributos y operaciones de una vez y luego volver a utilizar muchas veces, sigue leyendo.

A medida que define las clases, usted puede notar que algunas clases tienen los mismos atributos o las mismas operaciones. Cuando este es el caso, de colocar estas características comunes (atributos, operaciones, etc.) en una clase más genérico llamado superclase. Las clases que comparten las características comunes se conocen como subclases de la superclase. Por ejemplo, la longitud del material grabado en una cinta de vídeo, cintas de audio, disco compacto, o película de cine es un atributo de los cuatro kindsof registró medios. Estas clases pueden compartir otros atributos, así, como sus dimensiones físicas y la fecha de cada una de ellas se utilizó para realizar una grabación. En este caso el superclase sería RecordedMedia, las subclases serían Videotape, cintas de audio, CompactDisc y MovieFilm, y algunos atributos compartidos podrían incluir recordedLength y totalLength.

Este proceso de búsqueda de atributos u operaciones similares a través de las clases que se conoce como generalización. Por ejemplo, usted generalizar el atributo RecordLength en una clase más genérica llamada RecordedMedia. El proceso para mostrar una generalización en UML es simple:

1. Identificar las subclases.

Busque clases que tienen los mismos atributos y / u operaciones. Estas clases son sus subclases.

2. Crear una superclase.

Proporcionar una superclase para mantener los atributos y / u operaciones comunes de las subclases. Dar la superclase un nombre que clasifica todas las subclases. La colocación de la superclase encima de las subclases en el diagrama que sea más fácil de leer, pero no es necesario.)

3. Agregue las características comunes a la superclase.

Quite los atributos y operaciones comunes de las subclases y colocarlos (una vez) en la superclase.

4. Dibuja una relación de generalización.

Dibuja una línea de generalización de cada subclase a la superclase. En UML la línea de generalización se representa como una línea continua con una punta de flecha hueca al final superclase. En UML, una línea con la punta de flecha hueca que conecta una subclase de una superclase se conoce como una relación de generalización.

Después de crear una superclase con las características comunes, tales como atributos y operaciones, las subclases heredar aquellas características de la superclase. De esta manera es suficiente con escribir las características comunes una vez en la superclase en lugar de muchas veces en cada una de las subclases.

Usted puede decir si usted tiene una generalización mirando el idioma que usted (u otros) se utiliza para describir la relación entre las clases. Observe que en la descripción de soportes grabados y sus diversos tipos, tales como cintas de vídeo anteriormente en esta sección, la frase "de cuatro kindsof registró medios" apareció. Si usted se encuentra el uso de frases como "una especie de" o "tipo de", entonces lo más probable es que haya una generalización en sus manos.

Decir que uno de sus clientes tiene que ver con hacer el seguimiento de los materiales en un archivo. Este cliente ha acumulado diferente tipos de soportes grabados, tales como cintas de video y cintas de audio. Como modeladores, que necesita para capturar las diferencias entre estos medios de comunicación, así como sus similitudes. El diagrama de la Figura 1 muestra los inicios de varias generalizaciones, dispuestos en una jerarquía de herencia.

Hacer generalizaciones en uml 2

Figura 1: Jerarquía de herencia simple.

Los desarrolladores utilizan la generalización plazo o herencia para referirse al mismo concepto de la reutilización de atributos y operaciones compartidas que usted muestra en una superclase y la reutilización en las subclases. La generalización se refiere al concepto de generalizar a partir de características específicas (las subclases) a la genérica (la superclase). Inheritance se refiere al efecto de la generalización de las subclases.

Cuando ves a un generalización relación entre las clases, su significado es muy diferente de la de una asociación relación entre las clases. Una asociación es en última instancia una relación entre muchos objetos - algunos casos de una clase tienen una relación (enlace) con instancias de la otra clase. En una relación de generalización entre clases, la relación es realmente acerca de las clases. Lo mejor que se puede decir es que un objeto creado a partir de una subclase contiene todas las características de la subclase y de la superclase.

Usted sólo tiene un objeto de una clase en una relación de generalización. A pesar de que usted muestra dos clases, la subclase y superclase, es suficiente con un objeto que se crea. Usted puede pensar en un objeto de la clase Videotape también ser un objeto de la clase a causa de la herencia RecordedMedia. Figura 2 muestra un objeto creado a partir de la clase de cinta de vídeo con todos sus atributos. (La instancia de una clase está representado como un símbolo de objeto.) Usted no tiene dos objetos diferentes (una para RecordedMedia y otro para cintas de vídeo), sólo un objeto. Cuando se creó el vtu83-1023 objeto, se establecieron valores de todos sus atributos. La grabación de la cinta es de 57 minutos. La longitud total de la cinta física es de 60 minutos. La cinta es una cinta de vídeo Umatic con una altura de 10 pulgadas, una anchura de 7 pulgadas, y una profundidad de 1,5 pulgadas. La grabación es analógica, y un registro del contenido de la cinta se une a la cinta para el archivero de Referencia.

Hacer generalizaciones en uml 2

Figura 2: Una instancia mostrando toda heredó atributos.

Sólo hay un caso definido por una subclase y su superclase. La subclase y la superclase pueden tener una operación constructor (para crear la instancia) y una operación de destructor (para destruir la instancia). Cuando el software se ejecuta, y se crea una instancia de una subclase, el constructor de la superclase se ejecuta en primer lugar, seguido por el constructor de la subclase. Cuando llega el momento de eliminar la instancia que ha creado, el destructor de la subclase se llama primero, seguido por el destructor de la superclase. Si las cosas son más complejas porque tiene subclases de subclases, sólo recuerda: Los constructores se invocan desde lo alto de la jerarquía de herencia de los destructores bottom son llamados en orden de la subclase más bajo hasta el más alto superclase.