Upload
aleta-valladolid
View
27
Download
0
Embed Size (px)
Citation preview
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
SmalltalkNuevos 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 =
encapsulamiento + identidad del objeto
basado en clases =
basado en objetos + abstracción de conjuntos
orientado a objetos =
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.