ORIENTACIÓN A OBJETOS
El paradigma
Conceptos relacionados
• Abstracción• Herencia • Polimorfismo• Encapsulamiento• Envió de mensajes• Asociaciones• Agregación
Introducción
La orientación a objetos es un medio para la generación de programas, permite desarrollar una metodología basada en componentes para el desarrollo.
Se genera un sistema mediante un conjunto de objetos
Introducción
OMG: Grupo de Administración de Objetos Predice ingresos por 3 mil millones de dolares
en los siguientes años.
UML permite generar generar modelos de objetos faciles de usar y de comprender.
Introducción
• La orientación a objetos es un paradigma , que depende de ciertos principios; principios que hacen funcionar a los objetos y como usarlos en el análisis y en el diseño.
¿Qué fue primero el huevo o la gallina?• Objetos ó ClasesIdeas intuitivas:
• LOS OBJETOS CONFORMAN NUETRO ENTORNO.• EL SOFTWARE SIMULA AL MUNDO• LOS PROGRAMAS IMITAN A LOS OBJETOS DEL MUNDO.
Objeto: Es una instancia de la clase (ó categoría). Un objeto cuenta con una estructura; ATRIBUTOS (propiedades) y ACCIONES.
Acciones= actividades que el objeto es capar de realizarAtributos = características o rasgos del objeto
Objetos
CLASE CIRCULO_________________
String colorRelleno
_________________
Float calcularArea()
OBJETO CIRCULO-ROJO
colorRelleno=rojo
OBJETO CIRCULO-VERDE
colorRelleno=verde
Instancia
Clases• Las clases en los programas orientados a objetos pueden crear
nuevas instancias.• Una clase es una categoría de objetos y también una plantilla
sirve para crear otros objetos.
La clase lavadora, es un plantilla paraGenerar instancias de lavadoras
Ejemplo de nombres de clases son: Lavadora, LavadoraIndustrial.
clase
• El propósito de la orientación a objetos es desarrollar software que refleje (i.e. modele) un esquema del mundo.
• Entre mas atributos y acciones tome en cuenta, mayor será la similitud de un modelo con la realidad.
Clases vs Clases
Modelo más exacto
¿Son todas las características realmente necesarias en un modelo mas exacto?
Abstracción
Se refiere a quitar las propiedades y acciones de una clase para dejar solo aquellas que sean necesarias.
Distintos problemas requieren diferente cantidad de información, aun si estos problemas pertenecen a un área en común.
Ejemplo, las dos versiones de la clase lavadora, son modelos útiles en distintos problemas: venta de lavadoras y diseño de lavadoras, respectivamente.
Herencia
CLASE CIRCULO_________________
PROPIEDADES
_________________METODOS OBJETO
CIRCULO-ROJO
OBJETO CIRCULO-
VERDEHerencia no explicita:
No importa que atributos y acciones se usen de la clase circulo, cada objeto hereda todos los Atributos y acciones.
Un objeto tiene todas las características de la clase de la que proviene.
Herencia
Un objeto puede ser creado a partir de heredar atributos y métodos de otras clases.
Por tanto, una clase hija hereda de su clase padre.
La herencia impone una relación jerárquica entre clases.
HerenciaCLASE C1_________________
PROPIEDADES
_________________METODOS
CLASE C2_________________
PROPIEDADES
_________________METODOS
CLASE C3_________________
PROPIEDADES
_________________METODOSC3=C3+C2+C1
Herencia entre clases simple y explicita:
Superclase/Subclase
Subclase
Superclase
Jerarquía de clases
Herencia
Cada tipo de clase de electrodomésticosHereda de la clase “electrodoméstico” que es
subclase de la superclase “artículos del hogar”.
Jerarquía de clases
Polimorfismo
• Se refiere a una operación que tiene el mismo nombre en diferentes clases, pero se comporta de forma diferente en cada clase.
• Cada clase “sabe” como debe realizar tal operación.
Para abrir una puerta, ventana o un regalo el
procedimiento es diferente.
Polimorfismo• Ejemplo, el método “calcularArea()” en las clases circulo, figura y
cuadrado.
• El polimorfismo es importante, ya que les permite hablar con el cliente (quien esta familiarizado con la sección del mundo que será modelada) en las propias terminología del cliente.
• Las palabras y terminología del cliente nos conducen a palabras (como abrir) que pueden tener mas de un significado (polisemia).
• El analista/modelador puede mantener tal terminología sin que tener que agregar palabras artificiales para comprender mejor los términos.
EncapsulamientoLos objetos encapsulan lo que hacen; es decir ocultan la funcionalidad interna de sus operaciones de otros objetos y del mundo exterior.
… la mayoría de personas que ven la televisión no saben de la complejidad electrónicaque hay detrás de la pantalla. EL televisor hace lo que debe de hacer sin mostrarnos el proceso.
EncapsulamientoEn el software, el encapsulamiento permite reducir el potencial de errores que pudieran ocurrir.
Un objeto depende de otro, si un objeto falla puede ser modificado, sin afectar los la funcionalidad de otros de objetos.
Esta modificación posible, gracias a que le encapsulamiento permite una mayor modularidad.
Piense cuando se descompone algún elemento de su computadora.
Envío de mensajesEs un sistema los objetos trabajan en conjunto. El envió de mensajes entre objetos es el mecanismo para comunicarse entre sí, y realizar tareas en conjunto a fin de un objetivo.
Asociaciones• Se refiere a la forma en que los objetos se
relacionan entre si (tipo de relación).
Asociaciones
• Una clase se puede asociar con más de una clase distinta. Una persona puede viajar en automóvil, pero también puede hacerlo en autobús.
• Por lo general, los objetos se asocian entre sí y esta asociación puede ser de diversos tipos. Un objeto en una clase puede asociarse con cualquier cantidad de objetos distintos en otra clase.
• La multiplicidad (o diversificación) es importante ya que indica la cantidad de objetos de una clase que se relacionan con otro objeto en particular de la clase asociada.
Asociaciones -> Multiplicidad
• Por ejemplo, en un curso escolar, el curso se imparte por un solo instructor, en consecuencia, el curso y el instructor están en una asociación de uno a uno.
• Una bicicleta rueda en dos neumáticos (multiplicidad de uno a dos), un triciclo rueda en tres, y un vehículo de 18 ruedas, en 18.
AgregaciónCuando un objeto se conforma de la combinación de diversos tipos de objetos (relación“es parte de”).
Una computadoraes un ejemplo deagregación: un objetoque se conforma deuna combinaciónde diversos tipos deobjetos.
Composición
• Un tipo de agregación trae consigo una estrecha relación entre un objeto agregado y sus objetos componentes; a esto se le conoce como composición.
• El punto central de la composición, es que el componente se considera como tal sólo como parte del objeto compuesto.
• Por ejemplo: una camisa está compuesta de cuerpo, cuello, botones, ojales y puños. Suprima la camisa y el cuello será inútil.
SAXBuilder
• FUENTE: Aprendiendo UML en 24 horas