1.     Introduction and Course Description

CMPSCI 620 : Advanced Software Engineering: Synthesis and Development

Professor: Adrion

This course introduces students to the principal activities involved in developing high-quality software systems.  The course stresses the use of defined, systematic processes in the creation of carefully defined and engineered software products.  Among the topics covered are requirements analysis, software architecture, formal specification methods, process definition, software design methods, and test planning.  Issues specific to the development of software by teams and groups will also be addressed.  Students will be required to read selected papers from the literature and complete homework and projects.  This course focuses  on  synthesis  activities and complements CMPSCI 621, which focuses on software analysis techniques.  Students are encouraged to take both courses but may take either course independently.  Students who sign up for 620 will be expected to do more comprehensive projects, which emphasize critical and analytic thinking, than those who sign up for CMPSCI 520.

2.     Prerequisites

For both CMPSCI 520 and CMPSCI 620: CMPSCI 320 (or equivalent, e.g., ECE 397B ST-Software Engr) or consent of instructor.  3 credits