Está en la página 1de 5

Abstraccin

(Octubre2013)

Contenido
INTRODUCCIN ....................................................................................................................................... - 1 ABSTRACCIN .......................................................................................................................................... - 1 ABSTRACCIN DE PROCEDIMIENTOS ............................................................................................................... - 2 Mtodo de abstraccin por parametrizacin..................................................................................... - 2 Mtodo de abstraccin por especificacin ........................................................................................ - 3 ABSTRACCIN DE DATOS ............................................................................................................................. - 4 -

Abstraccin, Estructuras y Tipos de Datos

Introduccin
Con esta publicacin pretendo introducir a los estudiantes de carreras informticas en los conceptos tericos y prcticos de las Estructuras de Datos con especial inters en la Programacin Orientada a Objetos. Uno de los aspectos fundamentales para el estudio de cualquier sistema, en particular los sistemas de informacin, es la comprensin de su estructura; para caracterizar una estructura es indispensable un proceso de abstraccin. Abstraccin (en filosofa) es una operacin mental destinada a aislar conceptualmente una propiedad concreta de un objeto, y reflexionar sobre esta ignorando (mentalmente) las otras propiedades del objeto en cuestin. Estructura es la disposicin y orden de las partes dentro de un todo, tambin puede entenderse como un sistema de conceptos coherentes y enlazados, cuyo objetivo es precisar la esencia del objeto de estudio.

Abstraccin
La abstraccin es uno de los aspectos fundamentales para el estudio de las estructuras, y en general para el desarrollo de los sistemas de informacin, permite tener en cuenta los aspectos relevantes para la solucin de un problema y deja en segundo plano todo aquello que no es trascendente. Tambin se puede referir a la abstraccin como la habilidad de concentrarse en lo general y fundamental pasando por alto el detalle, lo que simplifica el anlisis y permite concentrarse en lo relevante. En informtica, la abstraccin desempea un papel importante dado que facilita el anlisis y el diseo, permite determinar la estructura de los sistemas que se van a implementar y tener una mejor visin de su funcionamiento. Los desarrolladores (an los principiantes) utilizan de manera casi natural los procesos de abstraccin. Por ejemplo cuando se desea realizar una operacin matemtica entre nmero reales, simplemente se escribe una expresin como la siguiente:
real Cantidad, Importe, Total ... Leer Cantidad Leer Importe Total = Cantidad * Importe ...

En este caso, el desarrollador no se preocupa por las cuestiones de aritmtica de punto flotante o la manera en que estos datos se representan en la memoria; su inters est centrado en que se efecte la operacin y obtener el resultado.

-1-

Abstraccin, Estructuras y Tipos de Datos An cuando los desarrolladores apliquen de manera natural los conceptos y procesos de abstraccin, es importante destacar que hay diferentes aspectos entre los cuales debemos mencionar la Abstraccin de Procedimientos y la Abstraccin de Datos.

Abstraccin de procedimientos
Mediante esta abstraccin se determinan los objetivos y operaciones necesarias para dar solucin a un problema, y mediante la modularidad se efecta la separacin en unidades funcionales. La abstraccin de procedimientos se puede considerar como una herramienta que permite extender las posibilidades de un lenguaje de programacin, al agregar nuevas operaciones mediante procedimientos, funciones, subrutinas, mtodos, etc. se tiene la posibilidad de dividir un programa en unidades funcionales. Esta clase de extensin es til especialmente cuando los programas por desarrollar son grandes (en nmero de lneas) y es conveniente descomponerlos. Este tipo de abstraccin actualmente se aplica de forma intensiva cuando se utiliza una funcin o un procedimiento para realizar una tarea. La abstraccin de procedimientos combina los mtodos de parametrizacin y especificacin de manera que permite abstraer su accin como si se tratara de una simple operacin o evento, y adems se tiene el uso de parmetros mediante el cual el procedimiento provee una transformacin de unos argumentos de entrada en unos argumentos de salida, sin olvidar otras posibilidades, como que se modifiquen los parmetros de entrada o que no existan estos argumentos. Mtodo de abstraccin por parametrizacin Esta abstraccin se define en trminos de parmetros formales; de esta manera la identidad del dato es irrelevante; pero la presencia, el tipo y el nmero son indispensables. Este mtodo se utiliza frecuentemente en el desarrollo de sistemas, permite mediante parmetros representar potencialmente diferentes valores, que pueden llegar a ser infinitos. Ejemplo: funcin cuyo objetivo es entregar el mayor valor de dos enteros dados.
entero Maximo(entero Valor1, entero Valor2) Inicio Si Valor1 > Valor2 Entonces regresar Valor1 Sino regresar Valor2 FinSi Fin

