The course emphasizes object-oriented techniques and the use of UML. Topics covered in this course include: 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. Student will work in teams on software projects.