Capa d'abstracció del programari

De la Viquipèdia, l'enciclopèdia lliure
Capes d'abstracció del programari.

En informàtica, una capa d'abstracció o nivell d'abstracció és una manera d'amagar els detalls de treball d'un subsistema. Exemples de models de programari que utilitzen capes d'abstracció inclouen el model OSI per a protocols de xarxa, OpenGL i altres biblioteques gràfiques, que permeten separar les preocupacions per facilitar la interoperabilitat i la independència de la plataforma. Un altre exemple és el protocol de transferència de mitjans.[1]

En informàtica, una capa d'abstracció és una generalització d'un model conceptual o algorisme, lluny de qualsevol implementació específica. Aquestes generalitzacions sorgeixen de similituds àmplies que s'encapsulen millor amb models que expressen similituds presents en diverses implementacions específiques. La simplificació proporcionada per una bona capa d'abstracció permet una fàcil reutilització mitjançant la destil·lació d'un concepte o patró de disseny útil perquè les situacions, on es pugui aplicar amb precisió, es puguin reconèixer ràpidament. Es considera que una capa està sobre una altra si depèn d'ella. Totes les capes poden existir sense les capes superiors i requereixen que funcionin les capes de sota. Sovint, les capes d'abstracció es poden compondre en una jerarquia de nivells d'abstracció. El model OSI consta de set capes d'abstracció. Cada capa del model encapsula i aborda una part diferent de les necessitats de les comunicacions digitals, reduint així la complexitat de les solucions d'enginyeria associades.[2]

Un famós aforisme de David Wheeler és "Tots els problemes de la informàtica es poden resoldre amb un altre nivell d'indirecció".[3] Sovint es cita malament deliberadament amb "abstracció" substituïda per "indirecció". De vegades també s'atribueix erròniament a Butler Lampson. El corol·lari de Kevlin Henney a això és "...excepte el problema de massa capes d'indirecció".[4] En una arquitectura d'ordinador, un sistema informàtic normalment es representa com a format de diversos nivells d'abstracció com ara:

Referències[modifica]

  1. Johnson, Jonathan. «Abstraction Layers in Programming: An Overview» (en anglès). https://www.bmc.com.+[Consulta: 4 març 2023].
  2. Tanenbaum, Andrew S. Structured Computer Organization. Englewood Cliffs, New Jersey: Prentice-Hall, 1979. ISBN 0-13-148521-0. 
  3. Spinellis, Diomidis. Beautiful Code: Leading Programmers Explain How They Think (en anglès). Sebastopol, CA: O'Reilly and Associates, 2007, p. 279–291. 
  4. @kevlinhenney. «Yes, that's my corollary», September 3, 2012.