Skip to content

    Abstraction

    Web design & developmentSoftware abstraction
    Editorially reviewed on: 2 sources
    Your reading view

    The short answer · 14 words

    In short

    Abstraction reduces technical details to an interface or view relevant to the particular task.

    Flow-alerta.cab (2026): Abstraction. https://flow-alerta.cab/en/glossar/abstraction. Editorially reviewed on: 09 October 2026.

    How much detail would you like?

    Practical

    Central to understandable, maintainable and extensible software. Good abstractions reduce coupling and make changes easier; poor abstractions can add complexity.

    Possible example: A web application uses a payment service via a uniform interface. Whether provider A or B works behind it remains hidden for large parts of the application.

    Possible applications: decoupling software components, API design, integration of external services, reuse of components and step-by-step modernisation of existing systems.

    At a glance

    Core
    Software development hides implementation details that are not relevant to the current task and provides stable concepts, interfaces or modules. This lets you work with a system without knowing every internal step.
    Use
    Central to understandable, maintainable and extensible software. Good abstractions reduce coupling and make changes easier; poor abstractions can add complexity.
    Example
    Possible example: A web application uses a payment service via a uniform interface. Whether provider A or B works behind it remains hidden for large parts of the application.
    Limits
    Abstract too early; artificially force different cases under a common interface; hide important differences; create too many layers of abstraction; ignore leaky abstractions.

    In context

    Questions about this term

    What is the difference with Encapsulation?

    Encapsulation bundles and protects implementation details; abstraction primarily describes the relevant view or interface.

    Is more abstraction always better?

    No, it has to bring a concrete comprehensibility or maintainability advantage.

    All details and background

    Software development hides implementation details that are not relevant to the current task and provides stable concepts, interfaces or modules. This lets you work with a system without knowing every internal step.

    ELI5 – Explained simply

    You drive a car using the steering wheel and pedals without operating the entire engine control system. These controls form an abstraction over the technology.

    Why it matters in practice

    Central to understandable, maintainable and extensible software. Good abstractions reduce coupling and make changes easier; poor abstractions can add complexity.

    Example

    Possible example: A web application uses a payment service via a uniform interface. Whether provider A or B works behind it remains hidden for large parts of the application.

    Pitfalls and limits

    • Abstract too early; artificially force different cases under a common interface; hide important differences; create too many layers of abstraction; ignore leaky abstractions.

    Origin & history

    Work on modularization and information hiding, such as David Parnas in 1972, and research on data abstraction in the 1970s, shaped important foundations of modern software architecture.

    Use in mid-sized companies

    • Possible applications: decoupling software components, API design, integration of external services, reuse of components and step-by-step modernisation of existing systems.

    Sources

    • web.mit.eduMIT, Abstract Data Types (Abstraktion und Information Hiding)
    • doi.orgParnas (1972), Originalarbeit / ACM

    Quellenprüfung: 09.10.2026. Anwendungsbeispiele sind mögliche Szenarien, keine behaupteten Kundenfälle.

    Editorially reviewed on:

    Next step

    Put knowledge into practice