agile software development alan greenspan attempto controlled english automata theory avionics software b-method best coding practices capability maturity model capability maturity model integration chaos model cleanroom software engineering computer programming debugger debugging defense industry estimation in software engineering extreme programming finite state machine functional specification ibm rational unified process iconix implementation incremental funding methodology iterative and incremental development list of software development philosophies list of software engineering topics performance analysis performance engineering petri net programming paradigm programming productivity project raise rapid application development requirement requirements analysis richard nixon robert mccloskey six sigma software development rhythms software elements analysis software lifecycle processes software requirements specification software architecture software bug software configuration management software deployment software design software development software documentation software engineering software maintenance software project management software testing specification and description language spiral model systems design technical support test effort top-down and bottom-up design unified process user experience design vienna development method virtual finite state machine waterfall model z notation