Abstraction

The idea behind, or purpose of, a software component. Contrast the two example sentences below:

Example 1 (abstraction):

This writer abstraction is flexible and backend-agnostic.

Example 2 (implementation):

This file system writer implementation is flexible, but backend-specific.

The first example does not mention what kind of writer the speaker is referencing. The second example, by contrast, references a specific implementation (the filesystem writer).

Further Reading