Paradigma oo 2011
-
Upload
johigueler -
Category
Technology
-
view
1.980 -
download
0
Transcript of Paradigma oo 2011
![Page 1: Paradigma oo 2011](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/1.jpg)
4 www.dsic.upv.es/~uml
Fundamentos de Modelado OO
![Page 2: Paradigma oo 2011](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/2.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/3.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/4.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/5.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/6.jpg)
10 www.dsic.upv.es/~uml
Clases y Objetos
III. El Paradigma OO: Fundamentos de Modelado OO
![Page 7: Paradigma oo 2011](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/7.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/8.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/9.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/10.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/11.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/12.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/13.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/14.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/15.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/16.jpg)
20 www.dsic.upv.es/~uml
Diagramas de Interacción
![Page 17: Paradigma oo 2011](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/17.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/18.jpg)
24 www.dsic.upv.es/~uml
Diagrama de Secuencia
![Page 19: Paradigma oo 2011](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/19.jpg)
25 www.dsic.upv.es/~uml
Diagrama de Secuencia
![Page 20: Paradigma oo 2011](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/20.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/21.jpg)
28 www.dsic.upv.es/~uml
Diagrama de Clases
![Page 22: Paradigma oo 2011](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/22.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/23.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/24.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/25.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/26.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/27.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/28.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/29.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/30.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/31.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/32.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/33.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/34.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/35.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/36.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/37.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/38.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/39.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/40.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/41.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/42.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/43.jpg)
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](https://reader035.fdocuments.co/reader035/viewer/2022062307/557b0307d8b42a2d178b5138/html5/thumbnails/44.jpg)
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()