• Save
Introducción a la Orientación a Objetos
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Introducción a la Orientación a Objetos

on

  • 944 views

Introducción a la Orientación a Objetos

Introducción a la Orientación a Objetos

Statistics

Views

Total Views
944
Views on SlideShare
556
Embed Views
388

Actions

Likes
2
Downloads
0
Comments
0

12 Embeds 388

http://www.javiergarzas.com 258
http://feedly.com 105
http://plus.url.google.com 8
https://correo.ocaso.es 4
http://us4.campaign-archive1.com 3
http://digg.com 2
http://www.inoreader.com 2
https://webmail.caf.net 2
http://silverreader.com 1
http://127.0.0.1 1
https://www.inoreader.com 1
http://www.feedspot.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

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

Introducción a la Orientación a Objetos Presentation Transcript

  • 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. 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. 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. 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. 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. 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. 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. 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. Javier Garzás. Introducción a OO 9 MODULARIDADMODULARIDAD BIEN ENTENDIDA La idea principal Introducción a la OO
  • 10. Javier Garzás. Introducción a OO 10 Introducción a la OO Modularidad
  • 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. 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. Javier Garzás, Introducción a OO. 13 Conceptos básicos
  • 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. 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. 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. Javier Garzás. Introducción a OO 17 Conceptos Básicos ProgramasProgramas DatosDatos Paradigma Unificador
  • 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. 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. Javier Garzás. Introducción a OO 20 Conceptos Básicos Encapsulamiento y Principio de Ocultación
  • 21. Javier Garzás. Introducción a OO 21 Datos Conceptos Básicos Encapsulamiento y Principio de Ocultación Servicios
  • 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. 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. Javier Garzás. Introducción a OO 24 Conceptos Básicos Encapsulamiento y Principio de Ocultación
  • 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. 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. 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. Javier Garzás. Introducción a OO 28 GeneralizaciónAgregaciónClasificación Abstracción Tipos de Abstracción Conceptos Básicos
  • 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. Javier Garzás. Introducción a OO 30 Conceptos Básicos Clase
  • 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. 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. Javier Garzás. Introducción a OO 33 Conceptos Básicos Generalización (herencia)
  • 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. Javier Garzás. Introducción a OO 35 Problemas Conceptos Básicos Herencia multiple
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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