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:

  1. The Drive Controller shall command the Drive to fast speed to the maximum degree practicable.
  2. The Car Lantern Controller shall command a Car Lantern to turn on when arriving at a floor, if there are any pending calls.
  3. The Car shall only stop at Floors for which there are pending calls.
  4. The Car shall only open Doors at Hallways for which there are pending calls.
  5. 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):

  1. Does each step in the scenario match an event in the sequence diagram?
  2. Are all arcs labelled with a valid command in the sequence diagram?
  3. 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.

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:


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)


Back to course home page