Your SlideShare is downloading. ×
  • Like
Paradigma oo 2011
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Paradigma oo 2011

  • 1,945 views
Published

 

Published in Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,945
On SlideShare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
96
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • Sintaxis para denominar objetos: : C una instancia anónima de la clase C / R una instancia anónima desempeñando el rol R / R : C un a instancia anónima de la clase C desempeñando el rol R O / R una instancia llamada O desempeñando el rol R O : C una instancia llamada O de la clase C O / R : C una instancia llamada O , de la clase C y desempeñando el rol R O una instancia llamada O
  • - Un atributo es semánticamente equivalente a una composición (composite aggreation). La sintaxis por defecto para los atributos es: visibili dad n ombre [multiplici dad ] : t i p o = valor-inicial { propiedades } - tipo es una especificación dependiente del lenguaje de implementación - Para indicar que un atributo es constante se puede poner la propiedad frozen - Ejemplos usando multiplicidad: colores [3]: Color puntos [2..*]: Punto nombre [0..1]: String - Un atributo de clase (del ámbito de clase y no de objeto) se indica subrayándolo

Transcript

  • 1. El Paradigma Orientado a Objeto usando UML
  • 2. ¿Por qué la Orientación a Objetos?
    • Proximidad de los conceptos de modelado respecto de las entidades del mundo real
      • Mejora captura y validación de requerimientos
      • Acerca el “espacio del problema” y el “espacio de la solución”
    • Modelado integrado de propiedades estáticas y dinámicas del ámbito del problema
      • Facilita construcción, mantenimiento y reutilización
    III. El Paradigma Orientado a Objeto
  • 3. ¿Por qué la Orientación a Objetos?
    • Conceptos comunes de modelado durante el análisis, diseño e implementación
      • Facilita la transición entre distintas fases
      • Favorece el desarrollo iterativo del sistema
      • Disipa la barrera entre el “qué” y el “cómo”
    III. El Paradigma Orientado a Objeto
  • 4. Fundamentos de Modelado OO
  • 5. Objetos
    • Objeto = unidad atómica que encapsula estado y comportamiento
    • La encapsula ció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
  • 6.
    • El mundo real se compone de…
    • OO - Propone atacar la complejidad de los problemas del mundo real abstrayendo el conocimiento y encapsulándolo en... OBJETOS
    • OO = Enfoque más abstracto que la programación procedural - relacional. Importa mas el QUÉ y no tanto el CÓMO
    Descomposición de la Realidad
  • 7. … 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
    III. El Paradigma OO: Fundamentos de Modelado OO Otro Objeto Un Objeto Otro Objeto más
  • 8. … Objetos
    • Ejemplo de varios objetos relacionados:
    III. El Paradigma OO: Fundamentos de Modelado OO
  • 9. … Objetos
    • Objeto = Identidad + Estado + Comportamiento
    • El estado está representado por los valores de los atributos
    • Un atributo toma un valor en un dominio concreto
    III. El Paradigma OO: Fundamentos de Modelado OO
  • 10. Clases y Objetos III. El Paradigma OO: Fundamentos de Modelado OO
  • 11.
    • 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
  • 12.
      • 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
  • 13. 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
  • 14. Comportamiento
    • Ejemplo de interacción:
    III. El Paradigma OO: Fundamentos de Modelado OO
  • 15. … 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
  • 16. 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
  • 17. 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
  • 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. 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
  • 20. Diagramas de I nteracci ón
  • 21. Interacción
    • 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
    • Existen dos tipos de diagramas de interacción: el D iagrama de C olaboración y el Di agrama de S ecuencia
    III. El Paradigma OO: Diagramas de Interacción
  • 22. Diagramas de interacción
    • El Diagrama de Secuencia es más adecuado para observar la perspectiva cronológica de las interacciones
    • El Diagrama de Colaboración ofrece una mejor visión espacial mostrando los enlaces de comunicación entre objetos
    • El D. de Colaboración puede obte nerse a utomáticamente a partir del correspondiente D. de Secuencia (o viceversa)
    III. El Paradigma OO: Diagramas de Interacción
  • 23. 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
  • 24. Diagrama de Secuencia
  • 25. Diagrama de Secuencia
  • 26. Diagrama de Colaboración
    • Son útiles en la fase exploratoria para identificar objetos
    • La distribución de los objetos en el diagrama permite observar adecuadamente la interacción de un objeto con respecto de los demás
    • La estructura estática viene dada por los enlaces; la dinámica por el envío de mensajes por los enlaces
    III. El Paradigma OO: Diagramas de Interacción
  • 27. Mensajes
    • Un mensaje desencadena una acción en el objeto destinatario
    A B A.1, B.3 / 1: Mensaje III. El Paradigma OO: Diagramas de Interacción
  • 28. Diagrama de Clases
  • 29. Clas ificació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
  • 30. 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
  • 31. 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 color cilindrada velocidad maxima arrancar acelerar frenar III. El Paradigma OO: Diagrama de Clases
  • 32. 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
    • L os atributos de una clase no deberían s er manipulables directamente por el resto de objetos
    III. El Paradigma OO: Diagrama de Clases
  • 33. … Clases: Encapsulamiento
      • (-) Privado : es el más fuerte. Esta parte es totalmente invisible para el resto de las clases
      • (#) 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.
      • (+) Los atributos /operaciones públic os son visibles a otras clases ( cuando se trata de atributos se está transgrediendo el principio de encapsulamiento)
    III. El Paradigma OO: Diagrama de Clases
  • 34. … Clases: Encapsulamiento
    • Ejemplo:
    III. El Paradigma OO: Diagrama de Clases
  • 35. Relaciones entre C lases
    • Los enlaces entre dos objetos pueden representarse en tre 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
  • 36. 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
    III. El Paradigma OO: Diagrama de Clases
  • 37.
    • Ejemplo:
    … 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.
    • Especificación de multiplicidad (mínima...máxima)
      • 1 Uno y sólo uno
      • 0..1 Cero o uno
      • M..N De sde M hasta N (enteros naturales)
      • * C ero o muchos
      • 0..* Cero o muchos
      • 1..* U no 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
  • 39.
    • L a 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
  • 40.
    • La agregación es una forma especial de asociación que especifica
    • una relación todo-parte entre el agregado (todo) y una parte que lo
    • compone. Una agregación se representa mediante un rombo en el
    • extremo “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
  • 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. 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
  • 43. Generalización
    • P ermite gestionar la complejidad mediante un ordenamiento jerárquico de clases
    • S e obtiene usando los mecanismos de abstracción de Generalización y/ o Especialización
    • La Generalización consiste en factorizar l as propiedades comunes de un conjunto de clases en una clase más general
    III. El Paradigma OO: Diagrama de Clases
  • 44.
    • 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
  • 45.
    • 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
  • 46. ... Generalización III. El Paradigma OO: Diagrama de Clases
  • 47.
    • 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
  • 48.
    • 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
  • 49. 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
  • 50. … Polimorfismo
    • Ejemplo: todo animal duerme, pero cada clase lo hace de forma distinta
    dormir ? ? III. El Paradigma OO: Diagrama de Clases
  • 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()