Professional Documents
Culture Documents
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
Agenda
Introducción a la Programación
Orientada por Objetos
Conceptos básicos
Abstracción
Herencia
Relaciones entre clases
Polimorfismo
Introducción
Booch (1991...)
RUP
OMT (1991...) Objectory OBA,MOSES, (1999...)
(1992...) FUSION
(1994...)
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
a Juan
Juan sabe que Rosa presta el
prestarle el servicio
Conceptos
básicos
Ejemplo Enviar Flores [4]
María Mensajero
Arreglista Productor
Florista Local
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 servicio
El receptor del mensaje presta el
La ventana se sabe: Qué sabe hacer la ventana?
•
cerrar Cuáles servicios ofrece?
•
abrir
•
cambiar de tamaño
•
pintar Cómo se le solicitan
•
mover los servicios?
Además, sabe: dónde está,
si está visible o no ...
Conceptos
básicos
Ventana ejemplo
Objetos figuras geométricas:
•
un triángulo
•
un rectángulo
•
un círculo
Las figuras geométricas se
saben:
•
Pintar Qué saben hacer las
•
agrandar .. figuras geométricas
Además, saben: dónde están, gráficas?
si están visibles o no ...
Cómo se le solicitan
los servicios?
Conceptos
básicos
Ventana ejemplo
La ventana tiene la Las figuras geométricas
responsabilidad de tienen la responsabilidad
solicitar a las figuras de saberse pintar y de
geométricas que se hacerlo cuando se lo
pinten 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
CambiarTama
ño(50%+)
Ventana Cliente
Ok
Interfaz: conjunto de servicios p
úblicos que presta
La comunicación se hace a través del envío
de mensajes
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...
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
Vertebrado Superclase
(Tipo)
Mamifero Subclase
(Subtipo)
Herencia
Relación de subtipaje (herencia):
EstudiantePregrado Monitor
MonitorPregrado
Herencia
ScrollBar
Window
Herencia
ScrollBar
Window
Herencia
La regla de oro de la herencia: ..es un... :
Cuando tenga:
arreglo[i].pintar();
}
Polimorfismo
El polimorfismo es posible gracias a
la herencia:
Figura
Pintar()