Different phases of large-scale software development with emphasis on analysis, design, testing, and documentation. Topics include: introduction to software engineering, ethics in software engineering, development processes, requirements developments, object oriented analysis and design using UML, architectural design, testing, and project management. Students work in groups on realistic projects to apply covered techniques. Pre-req.: CMPS 242.