18-649 Project 10

Due Thursday, April 2nd, 2009 11:59 PM

Please submit all project-related correspondence to


Change Log:


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.

  1. 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).

  2. 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.

  3. 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.

  4. 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.

  5. 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):

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