fundamentos de orientación a objetos. referencias meyer, bertran., construcción de software...
TRANSCRIPT
Fundamentos de Orientación a Objetos
Referencias● Meyer, Bertran., “Construcción de Software
Orientado a Objetos”, Prentice Hall, 1997.● Booch, Grady.,”Analisis y Diseño orientado a Objetos
con aplicaciones”. ● Fowler, Martin., “UML Distille – Applying the
Standard Object Modeling Language”, Addison-Wesley, 1997
● Budd, Timothy A. An Introduction to Object Oriented Programming (3rd Ed), Addison-Wesley, 2002.
● Peña, Ricardo.,”Diseño de Programas, formalismo y abstracciones”, Prentice Hall, 1998
Referencias ( cont...)● Larman, G., “Applying UML and
Patterns: An Introduction to Object-Oriented Analysis and Design”, prentice-Hall, 1998.
● Booch, Grady., “El Lenguaje Unificado de Modelado UML”, Addison-Wesley, 1998
● Aguilar, Joyanes., “Programación Orientada a Objetos”, Mc. Graw Hill
● Rumbaugh, James., “Modelaje y Diseño Orientado a Objetos”, Prentice Hall, 1990
AgendaIntroducción a la Programación Orientada por Objetos
Conceptos básicosAbstracciónHerenciaRelaciones entre clasesPolimorfismo
Introducción
Símula (1961...)
Símula (1967...)
SmallTalk (1972-...)
C++ (1983...)Eiffel (1985...)
Java 1 (1995...)
60-70's 80's 90's
Self (1986...)Modula 3 (1986...)
ADA(1979-...)
Ruby (1991...) C#(2000...)
Introducción
Símula (1961...)
Símula (1967...)
SmallTalk (1972-...)
C++ (1983...)Eiffel (1985...)
Java 1 (1995...)
60-70's 80's 90's
Self (1986...)Modula 3 (1986...)
ADA(1979-...)
Ruby (1991...) C#(2000...)
Booch (1991...)OMT (1991...) Objectory
(1992...)OBA,MOSES, FUSION (1994...)
RUP (1999...)
Conceptos básicos
OO provee objetos como el principal medio para abstraer y estructurar un sistema.Un objeto puede modelar entidades del mundo real, puede capturar abstracciones de fenómenos complejos, puede representar artefactos de software (pilas, gráficos, …).
Conceptos básicos El contexto del problema se ve como objetos que interactúan entre ellos
Conceptos básicos
Ejemplo Enviar Flores [4] Suponga que Juan desea llevarle flores a una amiga en otra ciudad María
Como Juan no puede llevarlas personalmente, le encarga a su florista preferida (Rosa) el envío
María recibe sus flores
Conceptos básicos
Ejemplo Enviar Flores [4]Juan le solicita a Rosa un servicioRosa sabe cómo prestarle el servicio a JuanJuan sabe que Rosa presta el servicio que el necesitaRosa es responsable de prestarle el servicio adecuadamente a JuanJuan desconoce qué le implica a Rosa prestarle el servicio
CB4
Conceptos básicos
Ejemplo Enviar Flores [4]
María
Juan Rosa
Florista Local
Recolector
ProductorArreglista
Mensajero
Conceptos básicos
En programación orientada por objetos un programa es una comunidad de agentes (objetos) que interactuan entre ellos.
Cada objeto tiene un rol en la solución del problema
Cada objeto provee un conjunto de servicios (o métodos)
Los servicios de un objeto son usados por otros objetos.
Conceptos básicos
La forma en que los objetos se comunican entre ellos es a través de mensajes:Un mensaje encapsula la petición de un servicioEl receptor del mensaje presta el servicio y devuelve una respuesta al que solicitó el servicio
Conceptos básicos
Ventana ejemplo
Un objeto ventana gráfica
La ventana se sabe:• cerrar• abrir• cambiar de tamaño • pintar• moverAdemás, sabe: dónde está,si está visible o no ...
Cómo se le solicitan los servicios?
Qué sabe hacer la ventana?Cuáles servicios ofrece?
Conceptos básicos
Ventana ejemplo
Las figuras geométricas se saben:
• Pintar• agrandar ..Además, saben: dónde están,si están visibles o no ...
Cómo se le solicitan los servicios?
Qué saben hacer las figuras geométricas gráficas?
Objetos figuras geométricas:• un triángulo• un rectángulo• un círculo
Conceptos básicos
Ventana ejemplo
La ventana tiene la responsabilidad de solicitar a las figuras geométricas que se pinten
Las figuras geométricas tienen la responsabilidad de saberse pintar y de hacerlo cuando se lo soliciten
La ventana tiene que saber cómo hacer la solicitud.La figura geométrica tuvo que haber hecho público cómo usar sus servicios
Conceptos básicos
La comunicación se hace a través del envío de mensajes
CambiarTamaño(50%+)Ventana Cliente
Ok
Interfaz: conjunto de servicios públicos que presta
Conceptos básicos
Modelar consiste en identificar (abstraer) qué objetos hay en el mundo del problema, cómo son, cómo se comportan y cómo se relacionan.
Conceptos básicos
Objeto Es una abstracción de un elemento
(concepto) del Contexto del Problema Ejemplos:
Estudiante Fecha Automóvil Libro Vuelo
Conceptos básicos
El comportamiento de los objetos puede ser descrito por una caracterización abstracta de su interfaz. Por ejemplo:
Conceptos básicos
La caracterización del comportamiento es suficiente para diseñar el sistema. El comportamiento real del objeto puede ser implementado y refinado más tarde de acuerdo con las necesidades.
Conceptos básicos
Un objeto empaqueta datos (una representación concreta) y procedimientos que operan sobre los datos.
Conceptos básicos
Nombre
Datos/Atributos/Campos
Métodos/Servicios/Interfaz
Conceptos básicos
El envío de mensajes es la única forma para que un objeto realice una operación.Las operaciones son la única forma para cambiar el estado de los datos. Cuando esto se cumple, se dice que el estado interno del objeto (el valor de sus datos) está encapsulado; éste no puede ser manipulado directamente desde el exterior y su representación concreta es invisible.
Conceptos básicos
Abstracción:Mecanismo de la mente humana
fundamental para la comprensión de fenómenos o situaciones que involucren una gran cantidad de detalles.
En biología los seres vivos se clasifican en especies, géneros, clases, órdenes, etc...
Conceptos básicos
Abstracción ( cont...)Proceso mental que tiene dos
aspectos complementarios El aspecto de destacar los detalles
relevantes del objeto de estudio El aspecto de ignorar los detalles
irrelevantes del objeto.
Conceptos básicos
Tipo Abstracto de Datos (TAD)“Un tipo abstracto de datos es una
colección de valores y de operaciones que se definen mediante una especificación que es independiente de cualquier representacion”
Conceptos básicos
Abstracción y encapsulamiento: La abstracción se centra en el comportamiento
observable de un objeto, el encapsulamiento se centra en la implementación que da lugar a ese comportamiento.
”encapsulamiento es el proceso de almacenar en un mismo lugar los elementos de una abstracción que constituyen su estructura y su comportamiento; sirve para separar la interfaz contractual de una abstracción de su implantación." [Booch96]
Conceptos básicos Clase Describe un conjunto de objetos del
Contexto del Problema, que tienen las mismas características y el mismo comportamiento
Conceptos básicos La noción de Clase viene de clasificación: agrupar (en un conjunto) objetos (elementos) que se comportan de la misma manera (con respecto a la interfaz que describe el comportamiento).
Conceptos básicos Metáfora
Conceptos básicos Agregación/Composición Permite abstraer relaciones de
tipo ...tiene... y ... está compuesto de...
Conceptos básicos
Asociaciones Permite abstraer relaciones entre
objetos diferentes a la composición
Herencia Los objetos se organizan en jerarquías
Vertebrado
Mamifero
Canino Felino
Doméstico Salvaje
...
Herencia La herencia permite modelar relaciones del tipo ...es... y clasificaciones: Un mamífero es un vertebrado Un monitor es un estudiante
Superclase(Tipo)
Subclase(Subtipo)
Vertebrado
Mamifero
Herencia
Relación de subtipaje (herencia):
si B es subtipo de A entonces cualquier objeto de tipo B puede ser usado en cualquier parte donde un objeto de tipo A puede ser usado.
Herencia
Monitor
MonitorPregrado
EstudiantePregrado
Herencia Múltiple:
Herencia
ScrollBar
Window
Herencia
ScrollBar
Window
Herencia
La regla de oro de la herencia: ..es un... :Cuando tenga:
Forme la frase ``A es un B''. Si es correcto, entonces A puede ser subclase de B
B
A
Polimorfismo
Es la posibilidad de definir de forma distinta un método,dependiendo del objeto.
MiCuadrado.pintar() MiCirculo.pintar()MiTriangulo.pintar()
Polimorfismo
for (int i = 1; arreglo.length(); i++) {
arreglo[i].pintar();
}
Polimorfismo
El polimorfismo es posible gracias a la herencia:
Figura
Triangulo
Pintar()
Cuadrado Circulo
Resumen Principios
Todo es un objeto
Los objetos realizan operaciones (computan) solicitando servicios entre ellos a través del paso de mensajesTodo objeto tiene su propia memoria, la cual consiste de otros objetosTodo objeto es una instancia de una clase. Una clase agrupa objetos similares. En la clase se describe el comportamiento de los objetos. Las clases están organizadas en una jerarquía con una única raíz, llamada la jerarquía de herencia.