Capa de abstracción

3 min
Editar

En informática, una capa de abstracción (en inglés, abstraction layer) es una parte del software que simplifica una interfaz compleja: oculta los detalles que no hacen falta y ofrece a quien la usa solo los elementos esenciales para su trabajo. Quien escribe un programa que guarda un fichero no necesita saber si el disco es magnético o de estado sólido, en qué sector cae cada byte ni cómo se comunica el procesador con el controlador del disco. El sistema operativo le ofrece una orden, «guardar este fichero», y se encarga de todo lo demás. Esa orden es una capa de abstracción.

La informática entera está construida con capas apiladas, cada una de las cuales usa solo los servicios de la de abajo y ofrece los suyos a la de arriba. Los transistores forman puertas lógicas; las puertas, un procesador; el procesador ejecuta código máquina, que genera un compilador a partir de un lenguaje de programación; sobre el lenguaje se escriben bibliotecas, y sobre las bibliotecas, las aplicaciones. Las redes siguen el mismo esquema: el modelo OSI describe siete capas, desde la señal eléctrica en el cable hasta la aplicación, y el protocolo TCP/IP funciona igual aunque con menos capas. Windows NT introdujo en 1993 una capa de abstracción de hardware (hardware abstraction layer, HAL) para que el resto del sistema no dependiera del modelo concreto de placa base.

La ventaja es doble. Por un lado, cada capa se puede entender, programar y probar por separado, lo que hace manejables sistemas que de otro modo serían inabarcables. Por otro, se puede cambiar lo que hay debajo sin tocar lo que hay encima: un programa escrito para una interfaz de base de datos funciona con varios gestores distintos, como hace el mapeo objeto-relacional. Al informático británico David Wheeler se le atribuye la frase de que cualquier problema de la informática se puede resolver añadiendo otro nivel de indirección, a lo que se suele añadir: salvo el problema de tener demasiados niveles.

El precio es que ninguna abstracción es perfecta. El programador Joel Spolsky formuló en 2002 la ley de las abstracciones con fugas (law of leaky abstractions): toda abstracción no trivial deja escapar, en algún caso, los detalles que pretendía ocultar. Un fichero en red se comporta como uno local hasta que se corta la conexión; una base de datos responde igual a dos consultas equivalentes hasta que una tarda un segundo y la otra una hora. Por eso usar bien una capa exige a veces saber qué hay debajo de ella.

Sarasola, Eneko (2025). "Capa de abstracción". Ikusmira. Recuperado de https://ikusmira.org/p/capa-de-abstraccion/

Una errata, un dato desfasado, un párrafo que falta: edítalo y la redacción revisa tu propuesta.

Sugerir una mejora →
§ Dónde encajaMapa del estante ↓
Sigue con
Casos concretos
Informática Capa de abstracción
§ Tres puertas

¿Por dónde sigues?