18-649 Project 10

Check the course webpage for due dates

Please submit all project-related correspondence to



In this project, you will finish controller design and implementation for your new elevator design. This project will focus on implementing the DriveControl, as well as any remaining modules you have redesigned in project 8 (e.g. LanternControl, CarPositionControl, etc.). You will also add a new requirements monitor.

You will modify your design to work with the new drive speed parameters:

To make the simulator run at the fast speed, you will need to add a "-fs 5.0" command to your simulator invocations.  This raises the fast speed in the drive control to 5 m/s.  Make sure you run all acceptance tests from this point forward using the -fs 5.0 option.  Note that you do not need to use this option with unit and integration tests, since the DriveObject is not instantiated in those tests.  However, you may need to change the messages that are injected in your tests to simulate the correct fast speed.

Finish Implementing Design Changes

Perform the following for DriveControl and all remaining modules that you redesigned in project 8.
  1. Update statecharts - You will update your statecharts based on the changes and additions made to your requirements in Project 8.  Your statecharts must continue to be pure time-triggered design.  You should refresh your memory by rereading the time-triggered design guidelines in Project 4.
  2. Update unit tests - You will update your unit tests so that they correspond to the changes made in your statecharts. 
  3. Update implementation (code) - You will revise your controllers to implement the new statecharts that you have created.  You must continue to follow the controller guidelines outlined in Project 5.
  4. Complete End-to-End Traceability - Since your entire project 8 design update will be completed and implemented, you must also have update and complete end-to-end traceability, including:
  5. Peer Review -  You shall conduct a peer review for the following: It is recommended that you peer review any other artifacts you revise.

Pass Last Weeks Unit Tests

You must pass the unit tests for Dispatcher and DoorControl that you wrote last week. Make sure to note any changes you make, either to the design, code, or unit test in the Issues Log. You do not have to pass the DriveControl unit test, nor other tests you wrote this week.

Write a Monitor.

Write a runtime requirements monitor for RT 10, and add it to the RuntimeRequirementsMonitor java file. Information about runtime monitoring can be found in Project 8. The team member who writes this monitor should be one who did not write a monitor for project 8

Team Design Portfolio

The portfolio you submit should contain the most up-to-date design package for your elevator system organized and formatted according to the portfolio guidelines.  You are going to update your portfolio every week, so be sure to keep an up to date working copy. 

Ensure your design portfolio is complete and consistent.

The following is a partial list of the characteristics your portfolio should exhibit:

Handing In Results


The Minimum Requirements spreadsheet is located here
This project counts as one team grade. Points are assigned as follows.  A detailed grading rubric is available here (PDF).

This project assignment is worth 160 points:

Each team member must satisfy the minimum stated per-member requirements (e.g., one object for each activity). Team members who omit any required per-member activity will be penalized as described on the course admin page.

Back to course home page