Software engineering lifecycle
Wednesday, March 16, 2011
4:37 PM
"Waterfall model" 
Systems engineering: decide what platform to use, and what hardware. 
Requirements analysis: what should the product do. 
Design: how to do it. 
Implementation: a specific way to do it. 
Testing: make sure it works. 
Maintenance: keep it working in the presence of change. 
Implementation is a 3rd generation concept. 
Java
C++
Python
ML
...
Requirements are a 4th generation concept: tell what you want, just get it. 
Prolog
Ops5 (theorem proving language)
The real 5th generation 
natural language processing
don't have to specify the requirements in a machine readable form. 
My joke
5th generation does away with testing, which means all comp11 programmers are 5th generation:)