18-649 Project 1 Requirements Exercise

(Project 1 part A)

Please submit all project-related correspondence {e-mail}

Intro to Writing Requirements:

Write detailed requirements for one set of initial behavioral conditions.

For Project 1 you will follow the process outlined here to generate requirements for the FrontDoorControl[j] object. There is one FrontDoorControl[j] for each of the two front doors. Note that there are also one BackDoorControl[j] for each of the two back doors, but for this project we will only be following the process for the FrontDoorControl[j].

There are four sets of Initial conditions given. Pick ONE set and complete and hand in Process Steps 1-7. Grading is five points per Process Step.

An example is provided for you here.


Initial Conditions:

Initial Conditions Set #1

Initial Conditions Set #2

Initial Conditions Set #3

Initial Conditions Set #4


Process Steps:

  1. Scenario
  2. Write requirements using precise words
  3. Write requirements using consistent terms
  4. Number requirements
  5. Testable
  6. Traceability to high-level requirements
  7. Process audit

Interface:

The interfaces to the FrontDoorControl and BackDoorControl are given below. Use these terms for step #3. This is part of the interface of the elevator simulator, so this will help prepare for the next projects. Although this project is only about the front doors, the interface for the back doors is given as well for you to familiarize yourself with them. For the subscripts, “j” is used for door stuff – there are two doors on both the back and front of the elevator, so “j” can be “RIGHT” or “LEFT”. “f” is used for floors – the value of “f” is from 1 to 8. “d” is used for directions – the value of “d” is either up or down

Output for the FrontDoorControl

The FrontDoorControl commands these objects:

Input for the FrontDoorControl

The FrontDoorControl receives information from these objects (but cannot directly change their value):


Output for the BackDoorControl

The BackDoorControl commands these objects:

Input for the BackDoorControl

The BackDoorControl receives information from these objects (but cannot directly change their value):


High-level Requirements:

There are eight high level requirements. Note that fulfilling all of the safety requirements fulfills R-T2 and R-T2.1. So, you only need to do traceability to six high-level requirements: R-T1, R-T3, R-S1, R-S2, R-S3, and R-S4.

Top-level requirements

Safety requirements

NOTE: while not explicity required, the doors have to open to let people in and out or else the passengers will never be delivered, which violates TR1.


Checklist for Process Audit:

Enter ‘Yes’ after each Step if you feel the Step has been satisfactorily completed. If you find a problem, please briefly describe the problem so the author can fix it.

Step 1: Is there a scenario?

Step 2: Do the requirements use only shall and should, or the appropriate words from the lecture?

Step 3: Do the requirements use the terms given in the Interface section to describe sensors, actuators and controllers on the elevator?

Step 4: Are the requirements numbered?

Step 5: Is there a test given for each of the requirements?

Step 6: Traceability – Does *each* requirement either support or not contradict *each* of the high-level requirements?

Put the name of the person who did the checking here (name and andrew ID):

Important note: you must actually do the check for these steps for this to be an honest response. Being dishonest about this is fraud, and is equivalent to cheating in this course. For example, if you just put "yes" next to each checklist item when nobody else did the checking, that's fraud. (Students have attempted to do this in the past looking for "easy points".) If, however, someone else actually does the checklist and honestly misses something, then that's not fraud -- that's just reality.