Está en la página 1de 44

Fundamentos de Modelado OO

www.dsic.upv.es/~uml

III. El Paradigma OO: Fundamentos de Modelado OO

Objetos
Objeto = unidad atmica que encapsula estado y comportamiento La encapsulacin en un objeto permite una alta cohesin y un bajo acoplamiento (mucha dependencia entre dos clases)

Un objeto puede caracterizar una entidad fsica (coche) o abstracta (ecuacin matemtica)

www.dsic.upv.es/~uml

III. El Paradigma OO: Fundamentos de Modelado OO

Objetos
El Modelado de Objetos permite representar el ciclo de vida de los objetos a travs de sus interacciones En UML, un objeto se representa por un rectngulo con un nombre subrayado
Otro Objeto ms Otro Objeto

Un Objeto

www.dsic.upv.es/~uml

III. El Paradigma OO: Fundamentos de Modelado OO

Objetos
Ejemplo de varios objetos relacionados:
Cuenta Corriente 101 Juan Banco de Valencia

Felipe Cuenta Corriente 114

www.dsic.upv.es/~uml

III. El Paradigma OO: Fundamentos de Modelado OO

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

www.dsic.upv.es/~uml

III. El Paradigma OO: Fundamentos de Modelado OO

Clases y Objetos

www.dsic.upv.es/~uml

10

III. El Paradigma OO: Fundamentos de Modelado OO

Identidad
Oid (Object Identifier) Cada objeto posee un oid. El oid establece la identidad del objeto y tiene las siguientes caractersticas:
Constituye un identificador nico y global para cada objeto dentro del sistema Es determinado en el momento de la creacin del objeto Es independiente de la localizacin fsica del objeto, es decir, provee completa independencia de localizacin

www.dsic.upv.es/~uml

11

III. El Paradigma OO: Fundamentos de Modelado OO

Identidad
Es independiente de las propiedades del objeto, lo cual implica independencia de valor y de estructura No cambia durante toda la vida del objeto. Adems, un oid no se reutiliza aunque el objeto deje de existir No se tiene ningn control sobre los oids y su manipulacin resulta transparente

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

www.dsic.upv.es/~uml

12

III. El Paradigma OO: Fundamentos de Modelado OO

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 estmulo externo representado como mensaje enviado desde otro objeto
13

www.dsic.upv.es/~uml

III. El Paradigma OO: Fundamentos de Modelado OO

Comportamiento
Ejemplo de interaccin:
Otro objeto
Un mensaje Operacion 2

Un objeto
Operacion 1

www.dsic.upv.es/~uml

14

III. El Paradigma OO: Fundamentos de Modelado OO

Comportamiento
Los mensajes navegan por los enlaces, a priori en ambas direcciones Estado y comportamiento estn relacionados Ejemplo: no es posible aterrizar un avin si no est volando. Est volando como consecuencia de haber despegado del suelo

www.dsic.upv.es/~uml

15

III. El Paradigma OO: Fundamentos de Modelado OO

Comunicacin
Un sistema informtico puede verse como un conjunto de objetos autnomos y concurrentes que trabajan de manera coordinada en la consecucin de un fin especfico El comportamiento global se basa pues en la comunicacin entre los objetos que la componen

www.dsic.upv.es/~uml

16

III. El Paradigma OO: Fundamentos de Modelado OO

El Concepto de Mensaje
La unidad de comunicacin entre objetos se llama mensaje El mensaje es el soporte de una comunicacin que vincula dinmicamente los objetos que fueron separados previamente en el proceso de descomposicin Adquiere toda su fuerza cuando se asocia al polimorfismo y al enlace dinmico
17

www.dsic.upv.es/~uml

III. El Paradigma OO: Fundamentos de Modelado OO

El Concepto de Mensaje
Objeto 1

: Mensaje A
Objeto 2

: Mensaje C

: Mensaje E Objeto 4

Objeto 3

: Mensaje D

www.dsic.upv.es/~uml

18

III. El Paradigma OO: Fundamentos de Modelado OO

Mensaje y Estmulo
Un estmulo causar la invocacin de una operacin, la creacin o destruccin de un objeto o la aparicin de una seal Un mensaje es la especificacin de un estmulo

