With abstraction you create a well-defined entity that can be properly handled. These
entities define the
of the program.
An entity with the properties just described is called an
abstract data type
1.1.1. Abstract Data Types
An ADT consists of an abstract data structure and operations. Put in other terms, an ADT
is an abstraction of a data structure.
The ADT specifies:
What can be stored in the Abstract Data Type
What operations can be done on/by the Abstract Data Type.
For example, if we are going to model employees of an organization:
This ADT stores employees with their relevant attributes and discarding
This ADT supports hiring, firing, retiring, … operations.
A data structure is a language construct that the programmer has defined in order to
implement an abstract data type.
There are lots of formalized and standard Abstract data types such as Stacks, Queues,
Do all characteristics need to be modeled?
Not at all
It depends on the scope of the model
It depends on the reason for developing the model
Abstraction is a process of classifying characteristics as relevant and irrelevant for the
particular purpose at hand and ignoring the irrelevant ones.
Applying abstraction correctly is the essence of successful programming