18-649 Project Assignment #4

Time-Triggered Design Using Statecharts

Due Thursday February 14, 2008 at 11:59 PM

Please submit all project-related correspondence to ece649-staff "at" ece.cmu.edu

This semester, your group will specify, design and build an elevator control system and use it to control a simulated elevator. You will learn of and deal with many of the details of building a distributed, real-time, embedded system. Now that you've done the requirements specification for your elevator control system, it's time to do detailed design for each control object using state charts.


Assignment:

Now that your project has matured from concept to specification, it is time to transform the requirements specification from an event-triggered specification to a time-triggered one, and complete a detailed design document.  No longer are there discrete events that are used to trigger processing and state changes.  Once during each cycle (We use cycle here as some unit of time determined by processing and control needs) a time triggered machine  looks at the information it has available to it, performs some computation (potentially), and decides if it should transition to a new state.

For each non-environmental object (i.e. the ones you had to do for projects 2 and 3), complete a detailed design using UML state charts (See the required reading for more information). 

To supplement the materials provided in class: A sample statechart/traceability can be viewed here.

PLEASE NOTE THAT CODE != DESIGN; there should be no actual code in your design.  If there is code, it is not a design, and will be graded as code and not a design - which means no points.  Pseudo code is acceptable for expressing guard conditions, state outputs, etc. 

The procedure for this assignment is:

  1. Rewrite your behavioral requirements to be time-triggered, not event-triggered (multiple conditions can cause behaviors).  This may or may not be necessary for your group, but if you found yourselves doing tricky state variable manipulation to get a correct event-triggered behavior that would be simpler and easier if only you could have two or more events trigger a behavior, it's probably best to rewrite the requirement to make your design simpler.  You must document any changes your make to your behavioral requirements and resubmit it with your detailed design
  2. Design a state chart for each control system object (DoorControl, DriveControl, LanternControl, HallButtonControl, CarButtonControl, CarPositionControl, and Dispatcher).  The state charts shall be time-triggered with guard conditions, not event-triggered.
  3. Ensure backward and forward traceability by documenting the relationships between each behavior requirement and each state chart transition arc or state.  By forward traceability we mean being able to directly relate each requirement in the specification to one or more states/transitions. (Requirements -> States/Transitions)   By backward traceability we mean the ability to relate each state/transition directly back to one or more requirements. (State Transitions -> Requirements)   It's probably easiest to make two tables similar to the ones you used for project 3 to relate behaviors to sequence diagram messages.   You should have at least one state or transition for each requirement and at least one requirement for each state or transition. DO NOT  leave any blank entries in your tables.
  4. Turn in your complete Team Design Package

If you find any problems or "bugs" with the assignment, please let us know immediately so we can fix it. While we'll do everything we can to give you a quick response, there are reasonable limits to our availability. If we have to make a change we'll announce the change on blackboard and send email as well for  major/urgent changes.


Team Design Portfolio:  

Each team shall maintain a design portfolio to organize all materials for the design package of its elevator system. You are going to update this portfolio for every weekly assignment, so it is worth investing some time now to get things organized and easy to maintain. 

 

1) Organize your design portfolio.

Your project4 directory should contain the most up-to-date design package for your elevator system organized into the following directories.  This directory structure will develop as the semester progresses. This is to organize things for the rest of the course -- you'll be keeping this same organization and updating things for each subsequent project phase.

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.

Please include at the top of each file the assignment number, your group number, the names of your group members, and the file name.

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

Submission shall be electronically in the form of a web page with text and in-lined images, in HTML 2.0 format, viewable from both MS Internet Explorer and Netscape Navigator. HTML 2.0 does NOT include java or javascript or some of the more esoteric functions (frames, etc.). (In other words, we want "plain-vanilla" html to eliminate problems printing and viewing.) 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 and that links work (we recommend using html for documents with links!).    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 (185 points):

Grading will be based on providing a complete state chart design for each control object for which you are responsible, and documented traceability between the state chart transition arcs and states and your group's requirements specification.  Consistency and coherence (your design must match your requirements) are the two criteria we're looking for.  We will not be grading your new requirements specifications beyond making sure that they match your state charts and are time-triggered, but keep in mind that effort spent now will likely reduce effort spent at the code level, so it's a good idea to make updates as you go.

This assignment counts as one team grade.
Grading will be as follows:


Back to course home page