The course emphasizes object-oriented techniques and the use of UML. Topics covered in this course include an overview of the software engineering process, software process models, UML syntax and semantics, software requirement analysis, software design principles and models, component-level design, and software testing. Students will work in teams on software projects.