Paradigma oo 2011

44
4 www.dsic.upv.es/~uml Fundamentos de Modelado OO

Transcript of Paradigma oo 2011

Page 1: Paradigma oo 2011

4 www.dsic.upv.es/~uml

Fundamentos de Modelado OO

Page 2: Paradigma oo 2011

5 www.dsic.upv.es/~uml

Objetos Objeto = unidad atómica que encapsula

estado y comportamiento

La encapsulación en un objeto permite una alta cohesión y un bajo acoplamiento (mucha dependencia entre dos clases)

Un objeto puede caracterizar una entidad física (coche) o abstracta (ecuación matemática)

III. El Paradigma OO: Fundamentos de Modelado OO

Page 3: Paradigma oo 2011

7 www.dsic.upv.es/~uml

… Objetos El Modelado de Objetos permite

representar el ciclo de vida de los objetos a través de sus interacciones

En UML, un objeto se representa por un rectángulo con un nombre subrayado

Otro Objeto

Un Objeto

Otro Objeto más

III. El Paradigma OO: Fundamentos de Modelado OO

Page 4: Paradigma oo 2011

8 www.dsic.upv.es/~uml

… Objetos Ejemplo de varios objetos relacionados:

Felipe

Juan

Cuenta Corriente 101

Cuenta Corriente 114

Banco de Valencia

III. El Paradigma OO: Fundamentos de Modelado OO

Page 5: Paradigma oo 2011

9 www.dsic.upv.es/~uml

… Objetos Objeto = Identidad + Estado +

Comportamiento El estado está representado por los valores de

los atributos Un atributo toma un valor en un dominio

concreto Un coche

Azul 979 Kg 70 CV

...

III. El Paradigma OO: Fundamentos de Modelado OO

Page 6: Paradigma oo 2011

10 www.dsic.upv.es/~uml

Clases y Objetos

III. El Paradigma OO: Fundamentos de Modelado OO

Page 7: Paradigma oo 2011

11 www.dsic.upv.es/~uml

Oid (Object Identifier)

Cada objeto posee un oid. El oid establece la identidad del objeto y tiene las siguientes características:

Constituye un identificador único y global para cada objeto dentro del sistema

Es determinado en el momento de la creación del objeto

Es independiente de la localización física del objeto, es decir, provee completa independencia de localización

Identidad

III. El Paradigma OO: Fundamentos de Modelado OO

Page 8: Paradigma oo 2011

12 www.dsic.upv.es/~uml

Es independiente de las propiedades del objeto, lo cual implica independencia de valor y de estructura

No cambia durante toda la vida del objeto. Además, un oid no se reutiliza aunque el objeto deje de existir

No se tiene ningún control sobre los oids y su manipulación resulta transparente

Sin embargo, es preciso contar con algún medio para hacer referencia a un objeto utilizando referencias del dominio (valores de atributos)

… Identidad

III. El Paradigma OO: Fundamentos de Modelado OO

Page 9: Paradigma oo 2011

13 www.dsic.upv.es/~uml

Estado El estado evoluciona con el tiempo

Algunos atributos pueden ser constantes

El comportamiento agrupa las competencias de un objeto y describe las acciones y reacciones de ese objeto

Las operaciones de un objeto son consecuencia de un estímulo externo representado como mensaje enviado desde otro objeto

III. El Paradigma OO: Fundamentos de Modelado OO

Page 10: Paradigma oo 2011

14 www.dsic.upv.es/~uml

Comportamiento Ejemplo de interacción:

Otro objeto

Un objeto

Un mensaje

III. El Paradigma OO: Fundamentos de Modelado OO

Page 11: Paradigma oo 2011

15 www.dsic.upv.es/~uml

… Comportamiento Los mensajes navegan por los enlaces,

a priori en ambas direcciones

Estado y comportamiento están relacionados

Ejemplo: no es posible aterrizar un avión si no está volando. Está volando como consecuencia de haber despegado del suelo

III. El Paradigma OO: Fundamentos de Modelado OO

