Successfully reported this slideshow.
El Paradigma  Orientado a Objeto usando UML
¿Por qué la Orientación a Objetos? <ul><li>Proximidad de los conceptos de modelado respecto de las entidades del mundo rea...
¿Por qué la Orientación a Objetos? <ul><li>Conceptos comunes de modelado durante el análisis, diseño e implementación </li...
Fundamentos de  Modelado OO
Objetos <ul><li>Objeto = unidad atómica que  encapsula  estado y comportamiento </li></ul><ul><li>La  encapsula ción   en ...
<ul><li>El mundo real se compone de… </li></ul><ul><li>OO - Propone atacar la complejidad de los problemas del mundo real ...
…  Objetos <ul><li>El Modelado de Objetos permite representar el ciclo de vida de los objetos a través de sus interaccione...
…  Objetos <ul><li>Ejemplo de varios objetos relacionados: </li></ul>III. El Paradigma OO: Fundamentos de Modelado OO
…  Objetos <ul><li>Objeto = Identidad + Estado + Comportamiento </li></ul><ul><li>El estado está representado por los valo...
Clases y Objetos III. El Paradigma OO: Fundamentos de Modelado OO
<ul><li>Oid (Object Identifier) </li></ul><ul><li>Cada objeto posee un oid. El oid establece la identidad del objeto y tie...
<ul><ul><li>Es independiente de las propiedades del objeto, lo cual implica independencia de valor y de estructura </li></...
Estado <ul><li>El estado evoluciona con el tiempo </li></ul><ul><li>Algunos atributos pueden ser constantes </li></ul><ul>...
Comportamiento <ul><li>Ejemplo de interacción: </li></ul>III. El Paradigma OO: Fundamentos de Modelado OO
…  Comportamiento <ul><li>Los mensajes navegan por los enlaces, a priori en ambas direcciones </li></ul><ul><li>Estado y c...
Comunicación <ul><li>Un sistema informático puede verse como un conjunto de objetos autónomos y concurrentes que trabajan ...
El Concepto de Mensaje <ul><li>La unidad de comunicación entre objetos se llama mensaje </li></ul><ul><li>El mensaje es el...
…  El Concepto de Mensaje Objeto 4 Objeto 3 Objeto 2 Objeto 1 : Mensaje E : Mensaje D : Mensaje C : Mensaje A III. El Para...
Mensaje y Estímulo <ul><li>Un estímulo causará la invocación de una operación,  la creación o destrucción de un objeto o l...
Diagramas de I nteracci ón
Interacción <ul><li>Los objetos interactúan para realizar colectivamente los servicios ofrecidos por las aplicaciones. Los...
Diagramas de interacción <ul><li>El  Diagrama de Secuencia  es más adecuado  para  observar la perspectiva cronológica de ...
Diagrama de Secuencia <ul><li>Muestra la secuencia de mensajes entre objetos durante un escenario concreto </li></ul><ul><...
Diagrama de Secuencia
Diagrama de Secuencia
Diagrama de Colaboración <ul><li>Son útiles en la fase exploratoria para identificar objetos </li></ul><ul><li>La distribu...
Mensajes <ul><li>Un mensaje desencadena una acción en el objeto destinatario </li></ul>A B A.1, B.3 /  1: Mensaje III. El ...
Diagrama de Clases
Clas ificación <ul><li>El mundo real puede ser visto desde abstracciones diferentes (subjetividad) </li></ul><ul><li>Mecan...
Clases <ul><li>La clase define el ámbito de definición de un conjunto de objetos </li></ul><ul><li>Cada objeto pertenece a...
Clases: Notación Gráfica <ul><li>Cada clase se representa en un rectángulo con tres  compartimientos : </li></ul><ul><ul><...
Clases: Encapsulamiento <ul><li>La encapsulación presenta dos ventajas básicas: </li></ul><ul><ul><li>Se protegen los dato...
…  Clases: Encapsulamiento <ul><ul><li>(-) Privado   : es el más fuerte. Esta parte es totalmente invisible para el resto ...
…  Clases: Encapsulamiento <ul><li>Ejemplo: </li></ul>III. El Paradigma OO: Diagrama de Clases
Relaciones entre  C lases <ul><li>Los enlaces  entre  dos objetos pueden  representarse  en tre las respectivas  clases </...
Asociación <ul><li>La asociación expresa una conexión bidireccional entre  objetos </li></ul><ul><li>Una asociación es una...
<ul><li>Ejemplo: </li></ul>…  Asociación III. El Paradigma OO: Diagrama de Clases Persona Compañía trabaja-para nombre s. ...
<ul><li>Especificación de multiplicidad  (mínima...máxima) </li></ul><ul><ul><li>1 Uno y sólo uno </li></ul></ul><ul><ul><...
<ul><li>L a agregación representa  una  relación  parte_de   entre objetos </li></ul><ul><li>En UML se proporciona una esc...
<ul><li>La agregación es una forma especial de asociación que especifica </li></ul><ul><li>una relación todo-parte entre e...
…  Ejemplos III. El Paradigma OO: Diagrama de Clases Un Almacén posee Clientes y Cuentas (los rombos van en el objeto que ...
Clases y Objetos <ul><li>Diagrama de Clases y Diagramas de Objetos pertenecen a dos vistas complementarias del modelo </li...
Generalización <ul><li>P ermite gestionar la complejidad mediante un ordenamiento jerárquico  de clases </li></ul><ul><li>...
<ul><li>Nombres usados: clase padre - clase hija . Otros nombres:  superclase - subclase, clase base - clase derivada </li...
<ul><li>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
<ul><li>La especialización es una técnica muy eficaz para la extensión y reutilización </li></ul>... Generalización III. E...
<ul><li>La noción de clase está próxima a la de conjunto </li></ul><ul><li>Dada una clase, podemos ver el conjunto relativ...
Polimorfismo <ul><li>El término polimorfismo se refiere a que una característica de una clase puede tomar varias formas </...
…  Polimorfismo <ul><li>Ejemplo: todo animal duerme, pero cada clase lo hace de forma distinta </li></ul>dormir ? ? III. E...
…  Polimorfismo Dormir() { en un árbol } Dormir() { sobrela espalda } Dormir() { sobre el vientre } Dormir() { } III. El P...
Upcoming SlideShare
Loading in …5
×

Paradigma oo 2011

2,333 views

Published on

Published in: Technology, Education
  • Be the first to comment

Paradigma oo 2011

  1. 1. El Paradigma Orientado a Objeto usando UML
  2. 2. ¿Por qué la Orientación a Objetos? <ul><li>Proximidad de los conceptos de modelado respecto de las entidades del mundo real </li></ul><ul><ul><li>Mejora captura y validación de requerimientos </li></ul></ul><ul><ul><li>Acerca el “espacio del problema” y el “espacio de la solución” </li></ul></ul><ul><li>Modelado integrado de propiedades estáticas y dinámicas del ámbito del problema </li></ul><ul><ul><li>Facilita construcción, mantenimiento y reutilización </li></ul></ul>III. El Paradigma Orientado a Objeto
  3. 3. ¿Por qué la Orientación a Objetos? <ul><li>Conceptos comunes de modelado durante el análisis, diseño e implementación </li></ul><ul><ul><li>Facilita la transición entre distintas fases </li></ul></ul><ul><ul><li>Favorece el desarrollo iterativo del sistema </li></ul></ul><ul><ul><li>Disipa la barrera entre el “qué” y el “cómo” </li></ul></ul>III. El Paradigma Orientado a Objeto
  4. 4. Fundamentos de Modelado OO
  5. 5. Objetos <ul><li>Objeto = unidad atómica que encapsula estado y comportamiento </li></ul><ul><li>La encapsula ción en un objeto permite una alta cohesión y un bajo acoplamiento (mucha dependencia entre dos clases) </li></ul><ul><li>Un objeto puede caracterizar una entidad física (coche) o abstracta (ecuación matemática) </li></ul>III. El Paradigma OO: Fundamentos de Modelado OO
  6. 6. <ul><li>El mundo real se compone de… </li></ul><ul><li>OO - Propone atacar la complejidad de los problemas del mundo real abstrayendo el conocimiento y encapsulándolo en... OBJETOS </li></ul><ul><li>OO = Enfoque más abstracto que la programación procedural - relacional. Importa mas el QUÉ y no tanto el CÓMO </li></ul>Descomposición de la Realidad
  7. 7. … Objetos <ul><li>El Modelado de Objetos permite representar el ciclo de vida de los objetos a través de sus interacciones </li></ul><ul><li>En UML, un objeto se representa por un rectángulo con un nombre subrayado </li></ul>III. El Paradigma OO: Fundamentos de Modelado OO Otro Objeto Un Objeto Otro Objeto más
  8. 8. … Objetos <ul><li>Ejemplo de varios objetos relacionados: </li></ul>III. El Paradigma OO: Fundamentos de Modelado OO
  9. 9. … Objetos <ul><li>Objeto = Identidad + Estado + Comportamiento </li></ul><ul><li>El estado está representado por los valores de los atributos </li></ul><ul><li>Un atributo toma un valor en un dominio concreto </li></ul>III. El Paradigma OO: Fundamentos de Modelado OO
  10. 10. Clases y Objetos III. El Paradigma OO: Fundamentos de Modelado OO
  11. 11. <ul><li>Oid (Object Identifier) </li></ul><ul><li>Cada objeto posee un oid. El oid establece la identidad del objeto y tiene las siguientes características: </li></ul><ul><ul><li>Constituye un identificador único y global para cada objeto dentro del sistema </li></ul></ul><ul><ul><li>Es determinado en el momento de la creación del objeto </li></ul></ul><ul><ul><li>Es independiente de la localización física del objeto, es decir, provee completa independencia de localización </li></ul></ul>Identidad III. El Paradigma OO: Fundamentos de Modelado OO
  12. 12. <ul><ul><li>Es independiente de las propiedades del objeto, lo cual implica independencia de valor y de estructura </li></ul></ul><ul><ul><li>No cambia durante toda la vida del objeto. Además, un oid no se reutiliza aunque el objeto deje de existir </li></ul></ul><ul><ul><li>No se tiene ningún control sobre los oids y su manipulación resulta transparente </li></ul></ul><ul><li>Sin embargo, es preciso contar con algún medio para hacer referencia a un objeto utilizando referencias del dominio (valores de atributos) </li></ul>… Identidad III. El Paradigma OO: Fundamentos de Modelado OO
  13. 13. Estado <ul><li>El estado evoluciona con el tiempo </li></ul><ul><li>Algunos atributos pueden ser constantes </li></ul><ul><li>El comportamiento agrupa las competencias de un objeto y describe las acciones y reacciones de ese objeto </li></ul><ul><li>Las operaciones de un objeto son consecuencia de un estímulo externo representado como mensaje enviado desde otro objeto </li></ul>III. El Paradigma OO: Fundamentos de Modelado OO
  14. 14. Comportamiento <ul><li>Ejemplo de interacción: </li></ul>III. El Paradigma OO: Fundamentos de Modelado OO
  15. 15. … Comportamiento <ul><li>Los mensajes navegan por los enlaces, a priori en ambas direcciones </li></ul><ul><li>Estado y comportamiento están relacionados </li></ul><ul><li>Ejemplo: no es posible aterrizar un avión si no está volando. Está volando como consecuencia de haber despegado del suelo </li></ul>III. El Paradigma OO: Fundamentos de Modelado OO
  16. 16. Comunicación <ul><li>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 </li></ul><ul><li>El comportamiento global se basa pues en la comunicación entre los objetos que la componen </li></ul>III. El Paradigma OO: Fundamentos de Modelado OO
  17. 17. El Concepto de Mensaje <ul><li>La unidad de comunicación entre objetos se llama mensaje </li></ul><ul><li>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 </li></ul><ul><li>Adquiere toda su fuerza cuando se asocia al polimorfismo y al enlace dinámico </li></ul>III. El Paradigma OO: Fundamentos de Modelado OO
  18. 18. … El Concepto de Mensaje Objeto 4 Objeto 3 Objeto 2 Objeto 1 : Mensaje E : Mensaje D : Mensaje C : Mensaje A III. El Paradigma OO: Fundamentos de Modelado OO
  19. 19. Mensaje y Estímulo <ul><li>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 </li></ul><ul><li>Un mensaje es la especificación de un estímulo </li></ul>III. El Paradigma OO: Fundamentos de Modelado OO
  20. 20. Diagramas de I nteracci ón
  21. 21. Interacción <ul><li>Los objetos interactúan para realizar colectivamente los servicios ofrecidos por las aplicaciones. Los diagramas de interacción muestran cómo se comunican los objetos en una interacción </li></ul><ul><li>Existen dos tipos de diagramas de interacción: el D iagrama de C olaboración y el Di agrama de S ecuencia </li></ul>III. El Paradigma OO: Diagramas de Interacción
  22. 22. Diagramas de interacción <ul><li>El Diagrama de Secuencia es más adecuado para observar la perspectiva cronológica de las interacciones </li></ul><ul><li>El Diagrama de Colaboración ofrece una mejor visión espacial mostrando los enlaces de comunicación entre objetos </li></ul><ul><li>El D. de Colaboración puede obte nerse a utomáticamente a partir del correspondiente D. de Secuencia (o viceversa) </li></ul>III. El Paradigma OO: Diagramas de Interacción
  23. 23. Diagrama de Secuencia <ul><li>Muestra la secuencia de mensajes entre objetos durante un escenario concreto </li></ul><ul><li>Cada objeto viene dado por una barra vertical </li></ul><ul><li>El tiempo transcurre de arriba abajo </li></ul><ul><li>Cuando existe demora entre el envío y la atención se puede indicar usando una línea oblicua </li></ul>III. El Paradigma OO: Diagramas de Interacción
  24. 24. Diagrama de Secuencia
  25. 25. Diagrama de Secuencia
  26. 26. Diagrama de Colaboración <ul><li>Son útiles en la fase exploratoria para identificar objetos </li></ul><ul><li>La distribución de los objetos en el diagrama permite observar adecuadamente la interacción de un objeto con respecto de los demás </li></ul><ul><li>La estructura estática viene dada por los enlaces; la dinámica por el envío de mensajes por los enlaces </li></ul>III. El Paradigma OO: Diagramas de Interacción
  27. 27. Mensajes <ul><li>Un mensaje desencadena una acción en el objeto destinatario </li></ul>A B A.1, B.3 / 1: Mensaje III. El Paradigma OO: Diagramas de Interacción
  28. 28. Diagrama de Clases
  29. 29. Clas ificación <ul><li>El mundo real puede ser visto desde abstracciones diferentes (subjetividad) </li></ul><ul><li>Mecanismos de abstracción: </li></ul><ul><ul><li>Clasificación / Instanciación </li></ul></ul><ul><ul><li>Composición / Descomposición </li></ul></ul><ul><ul><li>Agrupación / Individualización </li></ul></ul><ul><ul><li>Especialización / Generalización </li></ul></ul><ul><li>La clasificación es uno de los mecanismos de abstracción más utilizados </li></ul>III. El Paradigma OO: Diagrama de Clases
  30. 30. Clases <ul><li>La clase define el ámbito de definición de un conjunto de objetos </li></ul><ul><li>Cada objeto pertenece a una clase </li></ul><ul><li>Los objetos se crean por instanciación de las clases </li></ul>III. El Paradigma OO: Diagrama de Clases
  31. 31. Clases: Notación Gráfica <ul><li>Cada clase se representa en un rectángulo con tres compartimientos : </li></ul><ul><ul><li>nombre de la clase </li></ul></ul><ul><ul><li>atributos de la clase </li></ul></ul><ul><ul><li>operaciones de la clase </li></ul></ul>Motocicleta color cilindrada velocidad maxima arrancar acelerar frenar III. El Paradigma OO: Diagrama de Clases
  32. 32. Clases: Encapsulamiento <ul><li>La encapsulación presenta dos ventajas básicas: </li></ul><ul><ul><li>Se protegen los datos de accesos indebidos </li></ul></ul><ul><ul><li>El acoplamiento entre las clases se disminuye </li></ul></ul><ul><ul><li>Favorece la modularidad y el mantenimiento </li></ul></ul><ul><li>L os atributos de una clase no deberían s er manipulables directamente por el resto de objetos </li></ul>III. El Paradigma OO: Diagrama de Clases
  33. 33. … Clases: Encapsulamiento <ul><ul><li>(-) Privado : es el más fuerte. Esta parte es totalmente invisible para el resto de las clases </li></ul></ul><ul><ul><li>(#) Los atributos /operaciones protegid os están visibles para l a s clases derivadas de la original o las que se encuentran dentro del mismo dominio. </li></ul></ul><ul><ul><li>(+) Los atributos /operaciones públic os son visibles a otras clases ( cuando se trata de atributos se está transgrediendo el principio de encapsulamiento) </li></ul></ul>III. El Paradigma OO: Diagrama de Clases
  34. 34. … Clases: Encapsulamiento <ul><li>Ejemplo: </li></ul>III. El Paradigma OO: Diagrama de Clases
  35. 35. Relaciones entre C lases <ul><li>Los enlaces entre dos objetos pueden representarse en tre las respectivas clases </li></ul><ul><li>Formas de relación entre clases : </li></ul><ul><ul><li>Asociación y Agregación ( vista como un caso particular de asociación) </li></ul></ul><ul><ul><li>Generalización/Especialización </li></ul></ul><ul><li>Las relaciones de Agregación y Generalización forman jerarquías de clases </li></ul>III. El Paradigma OO: Diagrama de Clases
  36. 36. Asociación <ul><li>La asociación expresa una conexión bidireccional entre objetos </li></ul><ul><li>Una asociación es una abstracción de la relación existente en los enlaces entre los objetos </li></ul>III. El Paradigma OO: Diagrama de Clases
  37. 37. <ul><li>Ejemplo: </li></ul>… Asociación III. El Paradigma OO: Diagrama de Clases Persona Compañía trabaja-para nombre s. s. nombre dirección jefe Administra empleado * * emplea-a 0.. 1 0.. 1 0.. 1 * marido casado-con mujer
  38. 38. <ul><li>Especificación de multiplicidad (mínima...máxima) </li></ul><ul><ul><li>1 Uno y sólo uno </li></ul></ul><ul><ul><li>0..1 Cero o uno </li></ul></ul><ul><ul><li>M..N De sde M hasta N (enteros naturales) </li></ul></ul><ul><ul><li>* C ero o muchos </li></ul></ul><ul><ul><li>0..* Cero o muchos </li></ul></ul><ul><ul><li>1..* U no o muchos (al menos uno) </li></ul></ul><ul><li>La multiplicidad mínima >= 1 establece una restricci ón de existencia </li></ul>… Asociación III. El Paradigma OO: Diagrama de Clases
  39. 39. <ul><li>L a agregación representa una relación parte_de entre objetos </li></ul><ul><li>En UML se proporciona una escasa caracterización de la agregación </li></ul><ul><li>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 </li></ul>Agregación III. El Paradigma OO: Diagrama de Clases
  40. 40. <ul><li>La agregación es una forma especial de asociación que especifica </li></ul><ul><li>una relación todo-parte entre el agregado (todo) y una parte que lo </li></ul><ul><li>compone. Una agregación se representa mediante un rombo en el </li></ul><ul><li>extremo “todo” de la relación. </li></ul><ul><li>La composición es una agregación más fuerte que implica: </li></ul><ul><li>Dependencia existencial: El elemento dependiente desaparece al destruirse el que lo contiene. </li></ul><ul><li>Pertenencia fuerte: Se puede decir que el objeto contenido es parte constitutiva y vital del que lo contiene. </li></ul><ul><li>La composición se representa mediante un rombo relleno del lado de la </li></ul><ul><li>clase que contiene a la otra en la agregación. </li></ul>... Agregación: Caracterización III. El Paradigma OO: Diagrama de Clases
  41. 41. … 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.
  42. 42. Clases y Objetos <ul><li>Diagrama de Clases y Diagramas de Objetos pertenecen a dos vistas complementarias del modelo </li></ul><ul><li>Un Diagrama de Clases muestra la abstracción de una parte del dominio </li></ul><ul><li>Un Diagrama de Objetos representa una situación concreta del dominio </li></ul><ul><li>Las clases abstractas no tienen instancias. Son necesarias para la integral comprensión del modelo </li></ul>III. El Paradigma OO: Diagrama de Clases
  43. 43. Generalización <ul><li>P ermite gestionar la complejidad mediante un ordenamiento jerárquico de clases </li></ul><ul><li>S e obtiene usando los mecanismos de abstracción de Generalización y/ o Especialización </li></ul><ul><li>La Generalización consiste en factorizar l as propiedades comunes de un conjunto de clases en una clase más general </li></ul>III. El Paradigma OO: Diagrama de Clases
  44. 44. <ul><li>Nombres usados: clase padre - clase hija . Otros nombres: superclase - subclase, clase base - clase derivada </li></ul><ul><li>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 </li></ul>... Generalización III. El Paradigma OO: Diagrama de Clases
  45. 45. <ul><li>La Generalización y Especialización son equivalentes en cuanto al resultado: la jerarquía y herencia establecidas </li></ul>... Generalización III. El Paradigma OO: Diagrama de Clases
  46. 46. ... Generalización III. El Paradigma OO: Diagrama de Clases
  47. 47. <ul><li>La especialización es una técnica muy eficaz para la extensión y reutilización </li></ul>... Generalización III. El Paradigma OO: Diagrama de Clases
  48. 48. <ul><li>La noción de clase está próxima a la de conjunto </li></ul><ul><li>Dada una clase, podemos ver el conjunto relativo a las instancias que posee o bien relativo a las propiedades de la clase </li></ul><ul><li>Generalización y especialización expresan relaciones de inclusión entre conjuntos </li></ul>... Generalización III. El Paradigma OO: Diagrama de Clases
  49. 49. Polimorfismo <ul><li>El término polimorfismo se refiere a que una característica de una clase puede tomar varias formas </li></ul><ul><li>El polimorfismo representa en nuestro caso la posibilidad de desencadenar operaciones distintas en respuesta a un mismo mensaje </li></ul><ul><li>Cada subclase hereda las operaciones pero tiene la posibilidad de modificar localmente el comportamiento de estas operaciones </li></ul>III. El Paradigma OO: Diagrama de Clases
  50. 50. … Polimorfismo <ul><li>Ejemplo: todo animal duerme, pero cada clase lo hace de forma distinta </li></ul>dormir ? ? III. El Paradigma OO: Diagrama de Clases
  51. 51. … 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()

×