ESOF 328

Requirements and Specifications

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)

Course Outcomes:

R1. Students can enumerate the various types and purposes of requirements (SE: 1, 2, 6)

R2. Students can identify the properties of well-written requirements and can identify the faulty aspects of inadequate requirements. (SE: 1, 2, 6)

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, III-1-2-1)

R4. Students have hands-on experience with the processes of formal software system specifications. (SE: 1, III-1-2-1, III-1-2-3)

R5. Students know the connection between defective requirements and software project failure. (SE: 1, 2, 6)

R6. Students have developed software requirements for a small system, or a portion of a large system. (SE: 3, III-1-2-1)