Eiffel -- a language with assertions
-
- bottom-up development -- class design
- contracts -- specify client/server relationships
Design principles -- correctness
- static typing -- type secure
- multiple inheritance -- polymorphism
- dynamic binding -- refinement
- generic classes -- abstraction