Tipos de Datos Abstractos

Anuncio
Tipos de Datos Abstractos
Definición
Informalmente se puede decir que un tipo de dato abstracto (TAD) es un tipo de dato, que se agrega al lenguaje
de programación, para representar un tipo de elemento involucrado en el problema que se quier resolver. De esta
forma se hace que el lenguaje se acerque al mundo del problema, manejando los elementos que allí se encuentran.
Por ejemplo si se va a desarrollar software para administrar las calificaciones de los estudiantes de la universidad,
los TAD Curso, Estudiante, Calificación, Lista, etc. van a permitir expresar la solución del problema planteado en
términos más sencillos, fáciles de mantener y probar.
Desde un punto de vista más formal, se define un TAD como una estructura algebraica compuesta por un
conjunto de objetos abstractos, que modelan elementos del mundo, y un conjunto de operaciones para su
manipulación, las cuales simulan el comportamiento que el elemento modelado tiene en el mundo del problema.
Representación de un objeto abstracto
En el momento de comenzar el diseño de un TAD es necesario tener una representación abstracta del objeto sobre
el cual se requiere trabajar, sin necesidad de establecer un compromiso con ninguna estructura de datos concreta,
ni con ningún tipo de lenguaje de programación seleccionado. Esto va a permitir expresar las condiciones,
relaciones, restricciones y operaciones de los elementos modelados, sin necesidad de restringirse a una
representación interna concreta.
Para esto, lo primero que se hace es dar nombre y estructura a los elementos a través de los cuales se puede
modelar el estado interno de un objeto abstracto, utilizando algún formalismo matemático o gráfico.
El invariante de un TAD
El invariante de un TAD establece una noción de validez para cada uno de sus objetos abstractos, en términos de
condiciones sobre su estructura interna y sus componentes. Esto es, indica en qué casos un objeto abstracto
modela un elemento posible del mundo del problema. Por ejemplo para un TAD matriz el invariante debe exigir
que tanto el número de renglones como el de columnas sean mayores a cero.
Especificación de un TAD
Un TAD se define con un nombre, un formalismo para expresar un objeto abstracto, un invariante y un conjunto
de operaciones sobre este objeto. Por lo regular se utiliza una tabla para especificar cada uno de los elementos
que compone un TAD.
Clasificación de las operaciones
Sin importar el tipo de operación es importante colocar una breve descripción de cada operación, de manera que
se pueda tener una rápida idea de los servicios que un TAD ofrece. Al seleccionar el nombre de las operaciones
debe tenerse en cuenta que no pueden existir dos operaciones con el mismo nombre en un programa, incluso si
pertenecen a TAD diferentes, esto se puede lograr mediante el uso de sufijos de mínimo 3 caracteres.
Las operaciones de un TAD se pueden clasificar en 3 grupos, según su función sobre el objeto abstracto:
- Constructoras: se encarga de crear los elementos del TAD
- Modificadora: puede alterar el estado de un elemento del TAD, sin afectar el invariante del TAD.
- Analizadora: no altera el estado de los elementos del TAD, solo lo consulta o utiliza.
Además de las anteriores operaciones existen otros casos particulares:
- Comparación (analizadora)
- Copia (modificadora)
- Destrucción (modificadora)
- Salida a pantalla (analizadora)
- Persistencia (guardar/leer)
Metodología de Diseño de TAD
Para el diseño de un TAD se pueden seguir siguientes pasos:
- Identificar los objetos del mundo que se quieren modelar
-
Definir un formalismo para reflejar el estado del TAD
Establecer los invariantes
Diseñar las operaciones constructoras
Diseñar las operaciones Modificadoras
Diseñar las operaciones Analizadoras
Diseñar otras operaciones
Diseñar operaciones de persistencia
Diseñar las estructuras de datos para representar el estado del TAD
Diseño de estructuras de datos
Para hacer operacional un TAD, es decir, para que funcione realmente sobre un lenguaje de programación, es
necesario implementarlo y dejarlo disponible para que otras partes del software lo utilicen. Esto es equivalente a
aumentar el lenguaje para que maneje un nuevo tipo de dato.
Para implementar un TAD se siguen los siguientes pasos:
- Diseñar las estructuras de datos que van a representar cada objeto abstracto.
- Desarrollar una función, por cada operación del TAD, que simule el comportamiento del objeto
abstracto sobre las estructuras de datos seleccionadas.
Bibliografía:
•
Villalobos Jorge, Diseño y manejo de estructuras de datos en C, Editorial McGraw-Hill Interamericana,
1996.
Descargar