Tipo de Dato Abstracto Tipos de datos:

Slides:



Advertisements
Presentaciones similares
Algoritmos y Programas
Advertisements

MODELOS ORIENTADOS A OBJETOS
PROGRAMACION ORIENTADA A OBJETOS
Servicios Web.
Resolución de Problemas Algoritmos y Programación
Arquitectura CLARO-TECNOTREE
Programación Orientada a Objetos
Introducción a la Orientación a Objetos
1.1 Concepto de Tipo de Datos Abstracto.
Estructuras de datos y algoritmos
Fundamentos de Ingeniería de Software
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
POO Santiago, Mayo 2004 TRABAJO DE INVESTIGACIÓN POO Programación Orientada a Objetos CENAFOM Carolina Bravo V. Jaime Jofré B.
Aplicación del paradigma orientado a objetos
Preguntas tipo test (Tema I)
Encapsulamiento y Abstracción
Abstracción de Datos La abstracción es un recurso fundamental en la programación orientada a objetos y está además fuertemente ligado a reusabilidad.
DIAGRAMA DE CLASE.
METODOLOGIA DE LA PROGRAMACION
UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,
TAD_Ana Lilia Laureano/UAM-A1 Tipos Abstractos de Datos y Asertos Ana Lilia Laureano Cruces Universidad Autónoma Metropolitana-Azcapotzalco.
Tema 6: Clases Antonio J. Sierra.
PROGRAMACIÓN LÓGICA.
ALGORITMOS es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos.
UNIVERSIDAD DE MANAGUA I CUATRIMESTRE INTRODUCCION A LA PROGRAMACION
Ingeniería de Software
Viviana Poblete López Módulo: Modelo de Datos
Facultad de Ciencias de la Computación MC Beatriz Beltrán Martínez

TIPOS DE DATOS ABSTRACTOS
Introducción a los tipos de datos abstractos
1.1 Concepto y terminología
Introducción a la POO • ¿Qué es la programación orientada a objets (POO)? – Un “paradigma” de programación – Una forma de pensar acerca de los problemas.
DISEÑO DE SOFTWARE 1ª. Parte
Fundamentos de programación
Diseño de algoritmos La computadora puede realizar procesos y darnos resultados, sin que tengamos la noción exacta de las operaciones que realiza. Con.
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
Ada 2º Parte (variables, ámbitos , subrutinas , tipos abstractos de datos y excepciones)
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
Sara Isabel Osorio Alacraz Ana Isabel Vallejo Grisales
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
Introducción a UML DIAGRAMA DE CLASES Departamento de Informática
El modelo de análisis tiene como objetivo generar una arquitectura de objetos que sirva como base para el diseño posterior del sistema. Dependiendo del.
Facultad de Ingeniería
TEMA 9: DIAGRAMA DE CLASE EN UML
Programación Orientada a Objeto
PROGRAMACION ORIENTADA A OBJETOS
Estructuras de Datos y Algoritmos Introducción. Texto Requerido: Carrano & Prichard: Data Abstraction and Problem Solving with Java; Walls and Mirrors,
Computación I (CI-2125) Clase 2 Prof. Mireya Morales.
Examen diagnóstico ¿Qué es una computadora? ¿Qué es un algoritmo?
IDENTIFICACIÓN DEL CICLO DE VIDA DEL SOFTWARE. POLITÉCNICO COLOMBIANO JAIME ISAZA CADAVID.
POO U1: INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS.
Presente un cuestionario con los aspectos mas importantes sobre los
Metodología de la programación
Introducción a los TADs
PROGRAMACIÓN IV INTRODUCCIÓN.
TIPOS DE DATOS ABSTRACTOS
Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 3 Programas.
Análisis y Diseño de Aplicaciones 3º Educación Media Tecnológica
La Programación Orientado a Objetos
Introducción AOO. Contenido - Introducción - Repaso de Orientación a Objetos - UML - Casos de Uso.
Diagrama de Clases.
Programación I Prof. Carolina Cols. Algoritmo es una lista bien definida, ordenada y finita de operaciones que permite hallar la solución a un problema.
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
Prof. Manuel B. Sánchez. Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No es mejor uno.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
:: Prof. Yeniffer Peña Introducción a JAVA Presentación Programación I.
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 3 – Diseño de Programas.
METODOS DE PROGRAMACION I Ing. Vania Flores Pinto.
Programación I Clases. Paradigma POO La programación Orientada a objetos (POO) es una forma programar, más cercana a como expresaríamos las cosas en la.
Transcripción de la presentación:

