Está en la página 1de 30

05/06/2011

Diagramas de Clases

Curso: Tecnologa de la Programacin II. Docente: Mg. Zoraida Yanet Vidal Melgarejo.
CLASE 06

Introduccin

Son los diagramas ms 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 estn relacionados con otro.

Son importantes no slo para visualizacin, especificacin y documentacin de modelos estructurales, sino tambin para construir sistemas ejecutables.

05/06/2011

Ejemplo de un diagrama de clases

Los diagramas de clases proporcionan una perspectiva esttica del sistema (representa su diseo estructural)

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 direccin.

05/06/2011

Partes de un Diagrama de Clases

Clases:
Atributos Mtodos Visibilidad

Relaciones: Asociacin Composicin Agregacin Dependencia Generalizacin

Clase

Es la unidad bsica que encapsula toda la informacin de un Objeto (un objeto es una instancia de una clase). A travs 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 y adems se pueden usar para anotar otras propiedades del modelo como son (reglas del negocio, responsabilidades, excepciones, etc.)
6

05/06/2011

Clase: Notacin Grfica

En UML, una clase es representada por un rectngulo que posee tres divisiones:

NombreClase // Lista de atributos visibilidad nombreAtributo: tipo [= valorIinicial] // Declaracin de mtodos visibilidad nombreMtodo(lista_argumentos): tipoRetorno

Ejemplo

La clase automvil que posee como caracterstica: Matrcula Color. Velocidad. Puede realizar las operaciones de: Arrancar Acelerar Frenar

05/06/2011

Ejemplo

El diseo asociado es:


Automovil - matricula: String - color: String - velocidad: double + arrancar(): boolean + acelerar(): boolean + frenar(): boolean

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

05/06/2011

Atributo

Un atributo es una propiedad de una clase que describe un rango de valores que la propiedad puede conservar. Una clase puede tener cualquier nmero de atributos o carecer de ellos. Son descripciones de caractersticas, se usan para modelar informacin asociada con una entidad, sintaxis: nombreAtributo[multiplicidad]:tipo [= valorInicial] La multiplicidad es opcional e indica el nmero de atributos por instancia de la clase.
11

Ejemplo: Especificacin de un atributo


Elemento Nombre del atributo Tipo de dato Valor de default (si hay) Restricciones Caracteres compaa compaa: character compaa: character = espacios compaa: character = espacios {1 a 30} compaa: character = espacios{1 a 30 alfabticos, espacios, puntuacin, no especiales} Ejemplo

Visibilidad

