agile software development big design up front chaos model cleanroom software engineering code complete computer programming debugger debugging dual vee model enterprise application integration extreme programming free on-line dictionary of computing functional specification gnu free documentation license ibm rational unified process implementation internet archive iterative and incremental development iterfall development list of software development philosophies nasa performance analysis philippe kruchten rapid application development requirements analysis sashimi sequence shrink wrap contract software requirements specification software architecture software configuration management software deployment software design software development process software documentation software maintenance software project management software testing source code spiral model system development methodology user experience design waterfall wicked problem