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

Software Requirements, 3rd Edition Microsoft Press, by Karl E. Wiegers and Joy Beatty

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:

"Analysis is frustrating, full of complex interpersonal relationships, indefinites, and difficult. In a word, it is fascinating. Once you're hooked, the old easy pleasures of system building are never again enough to satisfy you."

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.


Activity Percentage

  • Chapter synopses
  • Leading client meetings
  • Miscellaneous assignments or quizzes

  • Exam 1 (20%)
  • Exam 2 (20%)
  • Final (20%)

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.


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:

Expected from taking this course:

Related program outcomes: