Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Like this? Share it with your network

Share

Principios orientacion-objetos

on

  • 2,286 views

Tecnología Orientada a Objetos - UNEG - Profesor Mauricio Paletta

Tecnología Orientada a Objetos - UNEG - Profesor Mauricio Paletta

Statistics

Views

Total Views
2,286
Views on SlideShare
2,286
Embed Views
0

Actions

Likes
0
Downloads
68
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Principios orientacion-objetos Presentation Transcript

  • 1. PresentaciónFundamentos de la Orientación a Objetos Ing. Mauricio Paletta, Msc INGENIERÍA EN INFORMÁTICA Programación II UNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANA Programación II
  • 2. Fundamentos de la Orientación a Objetos ABSTRACCION TIPOS MODULARIDAD CONCURRENCIA ENLACE DINAMICO ENCAPSULAMIEN. PERSISTENCIA JERARQUIA POLIMORFISMO TERMINOS TECNICOS PRINCIPIOS OBJETO CLASE HERENCIA MECANISMOS BASICOS Programación II
  • 3. Principios de la Orientación a ObjetosAbstracción Programación II
  • 4. Principios de la Orientación a ObjetosAbstracción • Capacidad de adquirir conceptos (idea particular o lo que vemos y comprendemos del mundo), construir jerarquías de generalizaciones y componer objetos mediante la configuración de otros. • Es el acto o resultado de eliminar diferencias entre los objetos, de modo que podamos ver los aspectos comunes. Programación II
  • 5. Principios de la Orientación a ObjetosAbstracción • Es una forma de manejar la complejidad de los objetos. • Enfatizar sobre los detalles importantes y olvidar los aspectos no relevantes desde perspectiva del usuario. • Permite separar el comportamiento esencial de un objeto de su implementación. Programación II
  • 6. Principios de la Orientación a ObjetosAbstracción • Se implementa mediante la identificación de clases. Programación II
  • 7. Principios de la Orientación a ObjetosEncapsulamiento Programación II
  • 8. Principios de la Orientación a ObjetosEncapsulamiento • Esconder todos los detalles de un objeto que no contribuyen al entendimiento de sus características esenciales. Información escondida. • Se refiere a incluir dentro de un objeto todo lo que éste necesita y hacerlo de forma tal que ningún otro objeto vea su estructura interna. Programación II
  • 9. Principios de la Orientación a ObjetosEncapsulamiento • Permite realizar cambios a los programas con poco esfuerzo. • La idea principal es proteger los datos de un objeto del uso arbitrario. • Se implementa mediante la interfaz de los elementos que definen una clase. Programación II
  • 10. Principios de la Orientación a ObjetosModularidad Programación II
  • 11. Principios de la Orientación a ObjetosModularidad • Descomponer un sistema en un conjunto de unidades discretas. • Está asociado al concepto de programación modular / estructurada. • Permite empaquetar la abstracción en pequeñas unidades. • Está íntimamente relacionado con el encapsulamiento. Programación II
  • 12. Principios de la Orientación a ObjetosModularidad • Los módulos son generalmente unidades indivisibles. • 5 criterios, 5 reglas y 5 principios. • Se implementa mediante la instanciación de objetos, la identificación de relaciones entre clases y cómo éstas, en conjunto, resuelven el problema tratado. Programación II
  • 13. Principios de la Orientación a ObjetosModularidad Criterio 1 - Descomposición modular: Descomponer el problema de software en un pequeño número de sub-problemas menos complejos, interconectados mediante una estructura sencilla y suficientemente independien- tes para permitir que el trabajo futuro pueda proseguir por separado en cada una de ellos. Ejemplo: diseño top-down Contraejemplo: inicialización global Programación II
  • 14. Principios de la Orientación a ObjetosModularidad Criterio 2 - Composición modular: Favorece la producción de elementos que se pueden combinar libremente unos con otros para producir nuevos sistemas, posiblemente en un entorno bastante diferente de aquél en que fueron desarrollados inicialmente. Ejemplo: biblioteca de subprogramas Contraejemplo: uso de preprocesadores Programación II
  • 15. Principios de la Orientación a ObjetosModularidad Criterio 3 - Comprensibilidad modular: Ayuda a producir software en el cual un lector humano puede entender cada módulo sin tener que conocer los otros. Ejemplo: biblioteca de subprogramas de índole específico Contraejemplo: dependencias secuenciales Programación II
  • 16. Principios de la Orientación a ObjetosModularidad Criterio 4 - Continuidad modular: Un pequeño cambio en la especificación de un problema provoca sólo cambios en un solo módulo o en un pequeño número de módulos. Ejemplo: constantes simbólicas Contraejemplo: estructuras estáticas Programación II
  • 17. Principios de la Orientación a ObjetosModularidad Criterio 5 - Protección modular: Produce arquitecturas en las cuales el efecto de una situación anormal que se da dentro de un módulo durante su ejecución, queda confinado a dicho módulo o en el peor caso, se propaga sólo a unos módulos vecinos. Ejemplo: verificación de los datos de entrada en su origen Contraejemplo: excepciones indisciplinadas Programación II
  • 18. Principios de la Orientación a ObjetosModularidad Regla 1 – Correspondencia directa: La estructura modular obtenida en el proceso de construcción de software debe seguir siendo compatible con cualquier otra estructura modular obtenida en el proceso de modelado del dominio del problema. Programación II
  • 19. Principios de la Orientación a ObjetosModularidad Regla 2 – Pocas interfaces: Cada módulo debe comunicarse con el menor número de módulos posible. Programación II
  • 20. Principios de la Orientación a ObjetosModularidad Regla 3 – Pequeñas interfaces: Si dos módulos se comunican deben intercambiar la menor información posible. Programación II
  • 21. Principios de la Orientación a ObjetosModularidad Regla 4 – Interfaces explícitas: Siempre que dos módulos A y B se comuniquen, esto debe ser obvio a partir del contexto de A, de B o de ambos. Programación II
  • 22. Principios de la Orientación a ObjetosModularidad Regla 5 – Ocultamiento de información: Cada módulo debe tener seleccionada un subconjunto de propiedades como información oficial del módulo para ponerla a disposición de otros módulos. Programación II
  • 23. Principios de la Orientación a ObjetosModularidad Principio 1 – Unidades modulares lingüísticas: Los módulos deben corresponderse con las unidades sintácticas en el lenguaje utilizado. Programación II
  • 24. Principios de la Orientación a ObjetosModularidad Principio 2 – Auto-documentación: Toda la información relativa a un módulo debe formar parte del mismo módulo. Programación II
  • 25. Principios de la Orientación a ObjetosModularidad Principio 3 – Acceso uniforme: Todos los servicios ofrecidos por un módulo deben estar disponibles a través de una notificación uniforme sin importar la forma como están implementados. Programación II
  • 26. Principios de la Orientación a ObjetosModularidad Principio 4 – Abierto / Cerrado: Los módulos deben ser a la vez abiertos y cerrados. Abierto disponible para ser extendido. Cerrado disponible para ser usado por otros módulos. Programación II
  • 27. Principios de la Orientación a ObjetosModularidad Principio 5 – Elección única: Siempre que un sistema de software deba admitir un conjunto de alternativas, habrá un módulo del sistema (y sólo uno) que conozca su lista completa. Programación II
  • 28. Principios de la Orientación a ObjetosJerarquía Programación II
  • 29. Principios de la Orientación a ObjetosJerarquía • Es el acto o resultado de distinguir un concepto que es más general que otro. • Permite examinar si los conceptos tienen algo en común. • Nos ayuda a percibir que todas las instancias de un concepto más específico son también instancias de un concepto general. Programación II
  • 30. Principios de la Orientación a ObjetosJerarquía • Permite empaquetar la abstracción en pequeñas unidades. • Representa la organización de una abstracción. • Su uso simplifica el entendimiento del problema. • Se implementa mediante las relaciones de herencia y agregación entre clases. Programación II
  • 31. Principios de la Orientación a ObjetosTipos Programación II
  • 32. Principios de la Orientación a ObjetosTipos • Permite agrupar o formar un conjunto de objetos con características o comportamientos similares. • Dos cosas que tienen la misma forma abstracta son análogas => son del mismo tipo. Programación II
  • 33. Principios de la Orientación a ObjetosTipos • Se implementa mediante la descripción o identificación de los elementos que describen una clase: datos / información atributos operaciones / comportamiento métodos Programación II
  • 34. Principios de la Orientación a ObjetosConcurrencia Programación II
  • 35. Principios de la Orientación a ObjetosConcurrencia • Es la propiedad que distingue un objeto activo de uno que no lo es. • Permite a diferentes objetos actuar al mismo tiempo; cada uno de ellos tiene autonomía. Programación II
  • 36. Principios de la Orientación a ObjetosConcurrencia • Se implementa mediante el proceso de creación o instanciación de objetos a partir de su clase y las propiedades de identidad y estado de los objetos: clase definición / tipología del concepto objeto instancia / ocurrencia cualquiera del concepto Programación II
  • 37. Principios de la Orientación a ObjetosPersistencia Programación II
  • 38. Principios de la Orientación a ObjetosPersistencia • Es la propiedad que un objeto tiene de existir en el tiempo y en el espacio. • Un objeto existe hasta que no sea más necesitado y el espacio que ocupa es reutilizado. Programación II
  • 39. Principios de la Orientación a ObjetosPersistencia • Tanto la necesidad de espacio para almacenar el objeto como su recupera- ción, involucran a los dependientes (objetos relacionados) de dicho objeto. • Se implementa mediante los procesos de construcción y destrucción de los objetos definidos como parte del comportamiento de la clase. Programación II
  • 40. Principios de la Orientación a ObjetosPolimorfismo Programación II
  • 41. Principios de la Orientación a ObjetosPolimorfismo • Es el fenómeno mediante el cual una operación adopta varias formas de implementación. • Habilidad para usar el mismo símbolo para propósitos diferentes cuando el contexto es claro. Programación II
  • 42. Principios de la Orientación a ObjetosPolimorfismo • Para el usuario, la visión del operador es una sola, el objeto se encarga de decidir qué hacer; los detalles de implementación quedan ocultos. • Dos operaciones completamente diferentes comparten el mismo nombre. Programación II
  • 43. Principios de la Orientación a ObjetosPolimorfismo • Ventajas: extensibilidad, código compacto, claridad. • Se implementa mediante la sobrecarga de funciones y operadores. Programación II
  • 44. Principios de la Orientación a ObjetosPolimorfismo Una abstracción simple sirve Coacción como diferentes tipos mediante una conversión de tipos implícita • Específico Un identificador simple denota Sobrecarga muchas abstracciones Por parámetro Una abstracción opera uniforme- mente a través de diferentes tipos • Universal Por inclusión Una abstracción opera a través de una relación de inclusión Programación II
  • 45. Términos TécnicosEnlace Dinámico Programación II
  • 46. Términos TécnicosEnlace Dinámico • Enlace: conectar una llamada de función al cuerpo de la función; enlace estático o temprano: se lleva a cabo antes de que el programa se ejecute; enlace dinámico posterior: ocurre en tiempo de ejecución. • Representa uno de los mayores avances de la Orientación a Objetos y es una propiedad común (no necesaria) de los lenguajes orientados a objetos. Programación II
  • 47. Términos TécnicosEnlace Dinámico • Es un elemento necesario para poder realizar el polimorfismo. • Para su implementación, debe existir un mecanismo que determine el tipo de objeto en tiempo de ejecución y haga la llamada a la función apropiada. Programación II
  • 48. Términos TécnicosEnlace Dinámico enlace estático vs enlace dinámico Programación II
  • 49. Mecanismos básicosObjeto Programación II
  • 50. Mecanismos básicosObjeto • Son las unidades básicas de construcción, para conceptualización, diseño o programación. • Son instancias organizadas en clases con características comunes. Programación II
  • 51. Mecanismos básicosObjeto • Desde la perspectiva de un programa, los objetos son módulos que contienen datos (atributos) y las instrucciones u operaciones (métodos) que operan sobre esos datos y trabajan juntos para proveer funcionalidad. Programación II
  • 52. Mecanismos básicosObjeto • La habilidad para reconocer objetos es una herramienta que los humanos aprenden desde muy temprana edad. • 3 características: estado, identidad y comportamiento. Programación II
  • 53. Mecanismos básicosObjeto Fórmula conceptual: Objeto = Atributos + Métodos Programación II
  • 54. Mecanismos básicosObjeto MensajeAtributo Módulo / Paquete Método Programación II
  • 55. Mecanismos básicosObjeto - Estado • Contiene todas las propiedades (usualmente estáticas), además de los valores actuales de estas propiedades (usualmente dinámicas). • Hace que cada objeto sea único. • La respuesta que un objeto puede dar, luego de la llamada de un mensaje, depende de su estado actual. Programación II
  • 56. Mecanismos básicosObjeto - Estado • Determina cómo son los nodos en un diagrama de transición de estados del objeto. • Nota: principio de persistencia. • Ejemplos: color – rojo; peso – 75.4; edad – 24; número de ítems – 190; profesión – “Arquitecto”. Programación II
  • 57. Mecanismos básicosObjeto - Identidad • Distingue a un objeto del resto. • Es independiente del estado. • Se conserva durante toda la vida del objeto, aún cuando se realicen cambios de estado. • Es la base para construir / armar un mensaje hacia el objeto correspondiente. Programación II
  • 58. Mecanismos básicosObjeto - Identidad • Es una propiedad muy importante para las Bases de Datos Orientadas a Objetos (OODB). • Nota: principio de concurrencia. • Ejemplos: X1, X2, MiVentana, MauricioPaletta. Programación II
  • 59. Mecanismos básicosObjeto - Comportamiento • Indica la forma como el objeto actúa y reacciona en término de los cambios de estado. • Está totalmente definido por sus acciones u operaciones. • 2 conceptos importantes: método y mensaje. Programación II
  • 60. Mecanismos básicosObjeto - Comportamiento • Nota: principios de encapsulamiento y polimorfismo. • Ejemplos: ObtenerValor, AsignarValor, Agregar, Quitar, Sumar. Programación II
  • 61. Mecanismos básicosObjeto - Comportamiento Método: Procedimiento que reside en el objeto y determinan cómo éste actuará cuando reciba un mensaje. Su ejecución puede cambiar el estado del objeto, crear objetos nuevos, enviar mensajes a otros objetos, etc. Programación II
  • 62. Mecanismos básicosObjeto - Comportamiento Mensaje: Canal de comunicación que usan los objetos para ejecutar acciones. Sólo cuando se recibe un mensaje, el objeto ejecuta una acción. Todo proceso es activado por mensajes entre objetos. Programación II
  • 63. Mecanismos básicosObjeto - Comportamiento Atributos Mensajes Métodos Asignar / Set (Atributos) Obtener / Get Programación II
  • 64. Mecanismos básicosObjeto - Comportamiento Fórmula conceptual: Mensaje = Identidad del Objeto + Método + Parámetros Programación II
  • 65. Mecanismos básicosObjeto - Comportamiento Protocolo del Objeto: Es el conjunto de mensajes a los cuales un objeto responde o puede responder. Nótese que no necesariamente es igual al conjunto de métodos del objeto (encapsulamiento y polimorfismo). Programación II
  • 66. Mecanismos básicosClase Programación II
  • 67. Mecanismos básicosClase • Define la estructura y el comportamiento de una forma abstracta o concepto para darle vida a los objetos. • Es un patrón (plantilla) que define los atributos y métodos a ser incluidos es un tipo particular de objeto. • Se dice que un objeto es una instancia particular de una clase. Programación II
  • 68. Mecanismos básicosClase • Consta de dos partes: una declaración y una implementación. La declaración lista o identifica los miembros de la clase (atributos y métodos). La implementación define el cuerpo de los métodos de la clase. Programación II
  • 69. Mecanismos básicosClase • Nota: principios de abstracción, jerarquía, modularidad y tipos. • Nota: principio de encapsulamiento – interfaz de la clase. Programación II
  • 70. Mecanismos básicosClase - interfaz • Determina la forma en la cual los elementos de la clase (atributos y métodos) pueden o no ser usados (son visibles) por cada uno de los tres tipos diferentes de usuarios: · Elementos de la misma clase. · Elementos de clases relacionadas (herencia). · Otros elementos externos. Programación II
  • 71. Mecanismos básicosClase - interfaz • Tres niveles de interfaz: Privada Visibilidad sólo para la misma clase Protegida Visibilidad para la misma clase y clases relacionadas Pública Visibilidad para cualquiera Programación II
  • 72. Mecanismos básicosClase - interfaz PUBLICA PROTEGIDA PRIVADA Clase actual Clases relacionadas Otros usuarios externos Programación II
  • 73. Mecanismos básicosClase - relaciones • Basado en el principio de jerarquía, para la definición de una clase nueva se pueden usar clases existentes, ya sea incorporando un objeto como atributo de la clase (agregación) o estableciendo una generalización (herencia). Programación II
  • 74. Mecanismos básicosClase - relaciones Para dos clases A y B: A es una agregación de B si y sólo si (B contiene a A) A forma parte de B A hereda de B si y sólo si (B es una generalización de A) A es un caso particular de B Programación II
  • 75. Mecanismos básicosClase – relaciones (ejemplo) Aeronave -Comunica con 1 Torre -Capacidad -Longitud * 1 1..* -Embarque / Desembarque Puerta 1..* -Número 1 1 1 Avión Avioneta Helicóptero -Aterriza / Despega Plataforma 1..* 1 Aeropuerto-# Turbinas -# Motores -Diámetro Hélice -Número-Modelo -Tipo Motor -Tipo Motor -Estado -Autonomía 1..* 1..* 1 11..* -Usa Hangar 1..* 1..* 1..* -Número -Estado 1..* -Aterriza / Despega Pista 1..* -Aterriza / Despega -Número 1..* -Tipo 1..* Programación II
  • 76. Mecanismos básicosHerencia Programación II
  • 77. Mecanismos básicosHerencia • Permite crear clases nuevas a partir de clases ya existentes, estableciendo niveles de jerarquía y programando sólo las diferencias. • Permite refinar las estructuras sin necesidad de duplicar información. Programación II
  • 78. Mecanismos básicosHerencia • La clase nueva (jerarquía inferior) es conocida como subclase o clase derivada y la clase de mayor nivel se denomina superclase o clase base. • Según el número de clases base, puede ser de dos tipos: simple (una sola clase base) y múltiple (mas de una clase base). Programación II
  • 79. Mecanismos básicosHerencia - ejemplo Especialización Generalización Programación II
  • 80. Mecanismos básicosHerencia Fórmula conceptual: Clase Derivada = Clases Base + Otros Elementos Programación II
  • 81. Mecanismos básicosHerencia Nota: Si el identificador de un método o atributo de una clase cualquiera es similar a alguno de los elementos de una posible clase base, cualquier referencia a este identificador estará asociado al elemento de la clase derivada, a menos que se indique lo contrario. Programación II
  • 82. Mecanismos básicosHerencia Nota: Cuando un objeto recibe un mensaje que contiene un método que no está definido en su clase, se busca automáticamente hacia arriba en su jerarquía de clases. Igual ocurre al acceder a un atributo del objeto. Programación II
  • 83. Mecanismos básicosHerencia – clase abstracta • Clases cuya descripción es incompleta. • Sólo sirven para ser usadas como clases bases en una relación de herencia. • En términos de diseño, son útiles para permitir a un usuario refinar o particularizar un concepto. Programación II
  • 84. Mecanismos básicosHerencia – clase abstracta • No es posible o no tiene sentido instanciar objetos con ellas. • Por lo general contienen uno o más métodos virtuales. Programación II
  • 85. Mecanismos básicosHerencia – clase abstracta Nota: Aunque pueden haber métodos genéricos definidos en algún nivel de la jerarquía de clases, no está prohibido que existan definiciones específicas o detalladas en los niveles inferiores. En este caso, ambos métodos pueden ser usados (como si fuera un polimorfismo), siempre y cuando no se trate de la redefinición de un método virtual. Programación II
  • 86. Mecanismos básicosHerencia – clase abstracta Programación II
  • 87. Mecanismos básicosHerencia –método virtual • Pertenece a una clase abstracta. • Debe ser obligatoriamente redefinido en las clases derivadas. • Puede verse como una indicación a los usuarios de la clase base, que parte del trabajo a realizar en la clase derivada, es definir estos métodos a fin de que se complete el comportamiento del concepto. Programación II
  • 88. Mecanismos básicosHerencia –método virtual • Su uso tiene implicaciones en los espacios de memoria ocupados por los objetos instanciados. Programación II
  • 89. Mecanismos básicosHerencia –método virtual Nota: Un método no virtual de una clase base y otro similar (polimórfico) de la clase derivada ocupan ambos espacios de memoria independientes. En un método virtual sólo se tiene el espacio de memoria ocupado por la redefinición en la clase derivada. Programación II
  • 90. Mecanismos básicosHerencia – interfaz • Permite determinar qué criterio de interfaz (público, privado ó protegido) se va a usar para los usuarios de la clase derivada con los elementos públicos de la clase base. Programación II