activity diagram ad hoc agile modeling agile unified process agile software development association for computing machinery automation barry boehm best practice business case business engineering change management class diagram cleanroom software engineering communication diagram component diagram composite structure diagram computer programming debugger deployment diagram dynamic systems development method eclipse process framework enterprise unified process essential unified process extreme programming feature driven development framework functional requirements functional specification generalization glossary of unified modeling language terms grady booch ibm ibm rational method composer iconix information technology interaction overview diagram iterative and incremental development ivar jacobson james rumbaugh list of uml tools message passing microsoft solutions framework object-oriented analysis and design object-oriented programming object management group object composition object diagram openup package diagram performance analysis personal software process philippe kruchten problem domain analysis quality control rapid application development rational software requirements analysis requirements management risk sequence diagram software architecture software configuration management software deployment software design software development process software documentation software engineering software maintenance software project management software testing spiral model systems modeling language test-driven development uml colors upedu unified modeling language unified process use case diagram user experience design waterfall model