Introducción a la Orientación a Objetos

1,787 views

Published on

Introducción a la Orientación a Objetos

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,787
On SlideShare
0
From Embeds
0
Number of Embeds
562
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Introducción a la Orientación a Objetos

  1. 1. Javier Garzás, Introducción a OO. 1 INTRODUCCIÓN A LAS BASES DE LA TECNOLOGIA ORIENTADA A OBJETOS Javier Garzás Parra www.javiergarzas.com 19 noviembre 2003
  2. 2. Javier Garzás, Introducción a OO. 2 Objetivos Aprender o repasar los fundamentos de la tecnología OO, centrando y situando en todo caso cada elemento en su correcto lugar, semántica y contexto.
  3. 3. Javier Garzás. Introducción a OO 3 Origen... Finales de los 60 (Simula) Difusión... Mediados de los 80 (OOPSLA, Oregon) Madurez... Finales de los 90 (Aparición de estándares, productos, etc.) Aparición Introducción a la OO
  4. 4. Javier Garzás. Introducción a OO 4 Lenguajes BBDD GUIs Métodos CASE IA Hardware OO Áreas de Aplicación Introducción a la OO
  5. 5. Javier Garzás. Introducción a OO 5 • Representan mayor acercamiento al mundo real, cada entidad del dominio del problema corresponde un objeto. • Es lógico pensar que la unidad de composición en el dominio software se corresponda con una entidad homóloga en el mundo real. • Son unidades de composición y descomposición modular. Introducción a la OO ¿Por qué Objetos?
  6. 6. Javier Garzás. Introducción a OO 6 Beneficios Potenciales  Mejorar la calidad del software  Reutilización  Tiempos de desarrollo  Productividad Introducción a la OO
  7. 7. Javier Garzás. Introducción a OO 7 Posología y sintomatología Síntomas Causas Alto coste de mantenimiento Sistema utilizado en parte Malos tiempos de respuesta Pobre Calidad Baja Productividad Alta Complejidad Introducción a la OO 1/2 1
  8. 8. Javier Garzás. Introducción a OO 8 Pascal C VBasic Delphi C++ ¿VBasic? Java Evolución de los lenguajes Introducción a la OO Paradigma estructurado Paradigma OO
  9. 9. Javier Garzás. Introducción a OO 9 MODULARIDADMODULARIDAD BIEN ENTENDIDA La idea principal Introducción a la OO
  10. 10. Javier Garzás. Introducción a OO 10 Introducción a la OO Modularidad
  11. 11. Javier Garzás. Introducción a OO 11 • Descomponibilidad • Componibilidad • Comprensibilidad • Continuidad • Protección Introducción a la OO Criterios Modulares Meyer (1988)
  12. 12. Javier Garzás. Introducción a OO 12 • Unidades Modulares Lingüisticas • Pocos interfaces • Interfaces pequeños • Interfaces explícitos • Ocultación de la información • Principio Abierto - Cerrado Principios Modulares Meyer (1988) Introducción a la OO
  13. 13. Javier Garzás, Introducción a OO. 13 Conceptos básicos
  14. 14. Javier Garzás. Introducción a OO 14 Elementos básicos Encapsulación (ocultación de la información) Abstracción Modularidad Jerarquía (agregación, polimorfismo y herencia) Elementos secundarios Tipos, concurrencia, persistencia, distribución, sobrecarga, generidad, excepciones, etc. Elementos Relacionados Componentes, Patrones y frameworks Conceptos Básicos
  15. 15. Javier Garzás. Introducción a OO 15 Torre de babel Método Servicio Clase Entidad Lógica de dominio Reglas del negocio Mensaje Conceptos Básicos
  16. 16. Javier Garzás. Introducción a OO 16 ProgramasProgramas • DFDs • Structure Char • ME/R • Diseño de BBDD Conceptos Básicos Sistemas de Información Estructurados DatosDatos
  17. 17. Javier Garzás. Introducción a OO 17 Conceptos Básicos ProgramasProgramas DatosDatos Paradigma Unificador
  18. 18. Javier Garzás. Introducción a OO 18 “Algo con sentido en el contexto de la aplicación. Concepto, abstracción o cosa con límites bien definidos y con significado a efectos del problema que se trata” Rumbaught (1992) Objeto Conceptos Básicos
  19. 19. Javier Garzás. Introducción a OO 19 Encapsulamiento y Principio de Ocultación Datos Métodos Servicios SIEMPRE, 1 objeto con 2 interfaces Interfaz privada ¿cómo? Interfaz pública ¿qué? Conceptos Básicos
  20. 20. Javier Garzás. Introducción a OO 20 Conceptos Básicos Encapsulamiento y Principio de Ocultación
  21. 21. Javier Garzás. Introducción a OO 21 Datos Conceptos Básicos Encapsulamiento y Principio de Ocultación Servicios
  22. 22. Javier Garzás. Introducción a OO 22 Caja Blanca Caja Negra Caja Gris LenguajesLenguajes SGBDOOSGBDOO BBDDBBDD Conceptos Básicos Niveles de Ocultación
  23. 23. Javier Garzás. Introducción a OO 23 Encapsular... IMPLICA... Ocultar. Niveles de ocultación  Publico  Privado  Protegido Conceptos Básicos Encapsulamiento y Principio de Ocultación
  24. 24. Javier Garzás. Introducción a OO 24 Conceptos Básicos Encapsulamiento y Principio de Ocultación
  25. 25. Javier Garzás. Introducción a OO 25 Identidad No es conveniente que los nombres de las entidades las identifiquen (Kent, 1978)... • Una entidad puede no tener un nombre único y ser identificable • Una entidad puede tener más de un nombre único • Una entidad puede cambiar de nombre a lo largo del tiempo El sistema debeEl sistema debe proporcionar elproporcionar el OIDOID Conceptos Básicos
  26. 26. Javier Garzás. Introducción a OO 26 “Una abstracción denota las características esenciales de un objeto que lo distinguen de todos los demás tipos de Objetos y proporciona así fronteras conceptuales nítidamente definidas respecto a la perspectiva del observador” Conceptos Básicos Abstracción Booch (1994)
  27. 27. Javier Garzás. Introducción a OO 27 Ignorar aquellos aspectos de una materia que no son relevantes al propósito actual a fin de concentrarse más plenamente en aquellos que si lo son Abstracción Conceptos Básicos
  28. 28. Javier Garzás. Introducción a OO 28 GeneralizaciónAgregaciónClasificación Abstracción Tipos de Abstracción Conceptos Básicos
  29. 29. Javier Garzás. Introducción a OO 29 • Plantilla a partir de la que se crean Objetos • Molde que permite construir Objetos • ADN de Objetos Abstracción por Clasificación... Clase Conceptos Básicos “Descripción generalizada que describe una colección de Objetos similares” Pressman
  30. 30. Javier Garzás. Introducción a OO 30 Conceptos Básicos Clase
  31. 31. Javier Garzás. Introducción a OO 31 Características de los Objetos que pertenecen a una clase... Atributos Métodos Excepciones Mensajes Sub y superclase Conexiones Concurrencia Rol Reglas COMUNESCOMUNES Conceptos Básicos
  32. 32. Javier Garzás. Introducción a OO 32 Abstracción por Clasificación: Clase Propiedades y definición: • Ordena CLASES en jerarquías • Sólo ocurre entre clases • ¿ES_UN?... INVARIANTE EN EL TIEMPO • Transitiva Generalización (herencia) Conceptos Básicos
  33. 33. Javier Garzás. Introducción a OO 33 Conceptos Básicos Generalización (herencia)
  34. 34. Javier Garzás. Introducción a OO 34 Subtipos Disjuntos / solapados Total / Parcial La subclase puede Heredar Añadir Inhibir Redefinir Conceptos Básicos Generalización (herencia)
  35. 35. Javier Garzás. Introducción a OO 35 Problemas Conceptos Básicos Herencia multiple
  36. 36. Javier Garzás. Introducción a OO 36  Rigidez  Acoplamiento Conceptos Básicos Aspectos negativos de la herencia (Ah...¿pero tiene aspectos negativos la herencia?) Pero, si lo pensamos despacio... ¿para qué la herencia? ¿existen alternativas?
  37. 37. Javier Garzás. Introducción a OO 37 Agregación • La agregación responde a ES_PARTE_DE • Las partes pueden o no existir fuera del agregado • Forma especial de asociación (asociación fuerte) • Puede presentar herencia (y herencia contraria) • Propiedades: Antisimétrica y transitiva (¡!) Conceptos Básicos Un objeto agregado es un objeto formado por componentes Propiedades
  38. 38. Javier Garzás. Introducción a OO 38 Conceptos Básicos ¿Agregación o Composición? La polémica salta a las revistas del corazón: Coad vs Rumbaught ¿Es una empresa un agregado de empleados? Actualmente, la composición implica... , la agregación podemos considerarla más benévola
  39. 39. Javier Garzás. Introducción a OO 39 Mensaje Comunicación o interacción entre Objetos Un sistema OO puede incluso definirse como un conjunto de Objetos que se pasan mensajes Conceptos Básicos
  40. 40. Javier Garzás. Introducción a OO 40 Polimorfismo Capacidad de un comportamiento de tener una interpretación en más de una clase. Operación aplicable a clases distintas  Conversión de tipos  Sobrecarga de operadores o métodos  Por inclusión Conceptos Básicos
  41. 41. Javier Garzás. Introducción a OO 41 Vinculación o Binding Asociar el nombre de un servicio a su instrumentación Estática Dinámica Conceptos Básicos Eficiencia Nula Flexibilidad Alto coste de recursos Flexible
  42. 42. Javier Garzás. Introducción a OO 42 Verificación Comprobar consistencia de tipos. Decidir si una acción es valida Conceptos Básicos
  43. 43. Javier Garzás. Introducción a OO 43 Verificación Estática Verificación Dinámica Vinculación Estática Garantía de Corrección Interpretación NO Flexible Pascal, C, etc. No tiene sentido Vinculación Dinámica Garantía de Corrección Interpretación Flexible C++, Java NO Garantía de Corrección Interpretación Flexible Smalltalk Conceptos Básicos Vinculación y Verificación
  44. 44. Javier Garzás. Introducción a OO 44 Principio Concepto Clasificación Generalización Agregación Clase Sub/Superclase Compu./Compo. Cliente/Servidor Mensaje Conceptos Básicos Resumen de principios y conceptos
  45. 45. Javier Garzás. Introducción a OO 45 Polimorfismo (herencia y vinculación dinámica) Encapsulamiento (ocultación de la información) OO Abstracción (Clase, agregación, herencia) ¿esencial? Conceptos Básicos Triangulo de la OO Meyer (1988)
  46. 46. Javier Garzás. Introducción a OO 46 Encapsulamiento + Identidad + Abstracción de Conjunto + Herencia Basado en Objetos Orientado a Objetos Basado en Clases ¿Orientado a Objetos? Conceptos Básicos

×