În informatică, un strat de abstractizare sau un nivel de abstractizare este o modalitate de a ascunde detaliile de lucru ale unui subsistem, permițând separarea preocupărilor pentru a facilita interoperabilitatea și independența de platformă. Exemple de modele software care utilizează straturi de abstractizare includ modelul OSI pentru protocoale de rețea, OpenGL și alte biblioteci grafice.
În informatică, un strat de abstractizare este o generalizare a unui model conceptual sau algoritm, departe de orice implementare specifică. Aceste generalizări apar din similitudini largi care sunt cel mai bine încapsulate de modele care exprimă similitudini prezente în diverse implementări specifice. Simplificarea oferită de un strat de abstractizare bun permite o reutilizare ușoară prin distilarea unui concept util sau a unui model de proiectare, astfel încât situațiile, în care acesta poate fi aplicat cu acuratețe, pot fi recunoscute rapid.
Un strat este considerat a fi deasupra altuia dacă depinde de acesta. Fiecare strat poate exista fără straturile de deasupra sa și are nevoie de straturile de sub el pentru a funcționa. Frecvent, straturile de abstractizare pot fi compuse într-o ierarhie de niveluri de abstractizare. Modelul OSI cuprinde șapte niveluri de abstractizare. Fiecare strat al modelului încapsulează și abordează o parte diferită a nevoilor comunicațiilor digitale, reducând astfel complexitatea soluțiilor inginerești asociate.
Un aforism celebru al lui David Wheeler este: „Toate problemele din informatică pot fi rezolvate printr-un alt nivel de indirecție”. Acesta este adesea citat greșit în mod deliberat, „abstracție” fiind înlocuit cu „indirection”. De asemenea, este uneori atribuit în mod greșit lui Butler Lampson. Corolarul lui Kevlin Henney la această afirmație este: „…cu excepția problemei celor prea multe niveluri de indirecție.”
.