
Software development models
- rapid throwaway prototyping -- quick and dirty
- incremental development -- slowly evolving
- evolutionary prototyping -- evolving requirements
- reusable software -- reduces cost and time
- automated software synthesis -- one level of abstraction higher