Page 12: Paradigma oo 2011

16 www.dsic.upv.es/~uml

Comunicación Un sistema informático puede verse

como un conjunto de objetos autónomos y concurrentes que trabajan de manera coordinada en la consecución de un fin específico

El comportamiento global se basa pues en la comunicación entre los objetos que la componen

III. El Paradigma OO: Fundamentos de Modelado OO

Page 13: Paradigma oo 2011

17 www.dsic.upv.es/~uml

El Concepto de Mensaje La unidad de comunicación entre objetos se

llama mensaje

El mensaje es el soporte de una comunicación que vincula dinámicamente los objetos que fueron separados previamente en el proceso de descomposición

Adquiere toda su fuerza cuando se asocia al polimorfismo y al enlace dinámico

III. El Paradigma OO: Fundamentos de Modelado OO

Page 14: Paradigma oo 2011

18 www.dsic.upv.es/~uml

… El Concepto de Mensaje

Objeto 4Objeto 3

Objeto 2

Objeto 1

: Mensaje E

: Mensaje D

: Mensaje C

: Mensaje A

III. El Paradigma OO: Fundamentos de Modelado OO

Page 15: Paradigma oo 2011

19 www.dsic.upv.es/~uml

Mensaje y Estímulo Un estímulo causará la invocación de una

operación, la creación o destrucción de un objeto o la aparición de una señal

Un mensaje es la especificación de un estímulo

III. El Paradigma OO: Fundamentos de Modelado OO

Page 16: Paradigma oo 2011

20 www.dsic.upv.es/~uml

Diagramas de Interacción

Page 17: Paradigma oo 2011

23 www.dsic.upv.es/~uml

Diagrama de Secuencia Muestra la secuencia de mensajes entre

objetos durante un escenario concreto

Cada objeto viene dado por una barra vertical

El tiempo transcurre de arriba abajo

Cuando existe demora entre el envío y la atención se puede indicar usando una línea oblicua

III. El Paradigma OO: Diagramas de Interacción

Page 18: Paradigma oo 2011

24 www.dsic.upv.es/~uml

Diagrama de Secuencia

Page 19: Paradigma oo 2011

25 www.dsic.upv.es/~uml

Diagrama de Secuencia

Page 20: Paradigma oo 2011

27 www.dsic.upv.es/~uml

Mensajes Un mensaje desencadena una acción en el

objeto destinatario

A

BA.1, B.3 / 1:Mensaje

III. El Paradigma OO: Diagramas de Interacción

Page 21: Paradigma oo 2011

28 www.dsic.upv.es/~uml

Diagrama de Clases

Page 22: Paradigma oo 2011

29 www.dsic.upv.es/~uml

Clasificación El mundo real puede ser visto desde abstracciones

diferentes (subjetividad)

Mecanismos de abstracción:

• Clasificación / Instanciación• Composición / Descomposición• Agrupación / Individualización• Especialización / Generalización

La clasificación es uno de los mecanismos de abstracción más utilizados

III. El Paradigma OO: Diagrama de Clases

Page 23: Paradigma oo 2011

30 www.dsic.upv.es/~uml

Clases

La clase define el ámbito de definición de un conjunto de objetos

Cada objeto pertenece a una clase

Los objetos se crean por instanciación de las clases

III. El Paradigma OO: Diagrama de Clases

Page 24: Paradigma oo 2011

31 www.dsic.upv.es/~uml

Clases: Notación Gráfica Cada clase se representa en un

rectángulo con tres compartimientos:

• nombre de la clase• atributos de la clase• operaciones de la clase

Motocicleta

colorcilindradavelocidad maxima

arrancaracelerarfrenar

III. El Paradigma OO: Diagrama de Clases

Page 25: Paradigma oo 2011

32 www.dsic.upv.es/~uml

Clases: Encapsulamiento La encapsulación presenta dos ventajas

básicas:• Se protegen los datos de accesos indebidos• El acoplamiento entre las clases se

disminuye• Favorece la modularidad y el mantenimiento

