18-649 Project 10
Due Thursday, April 2nd, 2009 11:59 PM
Please submit all project-related correspondence to 
Change Log:
- Dated entries will be added here if the project is modified after
it is released.
In project 8 you designed a more advanced dispatcher to more
efficiently deliver passenger loads. In project 9 you completed this
design by creating state charts and unit tests to exercise these
control modules, and you implemented your Dispatcher.
Now in Project 10 you are going to write the code for the other
controllers, and actually execute the tests you previously wrote and
test new passenger workloads.
Assignment:
Project 10 requires you to code your improved dispatcher, execute
tests, log their results and submit the files which have updated and
changed as a result of faults found.
- Implement the rest of your improved elevator system in Java.
Please follow
the coding guidelines given in previous projects. Namely, be sure you
mark the line in
each code that causes each and every state transition (i.e. forward
traceability).
- Test your new code by executing the unit tests designed in
Project 9. You should log the results. Remember, if a test
does not pass and needs to modified, you must include an entry in your
issue log describing the problem. After you have run all the
tests, make sure your test logs are up to date.
- Check your sequence diagrams to make sure they are consistent
with your design. Once you have made sure your sequence diagrams
are up to date, write sequence diagram tests for all of your sequence
diagrams. If needed, review the Integration
Testing section of the Testing Requirements document.
After the tests are written, complete peer reviews for all tests.
Execute the tests, and record the results in the Integration Test Log.
- Write an Integration Test Summary File for your sequence
diagram tests in the same way you wrote one for your unit tests in
project 9. The
contents shall be formatted as follows:
SequenceDiagramName ControlFile.cf MessageFile.mf
Note that this format precludes the use of filenames with spaces. There
should be one line for each sequence diagram in your portfolio, and the
column SequenceDiagramName should be replaced by the name of
the sequence diagram (for example, 2A). You can use the test_verify.sh
script from last project to verify your sequence diagram script.
Note: the
entries for the .cf and .mf files should contain relative paths from
the location of the summary file, as did the summary file for unit
tests. If all the sequence diagram tests are in the same
directory as the summary, then no additional path information should be
needed.
- Run all previous acceptance tests from Projects 5,6,7 and the
following new acceptance tests:
A Note on Testing
You are not required to pass all tests for this project. Any test
that is not passing must have appropriate documentation about the
problem. This includes an entry in the Notes column of the
relevant test log and a "pending" issue entry in the Issue Log.
However, in order to be eligible for the bonus described below, you
must be passing all tests.
Extra Credit
If you are passing all of the unit tests, sequence diagram
tests, and acceptance tests in your portfolio, then you may
consider writing a report about how you could improve performance even
more. The report should refer to specific tests and give exact
simulated time at which the unwanted behavior can be observed. For each
behavior, give a brief analysis of why the elevator showed that
behavior and what changes you can make to fix it. For example, if the
Dispatcher skips a floor with a pending call because your commit point
calculation is too conservative, but the Car actually could stop at
that floor, then explain how you might adapt your design accordingly.
Alternate bonus: If you believe that your
elevator is optimal and no improvements are possible, then you should
say so in your report. Then choose three advanced elevator behaviors
discussed in the course and describe how your elevator implements them.
For each behavior, cite two specific instances from acceptance tests
that demonstrate that the elevator implements the behavior.
In either case, to receive credit, your report must be submitted in
PDF format along with the rest of your portfolio. The main HTML
page of your portfolio
must contain a link to your report. Your report must be neat, readable,
and no longer than one page. If the report is longer than one page, you
will
receive no credit for it.
Handing In Results
Each team shall submit exactly one copy of the assignment.
Your submission shall follow format, directory, and other aspects of
organization specified in previous projects. By this point in the
semester you know the drill...
Make sure everything in your project is updated and consistent
across the entire design. Pay attention to what the course staff has
told you in the lectures, recitations, office hours, and in the
feedback from previous projects, and address the issues they point out.
Grading Criteria:
This project counts as one team grade. Points are assigned as follows:
This project assignment is worth 125 points (plus 12 bonus
points):
- 15 points for unit testing, peer reviews, and unit test log.
- 30 points for integration testing, peer reviews, integration test
log, and integration summary file.
- 15 points for acceptance testing and acceptance test logs.
- 60 points (10 points each) for updated code for each controller.
- 5 points for Improvements Log
- 12 bonus points for
the optional performance analysis.
Note: above points include relevant updates to traceability, issue log,
etc.
Note: we are no longer awarding points for having a complete and
consistent design package, nor just for following instructions. Those
should be a given at this point. However, 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.
Back to course home page