Está en la página 1de 55

FACULTAD DE INGENIERA

ESCUELA DE INGENIERA EN SISTEMAS Y COMPUTACIN


ESTRUCTURA DE DATOS Pamela Vsquez Costales

UNIDAD I CAPTULO I

ABSTRACCIN DE DATOS

ABSTRACCIN DE DATOS
Objetivos
O Entender en qu consiste el proceso

de abstraccin. O Describir la tcnica de la abstraccin de datos para el diseo de estructuras de datos. O Comprender qu es una estructura de datos.

Objetivos
O Entender el diseo de una estructura

de datos a travs de una especificacin lgica. O Ubicar los niveles de abstraccin al programar. O Identificar los beneficios de utilizar la abstraccin de datos como estrategia de trabajo en el desarrollo de software.

Qu es una abstraccin?

Una abstraccin es un proceso mental, mediante el cual se extraen los rasgos esenciales de algo para representarlos por medio de un lenguaje grfico o escrito. Puesto que es un proceso mental, la abstraccin es una accin subjetiva y creativa, esto es, depende del contexto psicolgico de la persona que la realiza.

Por ejemplo, se dice que algunas de las pinturas de Picasso son abstractas, no porque sean difciles de entender, sino porque a travs de ciertos trazos simples, y de acuerdo con su criterio mental, el pintor plasm los rasgos esenciales de ese algo real que trataba de representar por medio de un lenguaje grfico.

En la vida cotidiana, continuamente se hacen abstracciones, por ejemplo cuando describimos a una persona: "Reconocern al profesor Garay por su enorme nariz, su barba y sus anteojos; adems, es muy alto, y tiene un carcter muy amigable".

Cuando hacemos un mapa para describir cmo se llega al rancho donde ser el da de campo, extraemos los rasgos importantes del camino:

"Al llegar al cruce donde est una piedra gigantesca, das vuelta a la derecha y vers un rbol lleno de flores rojas; ah encontrars la entrada al rancho".

Por qu es importante la abstraccin? Aunque la gente realiza cotidianamente el proceso de abstraccin, debe convertirse en una habilidad para quien estudie una carrera relacionada con la computacin.

La capacidad de modelar una realidad por medio de herramientas computacionales requiere necesariamente de hacer continuas abstracciones, por lo que es vital conocer metodologas que desarrollen esta habilidad.

Qu es la abstraccin de datos?

La abstraccin de datos es una tcnica o metodologa que permite disear estructuras de datos.

Consiste, bsicamente, en representar bajo ciertos lineamientos de formato las caractersticas esenciales de una estructura de datos. Este proceso de diseo se olvida de los detalles especficos de implementacin de los datos, razn por la cual se trata de una abstraccin.

Qu es una estructura de datos?

Cualquier coleccin o grupo de datos organizados de tal forma que tengan asociados un conjunto de operaciones para poder manipularlos, se dice que conforma una estructura de datos.

Por ejemplo, cualquier lenguaje de alto nivel provee tpicamente de tipos de datos estructurados o estructuras de datos predefinidas, como los arreglos o los registros. Un arreglo es un conjunto de datos, todos del mismo tipo, con una organizacin lineal y con mtodos claros de acceso a travs de sus subndices.

Las operaciones tradicionales sobre los arreglos incluyen la comparacin, la asignacin, la escritura, etc. En un nivel ms bajo, podra verse a los nmeros enteros como estructuras de datos: se componen de un grupo de dgitos y tienen asociadas operaciones como sumar, restar y multiplicar, entre otras.

Qu es un Tipo de Dato Abstracto (TDA)? La tcnica de la abstraccin de datos establece que al disear una nueva estructura de datos, sta pasa a ser un Tipo de Dato Abstracto (TDA), que podr implementarse en cualquier lenguaje y aplicarse en cualquier concepto.

Por lo tanto, al usar la metodologa de la abstraccin de datos se disearn TDA, siguiendo los lineamientos para hacer una especificacin lgica o abstracta del mismo TDA.

En qu consiste la especificacin lgica de un TDA? La especificacin lgica de un TDA es un documento en el que se plasma la abstraccin realizada al disear una estructura de datos.

Dicho documento pasar a ser el mapa o plano mediante el cual se construir (implementar) la estructura de datos y en el que se definirn claramente las reglas en las que podr usarse (aplicarse) el TDA. El documento de la especificacin lgica de un TDA consiste de los siguientes cuatro puntos:

1. Elementos que conformarn la estructura de datos. En este punto se describe el tipo de los datos individuales que guardar la estructura. Por ejemplo, nmeros enteros, caracteres, fechas, registros con los datos de un empleado, etc.

2. Tipo de organizacin en que se guardarn los elementos. Existen solamente cuatro tipos de organizacin para los datos en la estructura, la cual deber tener alguna de las siguientes organizaciones:
O Lineal: Si hay una relacin de uno a

uno entre los elementos.

a muchos entre los elementos. O Red: Si hay una relacin de muchos a muchos entre los elementos. O Sin relacin: Si no hay relaciones entre los elementos. Las relaciones entre los elementos se dan, por ejemplo, cuando existe algn motivo para que un elemento est antes o despus que otro.

O Jerrquica: Si hay una relacin de uno

Tipos de estructuras u organizaciones de Datos

3. Dominio de la estructura. Este punto es opcional, y en l se describir la capacidad de la estructura en cuanto al rango posible de datos por guardar.

4. Descripcin de las operaciones de la estructura. Cada operacin relacionada con la estructura debe describirse con los siguientes puntos:
O Nombre de la operacin. O Descripcin breve de su utilidad. O Datos de entrada a la operacin.

O Datos que genera como salida la

