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:
- 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
- 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.
- 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.
- 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.
- project4/
- 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 of the files listed below. The idea is this
is an annotated table of contents for your entire project.
- project4/scen_sd/
- group#_scen_sd.html:
All of the scenarios, sequence diagrams, & corresponding traceability
tables 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 --
no broken pictures.
- project4/req_sc/
- 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. If you decided to use a few event
triggered requirements for some reason put them here, but we expect all (or
almost all) your requirements will be time-triggered and will match the rest of
your design.
- 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.
- project4/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)
- Note
1: group# is your group number (group1, group2, etc.)
- Note
2: Please do not submit the entire simulator directory &
subdirectories. Only include the .java files that you have written or
modified from the files provided to you (in the proper code/simulator/*
subdirectory).
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:
- Changes
requested by the TAs in previous projects have been applied.
- All
documents are complete and up-to-date with latest time-triggered implementation
- 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)
- Change
& defect logs are 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.
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:
- 12
points per state chart (there are 7 objects, so there are 7 state charts
total)
- 7
objects: DoorControl, DriveControl, LanternControl, HallButtonControl,
CarButtonControl, CarPositionControl, and Dispatcher
- 6
points per object for Requirements -> State Transitions traceability
- 7
objects: DoorControl, DriveControl, LanternControl, HallButtonControl,
CarButtonControl, CarPositionControl, and Dispatcher
- 6
points per object for State Transitions -> Requirements traceability
- 7
objects: DoorControl, DriveControl, LanternControl, HallButtonControl,
CarButtonControl, CarPositionControl, and Dispatcher
- 12
points for correctly following all instructions for completing and handing
in the assignment.
- 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.
Back to course home page