In-depth consideration of each of the phases of the software project life code. Object-oriented design and programming. Includes a large-scale software development project involving groups of students. Graduate-level requirements include additional homework and a term project.