Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Javier Garzás, Introducción a OO.
1
INTRODUCCIÓN A LAS BASES
DE LA TECNOLOGIA
ORIENTADA A OBJETOS
Javier Garzás Parra
www....
Javier Garzás, Introducción a OO.
2
Objetivos
Aprender o repasar los fundamentos de la tecnología OO, centrando y
situando...
Javier Garzás. Introducción a OO
3
Origen...
Finales de los 60 (Simula)
Difusión...
Mediados de los 80 (OOPSLA, Oregon)
Ma...
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
Javier Garzás. Introducción a OO
5
• Representan mayor acercamiento al mundo real, cada entidad
del dominio del problema c...
Javier Garzás. Introducción a OO
6
Beneficios Potenciales
 Mejorar la calidad del software
 Reutilización
 Tiempos de d...
Javier Garzás. Introducción a OO
7
Posología y sintomatología
Síntomas Causas
Alto coste de
mantenimiento
Sistema utilizad...
Javier Garzás. Introducción a OO
8
Pascal
C
VBasic
Delphi
C++
¿VBasic?
Java
Evolución de los lenguajes
Introducción a la O...
Javier Garzás. Introducción a OO
9
MODULARIDADMODULARIDAD
BIEN
ENTENDIDA
La idea principal
Introducción a la OO
Javier Garzás. Introducción a OO
10
Introducción a la OO
Modularidad
Javier Garzás. Introducción a OO
11
• Descomponibilidad
• Componibilidad
• Comprensibilidad
• Continuidad
• Protección
Int...
Javier Garzás. Introducción a OO
12
• Unidades Modulares Lingüisticas
• Pocos interfaces
• Interfaces pequeños
• Interface...
Javier Garzás, Introducción a OO.
13
Conceptos básicos
Javier Garzás. Introducción a OO
14
Elementos básicos
Encapsulación (ocultación de la información)
Abstracción
Modularidad...
Javier Garzás. Introducción a OO
15
Torre de babel
Método
Servicio
Clase
Entidad
Lógica de dominio
Reglas del negocio
Mens...
Javier Garzás. Introducción a OO
16
ProgramasProgramas
• DFDs
• Structure Char
• ME/R
• Diseño de BBDD
Conceptos Básicos
S...
Javier Garzás. Introducción a OO
17
Conceptos Básicos
ProgramasProgramas DatosDatos
Paradigma Unificador
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í...
Javier Garzás. Introducción a OO
19
Encapsulamiento y Principio de Ocultación
Datos
Métodos
Servicios
SIEMPRE, 1 objeto co...
Javier Garzás. Introducción a OO
20
Conceptos Básicos
Encapsulamiento y Principio de Ocultación
Javier Garzás. Introducción a OO
21
Datos
Conceptos Básicos
Encapsulamiento y Principio de Ocultación
Servicios
Javier Garzás. Introducción a OO
22
Caja
Blanca
Caja
Negra
Caja
Gris
LenguajesLenguajes
SGBDOOSGBDOO
BBDDBBDD
Conceptos Bá...
Javier Garzás. Introducción a OO
23
Encapsular... IMPLICA... Ocultar.
Niveles de
ocultación
 Publico
 Privado
 Protegid...
Javier Garzás. Introducción a OO
24
Conceptos Básicos
Encapsulamiento y Principio de Ocultación
Javier Garzás. Introducción a OO
25
Identidad
No es conveniente que los nombres de las entidades las
identifiquen (Kent, 1...
Javier Garzás. Introducción a OO
26
“Una abstracción denota las características
esenciales de un objeto que lo distinguen ...
Javier Garzás. Introducción a OO
27
Ignorar aquellos aspectos de una materia
que no son relevantes al propósito actual
a f...
Javier Garzás. Introducción a OO
28
GeneralizaciónAgregaciónClasificación
Abstracción
Tipos de Abstracción
Conceptos Básic...
Javier Garzás. Introducción a OO
29
• Plantilla a partir de la que se crean Objetos
• Molde que permite construir Objetos
...
Javier Garzás. Introducción a OO
30
Conceptos Básicos
Clase
Javier Garzás. Introducción a OO
31
Características de los Objetos que
pertenecen a una clase...
Atributos
Métodos
Excepci...
Javier Garzás. Introducción a OO
32
Abstracción por Clasificación: Clase
Propiedades y definición:
• Ordena CLASES en jera...
Javier Garzás. Introducción a OO
33
Conceptos Básicos
Generalización (herencia)
Javier Garzás. Introducción a OO
34
Subtipos
Disjuntos / solapados
Total / Parcial
La subclase puede
Heredar
Añadir
Inhibi...
Javier Garzás. Introducción a OO
35
Problemas
Conceptos Básicos
Herencia multiple
Javier Garzás. Introducción a OO
36
 Rigidez
 Acoplamiento
Conceptos Básicos
Aspectos negativos de la herencia
(Ah...¿pe...
Javier Garzás. Introducción a OO
37
Agregación
• La agregación responde a ES_PARTE_DE
• Las partes pueden o no existir fue...
Javier Garzás. Introducción a OO
38
Conceptos Básicos
¿Agregación o Composición?
La polémica salta a las revistas del cora...
Javier Garzás. Introducción a OO
39
Mensaje
Comunicación o interacción entre Objetos
Un sistema OO puede incluso definirse...
Javier Garzás. Introducción a OO
40
Polimorfismo
Capacidad de un comportamiento de tener una
interpretación en más de una ...
Javier Garzás. Introducción a OO
41
Vinculación o Binding
Asociar el nombre de un servicio a su instrumentación
Estática
D...
Javier Garzás. Introducción a OO
42
Verificación
Comprobar consistencia de tipos.
Decidir si una acción es valida
Concepto...
Javier Garzás. Introducción a OO
43
Verificación Estática Verificación Dinámica
Vinculación Estática
Garantía de Correcció...
Javier Garzás. Introducción a OO
44
Principio Concepto
Clasificación
Generalización
Agregación
Clase
Sub/Superclase
Compu....
Javier Garzás. Introducción a OO
45
Polimorfismo (herencia
y vinculación dinámica)
Encapsulamiento (ocultación
de la infor...
Javier Garzás. Introducción a OO
46
Encapsulamiento
+
Identidad
+
Abstracción de
Conjunto
+
Herencia
Basado en
Objetos
Ori...
Upcoming SlideShare
Loading in …5
×

Introducción a la Orientación a Objetos

2,116 views

Published on

Introducción a la Orientación a Objetos

Published in: Technology
  • Be the first to comment

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

×