Decomposition -- matrix
data abstraction
| | nil | cons(h,t) |
| empty(l) | true | false |
| head(l) | error | h |
| tail(l) | error | t |
Modules -- operation oriented
ADT
- organized around observers -- representation hiding
Objects -- data oriented
OOP
- organized around generators -- method interface
slide: Decomposition and data abstraction