User Tools

Site Tools


start

EECS4312 Fall 2017: Software Engineering Requirements

Fall 2017: CSE4312 – Software Engineering Requirements

Please login at the bottom of this page before proceeding.

← Please read the forum regularly for course updates.

Some of your work is submitted at the Moodle site Moodle EECS4312E-F17

Lecture Times

Lectures are in Bergeron Room 313. The first scheduled Lab will also be on Thursday, directly after the class, in LAS 1002/1004. The first Lab is Thursday 7, September (first day of class).

  • Lectures: Tuesdays & Thursdays 4pm-5.30pm
    • Tuesday lectures are to be held in: Bergeron Room 313.
    • Thursday lectures are to be held in: Bergeron Room 313.
  • Labs: There is a formal Lab every Thursday in LAS1004, from 5.30pm to 6.30pm. Labs start right away on the first day of class (with Lab0). Login with your Prism account, then do: ~sel/retrieve/4312/lab0.
  • Quizzes: There is a graded Quiz each week during the Lab.

Text Book and other Important Information

Learning outcomes

Software requirement engineers are experts at eliciting the needs of their customers, translating customer needs into a precise requirements documents (that describes what – not how – customer needs shall be satisfied), and providing systematic evidence-based methods to validate the requirements and verify that the final software product satisfies the requirements. Precise software requirements documents are especially needed in safety critical cyber-physical systems (e.g. nuclear reactors, medical devices and transportation systems) and mission critical business systems (e.g. banking systems, health provision and cloud systems). At the end of the course, students will be able to

  • Elicit customer requirements by analyzing customer goals and needs
  • Write precise requirements documents. To do this students will be able to:
    • Develop the system overview, identify the system boundary and draw a context diagram
    • Identify the monitored variables and events and controlled variables
    • Identify the environmental assumptions and constraints
    • Describe the functional requirements using tabular expressions (function tables) that specify the mathematical relation between the monitored variables and events and the controlled variables
    • Describe the non-functional requirements
    • Prove that the functional requirements are complete, disjoint and well-defined
    • Provide a complete set of use cases and corresponding acceptance tests so that each requirement is a verifiable contract of customer needs
    • Validate the functional requirements by proving that they preserve safety properties (derived from such methods as hazards analysis) and prove that the use cases satisfy the function tables

A work-intensive project will allow students to apply their knowledge to a small but non-trivial example.

start.txt · Last modified: 2017/09/28 00:06 by jonathan

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki