Course Number

This course describes fundamental principles of object-oriented modeling, requirements development, analysis, and design. Topics include specification of software requirements; object-oriented static and dynamic analysis approaches using the Unified Modeling Language (UML); object-oriented design; object-oriented reuse and maintainability, including design patterns; software implementation concerns; state models; persistence; and the Object Constraint Language (OCL). Prerequisite(s): While there are no programming assignments in this course, experience in an object-oriented programming language such as C++ or Java is important.