An in-depth study of methods, tools, notations, and validation techniques for the analysis and specification of software requirements. Students participate in a group project on software requirements. Concepts and methods for the architectural design of large-scale software systems. Fundamental design concepts and design notations are introduced. Several design methods are presented and compared, with examples of their use.
Students participate in a group software design project.
Formal mechanisms for specifying, validating, and verifying software systems. Students analyze, design, implement, and manage a software system project. Students work in teams to develop or modify a software product, applying sound principles of software systems engineering. Both industrial and academic standards are used to assess the quality of the work products. See CS 631.