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