Está en la página 1de 32

Programacin Orientada a Objetos Una introduccin

Maestra de Ingeniera Telemtica Universidad del Azuay

Historia

1940 programacin diseo y anlisis 1957 diseo del misil nuclear Minuteman 1958 LISP John McCarthy Ten Dyke & Kunz: 1967 Lenguaje Simula Noruega 1970s Smalltalk, Alan Kay, Xerox PARC 1970 LISP, FLAVORS, LOOPS, CLOS 1976 Alphard 1977 CLU, LISP. 1980 UI, WIMP, Xerox, Apple, Windows, Openlook, OSF Motif. 1986 Actor Systems Ahga 1989 Eiffel y extensiones de C y Pascal. 1989 Biggerstaff & Ritcher, Prieto-Diaz & Freeman, Sommerville

Historia

Simulacin y lenguajes de 3ra generacin Intercambio de mensajes entre objetos Mquina de estados finitos Estructura del programa vs. Estructura del problema. IA y la nocin de actores. DoD 60s-70s soporta financiamiento de proyectos: CASE, IPSE, Unix, X/Windows, ADA Bases de Datos orientadas a objetos.

Historia

1991. Estandarizacin: OMG Object Management Group, 4GL CORBA, Common Object Request Broker Programacin, Anlisis y Diseo. Sistemas abiertos.

Historia
Fase 1 - 1970's Fase 2 -1980's Fase 3 -1990's La Era de madurez Enfoque en anlisis y diseo

La Era de la Invencin
Simulacin de eventos discretos

La Era de la Confusin

Interfaces WIMP

Simula
Kay: FLEX machine

Xerox y Apple
extensiones de LISP

Sistemas abiertos
Aplicaciones Bases de datos orientadas a objetos Estndares.

PARC: Dynabook Smalltalk

entornos de IA Nuevos lenguajes: Eiffel, C++,

Ventajas

Cdigo Reutilizable. Mejores mtodos y notacin. Ciclo ms corto de anlisis diseo y programacin. Incorpora ideas de IA, modelado de datos, TI, computacin.

OOM (Object Oriented Methods)


Programacin Anlisis Diseo Bases de Datos

Terminologa bsica

Objetos: atributos y procedimientos Procedimientos= operaciones y mtodos. Objeto = instancia Clases, entidades del mundo real.

Terminologa Bsica

Encapsulamiento: Estructuras de Datos y detalles de los objetos estn ocultos. Se accede a los objetos a travs de mensajes que son procesados por los mtodos. Encapsulamiento = abstraccin.

Terminologa Bsica

Mensajes: intercambio entre objetos Se evita duplicacin de datos. El mensaje causa que los mtodos de otro objeto se ejecuten. ~ llamadas a funciones.

Terminologa Bsica

Herencia: los objetos pueden heredar caractersticas de sus clases y tambin de superclases ms generales. Estructura conceptual del mundo Adicionar excepciones

Terminologa Bsica

Polimorfismo: la misma expresin denota diferentes operaciones. Vinculacin dinmica. Ejemplo: sobrecarga de operadores (+).

Abstraccin y Encapsulamiento

Abstraccin: representacin de las caractersticas esenciales sin incluir todos los detalles accesorios. Atributos abstractos: variables de instancia y de clase. Ejemplo: tamao, posicin color de un objeto. Mtodos, operaciones o servicios: procedimientos para cambiar atributos o estados del objeto. (Mquina de estados finitos.) Operacin: que mensajes puede procesar el objeto.

Abstraccin y Encapsulamiento

Abstraccin y Encapsulamiento

Abstraccin y Encapsulamiento

Encapsula: datos y procesos. Datos: atributos


Variables e instancia. Variable de clase.

Procesos: Mtodos, operaciones o servicios:


Procedimientos. Funciones.

Abstraccin y Encapsulamiento