www.dsic.upv.es/~uml

19

Diagramas de Interaccin

www.dsic.upv.es/~uml

20

III. El Paradigma OO: Diagramas de Interaccin

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 envo y la atencin se puede indicar usando una lnea oblicua
23

www.dsic.upv.es/~uml

Diagrama de Secuencia

www.dsic.upv.es/~uml

24

Diagrama de Secuencia

www.dsic.upv.es/~uml

25

III. El Paradigma OO: Diagramas de Interaccin

Mensajes
Un mensaje desencadena una accin en el objeto destinatario

A.1, B.3 / 1:Mensaje

www.dsic.upv.es/~uml

27

Diagrama de Clases

www.dsic.upv.es/~uml

28

III. El Paradigma OO: Diagrama de Clases

Clasificacin
El mundo real puede ser visto desde abstracciones diferentes (subjetividad) Mecanismos de abstraccin: Clasificacin / Instanciacin Composicin / Descomposicin Agrupacin / Individualizacin Especializacin / Generalizacin

La clasificacin es uno de los mecanismos de abstraccin ms utilizados


29

www.dsic.upv.es/~uml

III. El Paradigma OO: Diagrama de Clases

Clases
La clase define el mbito de definicin de un conjunto de objetos

Cada objeto pertenece a una clase


Los objetos se crean por instanciacin de las clases

www.dsic.upv.es/~uml

30

III. El Paradigma OO: Diagrama de Clases

Clases: Notacin Grfica


Cada clase se representa en un rectngulo con tres compartimientos:
nombre de la clase atributos de la clase operaciones de la clase
Motocicleta color cilindrada velocidad maxima arrancar acelerar frenar

www.dsic.upv.es/~uml

31

III. El Paradigma OO: Diagrama de Clases

Clases: Encapsulamiento
La encapsulacin presenta dos ventajas bsicas: 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 deberan ser manipulables directamente por el resto de objetos

www.dsic.upv.es/~uml

32

III. El Paradigma OO: Diagrama de Clases

