Description: A study of software engineering techniques for the development, maintenance, and evolution of large software systems. Topics include requirements and specification; system design and implementation; debugging, testing, and quality assur- ance; reengineering; project management; software process; tools; and environments.