18-649 Project 10
Check the
course webpage
for due dates
Please submit all project-related correspondence to
Changelog:
- Dated entries will be added here if the project is modified
after it is
released.
Assignment:
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:
- "Fast" speed is now 5 m/s.
- Acceleration and deceleration remains 1.0 m/s/s.
- "Slow" speed remains 0.25 m/s.
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.
- 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.
- Update unit tests - You will update
your unit tests so that they correspond to the changes made in your
statecharts.
- Your tests must be syntactically valid (must execute without causing any
runtime exceptions in the simulator), but you are
not required to pass unit tests this
week (OK to have failed assertions). You will be required to pass them
next week, so don't blow off the creation of unit tests.
- Your Unit Test Log must be
complete and up-to-date, including describing the issues related to any
controllers that are not passing all their unit tests.
- Make sure your Unit Test Summary File
is up-to-date, as this will be used to automate the grading of your
portfolio.
- 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.
- 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:
- Sequence Diagrams to Requirements traceability
- Requirements to Constraints traceability
- Requirements to Statecharts traceability (tables in the
Requirements II document).
- Statecharts to Code traceability
- Complete and correct state and arc traceability comments in your unit
tests, as described in Project 5.
- Peer Review -
You shall conduct a peer review for the following:
- DriveControl Statechart
- DriveControl Code Implementation
- DriveControl Unit Test
- Statechart, Code Implementation, and Unit Test for any other module you redesign
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:
- Changes requested by the TAs in previous projects have been
applied.
- All required documents are complete and up-to-date to the
extent required
by the projects (you do not need to update files or links
related to future
projects).
- All documents include group # and member names at the top of
the
document. (This includes code, where this information
should appear in
the header field)
- Individual documents have a uniform appearance (i.e., don't
look like they
were written by 4 individual people and then pieced together)
- The issue log is up to date and detailed enough to track
changes to the
project.
Handing In Results
- Each team shall submit exactly one copy of the assignment.
- Follow the handin instructions detailed in the Project FAQ to
submit your
portfolio into the afs handin directory ( /afs/ece/class/ece649/Public/handin/proj10/group#/ontime/).
- Be sure you follow the
required format for
the directory structure of the portfolio and its location in
the handin
directories.
- Be sure to follow ALL
the portfolio
guidelines detailed in the Portfolio Layout
page.
- Any submission that contains files with modification dates
after the
project deadline will be considered late and subject to a
grade deduction
(see course
policy
page for more information).
Grading:
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:
- 30 points for
a proper statechart and implementation of the DriveControl and
remaining other modules
- 35 points for
finishing writing unit tests for all modules, and passing unit test for
Dispatcher and DoorControl.
- 10 points for writing the
monitor for RT10.
- 60 points
End to end traceability of the DriveControl object.
- 20 points for at least 3 peer
reviews of the updated modules in the
Peer Review Log. All modules
updated in part 1 of the assignment must be peer reviewed.
- 5 points
for an entry in the
Improvements Log that tells us what
can be improved about this project. If you encountered any minor
bugs that we
haven't already addressed, please mention them so we can fix
them. If you have
no suggestions, say so in your entry for this project.
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