Skip to content
IROSG.
Computing pioneers

Barbara Liskov: the power of software abstraction

Liskov’s work on data abstraction and CLU helped shape modular software design.

Photograph of Barbara Liskov

The central idea

Barbara Liskov made important contributions to data abstraction and CLU. This work emphasizes using a component through its contract rather than depending on all of its internal details.

Design application

Ask what a module guarantees and what should remain hidden. That simple distinction helps reduce accidental coupling and encourages tests that verify observable behavior.

Data abstraction hides the right details

Hiding an implementation does not mean pretending it does not exist. It means that a component’s consumer can use it correctly without understanding its internal representation. A queue user needs to know how to add and receive items, not whether the queue uses an array or a linked structure.

When callers depend directly on internal storage, changing the implementation can break them. A useful abstraction allows that storage to change while preserving the promised behavior. Interface design, documentation and testing meet at this boundary.

Substitution requires more than matching method names

Two implementations can expose identical method names but behave differently. If one preserves order and another silently changes it, callers may no longer receive the behavior they rely upon. Preconditions, results and failure behavior therefore belong in a substitution discussion.

Consider a storage API that promises a successful write will be visible to the next read. A replacement that silently weakens this promise is not automatically compatible just because its request shape is unchanged.

IROSG learning perspective

Define a small note-storage interface and implement it once in memory and once using a file. Run the same behavioral tests against both implementations. Include missing data, invalid input and repeated operations, not just successful method calls.

This approach turns a famous design term into a practical exercise. The aim is to reduce accidental dependencies and create components whose behavior can be understood, checked and changed with greater confidence. The sources below provide the historical context for Liskov’s work and CLU.

TRACEABLE KNOWLEDGE

Sources & further reading

01
Computer History Museumhttps://computerhistory.org/profile/barbara-liskov/
02
Portrait source and creator attributionhttps://commons.wikimedia.org/wiki/File:Barbara_Liskov_MIT_computer_scientist_2010.jpg
03
Portrait reuse licensehttps://creativecommons.org/licenses/by-sa/3.0

Editorial review date:

IROSG / EDITORIAL

News and pioneer profiles use original writing with source attribution. Image credits and licenses are kept in each page’s sources section instead of beneath the images. CVE reference data credits its primary sources.

Editorial and image policy ↗

Keep exploring.

Computing pioneers ↗
Donald DaviesComputing pioneers
Development & DevSecOps

Donald Davies

Original Persian technical editorial based on the official sources below. It covers the subject, architecture, practical use cases, important limitations and defensive considerations.

1 min readRead story
J.C.R. LickliderComputing pioneers
Development & DevSecOps

J.C.R. Licklider

Original Persian technical editorial based on the official sources below. It covers the subject, architecture, practical use cases, important limitations and defensive considerations.

1 min readRead story
Peter NaurComputing pioneers
Development & DevSecOps

Peter Naur

Original Persian technical editorial based on the official sources below. It covers the subject, architecture, practical use cases, important limitations and defensive considerations.

1 min readRead story