Los atributos de una clase no deberían ser manipulables directamente por el resto de objetos

III. El Paradigma OO: Diagrama de Clases

Page 26: Paradigma oo 2011

33 www.dsic.upv.es/~uml

… Clases: Encapsulamiento

• (-) Privado : es el más fuerte. Esta parte es totalmente invisible para el resto de las clases

• (#) Los atributos/operaciones protegidos están visibles para las clases derivadas de la original o las que se encuentran dentro del mismo dominio.

• (+) Los atributos/operaciones públicos son visibles a otras clases (cuando se trata de atributos se está transgrediendo el principio de encapsulamiento)

III. El Paradigma OO: Diagrama de Clases

Page 27: Paradigma oo 2011

34 www.dsic.upv.es/~uml

… Clases: Encapsulamiento Ejemplo:

Reglas de visibilidad

+ Atributo público : int# Atributo protegido : int- Atributo privado : int

+ "Operación pública"# "Operación protegida"- "Operación privada"

III. El Paradigma OO: Diagrama de Clases

Page 28: Paradigma oo 2011

35 www.dsic.upv.es/~uml

Relaciones entre Clases Los enlaces entre dos objetos pueden

representarse entre las respectivas clases

Formas de relación entre clases:

• Asociación y Agregación (vista como un caso particular de asociación)

• Generalización/Especialización

Las relaciones de Agregación y Generalización forman jerarquías de clases

III. El Paradigma OO: Diagrama de Clases

Page 29: Paradigma oo 2011

36 www.dsic.upv.es/~uml

Asociación La asociación expresa una conexión

bidireccional entre objetos Una asociación es una abstracción de la

relación existente en los enlaces entre los objetos

Universidad Estudiante

Univ. de Murcia:Universidad Antonio:Estudiante

Una asociación

Un enlace

III. El Paradigma OO: Diagrama de Clases

Page 30: Paradigma oo 2011

37 www.dsic.upv.es/~uml

Ejemplo:

… Asociación

Persona Compañíatrabaja-para

nombres. s.

nombredirección

jefe

Administraempleado

* *emplea-a

0.. 10.. 1

0.. 1

*

marido

casado-con

mujer

III. El Paradigma OO: Diagrama de Clases

Page 31: Paradigma oo 2011

38 www.dsic.upv.es/~uml

Especificación de multiplicidad (mínima...máxima)

1 Uno y sólo uno0..1 Cero o unoM..N Desde M hasta N (enteros naturales)* Cero o muchos0..* Cero o muchos1..* Uno o muchos (al menos uno)

La multiplicidad mínima >= 1 establece una restricción de existencia

… Asociación

III. El Paradigma OO: Diagrama de Clases

Page 32: Paradigma oo 2011

39 www.dsic.upv.es/~uml

La agregación representa una relación parte_de entre objetos

En UML se proporciona una escasa caracterización de la agregación

Puede ser caracterizada con precisión determinando las relaciones de comportamiento y estructura que existen entre el objeto agregado y cada uno de sus objetos componentes

Agregación

III. El Paradigma OO: Diagrama de Clases

Page 33: Paradigma oo 2011

40 www.dsic.upv.es/~uml

La agregación es una forma especial de asociación que especificauna relación todo-parte entre el agregado (todo) y una parte que

locompone. Una agregación se representa mediante un rombo en elextremo “todo” de la relación.

La composición es una agregación más fuerte que implica:

- Dependencia existencial: El elemento dependiente desaparece al destruirse el que lo contiene.

- Pertenencia fuerte: Se puede decir que el objeto contenido es parte constitutiva y vital del que lo contiene.

La composición se representa mediante un rombo relleno del lado de la

clase que contiene a la otra en la agregación.

... Agregación: Caracterización

III. El Paradigma OO: Diagrama de Clases

Page 34: Paradigma oo 2011

41 www.dsic.upv.es/~uml

… Ejemplos

III. El Paradigma OO: Diagrama de Clases

Un Almacén posee Clientes y Cuentas (los rombos van en el objeto que posee las referencias).

Cuando se destruye el Objeto Almacén también son destruidos los objetos Cuenta asociados, en cambio no son afectados los objetos Cliente asociados.

La composición se destaca por un rombo relleno. La agregación se destaca por un rombo transparente.

La flecha en este tipo de relación indica la navegabilidad del objeto referenciado. Cuando no existe este tipo de particularidad la flecha se elimina.

Page 35: Paradigma oo 2011

42 www.dsic.upv.es/~uml

Clases y Objetos Diagrama de Clases y Diagramas de Objetos

pertenecen a dos vistas complementarias del modelo

Un Diagrama de Clases muestra la abstracción de una parte del dominio

Un Diagrama de Objetos representa una situación concreta del dominio

Las clases abstractas no tienen instancias. Son necesarias para la integral comprensión del modelo

III. El Paradigma OO: Diagrama de Clases

Page 36: Paradigma oo 2011

43 www.dsic.upv.es/~uml

Generalización

Permite gestionar la complejidad mediante un ordenamiento jerárquico de clases

Se obtiene usando los mecanismos de abstracción de Generalización y/o Especialización

La Generalización consiste en factorizar las propiedades comunes de un conjunto de clases en una clase más general

III. El Paradigma OO: Diagrama de Clases

Page 37: Paradigma oo 2011

44 www.dsic.upv.es/~uml

Nombres usados: clase padre - clase hija. Otros nombres: superclase - subclase, clase base - clase derivada

Las subclases heredan propiedades de sus clases padre, es decir, atributos y operaciones (y asociaciones) de la clase padre están disponibles en sus clases hijas

... Generalización

III. El Paradigma OO: Diagrama de Clases

Page 38: Paradigma oo 2011

45 www.dsic.upv.es/~uml

La Generalización y Especialización son equivalentes en cuanto al resultado: la jerarquía y herencia establecidas

... Generalización

III. El Paradigma OO: Diagrama de Clases

Page 39: Paradigma oo 2011

46 www.dsic.upv.es/~uml

... Generalización

III. El Paradigma OO: Diagrama de Clases

Vehículo

Veihículo Terrestre Vehículo Aéreo

Coche Camión Avión Helicóptero

Page 40: Paradigma oo 2011

47 www.dsic.upv.es/~uml

La especialización es una técnica muy eficaz para la extensión y reutilización

... Generalización

III. El Paradigma OO: Diagrama de Clases

Funcionando Estropeado

Coche

Page 41: Paradigma oo 2011

48 www.dsic.upv.es/~uml

La noción de clase está próxima a la de conjunto

Dada una clase, podemos ver el conjunto relativo a las instancias que posee o bien relativo a las propiedades de la clase

Generalización y especialización expresan relaciones de inclusión entre conjuntos

... Generalización

III. El Paradigma OO: Diagrama de Clases

Page 42: Paradigma oo 2011

49 www.dsic.upv.es/~uml

Polimorfismo El término polimorfismo se refiere a que

una característica de una clase puede tomar varias formas

El polimorfismo representa en nuestro caso la posibilidad de desencadenar operaciones distintas en respuesta a un mismo mensaje

Cada subclase hereda las operaciones pero tiene la posibilidad de modificar localmente el comportamiento de estas operaciones

III. El Paradigma OO: Diagrama de Clases

Page 43: Paradigma oo 2011

50 www.dsic.upv.es/~uml

… Polimorfismo Ejemplo: todo animal duerme, pero

cada clase lo hace de forma distinta

dormir?

?

III. El Paradigma OO: Diagrama de Clases

Animal

dormir()

León Oso Tigre

Page 44: Paradigma oo 2011

51 www.dsic.upv.es/~uml

… Polimorfismo

Dormir(){en un árbol}

Dormir(){sobrela espalda}

Dormir(){sobre el vientre}

Dormir(){

}

III. El Paradigma OO: Diagrama de Clases

Animal

dormir()

León

dormir()

Oso

dormir()

Tigre

dormir()