18-649 Project Assignment #8
Due Thursday March 20nd, 2008 11:59 PM
Improved Dispatcher; All SDs; Dispatcher Statechart
Please submit all project-related correspondence to ece649-staff
"at" ece.cmu.edu
Before spring break your group specified, designed and implemented a simple
elevator. The dispatcher for this elevator was required to be very simple and
was also quite inefficient. Now that you have an elevator that will pass basic
acceptance tests, you will be required to enhance and improve your elevator.
Assignment #8 requires you to design a more intelligent and
realistic elevator dispatcher. You will create sequence diagrams and some state
charts, but you are not required to write code. If you decide to work ahead,
you should plan how you will test your improved elevator before you write any
code.
TA meeting note: Be sure that you understand all the fields of the
DesiredFloor(f,b,d) message before you go to your weekly TA meeting to discuss
this project assignment! This is one of the trickiest parts of the elevator
behavior, but it is essential to get it right.
Assignment:
Project 8 requires you to design, but not code, your improved dispatcher.
The goal of this assignment is an improved dispatcher that makes your
elevator behave in a more realistic and efficient manner. The basic dispatcher
stops at every floor regardless of the passengers needs, and omits many basic
functionalities we expect from elevators. To improve upon this behavior, your
improved dispatcher must fulfill the additional set of high-level requirements
below. In addition, you can begin to design in other optimizations and states
if you choose to increase the passenger delivery performance metric. Enhancing
the dispatcher to some degree now is a good idea, but keep in mind that adding
more features will increase your testing load in the next phase of the project.
Please plan accordingly.
Additional High Level Requirements for this and future project phases:
- The Drive Controller shall command the Drive to fast speed to the maximum degree
practicable.
- The Car Lantern Controller shall command a Car Lantern to turn on when arriving at a
floor, if there are any pending calls.
- The Car shall only stop at Floors for which there are pending calls.
- The Car shall only open Doors at Hallways for which there are pending
calls.
- All fields of the DesiredFloor message shall have the documented effect on
elevator behavior.
Note that in the above requirements, it is permissible for the dispatcher to
synthesize calls in addition to passenger-initiated hall calls and car calls.
This might become important for later project phases (for example up-peak
optimization and fault tolerance).
To design this dispatcher, you must create new sequence diagrams and some
state charts. These changes may reach beyond the dispatcher module and these
effects must be documented. Traceability must be updated and complete,
including adding the above five high level requirements to the set of high
level elevator requirements and tracing them throughout the design process. The
design package must reflect your dispatcher changes including all necessary new
Sequence Diagrams, all updated behavioral requirements, and a new statechart
for the dispatcher (but other statecharts are optional). A large part of this
assignment is following process and keeping your design package up to date.
A check-off list of all modified sequence diagram(s) is required. Have
another team member check the following at a minimum (we recommend you use the
longer checklist from lectures, but the below simplified checklist is all that
is mandatory):
- Does each step in the scenario match an event in the sequence diagram?
- Are all arcs labelled with a valid command in the sequence diagram?
- Are all boxed items correct parts of the elevator architecture?
All behavioral requirements must be updated to account for the new and
modified SDs.
This week the only statechart you must update is your Dispatcher statechart.
You can do the rest if you like and get ahead on things, but the Dispatcher
statechart is the one we will be grading.
Update your Design Portfolio:
1) Organize your design portfolio.
Your project8 directory should contain the most up-to-date design package
for your elevator system organized into the following directories. Because you
are only partially doing a design update for this phase, the materials will not
be seamless (that's OK -- we'll finish things in the coming weeks). In
particular, after this project phase some of your statecharts will no longer
match with your behavioral requirements, because this week you are redesigning
your SDs and behavioral requirements, and next week you'll update the rest of
your statecharts to match.
- project8/
- group#_portfolio.html: A single
html file with a brief description of each of the design documents in your
portfolio, with a link to each corresponding document:
- High level requirements document, listing all high level requirements
including both original ones and new ones for this project (must be created
this week as a file in the base project8 directory)
- Scenarios & sequence diagrams document (must be updated this
week)
- Document containing the time-triggered behavioral requirements, state
charts, & requirements-state chart traceability (behavioral requirements
must be updated; only update statecharts and traceability for the
Dispatcher)
- Behavioral requirements-sequence diagrams traceability document (update
all)
- Requirements-constraints traceability document (update all)
- Unit test files (statechart-based tests) (no update required)
- Sequence diagram test files (no update required)
- Acceptance test files (no update required)
- Change & defect logs (update required)
- project8/scen_sd/
- group#_scen_sd.html: All of the
scenarios & sequence diagrams for
your design (including the ones we did for you) shall be easily viewable &
printable in ONE document (plain html or pdf)
- The directory may contain picture files of individual sequence diagrams,
but these shall be viewable/printable in the main document with
working links from the main document
to the diagrams.
- project8/req_sc/
- group#_high_req.html: All of the
high level requirements, including both original ones and any new ones
introduced in this assignment.
- group#_req_sc.html: All of the time-triggered requirements for your design
(including the ones we did for you, such as the environmental objects) shall be
easily viewable & printable in ONE document (plain html or pdf). In
addition, this document shall contain the state charts for the 7 control objects
(DoorControl, DriveControl, LanternControl, HallButtonControl,
CarButtonControl, CarPositionControl, and Dispatcher) as well as the
state charts/requirements traceability tables.
- group#_req-sd_trace.html: All of
the requirements/sequence diagrams
traceability tables shall be easily viewable and printable in ONE
document (plain html or pdf, NO picture files may be used for the tables).
- group#_req-con_trace.html: All of the requirements/constraints traceability tables
shall be easily viewable and printable in ONE document (plain html or pdf, NO
picture files may be used for the tables).
- The directory may contain picture files of individual state charts
diagrams, but these shall be viewable/printable in the main document with
working links.
- project8/tests/unit/
- group#_DriveControl.test: The complete unit test of DriveControl for project 5 in a single test
file.
- group#_DriveControl.out: A single text
file containing the output that was generated to the screen while
running the unit test of DriveControl for project 5.
- group#_CarPositionControl.test: The complete unit test of CarPositionControl for project 6 in a
single test file.
- group#_CarPositionControl.out: A single text
file containing the output that was generated to the screen while
running the unit test of CarPositionControl for project 6.
- project8/tests/sd
- group#_SequenceDiagramXX.test: The
complete sequence diagram test for
project 5 in a single test file. (XX
is the sequence digram number. e.g., 1C)
- group#_SequenceDiagramXX.test: The
complete sequence diagram test for
project 6 in a single test file. (XX
is the sequence digram number. e.g., 7C)
- group#_SequenceDiagramXX.out: A single text
file containing the output that was generated to the screen while
running the sequence diagram test for project 5.
- group#_SequenceDiagramXX.out: A single text
file containing the output that was generated to the screen while
running the sequence diagram test for project 6.
- project8/tests/acceptance/
- All acceptance test files we have
provided you (basicpass.pass, proj5acceptance1.pass, etc) from all past
projects.
- All acceptance test files you have created.
- project8/logs/
- group#_ChangeLog.txt: Detailed log
of all updates to design/implementation (including enhancements). Shall
contain Date, Description of the change, Artifacts that were changed.
(.txt or .html are fine)
- group#_DefectLog.txt: Detailed log
of all defects found in the design/implementation. Shall contain Date,
Description of the defect, Origin (earliest artifact in the design cycle where
the defect occurs) (.txt or .html are fine)
- project8/code/simulator/elevatorcontrol/
- *.java files for the 7 control objects
- Control.java file
- project8/presentations/
- group#_Midterm_Presentation.pdf: Your mid-term project presentation in PDF format or Microsoft PowerPoint.
- Note1: group# is your group number (group1, group2, etc.)
- Note2: Please do not submit the entire simulator directory &
subdirectories. Only include the .java files that you have changed (in
the proper code/simulator/* subdirectory). Otherwise disk space usage gets out
of hand.
- Note3: From this project forward you should not include any
event-triggered requirements. Avoiding event-triggered requirements will
make it much easier to provide fault tolerance in later project phases.
2) Ensure your design portfolio is complete
and consistent. If you have been keeping up with updates in the
previous project stages, most of this work will already be done. The following
is a partial list of the characteristics your portfolio should exhibit:
- Implementation works for all acceptance tests for projects 5 & 6.
This includes all acceptance tests, both public(included in project
description) and TA-provided acceptance tests. You can include additional test
you may have written as well.
- Changes requested by the TAs in previous projects have been applied.
- All documents are complete and up-to-date with latest time-triggered
implementation (i.e., code matches statecharts, requirements, sequence
diagrams, and all traceability)
- 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)
- Code is commented sufficiently and reflects code-statechart traceability.
- Change & defect logs are up-to-date and detailed enough to track
changes to the project.
- etc.
Handing In Results
Each team shall submit exactly one copy of the assignment. (Multiple HTML files
are OK.)
Please include at the top of each file the assignment number, your group
number, the names of your group members, and the file name.
Submission shall be electronically in the form of a web page with text and
in-lined images. Please use "plain-vanilla" HTML so that the web page
is easily viewable and printable from Internet Explorer and Firefox. Any
drawings shall be in non-animated GIF format. (You can use other graphics
formats at your own risk, but we must be able to view them in the web browsers
mentioned above). You can also submit your project in pdf format, but
make sure it prints correctly on a postscript printer. Projects shall be
submitted by copying all needed files into your group's directory in the course
AFS space in the following directory:
/afs/ece/class/ece649/Public/project/group#/project#/ (group# is your group
number and project# is the number of this project. you may need to create this
directory yourself). 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). A regular text editor
should be sufficient for this assignment - you may want to make the
traceability tables in Excel or Word and use the 'Save as HTML' or 'Save as Web
Page' feature in the File menu. If you need some help with HTML please come to
Office Hours :)
Additionally, the result should be easily readable when
printed on a black-and-white laser printer. Each HTML file AND picture shall
include the team number and names of all members of the team.
Grading (65 points)
- 10 points for updated scenario(s) and sequence diagrams for all control objects affected by this design change.
- 10 points for updated behavioral requirements for all control objects affected by this design change.
- 5 points for updated Dispatcher statechart. The statecharts for other affected control objects will be graded in project 9.
- 10 points for updated traceability.
- 5 points for sequence diagram checklist(s) of all modified sequence diagrams.
- 20 points for complete design package and following all
turn-in directions.
- 5 points: what can be improved about this project? Include even
minor bugs so we know to fix them. If you found nothing, then so state.
Points will be neither awarded nor deducted for going beyond the minimum
requirements of this project, but we'll provide feedback. As with previous
project phases, you must meet all the stated project requirements for this
phase regardless of how much extra stuff you attempt to include.
Back to course home page