Diagramas de Clase 2

30
05/06/2011 1 Curso: Tecnología de la Programación II. Docente: Mg. Zoraida Yanet Vidal Melgarejo. CLASE 06 Diagramas de Clases Introducción Son los diagramas más comunes en el modelado de sistemas orientados a objetos. El diagrama de clase representa clases, sus partes y la forma en la que las clases de los objetos están relacionados con otro. Son importantes no sólo para visualización, especificación y documentación de modelos estructurales, sino también para construir sistemas ejecutables. 2

Transcript of Diagramas de Clase 2

Page 1: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 1/30

 

05/06/

Curso: Tecnología de la Programación II.

Docente: Mg. Zoraida Yanet Vidal Melgarejo.

CLASE 06

Diagramas de Clases

Introducción

Son los diagramas más comunes en el modelado de sistemas

orientados a objetos.

El diagrama de clase representa clases, sus partes y la forma en

la que las clases de los objetos están relacionados con otro.

Son importantes no sólo para visualización, especificación y

documentación de modelos estructurales, sino también para

construir sistemas ejecutables.

2

Page 2: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 2/30

 

05/06/

Ejemplo de un diagrama de clases

Los diagramas de clases proporcionan una perspectiva estática

del sistema (representa su diseño estructural)

3

Pasos para el diagrama de clases

Identificar las clases.

Mostrar los atributos y operaciones (posteriormente).

Dibujar asociaciones.

Etiquetar asociaciones y en caso necesario los roles.

Indicar multiplicidad.

Dibujar flechas de dirección.

4

Page 3: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 3/30

 

05/06/

Partes de un Diagrama de Clases

Clases: Atributos

Métodos

Visibilidad

Relaciones:

Asociación

Composición

Agregación

Dependencia

Generalización

5

Clase

Es la unidad básica que encapsula toda la información de un

Objeto (un objeto es una instancia de una clase). A través de

ella podemos modelar el entorno en estudio (una Casa, un

Auto, una Cuenta Corriente, etc.).

En ellos se ponen el nombre, los atributos, las operaciones yademás se pueden usar para anotar otras propiedades del

modelo como son (reglas del negocio, responsabilidades,

excepciones, etc.)

6

Page 4: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 4/30

 

05/06/

Clase: Notación Gráfica

En UML, una clase es representada por un rectángulo queposee tres divisiones:

NombreClase

// Lista de atributosvisibilidad nombreAtributo: tipo [= valorIinicial]

// Declaración de métodos

visibilidad nombreMétodo(lista_argumentos): tipoRetorno

7

Ejemplo

La clase automóvil que posee como característica:

Matrícula

Color.

Velocidad.

Puede realizar las operaciones de:

Arrancar

Acelerar

Frenar

8

Page 5: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 5/30

 

05/06/

Ejemplo

El diseño asociado es:

Automovil

- matricula: String

- color: String

- velocidad: double

+ arrancar(): boolean

+ acelerar(): boolean

+ frenar(): boolean

9

Nombre

Cada clase debe tener un nombre que la distinga de otras

clases.

Un nombre es una cadena de texto

Un nombre solo se conoce como “Nombre simple”.

Una “Ruta  nombre” es el nombre de clase precedido del

nombre del paquete en que vive la clase.

10

Page 6: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 6/30

 

05/06/

Atributo

Un atributo es una propiedad de una clase que describe unrango de valores que la propiedad puede conservar.

Una clase puede tener cualquier número de atributos ocarecer de ellos.

Son descripciones de características, se usan para modelarinformación asociada con una entidad, sintaxis:nombreAtributo[multiplicidad]:tipo [= valorInicial] 

La multiplicidad es opcional e indica el número de atributospor instancia de la clase.

11

Ejemplo: Especificación de un atributo

Elemento  Ejemplo Nombre del atributo  compañía 

Tipo de dato  compañía: character 

Valor de default (si hay)  compañía: character = espacios Restricciones  compañía: character = espacios {1 a 30} Caracteres 

compañía: character = espacios{1 a 30 alfabéticos,

espacios, puntuación, no especiales} Visibilidad 

