3 Cr. (Hrs.:3 Lec.)
Concentrates on the development of requirements for software applications and systems. Topics include elicitation, analysis, documentation, and modeling software requirements. A formal specification language is one of the techniques used for modeling requirements. Co-requisite: ESOF 326 & CSCI 332 (2nd)
E1. The student has a basic grasp of traditional software engineering processes, such as requirements gathering, software design, implementation, and testing. (ESOF 322)
E2. The student has been introduced to quantitative aspects of the software engineering process, including software metrics and formal methods. (ESOF 322)
E3. Students are able to use propositional and predicate logic to specify and reason about program requirements (CSCI 246)
E4. Students can use mathematical structures such as sets, relations, functions and sequences to reason about problems. (CSCI 246)
R1. Students can enumerate the various types and purposes of requirements
R2. Students can identify the properties of well-written requirements and can identify the faulty aspects of inadequate requirements.
R3. Students have conceptual understanding of and practical experience with the steps of requirements production, including requirements elicitation, requirements validation, and requirements management. (SE: 1, 3)
R4. Students have performed the role of a business analyst. (SE: 3)
R5. Students know the connection between defective requirements and software project failure.
R6. Students have developed software requirements for a small system, or a portion of a large system. (SE: 3)
III-1-2-1 - Computing fundamentals, software design and construction, requirements analysis, security, verification, and validation
III-1-2-2 - Software engineering processes and tools appropriate for the development of complex software systems