Object-oriented design and analysis, with interactive applications as the primary example. Topics include: software process; revision control; Unified Modeling Language (UML); requirements; software architecture, design patterns, frameworks, design guidelines; unit testing; refactoring; software tools. Prerequisite: CMPUT 201 or CMPUT 275. Credit may be obtained in only one of CMPUT 301, BTM 419, or MIS 419.