ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo...

Post on 25-Jan-2016

227 views 0 download

Transcript of ORIENTACIÓN A OBJETOS El paradigma. Conceptos relacionados Abstracción Herencia Polimorfismo...

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