18-649 Project 13

Check the course webpage for due dates

Please submit all project-related correspondence to

Teams will be limited to TWO practice runs without the EPIC test, and TWO additional practice runs with the EPIC test (four practice runs in total). Then there will be one final demo that you can schedule before the project deadline, otherwise they will be held the day after the project is due. After four practice runs, if the fifth run is unsuccessful late penalties will accrue from the time the fifth practice run is attempted.
Most teams should be able to succeed with one or two practice runs. The point is that TAs are not there to debug your project. You should honestly believe you will pass before asking for a practice run. It is a good idea to generate a large number of randomized acceptance tests for your elevator before attempting even the first practice run.
Final demos are scheduled for the day after final project hand-in. All group members must be present for the demo. TAs will only grade one hand-in per team. If you tell them "grade this one" for an early demo, you forfeit any right to any further hand-in attempts. (These rules are in place to prevent abusive demos and hand-ins. If you have a special situation please let us know.)


You have some additional time to complete this project. This is so that you can juggle all the other project demands being placed on you by other courses. We strongly advise you to set aside some time to do a thorough review of your design documents before handing in your final project.  REMEMBER: this project phase has a heavy weighting in the course grade!


There are no design changes required for this project.  You will simply complete the testing that you started last week, follow up on any run-time monitoring issues, and submit a final design portfolio.

1.  Complete Testing of Your Elevator Design

You must run all tests on your latest design:
We will execute these tests with an arbitrary random seed which we will not divulge ahead of time. Passing these tests constitutes "having a working elevator".
In addition, please find 3 more test files that you must pass -
Note:  You must pass all acceptance tests in order to receive a grade in this course. There must also be zero failed assertions (after startup transients) from our Runtime Monitor. That means there can be no violations of the high level requirements.

2.  Submit a Complete and Consistent Design Portfolio

For this final project, you must submit a complete and consistent design portfolio.  This includes (but is not limited to)
The above list is only a partial list to jog your memory.  If you are in doubt about your design portfolio, you should review the guidelines provided by past project writeups.  You should also take a look at the detailed grading criteria for this project.

3.  Extra Credit

Note:  To be eligible for any extra credit, your elevator must be passing all unit, integration, and acceptance tests listed above and it must be submitted on time.  Projects that are submitted late or that are not passing all tests will not be considered for any bonus listed here.

3.1  Performance Competition

We will use the two performance metrics specified in the requirements document and output by the simulator in the .stats file (lower is better for performance; higher is better for satisfaction):
Delivery Performance=4 * (average passenger delivery time) + (maximum passenger delivery time)
Satisfaction Performance=100 - (various satisfaction metrics * x number of times violated); similar to delivery performance, the sum is 4 times average plus minimum.

An unspecified number of workloads (.pass files) will be used in evaluating total elevator performance. Some will be acceptance tests you have already seen, and some will be new. NOTE: If your elevator crashes during any test or fails to deliver all passengers in any test, you will be disqualified from the competition. Groups will be ranked (1=best, 10=worst) for each workload for each performance metric. Your overall group score will be the sum of your ranks for all workloads. Of the eligible groups, the one with the lowest sum will be the winner and all members thereof will be awarded 1 percentage point on their final course grade.
Ties will be broken based on best Satisfaction Performance score.

We will publish the performance scores on blackboard after all the projects have been submitted.  We will not publish any performance statistics from other groups ahead of time.

You can take a look at previous years' performance results here: Previous Performance Scores. Keep in mind, these do not necessarily reflect the performance that groups will have for your class.

3.3  Fault Tolerance

Implement fault tolerance in the case of dropped messages.

Modify your elevator so it delivers all passengers with dropped messages enabled and to work correctly with the new drive speed. By now you should know the design process you should use. Remember that your final project portfolio must be consistent with the code you turn in.

To earn extra credit your elevator must work correctly when 25-50% of the messages are dropped. No two messages of the same type are dropped in a row. For Example: A drop rate of 100% will drop every other packet

Your elevator must continue to meet all of the high-level requirements we have provided you both in the presence and absence of faults.Although your performance when faults occur is relative, you are encouraged to deliver passengers as quickly as possible.

  Injecting faults

You can inject your own message drop faults by using a .fault file like basicfault.fault 

In order to run your acceptance test with this fault file use the command:
java simulator.framework.Elevator -pf basicpass.pass -ff basicfault.fault
-ff allows definition of a fault file
adding the -dropv flag causes verbose output of dropped messages(useful for debugging)

3.2  Complete Design Package

By the end of the semester, you will have produced a hefty design package. Producing a complete design package of this size is a commendable feat, and we will reward those who have accomplished it. If we judge your portfolio to be complete and consistent, then all members of your team will receive the bonus

Note: only one group can win the performance competition, but every group can win the portfolio bonus! The message is: GOOD PROCESS IS OFTEN A MORE IMPORTANT GOAL THAN GOOD PERFORMANCE!

Handing In Results


The Minimum requirements spreadsheet for this project can be found HERE, add what you think is necessary to include the work you completed for this project.
This project counts as one team grade. A detailed grading rubric is available here. 
The rubric contains the detailed end-to-end traceability checks.  You should use this as a checklist for your final handin.  Remember that this project is worth considerably more than previous projects.

This project is worth 175 points + up to 2.5 points bonus on your final grade:

Note 1:  It is important that you submit a complete and consistent end-to-end design package.  In addition to the points awarded above for traceability and meeting portfolio requirements, TAs can deduct points from the project for failing to following turn-in directions or having an end-to-end design package with blatant gaps.
Note 2:  Remember that a working final project is required to complete the course. It is especially important that you "make it work" for this final project!  This means that your elevator must be able to pass all acceptance tests (as outlined in the grading criteria above) before you will receive a grade in this course.

Back to course home page