Download Metodologías Orientadas a Objetos

Document related concepts

Polimorfismo (informática) wikipedia , lookup

Common Lisp wikipedia , lookup

Common Lisp Object System wikipedia , lookup

Scala (lenguaje de programación) wikipedia , lookup

Dylan (lenguaje de programación) wikipedia , lookup

Transcript
Metodologías Orientadas a
Objetos
Maestría de Ingeniería Telemática
Universidad del Azuay
Historia













1940 programación diseño y análisis
1957 diseño del misil nuclear Minuteman
1958 LISP John McCarthy
Ten Dyke & Kunz:
1967 Lenguaje Simula – Noruega
1970’s 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








Simulación y lenguajes de 3ra generación
Intercambio de mensajes entre objetos
Máquina de estados finitos
Estructura del programa vs. Estructura del
problema.
IA y la noción de actores.
DoD 60’s-70’s soporta financiamiento de
proyectos:
CASE, IPSE, Unix, X/Windows, ADA
Bases de Datos orientadas a objetos.
Historia




1991. Estandarización: OMG Object
Management Group, 4GL
CORBA, Common Object Request
Broker
Programación, Análisis y Diseño.
Sistemas abiertos.
Historia
Fase 1 - 1970's
Fase 2 -1980's
Fase 3 -1990's
La Era de la
Invención
La Era de la
Confusión
La Era de madurez
Simulación de
eventos
discretos
Interfaces WIMP
Enfoque en análisis y
diseño
Simula
Xerox y Apple
Sistemas abiertos
Kay: FLEX machine
extensiones de LISP
Aplicaciones
PARC: Dynabook
entornos de IA
Bases de datos
orientadas a
objetos
Smalltalk
Nuevos lenguajes:
Eiffel, C++, …
Estándares.
Ventajas




Código Reutilizable.
Mejores métodos y notación.
Ciclo más corto de análisis diseño y
programación.
Incorpora ideas de IA, modelado de
datos, TI, computación.
OOM (Object Oriented
Methods)




Programación
Análisis
Diseño
Bases de Datos
Terminología básica




Objetos: atributos y procedimientos
Procedimientos= operaciones y
métodos.
Objeto = instancia
Clases, entidades del mundo real.
Terminología Básica




Encapsulamiento:
Estructuras de Datos y detalles de los
objetos están ocultos.
Se accede a los objetos a través de
mensajes que son procesados por los
métodos.
Encapsulamiento = abstracción.
Terminología Básica




Mensajes: intercambio entre objetos
Se evita duplicación de datos.
El mensaje causa que los métodos de
otro objeto se ejecuten.
~ llamadas a funciones.
Terminología Básica



Herencia: los objetos pueden heredar
características de sus clases y también
de superclases más generales.
Estructura conceptual del mundo
Adicionar excepciones
Terminología Básica



Polimorfismo: la misma expresión
denota diferentes operaciones.
Vinculación dinámica.
Ejemplo: sobrecarga de operadores (+).
Abstracción y Encapsulamiento






Abstracción: representación de las características
esenciales sin incluir todos los detalles accesorios.
Atributos abstractos: variables de instancia y de
clase.
Ejemplo: tamaño, posición color de un objeto.
Métodos, operaciones o servicios: procedimientos
para cambiar atributos o estados del objeto.
(Máquina de estados finitos.)
Operación: que mensajes puede procesar el objeto.
Abstracción y Encapsulamiento
Abstracción y Encapsulamiento
Abstracción y Encapsulamiento


Encapsula: datos y procesos.
Datos: atributos



Variables e instancia.
Variable de clase.
Procesos: Métodos, operaciones o
servicios:


Procedimientos.
Funciones.
Abstracción y Encapsulamiento



Clase: colección de objetos con atributos y
métodos comunes, de acuerdo a sus
características y responsabilidades.
Tipo abstracto de Datos: tipo de entidades de
modelado de datos que incluyen métodos
para el tratamiento de los datos.
Clase <> Tipo.
Abstracción y Encapsulamiento


Vinculación Dinámica: asociación de un
objeto a una clase en tiempo de
ejecución. Permite el polimorfismo.
Vinculación estática: provista por el
compilador.
Abstracción 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, implementación e
instanciación.
Aspectos externos: nombres de sus métodos
y tipos de parámetros.
Abstracción y Encapsulamiento





Encapsulamiento: ocultamiento de
información.
Estructura interna escondida y protegida
respecto de otros objetos.
Implementación: privada o pública.
Los datos se acceden solamente a través de
mensajes.
Un mensaje es procesado por un método y
puede contener cero o más parámetros.
Abstracción 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.
Vinculación dimámica: c/objeto se
responsabiliza de protegerse de los mensajes
que recibe.
Abstracción y Encapsulamiento




Polimorfismo y sobrecarga de
operadores:
Habilidad de usar el mismo símbolo
para diferentes propósito cuando el
contexto es claro.
Habilidad de tomar diferentes formas en
tiempo de ejecución.
Ejemplo: abrir (ventana o fichero).
Abstracción y Encapsulamiento

Polimorfismo:


ad hoc.
Universal.
El mismo símbolo para operaciones no relacionadas
semánticamente, coerción: para operar con
mezclas de tipos.
Universal: paramétrico e inclusión: capacidad de
sustituir argumentos de un rango de tipos en la
llamada a una función.
Abstracción y Encapsulamiento




Genericidad: habilidad de definir
módulos 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
clasificación jerárquica.
IA: redes semánticas.
Clasificación, generalización, tipo,
composición, agregación o parte de.
Pertenencia, similitud, autoría.
Herencia

Redes de herencia: es un, del tipo de.
Herencia




Herencia única o simple
Herencia múltiple.
Ejemplo: diferencia entre clases y
superclases e instancias de objetos.
La herencia permite reutilización pero
también hace más compleja la
descripción de los objetos y adiciona
estructuras de herencia.
Terminología adicional



Actores: delegación ~ 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
métodos.
Programación basada en objetos:
encapsulamiento e identidad de objetos.
Terminología adicional


Lenguajes basados en objetos:
abstracción de conjuntos
instancia/clase. Las clases se relacionan
con la herencia.
Sistemas orientados a objetos: heredan
de la programación basada en objetos y
de los sistemas basados en clases.
(polimorfismo y herencia).
Relación entre términos
basado en objetos =
basado en clases =
orientado a objetos
=
encapsulamiento + identidad del objeto
basado en objetos + abstracción de conjuntos
basado en clases + herencia y auto recursividad
¿Preguntas?






Ejemplos de objetos degenerados.
Representación de Objeto, Atributos y
Métodos.
Representación de paso de mensajes.
Importancia del encapsulamiento.
Clases y Herencia.
Instanciación de un objeto.
Gracias por su atención.