Prerequisite: CS722, CS724. Covers software engineering practices and approaches. Topics include development life cycle models, requirements specification, use cases, design methods, testing, software evolution, quality assurance, and configuration management. Unified Modeling Language (UML) is introduced. Traditional versus agile methods are contrasted. Management concerns and standards, including Capability Maturity Model Integration (CMMI), are discussed. Additional topics may include metrics, reuse, development environments, introduction to formal methods, and software engineering research.