Tipo de Dato Abstracto Tipos de datos: En Pascal : char, boolean, integer, real... En C: char, bool, int, real,... ¿Qué sabemos de su implementación?

TDA (Tipo de Dato Abstracto) Abstracción es el mecanismo que permite seleccionar partes de un todo complejo para su consideración, ignorando el resto. Permite filtrar aquellos aspectos relevantes, y obtener soluciones más generales. Un TDA (tipo de dato abstracto) es un modelo en el que se define una estructura o se referencia un concepto y sus operaciones

TDA La abstracción permite considerar la resolución de un problema sin tener en cuenta los detalles por debajo de cierto nivel El concepto de Tipo de Dato Abstracto (‘Abstract Data Type’ o ADT en inglés) surgió para facilitar el trabajo con tipos de datos haciendo abstracción de la implementación de los mismos. Un TDA está dado por un grupo de datos que cumplen cierta condición especificada para el TDA, más un conjunto de operaciones que representan el comportamiento del TDA

Elementos de un TDA Tipo de Dato Invariantes o axiomas Operaciones Precondiciones Postcondiciones

Ejemplo de TDA Supongamos que nos interesa sumar enteros más grandes que los que provee el lenguaje que usemos. Podemos, para ello, crear el TDA GranEntero, especificando: Tipo de Dato Invariantes Operaciones Precondiciones Postcondiciones

Tipo de Dato: GranEntero Invariantes: Un GranEntero se compone de dígitos Estos dígitos están ordenados de manera lineal Un GranEntero puede contener 500 dígitos Operaciones: Creación o construcción: Crea o genera un gran entero, con valor nulo Precondición: ninguna Postcondición: un GranEntero resulta creado

Suma: Recibe de entrada dos instancias de GranEntero y devuelve como salida una instancia GranEntero Precondición: ambas instancias de GranEntero han sido creadas. Postcondición: la instancia de GranEntero de salida contiene la suma de las dos de entrada. Eliminar: Elimina un GranEntero La entrada es un GranEntero y no tiene salida Precondición: la instancia de GranEntero ha sido creada. Postcondición: libera los recursos asociados a la instancia.

Interfaz e implementación de un TDA La entidad TDA exporta las características en forma de operaciones. La implementación de la estructura del TDA, y de las operaciones propias son privadas. No se permite acceso ni visibilidad a la implementacion de un TDA. (Ocultamiento de la información) Se oculta la maquinaria algorítmica que implementa la semántica de los operadores. Un TDA encapsula ciertos tipos de datos en cuanto a la definición del tipo y todas las operaciones del mismo en una sección del código

Pasos de la construcción de un TDA Un tipo abstracto de datos es una colección de objetos y de operaciones que se definen mediante una especificación que es independiente de cualquier representación Pasos de la construcción de un TDA 1.Se define la especificación del TDA = determinar que elementos pertenecen al TDA y el conjunto de operaciones propias para el tipo. Las operaciones se deben definir independientemente de cualquier implementación, Sólo se indica las propiedades que deben cumplir. (Abstracción) 2.Se construye la o las implementaciones del TDA y se codifican las operaciones definidas para el tipo abstracto. (Refinamientos sucesivos)

TDA=Representación(estructuras de datos)+Operaciones (métodos) Resumiendo... Los TDA constituyen una forma de generalización y encapsulamiento de los aspectos más importantes de la información que se debe manejar en la resolución de un problema, sin considerar las cuestiones relativas a la implementación. Un TDA define una clase de concepto que puede manejarse con independencia de la estructura de datos para representarlo. TDA=Representación(estructuras de datos)+Operaciones (métodos)

Ventajas del uso de TDA Para usarlos sólo debemos conocer la especificación= interfaz de las operaciones. La implementación podría variar sin que ninguna aplicación que utilizara el TDA se viera afectada. La alta cohesión del módulo que implementa el TDA, y el bajo acoplamiento que se dará con otros módulos permite reutilizar el código.

Conceptos básicos La especificación de un TDA es la descripción del comportamiento del mismo. Debe formalizarse. Indica qué hace el TDA. La implementación es la forma específica en que se almacenan los datos y se codifican las operaciones. Está dado por un grupo de instrucciones a ser ejecutadas por la computadora, y se escribe en uno o más lenguajes de programación. Las implementaciones deben corresponder a las especificaciones.

