18-649 Project 3
Event-triggered Behavioral Requirements and Traceability
Due Thursday February 5, 2009 at
11:59 PM
*Please submit all
project-related questions to

-- thanks!
Changelog:
- Dated entries will appear here if any changes are made after the
project is released.
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.
In project 3, you will construct your full event-triggered requirements
from the
scenarios/sequence diagrams in project 2 and demonstrate
traceability between the requirements and sequence diagrams.
For this part of the project you will finish writing your requirements
for an Event-based
System .
Follow the format of the "formula for behavioral requirements" you'll
see in multiple lectures. A particularly important concern for
event-triggered design is that only
one message can be used as the trigger for an action. If you
need two
messages to trigger an action, you will generally need to use multiple
behavioral requirements and intermediate variables to do this.
Assignment:
Now let's use the scenarios & sequence diagrams from the last
project to create the requirements.
For reference, recall the design documents mentioned in Project 2:
- Architecture diagram - architecture/architecture.html
- Use Case diagram - architecture/usecases.html
- Behavioral Requirements I - System Object Descriptions and
Message Dictionary - reqs/requirements1.html
- Behavioral Requirements II - Distributed Controller Requirements
- reqs/requirements2.html
This week, you'll be adding requirements to Behavioral
Requirements II.
What you'll find in Behavioral Requirements I
is the complete message dictionary for
the elevator system. In Behavioral
Requirements II, you will find a set of behavioral requirements
that is
complete, except some are omitted and are your responsibility to fill in.
Your job is to fill in the missing requirements and submit them to us
as a list of numbered requirements following the numbering scheme used
in the rest of the document. You should not worry about failure modes
for this project phase; for the time being assume that all sensors and
actuators are working at all times. You must NOT change
the Constraints in this project phase.
You will also be doing traceability in this assignment, both from
Sequence Diagrams to Requirements,
and Requirements to Constraints.
Your portfolio includes a partial example of:
- Sequence Diagrams to Requirements traceability (traceability/sd_req_traceability.html)
- Requirements to Constraints traceability (traceability/req_const_traceability.html)
Note: For project 3 you are not required to command the drive
to a speed faster than Slow. At Slow speed, the AtFloor[f, b] is
essentially your commit point. However, if you wish to control
the elevator Drive at Fast speed, you need to
calculate the commit point for the elevator based on the drive acceleration profile.
We want you to use the UML sequence diagrams you created in the last
project to develop your
behavioral requirements. Here is the procedure for developing
your
behavioral requirements:
- Use the Scenarios and Sequence Diagrams from project 2 to
generate your
behavioral requirements for each control system object. We've provided
some examples, but again, these are sub-optimal so you may want to
write your own. Follow the format of the "formula for behavioral
requirements" for an event-based system
you'll
see in multiple lectures. A particularly important concern is that only
one message can be used as the trigger for an action. If you
need two
messages to trigger an action, you will generally need to use multiple
behavioral requirements and intermediate variables to do this.
- Ensure traceability by completing the Sequence Diagrams to
Requirements Traceability table. Add all your requirements to the
table (1 requirement per row) and add an entry to note the messages
they correspond to
the Sequence Diagrams you developed in project 2 (including the sample
diagrams, unless you modified them). Each behavior should match
up
with one more Sequence Diagram messages, and each Sequence Diagram
message
should apply to at least one text behavior requirement. There can
be as many overlaps as necessary as long as every Sequence Diagram
message is
covered. This is only required for messages going into and out of
the controllers you are responsible for.
If a requirement only sets a state variable and does not set any
output, then the requirement will not trace to any sequence diagram
arc. In this case, it is acceptable to put a note like "Setting
State Variable, no message" in the traceability table.
You should perform this traceability exercise for all 7 of the
controllers. For the controllers that you did not write
requirements for (DoorControl,
CarPositionControl and
Dispatcher), you should trace to the requirements that have been
provided.
You should have a team member DIFFERENT from the author of the
behavioral requirements perform the traceability check on each Sequence
Diagram. The team member who performs the check for each object should
record his/her
name on the traceability check. Turn in the signed traceability check.
Complete and consistent traceability between your
diagrams and documentation will be a major factor in your grade.
- You must also ensure traceability between the Requirements and
Constraints for each object you develop requirements for. For a single
object, only trace to the Constraints of that object, not the
Constraints for all objects. This is easily done using a table with
the
Constraints listed across the top and your Requirements listed along
the
side. You don't have to provide a detailed explanation - just use an
'X' if the Requirement directly supports the Constraint, and a '~' if
the Requirement doesn't contradict the Constraint but doesn't directly
support it. Turn in a Constraint to Requirement traceability check for
each object you are responsible for writing requirements for. You will
probably have at least one 'X' per column and at least one 'X' per
row. The team member who performs the check for each object
should record his/her
name on the traceability check.
You should perform this traceability exercise for all 7 of the
controllers. For the controllers that you did not write
requirements
for (DoorControl,
CarPositionControl and
Dispatcher), you should trace to the requirements that have been
provided.
Each requirement should be less than 50 words, and all but the most
complex should be less than 25 words. (If you have a requirement
greater
than 25 words long, then consider breaking it up into simpler
requirements, perhaps using nested levels of numbering). Each
requirement shall be less than 100 words and shall be a legitimate
English sentence. Only the first 100 words of any numbered requirement
will be graded. Hyphens and equal signs both count as spaces when
determining word count.
Note that some elements of the system are "environmental". What this
means is that we're going to implement them in the simulation and you
don't have to (you're also not allowed to change them). The
requirements
for environmental portions are given so that you know what you can
count
on in terms of their behavior, and none of them have been omitted for
this project assignment.
The only types of changes you're
allowed to make for this project
phase are
- add behavioral requirements for sections indicated in the
document (DoorControl, DriveControl, LanternControl, HallButtonControl,
CarButtonControl, CarPositionControl, Dispatcher).
- define new state variables for those control objects.
You must not change
anything else about the specification, including (but not limited to)
interface information for each object. While this may seem restrictive,
we're doing this to ensure you take approximately the right path
through
the initial project design. You will get more flexibility later.
There may be some "bugs" in this assignment despite doing an
independent review before release. If you find something suspicious
please let us know immediately so we can fix it. Please see the course policy page
for more info regarding the availability of course staff.
Team Design Portfolio:
The portfolio you submit should contain the most up-to-date design
package for your elevator system organized into the following
directories. You are going to update your
portfolio every week, so be sure to keep an up to date working
copy.
Files that you should update for this week are:
- Portfolio Table of Contents (as needed)
- Scenarios and Sequence Diagrams
- Improvements Log
- Requirements II
- Sequence Diagrams to Requirements Traceability
- Requirements to Constraints Traceability
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)
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/project3/group#/ontime/).
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).
If you don't already have an ECE account send e-mail to
gripe@ece.cmu.edu and Cc to
requesting a course
account for 18-649.
This is probably a new experience for most of you. We don't expect
perfection. We expect an honest, good-faith attempt to complete the
assignment, getting as much help as is appropriate from your classmates
and lab partners. We suggest you leave at least a week of time to think
about the requirements. There is not too much writing for this project,
but quite a lot of thinking. If you stumble we'll make sure you
get fixed up before the next project segment, and in fact will hand out
a complete set of requirements as the solution set. (BUT, if you really
want to win the performance contest, you'll probably have to be a bit
more clever than the baseline solutions we help people come up with...)
You'll be allowed to change the behaviors in later labs for
optimization
and debugging, but you should give this your best shot. (In particular,
we expect that people will take several project phases to create a good
dispatcher, as some things just can't be specified well without a lot
of
experimentation.)
Deliverables:
This assignment counts as one team grade. Be sure you
follow the hand-in formats described above.
Grading will be as follows (115
points total):
(40 points) - 10
points per object for the requirements needed in the
requirements
framework (there are 4 objects total, because DoorControl,
CarPositionControl and
Dispatcher are provided). Each member
should do one object.
Groups of 5 should assign two people to the DriveControl object.
(35 points) - 5
points per object for the Sequence Diagrams-to-Requirements
Traceability
(there are 7 objects total, because the DoorControl,
CarPositionControl and
Dispatcher need to be completed).
(35 points) - 5 points
per object for the Requirements-Constraints Traceability
(there are 7 objects total, because the DoorControl,
CarPositionControl and
Dispatcher need to be completed).
(5 points) - 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.
We want you to go through the process of developing behavioral
requirements from UML scenarios
and sequence diagrams, which is why we're requiring that you show
traceability
between them. Consistency and coherence are the two criteria we're
looking for.
Back to course home page