Why Object Oriented?
Allows smart components
- Partial evaluation and simulation
- Components can change once created
Different instances of the same class can behave differently
Convenient abstractions for automatic services
- Can treat the design as a hierarchical tree or a graph of components