From problem to specification to layered software; examples of five classes of complex systems.