Abstracción

Los seres humanos se han convertido en la especie más influyente de este planeta, debido a su capacidad para abstraer el pensamiento. Los sistemas complejos, sean naturales o artificiales, sólo pueden ser comprendidos y gestionados cuando se omiten detalles que son irrelevantes a nuestras necesidades inmediatas. El proceso de excluir detalles no deseados o no significativos, al problema que se trata de resolver, se denomina abstracción, y es algo que se hace en cualquier momento. 

Desarrollo 

Los lenguajes de programación son las herramientas mediante las cuales los diseñadores de 

programas pueden implementar los modelos abstractos. La abstracción ofrecida por los lenguajes 

de programación se puede dividir en dos categorías: abstracción de datos (perteneciente a 

los datos) y abstracción de control (perteneciente a las estructuras de control). 

Desde comienzos del decenio de los sesenta, en que se desarrollaron los primeros lenguajes 

de programación de alto nivel, ha sido posible utilizar las abstracciones más primitivas de ambas 

categorías (variables, tipos de datos, funciones, control de bucles (lazos), etc.). 

Abstracciones de control 

Las estructuras de control describen el orden en que se ejecutan las sentencias o grupos de 

sentencia (unidades de programa). Las unidades de programa se utilizan como bloques básicos 

de la clásica descomposición “descendente”. 

Las abstracciones y estructuras de control se clasifican en estructuras de control a nivel de 

sentencia y a nivel de unidades (abstracción procedimental).  

Abstracción procedimental 

La abstracción procedimental se basa en la 

utilización de procedimientos o funciones sin preocuparse de cómo se implementan 

Abstracción de datos  

La abstracción de datos es la técnica de programación que permite inventar o definir nuevos 

tipos de datos (tipos de datos definidos por el usuario) adecuados a la aplicación que se desea 

realizar. La abstracción de datos es una técnica muy potente que permite diseñar programas 

más cortos, legibles y flexibles. La esencia de la abstracción es similar a la utilización de un 

tipo de dato, cuyo uso se realiza sin tener en cuenta cómo está representado o implementado. 

Los tipos de datos son abstracciones y el proceso de construir nuevos tipos se llaman abstracciones 

de datos. Los nuevos tipos de datos definidos por el usuario se llaman tipos abstractos 

de datos (ADT, Abstract Data Types). Un TAD se compone de estructuras de datos y los procedimientos o funciones 

que manipulan esas estructuras de datos. 

La descripción ha de incluir una parte de sintaxis, en cuanto a los 

tipos de los argumentos y el tipo del resultado, y una parte de semántica que detalla para unos 

valores particulares de los argumentos la expresión del resultado que se obtiene. La especificación 

formal ha de ser lo bastante potente para que cumpla el objetivo de verificar la corrección 

de la implementación del TAD. 

Ejemplos 

Figura de un tipo abstracto de datos 

Método 1 

Método 3 

Método 2 

Método 4 

                                                                           Interfaz  

Publica 

 

Representación: 

                        Estructuras de datos (Variables instancia) 

Implementación de métodos: 

                                            Código de método 1 

                                            Código de método 2 

                                            Código de método 3 

                                                               Interfaz privada 

 

Ejemplo en código de un tipo abstracto 
class hora 
{

private:

int horas, minutos, segundos;

public:

hora(){ horas = 0; minutos = 0; segundos = 0; }

hora(int h, int m, int s){horas = h; minutos = m; segundos = s;}

void visualizar();

void sumar(hora h1, hora h2 ); 
};
 

 

Una hora se puede representar de la forma anterior si se usa adecuadamente la abstracción para formar el código. 

Conclusión 

La abstracción es una herramienta esencial en programación porque se basa más en que es lo que hace y no tanto en como lo hace, ya que de ello depende la reutilización de código en distintos métodos, de tal manera que facilita al programador el desarrollo del software sin necesidad de aplicar demasiado código extrayendo las funcionalidades similares a lo desarrollado. 

Referencias  

Libro Estructuras de datos en c++ (Luis Joyanes Aguilar, Lucas Sánchez García, Ignacio Zahonero Martínez) 

Libro Estructuras de datos Algoritmos, abstracción y objetos (Luis Joyanes Aguilar, Lucas Sánchez García 

Fuentes Relacionadas al tema 

http://decsai.ugr.es/~jfv/abs.pdf 

No comments

Comentarios en artículos

No comments

Nobody has submitted a comment yet.