Facultad de Ciencias de la Computación MC Beatriz Beltrán Martínez

Slides:



Advertisements
Presentaciones similares
1.1 Concepto de Tipo de Datos Abstracto.
Advertisements

Tipo de Dato Abstracto Tipos de datos:
Unidad 1 Definiciones Básicas
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
TIPOS DE DATOS ABSTRACTOS
Lcda. Ingrid Graü Diseño de Sistemas 1. Lcda. Ingrid Graü Diseño de Sistemas 2.
2012-BM5A. Introducción Todos los lenguajes de programación son distintos entre si. Sin embargo, pueden ser agrupados según la forma de pensar y estructurar.
¿Qué es un Diagrama de Flujo? UN DIAGRAMA DE FLUJO, TAMBIÉN LLAMADO FLUJOGRAMA DE PROCESOS O DIAGRAMA DE PROCESOS, REPRESENTA LA SECUENCIA O LOS PASOS.
Ingeniería del Software Diseñó de Software Universidad de los Andes Demián Gutierrez Abril 2009.
TUTORIA 1 Lógica para la Computación TUTORIA 1 Facultad de Ciencias Naturales y Matemáticas.
Ingreso , proceso y salida de datos
Clases y Objetos.
Traductor de Lógica Multivariada a Lógica de Primer Orden
Ingeniero en Computación José Alfredo Cobián Campos
Programación Orientada a Objetos
INFORMÁTICA II (METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS)
El caso de la división o cociente:
U.T. 11: Introducción A Las Bases De Datos
MANEJO DE ARRELOGS EN C Clase 8: Arreglos.
TIPOS DE DATOS ABSTRACTOS
ALGORITMOS Por Carolina R.
UNIVERSIDAD ICEP INTELIGENCIA ARTIFICIAL INGENIERÍA EN SISTEMAS COMPUTACIONALES Martes, 24 de Octubre de 2017 REPRESENTACIÓN DEL CONOCIMIENTO Y RAZONAMIENTO.
INTRODUCCIÒN AL SISTEMA GESTOR DE BASE DE DATOS
CREAR DIAGRAMA DE FLUJO
LA RELACION ENTRE EL LENGUAJE Y EL PENSAMIENTO
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno. INTRODUCCIÓN A UML  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
Tema 3. Lenguaje unificado de modelado UML
Tema 3 Fundamentos y diseño de algoritmos
Algoritmo Conjunto ordenado y finito de pasos que permite hallar la solución de un problema. Una secuencia de pasos que conducen a la realización de una.
ALGORITMOS. IFE 115: INFORMÁTICA BÁSICA Lic. Marcio Rodas
MT-21 PPTCANMTALA07001V1 Clase Números.
LÓGICA DE PROGRAMACIÓN
ALGORITMOS es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos.
Índice temático 2.1 Análisis de problemas. 2.2 Representación de algoritmos: gráfica y pseudocódigo. 2.3 Diseño de algoritmos aplicados a problemas 2.4.
Funciones Prof. M. Alonso
Algoritmo Capitulo Cinco.
Programación Orientada a Objetos
CONCEPTOS PRELIMINARES (Cont)
IFE 115: INFORMÁTICA BÁSICA
Modelo de interacción de usuario.  El Desarrollo basado en modelos de la interfaz de usuario, en inglés Model-based User Interface Development (MB-UID),
Clases y objetos.
HERRAMIENTAS DE PROGRAMACIÓN
UNIVERSIDAD SAN FRANCISCO DE ASÍS INGENIERÍA DE SISTEMAS DOCENTE: ING. FRANCISCO SOLORZANO UNIVERSITARIO: ALAN TORREZ LOAYZA AÑO 2018.
ÁLGEBRA. DEFINICIÓN DE ÁLGEBRA El Álgebra es una rama de las matemáticas que emplea números, letras y signos para hacer referencia a las distintas operaciones.
APLICACIONES DE LA LINGÜÍSTICA COMPUTACIONAL (III)
Conceptos básicos del paradigma orientado a objetos
FUDAMENTOS BÀSICOS computación
Unidad 1 Definiciones Básicas
INFORMÁTICA II (PSEUDOCODIGO Y METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS) Ing. José David Ortiz Salas.
Ejemplo Herencia: Vehiculo # dueno: string # puertas: int
Diagrama de Clases Un diagrama de clases esta compuesto por los siguientes elementos: Clase: atributos, métodos y visibilidad. Relaciones: Herencia, Composición,
FUNDAMENTOS DE PROGRAMACIÓN. INTRODUCCIÓN  Conceptos: Informática, Ordenador, Programa, Dato, Bit, Byte, Hardware, Software, Lenguaje de Programación,
Teoría Nº 3 Conceptos Básicos de Algoritmia Estructuras de Control
MC Beatriz Beltrán Martínez Verano 2018
Norma IEC 1131 Norma IEC 1131 en STEP 7 NORMA IEC 1131 EN STEP 7
INSTITUTO TECNOLOGICO DE VERACRUZ
CONTROLES Y ESTRUCTURAS BÁSICAS DE PROGRAMACIÓN  1. Algoritmos: conjunto de instrucciones programadas para resolver una tarea específica.  2. Datos:
PRESENTACION DE INGENIERIA ORIENTADA A OBJETOS. INTRODUCCION. ¿ Qué es UML ?. UML, por sus siglas en Ingles, Unified Modeling Languaje.(Lenguaje Unificado.
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno. INTRODUCCIÓN A UML  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
INTRODUCCIÓN A UML.  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
PRUEBAS DE CAJA NEGRA. -Internationa Software Testing Qualification Board (ISTQB) Internationa Software Testing Qualification Board (ISTQB) Técnica de.
Estudio de Viabilidad del Sistema (EVS). Estudio de Viabilidad del Sistema Cuestiones ¿Qué es la viabilidad de un sistema? ¿Cuáles son los objetivos del.
EVOLUCIÓN DE LOS PARADIGMAS DE PROGRAMACIÓN Integrantes: Christian Abad, Kevin Colcha.
UNIDAD II Generalidades sobre Algoritmos
Diseñas y elaboras algoritmos para la solución de problemas
Conceptos básicos del paradigma orientado a objetos MC Beatriz Beltrán Martínez Otoño 2019.
Unida III: Análisis y Diseño de Sistemas Orientado a Objetos
Luis Fernando Muñoz Pantoja Ingeniero de Sistemas Copyright 2019 Luis Fernando Muñoz Pantoja Ingeniero de Sistemas Derechos reservados UML.
Transcripción de la presentación:

Facultad de Ciencias de la Computación MC Beatriz Beltrán Martínez Programación II Facultad de Ciencias de la Computación MC Beatriz Beltrán Martínez

Introducción a la abstracción de datos MC Beatriz Beltrán Martínez Verano 2018

Introducción a la abstracción de datos ¿Qué es abstracción? La abstracción consiste en aislar un elemento de su contexto o del resto de los elementos que lo acompañan. En programación, el término se refiere al énfasis en el "¿qué hace?" más que en el "¿cómo lo hace?" FCC - BUAP Verano 2018 BBM

Abstracción La abstracción es una estrategia de resolución de problemas en la cual el programador se concentra en resolver una parte del problema ignorando completamente los detalles sobre cómo se resuelven el resto de las partes. En este proceso de abstracción se considera que el resto de las partes ya han sido resueltas y por lo tanto pueden servir de apoyo para resolver la parte que recibe la atención. FCC - BUAP Verano 2018 BBM

Abstracción La abstracción es la estrategia de programación más importante en computación. Sin abstracción las personas serían incapaces de abordar los problemas complejos. La pericia de un programador no está en ser veloz para escribir líneas de programa, si no que en saber descubrir, en el proceso de diseño, cuáles son las partes del problema, y luego resolver cada una de ellas abstrayéndose de las otras. FCC - BUAP Verano 2018 BBM

Abstracción Un ejemplo de abstracción es el hecho de que uno pueda conducir un automóvil sin ser un mecánico (lo cual probablemente no era cierto con los primeros vehículos). Al conducir, uno se abstrae de cómo funciona la combustión en el motor. Sólo se requiere saber cómo se maneja el volante y los pedales, y cuales son las reglas del tránsito. FCC - BUAP Verano 2018 BBM

Abstracción Dos de los tipos mas importantes de abstracción son los siguientes: División en partes: Abstracción “Tiene un” Dividir un sistema complejo en sus partes, y dividir las partes en sus componentes puede considerar algunas de éstas de forma aislada. Con la característica de la palabra «tiene-un». División en especialización: Abstracción “Es un” La abstracción “Es-un” toma un sistema complejo, y lo ve como una instancia de una abstracción más general. Se caracteriza por las sentencias que tienen las palabras «Es-un». FCC - BUAP Verano 2018 BBM

Abstracción Un proceso de generalización mediante la reducción de información de un concepto o un fenómeno observable, típicamente para retener solo la información que es relevante a un propósito particular. Tratar de entender el problema para separar los detalles necesarios de los que no los son. Tratamos de obtener nuestra propia vista abstracta, o modelo, del problema. Este proceso de modelado es llamado abstracción. FCC - BUAP Verano 2018 BBM

Tipo de datos Conjunto de valores que sirve de dominio de ciertas operaciones. Dominio(int)= Z Dominio(float)=R FCC - BUAP Verano 2018 BBM

Tipos de datos abstractos Este concepto aparece a mediados de la década de los 70's Tipo abstracto de dato (TDA) conjunto de valores que lo caracteriza. operaciones que sobre él se pueden aplicar. propiedades que determinan inequívocamente su comportamiento. FCC - BUAP Verano 2018 BBM

Tipos de datos abstractos P/E Tipo int del Lenguaje C Valores (rango) : -32..., 32.. Operaciones: suma, resta, producto, cociente, módulo. Propiedades: a+b=b+a, a*0=0, etc. FCC - BUAP Verano 2018 BBM

Tipo abstracto de datos ¿Por qué abstracto? Proviene de “abstracción”, y responde al hecho de que los valores de un tipo pueden ser manipulados mediante sus operaciones si se saben las propiedades que éstas cumplen, sin que sea necesario ningún conocimiento acerca de su implementación en la máquina. FCC - BUAP Verano 2018 BBM

Tipos de datos abstractos Los Tipos de Datos Abstractos son una solución parcial a los modelos. El TDA define la interface a la abstracción de datos sin especificar detalles de la implementación. FCC - BUAP Verano 2018 BBM

Modelo Un modelo es una abstracción u objeto conceptual usado en la creación de una fórmula predecible o una solución. Un modelo define una vista abstracta del problema, se enfoca solamente en aspectos relacionados y trata de definir propiedades: Los datos que son afectados; Las operaciones que son identificadas; El tipo de dato abstracto (TDA) es un tipo de Modelo. FCC - BUAP Verano 2018 BBM

Propiedades de los TDA Con abstracción, creamos una entidad bien-definida, la cual puede ser adecuadamente manejada. Estas entidades definen la estructura de datos de un conjunto de ítems o elementos. Por ejemplo, cada empleado administrado tiene un nombre, fecha de nacimiento, número de seguridad social … La estructura de datos solamente puede ser accedida con operaciones bien definidas. Este conjunto de operaciones se llama interface y es exportada por la entidad. Una entidad con las propiedades justamente descritas se llama tipo de dato abstracto (TDA). FCC - BUAP Verano 2018 BBM

Definición de un TDA TDA se caracteriza por las siguientes propiedades: Exporta un tipo. Exporta un conjunto de operaciones. Este conjunto es llamado interface. Las Operaciones de la interface son el único mecanismo de acceso a la estructura de datos del tipo. Axiomas y precondiciones definen el dominio de la aplicación del tipo. FCC - BUAP Verano 2018 BBM

Objetivo de un TDA El fin que persigue el concepto de TDA es separar el uso del tipo de dato, de su implementación. Para conseguir este objetivo, la definición de un TDA se divide en dos partes: Especificación Implantación FCC - BUAP Verano 2018 TDA BBM Especificación Implementación Sintáctica Semántica Estructuras de datos Algoritmos

Especificación Sintáctica Qué hace? Especificación de las entidades y sus propiedades (interface). Definir el nombre de las entidades abstractas. Definir el nombre de las operaciones indicando el dominio (argumentos) y el co-dominio o rango (los valores de retorno). FCC - BUAP Verano 2018 BBM

Especificación Semántica Cómo lo hace? Descripción de la representación del objeto (estructuras de los datos) y desarrollo de las operaciones. Definir el significado de cada operación usando los símbolos definidos en la especificación sintáctica. La especificación puede ser de dos tipos: Informal, a través del lenguaje natural. Formal, rigurosa y fundamentada matemáticamente. FCC - BUAP Verano 2018 BBM

Especificación Semántica Además: {P} Pre-condición: condiciones que deben cumplirse antes de realizar la operación. {Q} Post-condición: condiciones que se cumplen una vez realizada la operación. La notación usual es {P} S {Q}, donde S es la función o procedimiento. FCC - BUAP Verano 2018 BBM

Especificación de un TDA La especificación de un TDA consiste en establecer las propiedades que lo definen. Para describir un TDA es necesario describir: Los valores que pueden tomar los datos de ese tipo. Todas las operaciones realizables sobre de ellos. Una especificación debe poseer 4 propiedades: Ser precisa: Solo dice lo imprescindible. Ser general: Es adaptable a diferentes contextos. Ser legible: Transmite a los usuarios del tipo y al implementador el comportamiento del tipo. No ambigua: Evita dobles interpretaciones. FCC - BUAP Verano 2018 BBM

Ejemplo: TDA Bolsa Definición: Es una colección no ordenada de elementos con repetición. Tipo: Bolsa. Sintaxis: CrearBolsa ()  Bolsa BolsaVacia  Bolsa BolsaLlena  Bolsa Poner (Bolsa, Objeto)  Bolsa EsVacia (Bolsa)  Boolean Retirar (Bolsa, Objeto)  Objeto Semántica: b es Bolsa, e, f son elementos CrearBolsa () = BolsaVacia EsVacia (CrearBolsa()) = Verdadero EsVacia (Poner(CrearBolsa(), e)) = Falso Retirar (BolsaVacia, e) = Error Retirar (Poner(CrearBolsa(), f), e) = f si f=e Poner (BolsaLlena, e) = Error FCC - BUAP Verano 2018 BBM

Ejemplo: TDA Bolsa Definición: Es una colección no ordenada de elementos con repetición. Tipo: Bolsa. Operaciones: Función Construir_Bolsa ()  bolsa {postcondición: Devuelve una bolsa vacía} Función Poner (B: bolsa; e: elemento)  bolsa {precondición: La bolsa no esta llena} {postcondición: Añade el elemento e a la bolsa} Función EsVacia (B: bolsa)  boolean {postcondición: Devuelve verdadero si la bolsa no tiene elementos, falso en otro caso} Función Retirar (B: bolsa; e: elemento)  elemento {precondición: La bolsa no esta vacía} {postcondición: Elimina el elemento e de la bolsa B} FCC - BUAP Verano 2018 BBM

Ejemplo: TDA Fracción Definición: Una fracción es un par ordenado de enteros siempre y cuando la segunda componente sea distinta de cero. Tipo: Fracción. Tipo abstracto Racional: (e(1), e(2)). Operaciones: Función ConstruirFraccion (a,b: Entero) Fracción {precondición: b ≠ 0} {postcondición: e(1) = a AND e(2) = b} Función Numerador (r: Fracción)  entero {postcondición: Numerador = e(1)} Función Denominador (r: Fracción)  entero {postcondición: Denomidador = e(2)} Función Multiplicar (r1, r2: Fracción)  Fracción {Inicio multiplicar = contruirFraccion (Numerador(r1) * Numerador(r2), Denominador(r1) * Denominador(r2)) Fin} FCC - BUAP Verano 2018 BBM

Ejemplo TDA bool Definición: Tipo booleano Tipo: bool Sintaxis: cierto, falso  bool ~ (bool)  bool V(bool, bool)  bool Λ (bool, bool)  bool Semántica: ~ cierto = falso b V cierto = cierto b V falso = b b Λ cierto = b b Λ falso = falso FCC - BUAP Verano 2018 BBM