Software Requirements: Specification & Analysis (SE463/CS445/ECE451)

Spring/Summer 2023 Schedule

To Go Directly to the Lecture Schedule

To Go Directly to the Deliverables Due Dates

For Other Information including about Mental Health Support, Continuity Plans, Academic Integrity, Grievance, Discipline, Academic Offenses, Appeals, a Note for Students with Disabilities,, and If You Do Not Write Your Final Exam

"E", "em", and "er" are gender non-specific third-person singular pronouns in subjective, objective, and possessive forms, respectively.

Courses and Sections:

Officially, CS445/CS645/ECE451 is one course, and SE463 is another course. Each course has two sections, Section 1 and Section 2. Section 1 of both courses are held together, and Section 2 of both courses are held together. The same instructor is teaching both sections. Each of CS445/CS645/ECE451 and SE463 has been restructured to make it possible for them to be taught together. Thus, all registered in any section of any course wll get exactly the same lectures, tutorials, deliverables, and exam! Each student is registered in one of them and will receive er grade under that registration.


This term, the instructor for both sections is Daniel Berry.

Evaluation of Instructor at the End of the Term

You will be able to evaluate the course instructor at any time between Thursday 20 July 2023 at 12:00am (just at midnight) and Wednesday, 2 August 2023 at 8:30am.
Please see these slides for more detail about logging into the site and the questions it asks.


Class Communication:

If you have a question that is not private and is not targeted directly to one of the Instructors or TAs, then send it to, the course e-mail address.

One of the TAs or the prof will answer it. If the question is deemed to be of general interest and not private, the answer, including the question WITH THE SENDER'S IDENTITY REMOVED, will be sent by e-mail to the whole class so everyone gets the benefit of the answer.

The main way that the course prof will announce things to the class is by e-mailing to everyone's watIam e-mail address. You are responsible for all information sent this way. If you prefer to receive such e-mail at a different address, please send e-mail to the course e-mail address from your watIam e-mail address, with the new e-mail address that you prefer given in the body of the message. To help you in case you delete any such messages too quickly, below you will find a link to an archive of every e-mail message sent in this manner.

Archive of E-mail Sent to Class:

Click here for an archive of the e-mail sent to the entire class.

Highest Level Course Outline:

AI = Artificial Intelligence
ML = Machine Learning
RE = Requirements Engineering
SE = Software Engineering
wrt = with respect to

  1. Administration, Plans, and Requirements of the Course
  2. Requirements Modeling
    1. RE Reference Model
    2. Domain Modeling
    3. Use-Case Modeling
    4. Assumptions and Exceptions Identification
  3. Requirements Specifications
    1. Software Requirements Specification (SRS) documents
    2. Users' Manuals
  4. SE and RE Economics
    1. Cost Estimation
    2. Classifying Requirements wrt Downstream Repair Costs
    3. RE in Agile Development
  5. RE Issues To Be Aware Of
    1. Ambiguity in Requirements Specifications
    2. Non-Functional Requirements
    3. Verification and Validation
    4. Importance of Ignorance in RE
    5. Requirements Elicitation
  6. Things to Specify
    1. User Interfaces
    2. RE for AI and ML
  7. Formal Specification Notations
    1. State Machines
    2. Linear Temporal Logic
  8. General Overview of RE
  9. Case Studies
The topics are listed in a rough order of dependency. However, the reality is that you are probably experienced enough that you can understand each topic somewhat independently. The topics that you probably will need to be able to do the project well are earlier in this list. See the Lecture Schedule for the actual order of lectures and links to the material on each topic.

Course Times and Locations: