CMPSCI 520: Software Engineering: Synthesis and
Development
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 521, which focuses on software analysis techniques. Students are encouraged to take both
courses but may take either course independently.
1.
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