Catalog 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 assurance; reengineering; project management; software process; tools; and environments.
Prerequisite(s): CS 141: Intermediate Data Structures and Algorithms.
Supplementary Description: Teams, usually 5-7 students, 2 team leads; recurring project, run iteratively with client supervision; eXtreme Programming (XP); object-oriented analysis, design, and programming; Unified Modeling Language (UML); final presentation toward the end of the quarter; some overlap with CS 100: Software Construction.
Also known as: Introduction to Software Engineering, Object-Oriented Software Development, Software Gardening.