Warning: include(/home/faculty/schahczenski/webSites_Common/contact.php): failed to open stream: No such file or directory in /opt/www/classes/esof328/esof328.php on line 13
Warning: include(): Failed opening '/home/faculty/schahczenski/webSites_Common/contact.php' for inclusion (include_path='.:/usr/share/php') in /opt/www/classes/esof328/esof328.php on line 13
Office Hours:
Warning: include(/home/faculty/schahczenski/webSites_Common/officeHours_spring.php): failed to open stream: No such file or directory in /opt/www/classes/esof328/esof328.php on line 19
Warning: include(): Failed opening '/home/faculty/schahczenski/webSites_Common/officeHours_spring.php' for inclusion (include_path='.:/usr/share/php') in /opt/www/classes/esof328/esof328.php on line 19
Text:
Software Requirements,
3rd Edition Microsoft Press, by Karl E. Wiegers and Joy Beatty
Prerequisite:
ESOF 322, Software Engineering
Meeting times and place:
Mon, Wed & Fri, 11:00-11:50 am, MUS 205
What is in this course?
Requirements engineering and analysis is a critical stage of the software process as errors at this stage lead to problems in the design, implementation, deployment, and maintenance stages. Getting complete and consistent requirements is a complex process of negotiations with system stakeholders. As Software Engineer and author Tom DeMarco says:
In this course you will have a chance to explore various requirements engineering processes, effective ways to "discover" requirements, requirements models, formats for expressing requirements, and validation and management techniques for requirements. You will create a complete set of requirements for a small system, or a portion of a large system.
Grading:
Activity | Percentage |
---|---|
General
|
|
Exams
|
|
SRS - submissions 3 and 4 will count double, and the final submission will be quadrupled |
|
Reflection paper |
Class Organization:
Students who actively discover what they are learning, ask questions about the material, and explain their reasoning to others, are more likely to remember the concepts and to use them outside the context in which they were learned. For this reason I hope to avoid lecturing and spend class time discussing concepts, discussing the project and developing requirements, going over problems, and working examples.
You are to write a chapter synopses for each of the assigned chapters from the Wiegers text.
COVID
Classes are face-to-face. If, due to COVID, you cannot attend a class, let me know in advance and I will zoom the class. If you will not be able to attend the zoom session, also let me know in advance. I will record the zoom session and send the recording to you.
If, due to COVID you are forced to take an exam outside the classroom, you must have a camera (so I can proctor you taking the exam), a printer (so you can print the exam) and a scanner (so you can scan your work and send it to my email). In some cases, taking a picture and sending it to me, is an alternative to scanning, but only if you and I have practiced, and it is clear to me that your pictures will not be too onerous to work with.
Catalog description of the course:
Concentrates on the development of requirements for software applications and systems. Topics include elicitation, analysis, documentation, and modeling software requirements. Co-requisite: CSCI 332. (2nd)
Expected skills students have coming into the course:
- 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)
Expected from taking this course:
- 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 hands-on experience with the processes of formal software system specification. (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)
Related program outcomes:
- SE 1 An ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics.
- SE 3 An ability to communicate effectively with a range of audiences.