- compañía: character = espacios {1 a 30 alfabéticos,

……. 12

Page 7: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 7/30

 

05/06/

Método u Operación

Un método es la implementación de un servicio que puede sersolicitado desde cualquier objeto de la clase para afectar elcomportamiento.

Una clase puede tener cualquier número de métodos ocarecer de ellas.

Un nombre de método es un verbo o frase verbal querepresenta algún comportamiento.

13

Método u Operación

En un método se puede establecer su firma, abarcando elnombre, tipo y valor de omisión de todos los parámetros ytipo de regreso.

Sintaxis:nombreMétodo(parámetros: tipo): tipoRetorno

14

Page 8: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 8/30

 

05/06/

Ejemplo: Especificación de un método

Elemento  Ejemplo Nombre  totalOrderCantidad 

Definir argumentos/

Parámetros, corresponden a unainstancia de Order 

totalOrderCantidad (order: Integer)

Definir el tipo de dato deretorno 

totalOrderCantidad (order: Integer): Double 

Identificar y describirrestricciones 

totalOrderCantidad (order: Integer) : {El total esla suma de cada item (p.u. x cantidad)} 

Visibilidad + totalOrderCantidad (order: Integer) : {El total

es la suma …. 

15

Visibilidad

public (+) : Cualquier clase externa puede usar lacaracterística.

protected (#) : Cualquier descendiente de la clase usa lacaracterística.

private (-) : Sólo la clase misma puede usar la característica.

16

Page 9: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 9/30

 

05/06/

Relaciones entre Clases

Las relaciones existentes entre las distintas clases nos indicancómo se comunican los objetos de esas clases entre si.

Los mensajes “navegan” por las relaciones existentes entre lasdistintas clases.

Existen distintos tipos de relaciones:- Asociación (Conexión entre clases).- Dependencia (relación de uso).- Generalización/especialización (relaciones de herencia).

17

Elementos Adicionales de una Relación

Rol

Identifica con nombres a los elementos que aparecen en losextremos de la línea que denota la relación, dicho nombredescribe la semántica que tiene la relación en el sentidoindicado. Por ejemplo, la asociación entre Persona queTrabaja Para  una Empresa, recibe el nombre detrabajador  y empleador como rol en ese sentido.

Rol

18

Rol

Page 10: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 10/30

 

05/06/

Elementos Adicionales de una Relación

Multiplicidad Indica la cardinalidad de la relación. En el ejemplo se utilizan

1 , 1 ..*, 5 , *, como indicadores de multiplicidad.

Relación

19

Rol Rol

MultiplicidadMultiplicidad

 

 Tipos de Relaciones

1.- Relación de Asociación

1.1.- Asociación de Agregación

1.2.- Asociación de Composición

2.- Relación de Dependencia

3.- Relación de Generalización

20

Page 11: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 11/30

 

05/06/

Asociación

Una asociación en general es una línea que une dos o mássímbolos. Pueden tener varios tipos de adornos, que define susemántica y características. Los tipos de asociaciones entreclases presentes en un diagrama estático son: asociaciónbinaria, asociación reflexiva, asociación n-aria, agregación,composición.

La asociación expresa una conexión bidireccional entreobjetos. Una asociación es una abstracción de la relaciónexistente en los enlaces entre los objetos. Puede determinarsepor la especificación de multiplicidad (mínima...máxima)

21

Multiplicidad

Determina cuantos objetos de cada tipo intervienen en larelación.

El número de instancias de una clase que se relacionan conUNA instancia de la otra clase

Cada Asociación tiene dos multiplicidades (una para cadaextremo de la relación): cuando la multiplicidad mínima esCERO, la relación es opcional; y una multiplicidad mínimamayor o igual que UNO establece una relación obligatoria.

22

Page 12: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 12/30

 

05/06/

 Tipos de Multiplicidad

23

Ejemplos de Multiplicidad

24

Page 13: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 13/30

 

05/06/

Dirección

La dirección en las flechas de la asociación determinan en quedirección puede recorrerse una asociación en el momento dela ejecución.

Una asociación sin flechas significa que se puede ir de unobjeto a otro y viceversa.

En el ejemplo siguiente el tipo de flecha en la asociaciónimplica que desde el objeto Reservación puedes recuperar(dirigirte hacia) el objeto Cliente. También implica que delobjeto Cliente puede recuperar el juego de reservaciones para

ese cliente.

25

Asociación Binaria

Una asociación binaria se representa mediante una línea sólidaque une dos clases, se trata de una relación entre las dosclases no muy fuerte, es decir, no se exige dependenciaexistencial ni encapsulamiento.

26

Page 14: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 14/30

 

05/06/

Asociación Reflexiva

Una clase puede asociarse con sí misma. Una clase Empleadopuede relacionarse con sí misma a través del rolgerente/dirige.

No significa que una instancia está relacionada consigo misma,sino que una instancia de la clase está relacionada con otrainstancia de la misma clase.

27

Asociación Reflexiva

Una instancia de Empleado puede ser el jefe de otrasinstancias de Empleado. Como el rol subordinado tiene unamultiplicidad de 0…*, significa que puede tener o no tenerotros empleados a quien dirigir.

Una instancia de Empleado tiene un sólo jefe o ninguno (encaso de ser el mismo jefe).

28

Page 15: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 15/30

 

05/06/

Asociación Reflexiva

29

Asociación N-aria

Es una forma de expresar una relación entre tres o másclases.

La clase de asociación es dependiente en existencia de lasotras clases.

30

Page 16: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 16/30

 

05/06/

Asociación N-aria

31

Asociación de Composición

Es un tipo de relación fuerte, el objeto agregado no puedeexistir de forma independiente.

Agregación disjunta y estricta: Las partes sólo existen asociadasal compuesto (sólo se accede a ellas a través del compuesto).

32

Page 17: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 17/30

 

05/06/

Asociación de Composición

Gráficamente, se muestra con un rombo lleno en uno de losextremos (compuesto).

33

34

Asociación de Composición

Page 18: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 18/30

 

05/06/

Asociación de Agregación

Es un tipo de relación débil, el objeto agregado puede existirde forma independiente.

Las partes pueden forma parte de distintos agregados.

Gráficamente, se muestra con un rombo vacío en uno de losextremos.

35

36

Asociación de Agregación

Page 19: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 19/30

 

05/06/

Dependencia

Relación (más débil que una asociación) que muestra larelación entre un cliente y el proveedor de un servicio usadopor el cliente:

Cliente es el objeto que solicita un servicio.

Servidor es el objeto que provee el servicio solicitado.

Un cambio en un elemento (el elemento independiente) puedeafectar a la semántica del otro elemento (elementodependiente).

37

Gráficamente, la dependencia se muestra como una líneadiscontinua con una punta de flecha que apunta del cliente alproveedor.

Clase dependiente  Clase independiente 

Canal 

 Video

. . .

. . .Grabar(c : canal) 

Televisión

. . .

. . .cambiar(c : canal) 

38

Dependencia

Page 20: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 20/30

 

05/06/

39

Dependencia

Generalización

Es una relación entre dos clases en donde una de ellas, llamadasubclase o clase hija, hereda los atributos y el comportamientode otra, llamada superclase o clase padre.

En una generalización no hay multiplicidad ni roles.

Las subclases heredan características de las clases de las que

se derivan y añaden características específicas que lasdiferencian.

La visibilidad “protected” permite que sólo objetos de lamisma clase ó subclase vean el elemento.

40

Page 21: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 21/30

 

05/06/

Clase hija  Clase Padre 

camión  auto  avión  helicóptero 

 Aéreo Terrestre 

 Vehículo 

41

Generalización: Representación gráfica

42

Generalización: Representación gráfica

Page 22: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 22/30

 

05/06/

Paquete

Es un elemento organizador que proporciona UML al dividir elsistema en paquetes que lo hace más fácil de entender.

Un paquete es una forma de agrupar clases (u otros elementosen otro tipo de diagramas) en modelos grandes. Pueden tenerasociaciones de dependencia o de generalización entre ellos.Un ejemplo puede ser el siguiente

43

Interfaces

Una interface no es una clase. Una clase tiene una instancia de su tipo, mientras que una

interface debe tener al menos una clase para implantarla. EnUML, una interface es considerada como una especializaciónde una clase.

Una interface se dibuja como una clase, pero en elcompartimento superior del rectángulo aparece un texto ó

una inicial que indica que se trata de una interface y no de unaclase.

Se representan como clases pero con el estereotipo<<interface>>.

Solo contienen operaciones públicas.

44

Page 23: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 23/30

 

05/06/

Interfaces: Ejemplo

En el diagrama anterior las clases Professor y Student implementan a la interface

Person y no heredan de ésta, podemos deducirlo a partir de:

1) El objeto Person de acuerdo a la simbología del diagrama está como una interfacey Professor y Student están como clases.

2) No se trata de herencia ya que la línea con la flecha está punteada y no sólida.

45

Clase Abstracta

Una clase abstracta se denota con el nombre de la clase y delos métodos con letra "itálica". Esto indica que la clasedefinida no puede ser instanciada pues posee métodosabstractos (aún no han sido definidos, es decir, sinimplementación). La única forma de utilizarla es definiendosubclases, que implementan los métodos abstractos definidos.

46

Page 24: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 24/30

 

05/06/

Clase Parametrizada

Se denota con un subcuadro en el extremo superior de laclase, en donde se especifican los parámetros que deben serpasados a la clase para que esta pueda ser instanciada.

El ejemplo más típico es el caso de un Diccionario en dondeuna llave o palabra tiene asociado un significado, pero en estecaso las llaves y elementos pueden ser genéricos.

La genericidad puede venir dada de un Template (como en el

caso de C++) o bien de alguna estructura predefinida(especialización a través de clases).

47

Clase Parametrizada

En el ejemplo no se especificaron los atributos del Diccionario,pues ellos dependerán exclusivamente de la implementaciónque se le quiera dar.

48

Page 25: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 25/30

 

05/06/

Ejemplo 1:

En una empresa de Ventas, un cliente (Natural o Jurídico) realizaun pedido que es atendido por un Personal. Dicho personaltiene a su cargo a otro personal. El cual ocupa un puestoespecífico en la empresa.

En un pedido se pueden consignar la venta de varios productos.Así también un producto puede estar relacionado con variospedidos.

Un producto se encuentra relacionado con una sola categoría, ala cual pueden pertenecer varios productos

Realizar un Diagrama de Clases que grafique las relacionesexistentes.

49

Ejemplo 1:

50

Page 26: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 26/30

 

05/06/

Ejemplo 2:

Se desea diseñar un diagrama de clases sobre la información delas reservas de una empresa dedicada al alquiler de automóviles,teniendo en cuenta que un determinado cliente puede tener enun momento dado hechas varias reservas.

De cada cliente se desean almacenar su DNI, nombre, direccióny teléfono. Además dos clientes se diferencian por un códigoúnico.

Cada cliente puede ser avalado por otro cliente de la empresa.

51

Una reserva la realiza un único cliente pero puede involucrar

varios coches.

Es importante registrar la fecha de inicio y final de la reserva, el

precio del alquiler de cada uno de los coches, los litros de

gasolina en el depósito en el momento de realizar la reserva, el

precio total de la reserva y un indicador de si el coche o loscoches han sido entregados.

Todo coche tiene siempre asignado un determinado garaje que

no puede cambiar. De cada coche se requiere la matricula, el

modelo, el color y la marca. Cada reserva se realiza en una

determinada agencia.

52

Ejemplo 2:

Page 27: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 27/30

 

05/06/

Ejemplo 2:

53

Ejemplo 3:

La Policía quiere crear una base de datos sobre la seguridad enalgunas entidades bancarias. Para ello tiene en cuenta:Que cada entidad bancaria se caracteriza por un código y por eldomicilio de su Central.Que cada entidad bancaria tiene más de una sucursal quetambién se caracteriza por un código y por el domicilio, así como por el número de empleados de dicha sucursal.

Que cada sucursal contrata, según el día, algunos vigilantes  jurados, que se caracterizan por un código y su edad. Unvigilante puede ser contratado por diferentes sucursales (inclusode diferentes entidades), en distintas fechas y es un dato deinterés dicha fecha, así como si se ha contratado con arma o no.

54

Page 28: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 28/30

 

05/06/

Ejemplo 3:

Por otra parte, se quiere controlar a las personas que han sidodetenidas por atracar las sucursales de dichas entidades. Estaspersonas se definen por una clave (código) y su nombrecompleto.Alguna de estas personas están integradas en algunas bandasorganizadas y por ello se desea saber a qué banda pertenecen,sin ser de interés si la banda ha participado en el delito o noDichas bandas se definen por un número de banda y por elnúmero de miembros.Así mismo, es interesante saber en qué fecha ha atracado cada

persona una sucursal. Evidentemente, una persona puede atracarvarias sucursales en diferentes fechas, así como que una sucursalpuede ser atracada por varias personas.

55

Igualmente, se quiere saber qué Juez ha estado encargado delcaso, sabiendo que un individuo, por diferentes delitos, puedeser juzgado por diferentes jueces. Es de interés saber, en cadadelito, si la persona detenida ha sido condenada o no y dehaberlo sido, cuánto tiempo pasará en la cárcel. Un Juez secaracteriza por una clave interna del juzgado, su nombre y losaños de servicio.

NOTA: En ningún caso interesa saber si un vigilante haparticipado en la detención de un atracador

56

Ejemplo 3:

Page 29: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 29/30

 

05/06/

Ejemplo 3:

57

Ejemplo 4:

Una biblioteca tiene copias de libros. Estos últimos secaracterizan por su nombre, año y autor.

Un libro está relacionado con una categoría (novela, teatro,poesía, ensayo) así como también con una editorial.

Los autores se caracterizan por su nombre y fecha de

nacimiento. Se considera que el autor sólo tiene unanacionalidad.

Cada copia tiene un identificador, y puede estar en la biblioteca,prestada, con retraso o en reparación.

58

Page 30: Diagramas de Clase 2

5/7/2018 Diagramas de Clase 2 - slidepdf.com

http://slidepdf.com/reader/full/diagramas-de-clase-2 30/30

 

05/06/

Ejemplo 4:

Los lectores pueden tener un máximo de 3 libros en préstamo.Cada libro se presta un máximo de 30 días, por cada día deretraso, se impone una “multa” de dos días sin posibilidad decoger un nuevo libro.

Realizar un diagrama de clases para realizar el préstamo ydevolución de libros.

59

Ejemplo 4:

60