500 likes | 773 Views
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
E N D
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.
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 • 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).
¿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.