¿Cómo se especifica un TDA? Hay dos tipos de especificaciones formales de un TDA: 1. Axiomática : expresión de la forma de las operaciones, indicando las reglas a seguir para realizar cada operación. 2. Semántica : expresión de la operatoria de las operaciones. Se especifican las consecuencias de las operaciones para el TDA. Se da mediante el lenguaje natural, o mediante especificación algebraica.

Como realizar la especificación formal un TDA: Se debe indicar Tipo de Dato: el nombre del TDA. Permite identificarlo. Axiomas: invariantes de representación abstracta del TDA. Describen las características abstractas del TDA. Operaciones: especificación de la sintaxis correspondiente a las operaciones propias del TDA (primitivas), junto a las Precondiciones y Postcondiciones para cada una de ellas.

Ejemplo de especificación de un TDA TDA String Tipo de Dato: String Axiomas: Elementos: conjunto de letras Estructura: los elementos tienen una relación lineal Dominio: es el conjunto de todas las cadenas de caracteres que se pueden formar con hasta 100 caracteres.

Operaciones: Construir : crea un String vacío Entrada: -- Salida: instancia de String creada y ‘vaciada’ Precondición: -- Postcondición: String creado queda nulo Agregar_letra: agrega una letra al final Entrada: una instancia de String y un carácter Salida: la instancia de String modificada Precondición: la instancia de String no debe superar los 99 caracteres Postcondición: la instancia de String tiene una letra más al final

Concatenar: concatena dos String Entrada: dos instancias de String Salida: una nueva instancia de String resultado de la concatenación de los dos de entrada. Precondición: la suma de las letras de ambos String no debe superar 100 Postcondición: la instancia de String de salida es la concatenación de las dos de entrada. Destruir: elimina un String Entrada: un String Salida: --- Precondición: la instancia ha sido creada. Postcondición: libera los recursos asociados a la instancia.

Tener en cuenta que... El estado de una instancia de un TDA se determina por las variables que lo definen, las cuales son modificadas a través de métodos, por ejemplo mediante la utilización de algún operador. Luego de aplicar ese operador siempre se debe verificar el cumplimiento de determinadas condiciones que definen a qué estado debe pasar ese objeto luego de aplicar dicho operador. (Esto a veces se formaliza mediante uno o más axiomas).

Precondiones y Postcondiciones Las precondiciones de una operación representan los requisitos que se deben cumplir para que la operación se lleve a cabo. Las postcondiciones expresan las condiciones que se verificarán para la instancia de TDA luego de llevada a cabo la operación correspondiente.

Ciclo de vida Es el conjunto de etapas por las que atraviesa toda instancia de TDA. Creación Operatoria Destrucción

Invariante de un TDA Es una proposición que expresa el conjunto de valores válidos del TDA. Expresa la estructura abstracta del TDA. El invariante permite saber qué elementos pertenecen al TDA y qué elementos no.

¿Cómo saber si la implementación de un TDA es de buena calidad? Se considera el requerimiento de espacio el tiempo empleado en las distintas operaciones la posibilidad de reutilización que ofrezca

Pasos en la utilización de TDAs Es el conjunto de etapas por las que atraviesa todo TDA. Estas son: Diseño: etapa en la cual se especifica el TDA. Implementación : se escribe la codificación correspondiente al TDA. Uso: se utiliza la implementación del TDA en la resolución de un problema.

TDA y Clases Se puede representar e implementar un TDA en el marco de la Programación Estructurada (por ejemplo utilizando struct), o con otros paradigmas, como el de la Programación orientada a Objetos (O.O.). En particular en O.O. una clase es una representación e implementación real de un TDA Una clase equivale a un tipo. Un objeto es una instancia de una clase (equivalente al concepto de variable de un tipo) Una clase tiene datos miembro y métodos miembro. Los métodos son las funciones de la clase, corresponden a la implementación de las primitivas del TDA.

programas = objetos + mensajes cumpliéndose, además De este modo, ahora es: programas = objetos + mensajes cumpliéndose, además objetos = datos + métodos Los objetos encapsulan datos = información estática y métodos = información dinámica Fuertemente ligado a este concepto está el de ocultamiento Los objetos tienen un comportamiento determinado (es aquello que hacen) cuando reciben un mensaje (= invocación a un método propio)

Lecturas Recomendadas Meyer, Bertrand, Object Oriented Software Construction, Prentice-Hall, 1997. Capítulos 4 y 6.

Fin Clase-TDA.ppt