Notice how, given a well designed object, we are able to develope
code very quickly using those objects.
Also notice that we didn't need to know how they implemented
this class (object), we just need to know the interface.
This is a key concept: ADT - Abstract Data Type, or a data type whose properties (domain and operations) are specified independantly of any implementation.
In other words, design what you need, and worry about implementation after the design is done.
Much more on this in 131.
This is the idea of the 80's (or at least became very popular in the 80's)
Functional Decompisition
This is a much older method
Start with an abstract problem
Break it into a number of smaller, but perhaps still abstract problems
Continue until you reach a concrete problem which can be easily implemented.