adaptation agile software development cleanroom software engineering compiler computer file computer programming debugger executable extreme programming functional specification ibm rational unified process iterative and incremental development norton internet security osgi performance analysis procedure product life cycle management rpm package manager rapid application development requirements analysis rubygems software architecture software configuration management software design software developer software development process software documentation software maintenance software project management software system software testing spiral model support system deployment systems management transition user experience design versiontracker waterfall model