Clases: Encapsulamiento
(-) Privado : es el ms fuerte. Esta parte es totalmente invisible para el resto de las clases (#) Los atributos/operaciones protegidos estn visibles para las clases derivadas de la original o las que se encuentran dentro del mismo dominio.

(+) Los atributos/operaciones pblicos son visibles a otras clases (cuando se trata de atributos se est transgrediendo el principio de encapsulamiento)

www.dsic.upv.es/~uml

33

III. El Paradigma OO: Diagrama de Clases

Clases: Encapsulamiento
Ejemplo:
Reglas de visibilidad + Atributo pblico : int # Atributo protegido : int - Atributo privado : int + "Operacin pblica" # "Operacin protegida" - "Operacin privada"
34

www.dsic.upv.es/~uml

III. El Paradigma OO: Diagrama de Clases

Relaciones entre Clases


Los enlaces entre dos objetos pueden representarse entre las respectivas clases Formas de relacin entre clases: Asociacin y Agregacin (vista como un caso particular de asociacin) Generalizacin/Especializacin Las relaciones de Agregacin y Generalizacin forman jerarquas de clases
35

www.dsic.upv.es/~uml

III. El Paradigma OO: Diagrama de Clases

Asociacin
La asociacin expresa una conexin bidireccional entre objetos Una asociacin es una abstraccin de la relacin existente en los enlaces entre los objetos
Univ. de Murcia:Universidad Un enlace Antonio:Estudiante

Universidad Una asociacin

Estudiante

www.dsic.upv.es/~uml

36

III. El Paradigma OO: Diagrama de Clases

Asociacin
Ejemplo:
marido
casado-con 0.. 1 mujer jefe 0.. 1 Administra 0.. 1

Persona * nombre s. s.

trabaja-para
emplea-a

* Compaa
nombre direccin

empleado

www.dsic.upv.es/~uml

37

III. El Paradigma OO: Diagrama de Clases

Asociacin
Especificacin de multiplicidad (mnima...mxima)
1 0..1 M..N * 0..* 1..* Uno y slo uno Cero o uno Desde M hasta N (enteros naturales) Cero o muchos Cero o muchos Uno o muchos (al menos uno)

La multiplicidad mnima >= 1 establece una restriccin de existencia


38

www.dsic.upv.es/~uml

III. El Paradigma OO: Diagrama de Clases

Agregacin
La agregacin representa una relacin parte_de entre objetos En UML se proporciona una escasa caracterizacin de la agregacin

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

www.dsic.upv.es/~uml

III. El Paradigma OO: Diagrama de Clases

... Agregacin: Caracterizacin


La agregacin es una forma especial de asociacin que especifica una relacin todo-parte entre el agregado (todo) y una parte que lo compone. Una agregacin se representa mediante un rombo en el extremo todo de la relacin. La composicin es una agregacin ms 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 composicin se representa mediante un rombo relleno del lado de la clase que contiene a la otra en la agregacin.

www.dsic.upv.es/~uml

40

III. El Paradigma OO: Diagrama de Clases

Ejemplos

Un Almacn posee Clientes y Cuentas (los rombos van en el objeto que posee las referencias).
Cuando se destruye el Objeto Almacn tambin son destruidos los objetos Cuenta asociados, en cambio no son afectados los objetos Cliente asociados. La composicin se destaca por un rombo relleno. La agregacin se destaca por un rombo transparente. La flecha en este tipo de relacin indica la navegabilidad del objeto referenciado. Cuando no existe este tipo de particularidad la flecha se elimina.

www.dsic.upv.es/~uml

41

III. El Paradigma OO: Diagrama de Clases

Clases y Objetos
Diagrama de Clases y Diagramas de Objetos pertenecen a dos vistas complementarias del modelo Un Diagrama de Clases muestra la abstraccin de una parte del dominio Un Diagrama de Objetos representa una situacin concreta del dominio

Las clases abstractas no tienen instancias. Son necesarias para la integral comprensin del modelo

www.dsic.upv.es/~uml

42

III. El Paradigma OO: Diagrama de Clases

Generalizacin
Permite gestionar la complejidad mediante un ordenamiento jerrquico de clases Se obtiene usando los mecanismos de abstraccin de Generalizacin y/o Especializacin La Generalizacin consiste en factorizar las propiedades comunes de un conjunto de clases en una clase ms general

www.dsic.upv.es/~uml

43

III. El Paradigma OO: Diagrama de Clases

... Generalizacin
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 estn disponibles en sus clases hijas

www.dsic.upv.es/~uml

44

III. El Paradigma OO: Diagrama de Clases

... Generalizacin

La Generalizacin y Especializacin son equivalentes en cuanto al resultado: la jerarqua y herencia establecidas

www.dsic.upv.es/~uml

45

III. El Paradigma OO: Diagrama de Clases

... Generalizacin
Vehculo

Veihculo Terrestre

Vehculo Areo

Coche

Camin

Avin

Helicptero

www.dsic.upv.es/~uml

46

III. El Paradigma OO: Diagrama de Clases

... Generalizacin
La especializacin es una tcnica muy eficaz para la extensin y reutilizacin
Coche

Funcionando

Estropeado

www.dsic.upv.es/~uml

47

III. El Paradigma OO: Diagrama de Clases

... Generalizacin
La nocin de clase est prxima 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 Generalizacin y especializacin expresan relaciones de inclusin entre conjuntos

www.dsic.upv.es/~uml

48

III. El Paradigma OO: Diagrama de Clases

Polimorfismo
El trmino polimorfismo se refiere a que una caracterstica 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
49

www.dsic.upv.es/~uml

III. El Paradigma OO: Diagrama de Clases

Polimorfismo
Ejemplo: todo animal duerme, pero cada clase lo hace de forma distinta
Animal dormir()

?
dormir

?
Len Oso Tigre

www.dsic.upv.es/~uml

50

III. El Paradigma OO: Diagrama de Clases

Polimorfismo
Animal dormir()
Dormir() { }

Len
dormir()
Dormir() { sobre el vientre }
www.dsic.upv.es/~uml

Oso
dormir()

Tigre
dormir()

Dormir() { sobrela espalda }

Dormir() { en un rbol }
51