18-649 Project Assignment #1

Requirements & Simulation

*Please submit all project-related questions to {email} -- thanks!

Changelog (changes highlighted in red in the project):

This semester, you will specify, design, build, and test an elevator control system and use it to control a simulated elevator. You will learn of and deal with many of the details of building a distributed, real-time, embedded system, as well as important skills in teamwork and project management.

A major goal of the class is to teach you a good process for developing systems. This process begins with requirements specification.

You should expect that there will be some sort of problems with file system permissions, login IDs and so on for this first assignment of the semester . Make sure you can put files in your afs space and log onto appropriate machines at least one week before the due date to give time to sort things out!!! An excuse of the form "I didn't try to log in until 10 PM on Thursday and my account was broken" will not get you an extension.

Although later projects will be team projects, this first project is individual effort only.  You should complete all parts of the assignment on your own.  For part A, you will need to find another student to complete the Process Check, but this is the only collaboration allowed on this project.


Part A: Intro to Writing Requirements

For Project 1 you will follow the process outlined here to generate requirements for the DoorControl[b,r] object.  There are four DoorControl[b,r], one for each of the two front and back doors. 

There are four sets of Initial conditions given.  Complete the process steps 1-7 for one set of initial conditions, according to the criteria below:

Grading is five points per Process Step.

Part B: Simulation Framework Exercise

The purpose of this assignment is for you to become familiar with the simulation framework. For this assignment you will see how a sample module works within the simulation framework.  And use acceptance tests to see how the elevator simulator delivers passengers.  This link provides more detail, but in short you will need to:

  1. Download the simulator code into your AFS directory
  2. Modify the TestLight.java file so that it is correct and will compile, then run an integration tests on it.
  3. Run an acceptance test and see that a passenger is delivered.

Be sure to pay attention to what is happening in the simulations!  Watch the gui & look at the elevator.stats  output file from the sample integration test.  Watch the output to the screen for the module testing of TestLight.java.  Think about what is happening.  You will be asked about the simulations during your weekly status meeting with the TAs.

Part C (10 points):  Improvements and Self-Grading

For this part of the assignment:

Submission Process:

This assignment will be submitted via the afs file handin system.  Each student shall submit their assignment according to the conventions given below. The contents of each file shall start with the assignment number, your name, your Andrew ID, and the file name. (This way, when we print out files for grading we can keep track of what each item is.)

Projects shall be submitted by copying all needed files into your handin directory in the course AFS space.  The handin directory is located at:

If you need to submit late, use the .../andrewID/late/ folder and SEND AN EMAIL TO THE STAFF LIST.  See the project FAQ for more details.


Submit your project files in the handin folder as described above. For part A of this assignment, the format must be a single vanilla HTML file (for more info, read the portfolio formatting guidelines).  For part B, you must submit ASCII text files containing the information listed below.  Note that every file must contain the appropriate header information. 

Grading: (80 points)

The Project 1 grading rubric can be downloaded here.  A grading rubric will be provided for every project so that you can clearly see what the grading expectations are.  Please note that the grading rubrics are a general guideline and that you are still responsible for all the details in the writeup.  If the grading rubric and the project writeup conflict, the project writeup takes precedence.  If you find a conflict, please let us know by sending mail to the staff list.

You MUST follow this naming convention and handin instructions to receive credit for the assignment. Be sure to double-check the assignments to make sure each file has everything that is required, and that you have added the required header information(described below) to each of the seven files:

The seven files that require a header above are:

Note:  For adding headers to files that are automatically generated by the simulator, check the commandline syntax for the -head option.
Note 2:  For HTML files (in this and all future projects), the header should be included in the HTML body so that it is visible when the file is viewed in a web browser.  Do not put the header in an HTML comment.
Note 3:  Future projects will require headings that include your group number, but group number are not required for this project since it is completed on an individual basis.

Troubleshooting Notes for Project 1

Back to Course home page