Clase: coleccin de objetos con atributos y mtodos comunes, de acuerdo a sus caractersticas y responsabilidades. Tipo abstracto de Datos: tipo de entidades de modelado de datos que incluyen mtodos para el tratamiento de los datos. Clase <> Tipo.

Abstraccin y Encapsulamiento

Vinculacin Dinmica: asociacin de un objeto a una clase en tiempo de ejecucin. Permite el polimorfismo. Vinculacin esttica: provista por el compilador.

Abstraccin y Encapsulamiento

Objeto: una clase, tipo abstracto de dato, o instancia de un tipo (de objeto). Instancia ~ registro en una base de datos. Clases abstractas: no pueden tener instancias sus hijos son otras clases. Aspectos internos: estados, implementacin e instanciacin. Aspectos externos: nombres de sus mtodos y tipos de parmetros.

Abstraccin y Encapsulamiento

Encapsulamiento: ocultamiento de informacin. Estructura interna escondida y protegida respecto de otros objetos. Implementacin: privada o pblica. Los datos se acceden solamente a travs de mensajes. Un mensaje es procesado por un mtodo y puede contener cero o ms parmetros.

Abstraccin y Encapsulamiento

Protocolo del objeto: conjunto de mensajes que puede responder. Selector: el nombre del mensaje. En compiladores de tipos fuertes los objetos no pueden recibir mensajes ilegales. Vinculacin dimmica: c/objeto se responsabiliza de protegerse de los mensajes que recibe.

Abstraccin y Encapsulamiento

Polimorfismo y sobrecarga de operadores: Habilidad de usar el mismo smbolo para diferentes propsito cuando el contexto es claro. Habilidad de tomar diferentes formas en tiempo de ejecucin. Ejemplo: abrir (ventana o fichero).

Abstraccin y Encapsulamiento

Polimorfismo:

ad hoc. Universal.

El mismo smbolo para operaciones no relacionadas semnticamente, coercin: para operar con mezclas de tipos. Universal: paramtrico e inclusin: capacidad de sustituir argumentos de un rango de tipos en la llamada a una funcin.

Abstraccin y Encapsulamiento

Genericidad: habilidad de definir mdulos parametrizados.

Ejemplo: una lista de nombres, lista de enteros, lista de empleados. Ada. MODULA-2, Algol. Ejemplo: red neuronal multicapa.

Herencia

Elimina la redundancia de almacenar el mismo dato o procedimiento varias veces. La herencia se relaciona mediante clasificacin jerrquica. IA: redes semnticas. Clasificacin, generalizacin, tipo, composicin, agregacin o parte de. Pertenencia, similitud, autora.

Herencia

Redes de herencia: es un, del tipo de.

Herencia

Herencia nica o simple Herencia mltiple. Ejemplo: diferencia entre clases y superclases e instancias de objetos. La herencia permite reutilizacin pero tambin hace ms compleja la descripcin de los objetos y adiciona estructuras de herencia.

Terminologa adicional

Actores: delegacin ~ herencia sin pertenencia a una clase. Un objeto delega a otro o le da permiso para ejecutar ciertas tareas. Auto recursividad o auto referencia: capacidad de enviar mensajes a sus propios mtodos. Programacin basada en objetos: encapsulamiento e identidad de objetos.

Terminologa adicional

Lenguajes basados en objetos: abstraccin de conjuntos instancia/clase. Las clases se relacionan con la herencia. Sistemas orientados a objetos: heredan de la programacin basada en objetos y de los sistemas basados en clases. (polimorfismo y herencia).

Relacin entre trminos


basado en objetos = encapsulamiento + identidad del objeto

basado en clases =

basado en objetos + abstraccin de conjuntos

orientado a objetos =

basado en clases + herencia y auto recursividad

Preguntas?

Ejemplos de objetos degenerados. Representacin de Objeto, Atributos y Mtodos. Representacin de paso de mensajes. Importancia del encapsulamiento. Clases y Herencia. Instanciacin de un objeto.

Fin de la presentacin