Diseño de sistemas: dos abstracciones, ocultar o reducir
The Two Abstractions of System Design: Hide or Reduce
En el diseño de sistemas, la palabra 'abstracción' esconde dos conceptos opuestos: la abstracción de modularidad, que oculta los detalles internos tras interfaces, y la abstracción de modelado, que reduce el sistema a su esencia conductual. Esta distinción es clave para entender por qué la abstracción es difícil de dominar en modelado y verificación formal. El autor explica cómo la abstracción de modelado expone la concurrencia y permite razonar sobre invariantes, y ofrece ejemplos como relojes lógicos, consenso y linearizabilidad.
La abstracción de modularidad encapsula, traza un límite vertical y oculta la capa inferior. La abstracción de modelado es transversal: corta el sistema a lo largo de un plano conductual y conserva solo lo absolutamente relevante para la propiedad investigada, y aun así en forma de 'qué', no de 'cómo'.