Anda di halaman 1dari 19

Programacin Orientada a Objetos Diagrama de Clases I Ing. Julio Ernesto Carreo Vargas Ing. MsC. MsC.

Modelo de Anlisis
Un modelo conceptual explica los conceptos ms significativos en un dominio del problema, identificando los atributos y las asociaciones En POO se representa mediante un grupo de diagramas de estructura esttica, en este caso un diagrama de clases.

Programacin Orientada a Objetos

Diagrama de Clases(1)
Un diagrama de clases muestra un resumen de un sistema a travs de clases y las relaciones entre dichas clases. Son los diagramas ms comunes en el modelado y programacin de sistemas orientados a objetos

Programacin Orientada a Objetos

Diagrama de Clases(2)
Son estticos
muestran que elementos interactuan pero no que sucede cuando ellos hacen la interaccin.

Los diagramas de clase son importantes no solo para la visualizacin, especificacin y documentacin del modelo estructural, sino tambin para la construccin de sistemas ejecutables.
Programacin Orientada a Objetos 4

Elementos de un Diagrama de Clase

Programacin Orientada a Objetos

Clase OO
Nombre Atributos

Mtodos

Programacin Orientada a Objetos

Relaciones entre Clases


Las relaciones entre clases representan asociaciones del mundo del problema. Las relaciones entre las clases son conexiones entre dichas clases.
Programacin Orientada a Objetos 7

Relaciones entre Clases


Existen varios tipos de relaciones:
Asociacin Agregacin Composicin Generalizacin(Herencia) Dependencia

Programacin Orientada a Objetos

Relaciones entre Clases


Las relaciones tienen ciertas caractersticas:
roles, cardinalidad, navegabilidad

Programacin Orientada a Objetos

Asociaciones
Relaciones entre las clases que finalmente sern tambin relacin de objetos

Programacin Orientada a Objetos

10

Asociacin
Una relacin entre instancias de dos clases independientes entre ellas
Las dos clases son de diferente naturaleza

Programacin Orientada a Objetos

11

Asociacin
Hay una asociacin entre dos clases si una instancia de una clase debe conocer de la otra para poder ejecutar su trabajo

El cajero necesita del dispensador para que aquel entregue el dinero al cliente para que le informe la capacidad de billetes.
Programacin Orientada a Objetos 12

Asociacin
Pueden existir relaciones de asociacin entre la misma clase.

Programacin Orientada a Objetos

13

Cardinalidad(1)
La cardinalidad o multiplicidad de una relacin es el nmero de posibles instancias de la clase asociada con una simple instancia de la otra clase. Las cardinalidades pueden ser: 1 Exactamente una instancia * Sin lmite de instancias 0..1 Cero o una instancia 0..* Sin lmite de instancias incluido 0 1..* Al menos una instancia
Programacin Orientada a Objetos 14

Cardinalidad(2)

Por cada Cliente existen muchas orden Por cada Orden existe 0 1 Cliente (en el diagrama no se muestra la cardinalidad)
Programacin Orientada a Objetos 15

Navegabilidad-Direccionalidad
La Asociacin es una conexin que tiene direccionalidad, esto es, las clases involucradas en la relacin se navegan en determinado sentido.

Programacin Orientada a Objetos

16

Navegabilidad-Direccionalidad
Una flecha de navegabilidad en una asociacin muestra en cual direccin la asociacin puede ser recorrida consultada.

Programacin Orientada a Objetos

17

Navegabilidad-Direccionalidad-(1)
La navegabilidad tambin dice quien es el propietario de la implementacin de la asociacin.

Programacin Orientada a Objetos

18

Navegabilidad-Direccionalidad-(1)
Las asociaciones sin flechas de navegabilidad son bidireccionales.

Programacin Orientada a Objetos

19

Relacin Unidireccional

La clase DetalleOrden conoce su Producto, y el Producto NO conoce de que DetalleOrden es.

Programacin Orientada a Objetos

20

10

Relacin Bidireccional

La clase Cliente conoce sus orden, y la orden conoce su Cliente


Programacin Orientada a Objetos

21

Roles (1)
Una relacin tiene dos puntos finales, estos pueden tener un nombre de rol para clarificar la naturaleza de la asociacin. Un cliente solicita muchas ordenes y una orden estaAsociada a un cliente. una persona es empleado de una compaa, una compaa es el empleador de una persona.

Programacin Orientada a Objetos

22

11

Roles (2)

Cada punto final de la relacin tiene un rol

Programacin Orientada a Objetos

23

Roles
Los roles son opcionales y se colocan en el diagrama para clarificarlo.
Si no se colocan roles, los nombres de los atributos asumen este papel.

Programacin Orientada a Objetos

24

12

Asociaciones en Java
La siguiente seccin muestra como se mapean los conceptos de Asociaciones POO en Java

Programacin Orientada a Objetos

25

Relacin de Asociacin UniDireccional(1)


Si la relacin es navegable y la cardinalidad
de la clase destino es 0..1, entonces: En la clase fuente, se coloca un atributo privado de la clase destino.

Programacin Orientada a Objetos

26

13

Relacin de Asociacin UniDireccional(2)

Programacin Orientada a Objetos

27

Relacin de Asociacin UniDireccional(3)


Clases Java

Bus.java
Programacin Orientada a Objetos

Conductor.java
28

14

Accessors y Constructor de Bus

Programacin Orientada a Objetos

29

Accessors y Constructor de Conductor

Programacin Orientada a Objetos

30

15

Relacin de Asociacin Bidireccional(1)


Si la relacin es bidireccional, esto es, navegable en ambos sentidos y la cardinalidad en ambos sentidos es 1:
Se coloca un atributo privado en cada clase que haga referencia a la otra clase.

Programacin Orientada a Objetos

31

Relacin de Asociacin Bidireccional(2)

Programacin Orientada a Objetos

32

16

Relacin de Asociacin Bidireccional(3)


Clases Java

Programacin Orientada a Objetos

33

Accessors y Constructor de Bus

Programacin Orientada a Objetos

34

17

Accessors y Constructor de Conductor

Programacin Orientada a Objetos

35

Invocando mtodos

Programacin Orientada a Objetos

36

18

Bibliografa
UML y patrones una introduccin al anlisis y diseo orientado a objetos y al proceso unificado. Larman, Craig Paul Deitel. Como programar en Java 7/e. Pearson Education. 2007.

Programacin Orientada a Objetos

37

19