Explores techniques, languages, and tools for development and maintenance of software systems. Topics include specification languages, configuration modeling, testing techniques, process modeling, program annotations, and program proofs. Prerequisites: Restricted to graduate students or Computer Science Concurrent Degree majors only.