Abstraction is the purposeful suppression, or hiding, of some details of a process or an artifact, in order to bring out more clearly other aspects, details, or structure.

An abstraction will over-simplify a process or an artifact by naively focusing only on what you assume you really need, and neglecting or sweeping under the rug the useless (according to your understanding) details you don’t care.

The map is not the territory

Abstractions are not the objects (or processes) they abstract. Abstractions only hide (deemphasize) things, never remove (erase) them.

Abstraction is not about vagueness, it is about being precise at a new semantic level. (Edsger W. Dijkstra). This means zooming in and out into the details and implementations and literally taking a different perspective (changing the point of view).

Abstractions are nested and layered, that is you abstract an abstraction of an abstraction.


This idea of hiding or removing details, in order to bring out more clearly other aspects, details, or structure is dangerous and destructive.

So many crucial details could have been removed that we don’t recognize the subject anymore. This is what is meant by over-simplified.

see also Modeling

Last modified 6 months ago Last modified on Sep 29, 2019, 9:29:18 AM
Note: See TracWiki for help on using the wiki.