- compaa: character = espacios {1 a 30 alfabticos,


.

12

05/06/2011

Mtodo u Operacin

Un mtodo es la implementacin de un servicio que puede ser solicitado desde cualquier objeto de la clase para afectar el comportamiento. Una clase puede tener cualquier nmero de mtodos o carecer de ellas. Un nombre de mtodo es un verbo o frase verbal que representa algn comportamiento.

13

Mtodo u Operacin

En un mtodo se puede establecer su firma, abarcando el nombre, tipo y valor de omisin de todos los parmetros y tipo de regreso. Sintaxis: nombreMtodo(parmetros: tipo): tipoRetorno

14

05/06/2011

Ejemplo: Especificacin de un mtodo


Elemento Nombre Definir argumentos/ Parmetros, corresponden a una instancia de Order Definir el tipo de dato de retorno Identificar y describir restricciones Visibilidad Ejemplo totalOrderCantidad totalOrderCantidad (order: Integer)

totalOrderCantidad (order: Integer): Double totalOrderCantidad (order: Integer) : {El total es la suma de cada item (p.u. x cantidad)} + totalOrderCantidad (order: Integer) : {El total es la suma .

15

Visibilidad

public (+) : Cualquier clase externa puede usar la caracterstica. protected (#) : Cualquier descendiente de la clase usa la caracterstica. private (-) : Slo la clase misma puede usar la caracterstica.

16

05/06/2011

Relaciones entre Clases

Las relaciones existentes entre las distintas clases nos indican cmo se comunican los objetos de esas clases entre si. Los mensajes navegan por las relaciones existentes entre las distintas clases. Existen distintos tipos de relaciones: - Asociacin (Conexin entre clases). - Dependencia (relacin de uso). - Generalizacin/especializacin (relaciones de herencia).

17

Elementos Adicionales de una Relacin

Rol Identifica con nombres a los elementos que aparecen en los extremos de la lnea que denota la relacin, dicho nombre describe la semntica que tiene la relacin en el sentido indicado. Por ejemplo, la asociacin entre Persona que Trabaja Para una Empresa, recibe el nombre de trabajador y empleador como rol en ese sentido.

Rol
18

Rol

05/06/2011

Elementos Adicionales de una Relacin

Multiplicidad

Indica la cardinalidad de la relacin. En el ejemplo se utilizan 1 , 1 ..*, 5 , *, como indicadores de multiplicidad.


Relacin Multiplicidad Multiplicidad

Rol
19

Rol

Tipos de Relaciones
1.- Relacin de Asociacin 1.1.- Asociacin de Agregacin 1.2.- Asociacin de Composicin 2.- Relacin de Dependencia 3.- Relacin de Generalizacin

20

10

05/06/2011

Asociacin

Una asociacin en general es una lnea que une dos o ms smbolos. Pueden tener varios tipos de adornos, que define su semntica y caractersticas. Los tipos de asociaciones entre clases presentes en un diagrama esttico son: asociacin binaria, asociacin reflexiva, asociacin n-aria, agregacin, composicin. La asociacin expresa una conexin bidireccional entre objetos. Una asociacin es una abstraccin de la relacin existente en los enlaces entre los objetos. Puede determinarse por la especificacin de multiplicidad (mnima...mxima)

21

Multiplicidad

Determina cuantos objetos de cada tipo intervienen en la relacin. El nmero de instancias de una clase que se relacionan con UNA instancia de la otra clase Cada Asociacin tiene dos multiplicidades (una para cada extremo de la relacin): cuando la multiplicidad mnima es CERO, la relacin es opcional; y una multiplicidad mnima mayor o igual que UNO establece una relacin obligatoria.

22

11

05/06/2011

Tipos de Multiplicidad

23

Ejemplos de Multiplicidad

24

12

05/06/2011

Direccin

La direccin en las flechas de la asociacin determinan en que direccin puede recorrerse una asociacin en el momento de la ejecucin. Una asociacin sin flechas significa que se puede ir de un objeto a otro y viceversa. En el ejemplo siguiente el tipo de flecha en la asociacin implica que desde el objeto Reservacin puedes recuperar (dirigirte hacia) el objeto Cliente. Tambin implica que del objeto Cliente puede recuperar el juego de reservaciones para ese cliente.

25

Asociacin Binaria

Una asociacin binaria se representa mediante una lnea slida que une dos clases, se trata de una relacin entre las dos clases no muy fuerte, es decir, no se exige dependencia existencial ni encapsulamiento.

26

13

05/06/2011

Asociacin Reflexiva

Una clase puede asociarse con s misma. Una clase Empleado puede relacionarse con s misma a travs del rol gerente/dirige. No significa que una instancia est relacionada consigo misma, sino que una instancia de la clase est relacionada con otra instancia de la misma clase.

27

Asociacin Reflexiva

Una instancia de Empleado puede ser el jefe de otras instancias de Empleado. Como el rol subordinado tiene una multiplicidad de 0*, significa que puede tener o no tener otros empleados a quien dirigir. Una instancia de Empleado tiene un slo jefe o ninguno (en caso de ser el mismo jefe).

28

14

05/06/2011

Asociacin Reflexiva

29

Asociacin N-aria

Es una forma de expresar una relacin entre tres o ms clases. La clase de asociacin es dependiente en existencia de las otras clases.

30

15

05/06/2011

Asociacin N-aria

31

Asociacin de Composicin

Es un tipo de relacin fuerte, el objeto agregado no puede existir de forma independiente. Agregacin disjunta y estricta: Las partes slo existen asociadas al compuesto (slo se accede a ellas a travs del compuesto).

32

16

05/06/2011

Asociacin de Composicin

Grficamente, se muestra con un rombo lleno en uno de los extremos (compuesto).

33

Asociacin de Composicin

34

17

05/06/2011

Asociacin de Agregacin

Es un tipo de relacin dbil, el objeto agregado puede existir de forma independiente. Las partes pueden forma parte de distintos agregados. Grficamente, se muestra con un rombo vaco en uno de los extremos.

35

Asociacin de Agregacin

36

18

05/06/2011

Dependencia

Relacin (ms dbil que una asociacin) que muestra la relacin entre un cliente y el proveedor de un servicio usado por 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) puede afectar a la semntica del otro elemento (elemento dependiente).

37

Dependencia

Grficamente, la dependencia se muestra como una lnea discontinua con una punta de flecha que apunta del cliente al proveedor.
Clase dependiente Clase independiente

Video ... ... Grabar(c : canal) Canal

Televisin ... ... cambiar(c : canal)

38

19

05/06/2011

Dependencia

39

Generalizacin

Es una relacin entre dos clases en donde una de ellas, llamada subclase o clase hija, hereda los atributos y el comportamiento de otra, llamada superclase o clase padre. En una generalizacin no hay multiplicidad ni roles. Las subclases heredan caractersticas de las clases de las que se derivan y aaden caractersticas especficas que las diferencian. La visibilidad protected permite que slo objetos de la misma clase subclase vean el elemento.
40

20

05/06/2011

Generalizacin: Representacin grfica


Clase hija Clase Padre

Vehculo

Terrestre

Areo

camin

auto

avin

helicptero

41

Generalizacin: Representacin grfica

42

21

05/06/2011

Paquete

Es un elemento organizador que proporciona UML al dividir el sistema en paquetes que lo hace ms fcil de entender. Un paquete es una forma de agrupar clases (u otros elementos en otro tipo de diagramas) en modelos grandes. Pueden tener asociaciones de dependencia o de generalizacin 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. En UML, una interface es considerada como una especializacin de una clase. Una interface se dibuja como una clase, pero en el compartimento superior del rectngulo aparece un texto una inicial que indica que se trata de una interface y no de una clase. Se representan como clases pero con el estereotipo <<interface>>. Solo contienen operaciones pblicas.
44

22

05/06/2011

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 simbologa del diagrama est como una interface y Professor y Student estn como clases. 2) No se trata de herencia ya que la lnea con la flecha est punteada y no slida.
45

Clase Abstracta

Una clase abstracta se denota con el nombre de la clase y de los mtodos con letra "itlica". Esto indica que la clase definida no puede ser instanciada pues posee mtodos abstractos (an no han sido definidos, es decir, sin implementacin). La nica forma de utilizarla es definiendo subclases, que implementan los mtodos abstractos definidos.

46

23

05/06/2011

Clase Parametrizada

Se denota con un subcuadro en el extremo superior de la clase, en donde se especifican los parmetros que deben ser pasados a la clase para que esta pueda ser instanciada. El ejemplo ms tpico es el caso de un Diccionario en donde una llave o palabra tiene asociado un significado, pero en este caso las llaves y elementos pueden ser genricos. La genericidad puede venir dada de un Template (como en el caso de C++) o bien de alguna estructura predefinida (especializacin a travs de clases).

47

Clase Parametrizada

En el ejemplo no se especificaron los atributos del Diccionario, pues ellos dependern exclusivamente de la implementacin que se le quiera dar.

48

24

05/06/2011

Ejemplo 1:
En una empresa de Ventas, un cliente (Natural o Jurdico) realiza un pedido que es atendido por un Personal. Dicho personal tiene a su cargo a otro personal. El cual ocupa un puesto especfico en la empresa. En un pedido se pueden consignar la venta de varios productos. As tambin un producto puede estar relacionado con varios pedidos. Un producto se encuentra relacionado con una sola categora, a la cual pueden pertenecer varios productos Realizar un Diagrama de Clases que grafique las relaciones existentes.
49

Ejemplo 1:

50

25

05/06/2011

Ejemplo 2:
Se desea disear un diagrama de clases sobre la informacin de las reservas de una empresa dedicada al alquiler de automviles, teniendo en cuenta que un determinado cliente puede tener en un momento dado hechas varias reservas. De cada cliente se desean almacenar su DNI, nombre, direccin y telfono. Adems dos clientes se diferencian por un cdigo nico. Cada cliente puede ser avalado por otro cliente de la empresa.

51

Ejemplo 2:
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 depsito en el momento de realizar la reserva, el precio total de la reserva y un indicador de si el coche o los coches 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

26

05/06/2011

Ejemplo 2:

53

Ejemplo 3:
La Polica quiere crear una base de datos sobre la seguridad en algunas entidades bancarias. Para ello tiene en cuenta: Que cada entidad bancaria se caracteriza por un cdigo y por el domicilio de su Central. Que cada entidad bancaria tiene ms de una sucursal que tambin se caracteriza por un cdigo y por el domicilio, as como por el nmero de empleados de dicha sucursal. Que cada sucursal contrata, segn el da, algunos vigilantes jurados, que se caracterizan por un cdigo y su edad. Un vigilante puede ser contratado por diferentes sucursales (incluso de diferentes entidades), en distintas fechas y es un dato de inters dicha fecha, as como si se ha contratado con arma o no.
54

27

05/06/2011

Ejemplo 3:
Por otra parte, se quiere controlar a las personas que han sido detenidas por atracar las sucursales de dichas entidades. Estas personas se definen por una clave (cdigo) y su nombre completo. Alguna de estas personas estn integradas en algunas bandas organizadas y por ello se desea saber a qu banda pertenecen, sin ser de inters si la banda ha participado en el delito o no Dichas bandas se definen por un nmero de banda y por el nmero de miembros. As mismo, es interesante saber en qu fecha ha atracado cada persona una sucursal. Evidentemente, una persona puede atracar varias sucursales en diferentes fechas, as como que una sucursal puede ser atracada por varias personas.
55

Ejemplo 3:
Igualmente, se quiere saber qu Juez ha estado encargado del caso, sabiendo que un individuo, por diferentes delitos, puede ser juzgado por diferentes jueces. Es de inters saber, en cada delito, si la persona detenida ha sido condenada o no y de haberlo sido, cunto tiempo pasar en la crcel. Un Juez se caracteriza por una clave interna del juzgado, su nombre y los aos de servicio. NOTA: En ningn caso interesa saber si un vigilante ha participado en la detencin de un atracador

56

28

05/06/2011

Ejemplo 3:

57

Ejemplo 4:
Una biblioteca tiene copias de libros. Estos ltimos se caracterizan por su nombre, ao y autor. Un libro est relacionado con una categora (novela, teatro, poesa, ensayo) as como tambin con una editorial. Los autores se caracterizan por su nombre y fecha de nacimiento. Se considera que el autor slo tiene una nacionalidad. Cada copia tiene un identificador, y puede estar en la biblioteca, prestada, con retraso o en reparacin.
58

29

05/06/2011

Ejemplo 4:
Los lectores pueden tener un mximo de 3 libros en prstamo. Cada libro se presta un mximo de 30 das, por cada da de retraso, se impone una multa de dos das sin posibilidad de coger un nuevo libro. Realizar un diagrama de clases para realizar el prstamo y devolucin de libros.

59

Ejemplo 4:

60

30

También podría gustarte