Esta funcin se puede utilizar de diferentes maneras:


Leer X Leer Y Escribir Maximo(X, Y) ...

-2-

Abstraccin, Estructuras y Tipos de Datos O un uso ms complejo, en este caso hallar el mayor de tres nmeros
Leer A Leer B Leer C Escribir Mximo(Maximo(A, B), C) ...

Obviamente esto se puede extender a la cantidad de nmeros que se desee. Mtodo de abstraccin por especificacin El objetivo de este tipo de abstraccin es centrar la atencin sobre segundo plano el "cmo lo hace". "qu hace", y pasar a un

El hecho que la implementacin (cmo lo hace) no sea lo relevante sino sus efectos (que hace), requiere que se tenga una descripcin o especificacin tcnica del proceso; adems es exigible que las modificaciones a nivel de la implementacin sean transparentes a su uso brindando de esa manera una gran flexibilidad. Para obtener los beneficios de la abstraccin es necesario que la especificacin sea precisa; estas especificaciones pueden ser formales o informales, algunos lenguajes facilitan esta tarea pues han sido diseados para soportar la abstraccin. Una manera de hacer esta especificacin es por medio de aserciones. La primera de ellas es la precondicin, que es el conjunto de condiciones necesarias y suficientes que aseguran la correcta ejecucin del proceso; la otra aseveracin es la postcondicin, donde se debe especificar los resultados que se obtienen despus de la ejecucin del proceso. Otra informacin importante de la especificacin es el encabezado del procedimiento, adems de dar el nombre al mismo, debe brindar informacin acerca de su funcin, tipos de parmetros de entrada y salida, su nmero y orden. Ejemplo: subrutina que ordena un vector de nmeros; la ordenacin se puede realizar de diferentes maneras lo que no es importante en este caso porque se est especificando lo que hace y no como lo hace. Caso de un procedimiento:
Descripcin: Ordena el contenido de un vector de nmeros Precondicin: Se debe facilitar el vector de nmeros y la cantidad de elementos que este vector contiene, debiendo ser esta un entero mayor o igual a cero. Postcondicin: El vector de nmeros es modificado de manera que se presenten ordenados de manera ascendente. Encabezado: Ordenar(ref TipoVector Datos, entero Cantidad)

Caso de una funcin:


Descripcin: Ordena el contenido de un vector de nmeros Precondicin: Se debe facilitar el vector de nmeros y la cantidad de elementos que este vector contiene, debiendo ser esta un entero mayor o igual a cero.

-3-

Abstraccin, Estructuras y Tipos de Datos


Postcondicin: Se entrega un nuevo vector cuyo contenido son los nmeros del vector original ordenados de manera ascendente. Encabezado: TipoVector Ordenar(TipoVector Datos, entero Cantidad)

Abstraccin de datos
As como la abstraccin de procedimientos permite ampliar la capacidad de los lenguajes de programacin, la abstraccin de datos permite extender la base de los tipos predefinidos en estos lenguajes. Esta capacidad permite incluir nuevos tipos de datos con las operaciones correspondientes y generar de esa manera estructuras de datos de mayor complejidad. La abstraccin de datos se puede sintetizar en la determinacin de un conjunto de objetos y el conjunto de operaciones que se pueden efectuar sobre esos datos. Cuando se implementa el tipo de dato, simultneamente se deben implementar dichas operaciones. Los lenguajes de programacin modernos facilitan un tipo de dato que permite manipular fechas, lo que nos permite pensar en el siguiente cdigo:
TipoFecha Fecha1, Fecha2 ... Leer Fecha1 Leer Fecha2 Escribir "Hay ", Fecha2 - Fecha1, " das de diferencia entre ambas fechas" ...

Es importante aclarar que la expresin Fecha2 - Fecha1 se realiza sobre dos variables cuyos contenidos son fechas (da, mes, ao) y el resultado es un entero que representa la cantidad de das que hay entre ambas fechas, obviamente este valor ser cero cuando las fechas sean iguales, positivo si Fecha2 es mayor que Fecha1 o negativo si Fecha1 es menor que Fecha1; pero lo ms importante es que la operacin "resta" indicada con el operador "-" (menos) debe tener en cuenta las cantidades de das que cada mes tiene en cada una de las fechas as como las consideraciones necesarias para los aos bisiestos.

-4-