operacin. O Precondicion: Condicin que deber cumplirse antes de utilizar la operacin para que se realice sin problemas. O Postcondicin: Condicin en que queda el TDA despus de ejecutar la operacin.

Ejemplo:

Definir claramente la especificacin lgica del TDA facilita posteriormente la construccin y aplicacin de la estructura de datos.

Cules son los niveles de abstraccin de datos? Al aplicar la abstraccin de datos se pueden definir tres niveles de trabajo:
1. Nivel Lgico o Abstracto 2. Nivel Fsico o de Implementacin 3. Nivel de Aplicacin o de Uso

1. Nivel lgico o abstracto

Correspondera a la especificacin lgica del TDA que se describi anteriormente. En este nivel se define abstractamente la estructura de datos y las operaciones relacionadas con ella. La descripcin que se obtenga en este nivel debe ser independiente del lenguaje de programacin en el que se implemento o usar la estructura.

2. Nivel fsico o de implementacin En este nivel se decide el lenguaje de programacin en que se implementar la estructura, qu tipos de datos ya definidos servirn para representarla y, finalmente, bajo estas consideraciones, se implementa como un mdulo a cada una de las operaciones del TDA.

Este nivel toma el diseo que se ha realizado a nivel lgico y siguiendo al pie de la letra las especificaciones de cada operacin construye la estructura que posteriormente se usar en el nivel aplicacin.

3. En el nivel aplicacin o de uso el programador usar el TDA para resolver determinada aplicacin. El uso del TDA se limita a llamar las operaciones sobre la estructura que se requiera cuidando siempre de cumplir con las reglas de cada operacin especificadas en el nivel lgico.

Cmo distinguir los niveles de abstraccin? Una analoga podra hacerse al comparar este proceso con el que se realiza al construir una casa, vea la siguiente figura:

Esto significa que quien implementa el TDA no debe estar influenciado por la aplicacin que tendr la estructura y quien use la estructura no tiene porqu saber cmo se implementaron sus operaciones.

Entonces, se dice que la forma en que se almacenan los datos en la estructura es independiente de su aplicacin y que para el usuario programador permanece oculto cmo se implementaron las operaciones del TDA.

Esto, sin lugar a dudas, simplifica la labor del usuario del TDA, pues se olvida de detalles de programacin al basar su trabajo slo del diseo lgico del propio TDA. Adicionalmente, el implementador del TDA, podr hacer cambios o mejoras a su implementacin, respetando la especificacin lgica y sin afectar en lo ms mnimo las aplicaciones desarrolladas.

Que es la independencia de datos y el ocultamiento de informacin? Se observa que hay una independencia marcada entre el nivel fsico y el nivel de aplicacin del TDA, con el nivel lgico como intermediario, ver figura:

Relacin entre los niveles de abstraccin

Primero se trabaja en el nivel lgico al pedirle a un arquitecto que disee el plano; el arquitecto hace una abstraccin y plasma en el papel los rasgos principales de la casa por construir. Adems, especifica claramente medidas y condiciones de construccin y de uso. Una vez aprobado el diseo, se procede en el nivel fsico, que correspondera a la construccin.

Los albailes seguirn paso a paso las especificaciones dadas en el plano (diseo en nivel lgico) y no tienen porque preguntar para qu se utilizar cada uno de los espacios construidos Adems utilizarn el material ms apropiado para cada situacin. Una vez que la construccin est terminada llegar su dueo para habitarla dndole el uso correspondiente a cada espacio (nivel aplicacin).

El dueo al utilizar la casa no necesita saber cmo se hizo con qu materiales o quines la construyeron; sin embargo le ser til conocer algunas medidas o condicionen de construccin que se representan en el plano (nivel lgico).

De la misma forma, cuando se desea aplicar la abstraccin de datos en el desarrollo de software que requiere de una estructura de datos, se debe comenzar con el diseo a nivel lgico del TDA, continuar con su implementacin y finalmente con su uso en el desarrollo de la aplicacin correspondiente.

En este proceso podrn intervenir tres personas: el diseador del TDA, un programador a nivel fsico y un programador a nivel aplicacin. Cuando el mismo programador trabaje en los niveles fsico y de aplicacin, debe tener en cuenta la regla de no invadir los niveles, respetando el nivel lgico que es intermediario.

Qu ventajas ofrece utilizar la tcnica de abstraccin de datos? Seguir la regla de los tres niveles de abstraccin redunda en un mejor desarrollo de software. La tcnica obliga a disear modularmente y, como consecuencia, se tiene una implementacin ms clara, documentada y de fcil mantenimiento.

Adicionalmente, gracias a la independencia de datos y al ocultamiento de informacin, se pueden crear paquetes como unidades de software reutilizable, con lo que se obtienen estructuras de datos genricas.

Quien utiliza un TDA se limita a llamar las operaciones, cuidando solamente de cumplir con las especificaciones del diseo lgico, lo que facilita y hace ms rpido el desarrollo de aplicaciones, pues no es necesario manejar los detalles fsicos de la estructura.

Quien utiliza un TDA se limita a llamar las operaciones, cuidando solamente de cumplir con las especificaciones del diseo lgico, lo que facilita y hace ms rpido el desarrollo de aplicaciones, pues no es necesario manejar los detalles fsicos de la estructura.

Ejemplo:

Con base en este diseo lgico, se puede pasar a la implementacin del n TDA (nivel fsico) para posteriormente utilizarlo (nivel de aplicacin) y resolver el problema factorial eficientemente.

EJERCICIOS CAPTULO I 1. Defina los siguientes conceptos:


O Abstraccin O Abstraccin de datos O Especificacin lgica

O Nivel de abstraccin
O Independencia de niveles O Precondicin O Postcondicin O Mdulo O Abstraccin modular

2. Describa situaciones de la vida cotidiana en las que se realicen abstracciones.