Lecture notes for an upper-level undergraduate software engineering course, with a strong focus on software design. Students taking this course should have already completed a data structures course. These notes are designed to be used with Dale Skrien’s text Object Oriented Design using Java.