En informática, una capa de abstracción o nivel de abstracción es una forma de ocultar los detalles de funcionamiento de un subsistema, permitiendo la separación de preocupaciones para facilitar la interoperabilidad y la independencia de la plataforma. Ejemplos de modelos de software que utilizan capas de abstracción incluyen el modelo OSI para los protocolos de red, OpenGL y otras bibliotecas gráficas.
En informática, una capa de abstracción es una generalización de un modelo conceptual o algoritmo, lejos de cualquier implementación específica. Estas generalizaciones surgen de amplias similitudes que son mejor encapsuladas por modelos que expresan similitudes presentes en varias implementaciones específicas. La simplificación proporcionada por una buena capa de abstracción permite una fácil reutilización al destilar un concepto o patrón de diseño útil para que las situaciones, en las que se puede aplicar con precisión, puedan ser rápidamente reconocidas.
Se considera que una capa está encima de otra si depende de ella. Cada capa puede existir sin las capas por encima de ella, y requiere las capas por debajo de ella para funcionar. Con frecuencia, las capas de abstracción pueden componerse en una jerarquía de niveles de abstracción. El modelo OSI comprende siete capas de abstracción. Cada capa del modelo encapsula y aborda una parte diferente de las necesidades de las comunicaciones digitales, reduciendo así la complejidad de las soluciones de ingeniería asociadas.
Un famoso aforismo de David Wheeler es «Todos los problemas de la informática pueden resolverse mediante otro nivel de indirección». A menudo se cita erróneamente, sustituyendo «abstracción» por «indirección». A veces también se atribuye erróneamente a Butler Lampson. El corolario de Kevlin Henney es: «…excepto por el problema de demasiadas capas de indirección».