If you cannot make your scheduled time slot due to a class conflict,
we suggest you demo early. If that is not possible, e-mail staff
the following info:
We will e-mail you a confirmation with an alternate time slot.
Do not assume that we have rescheduled you until you have the
confirmation e-mail.
Links to all files referenced in the lab and prelab can be found in
the
Files section at the end of this document.
•
Part 1 - Overall project description
Write a
short overall
description
of
your project.
- Your description shall not exceed 200 words.
- You may include a graphic or two to help illustrate your
idea.
- Include a list of at least three items from requirement 1 above.
- Include a list of at least two interrupts the ISRs will service
in
your project
Part 2 - Requirements
In this section, you will define the high level inputs, outputs, and
state variables needed for requirements and state-chart design.
Your requirements shall use these inputs and state variables to define
changes in other state variables and outputs. You will use your
requirements to develop the state-chart for your project.
The number of inputs, outputs, and internal states will depend on the
complexity of your system. Define each as follows:
- Define system inputs. Each input shall have a simple
descriptive name such as "Off_Button", a single sentence description of
its purpose, and the possible values (or ranges). These include
any buttons, switches, potentiometers, serial interface inputs, or
other user inputs to your system. You may define a set of inputs
as an array if that is more convenient.
Example: Off_Button
- Indicates user preference to turn the wipers off. Values
are
PRESSED or UNPRESSED.
- Define system outputs. Each output shall have a simple
name, a single sentence describing the output behavior, and the
possible values (or ranges). These may include any externally
visible behaviors of LEDs (or LED arrays), LCD display, serial outputs,
or other outputs.
Example: Motor_Speed -
Output sets the speed of the motor. Values are OFF, SLOW, and
FAST.
- Define internal state variables that are needed to track the
current system state. Each internal state variable shall have a
simple descriptive name, a single sentence description of its purpose,
and possible values (or ranges).
Example: Current_Floor -
Current floor the elevator is stopped at. Value range from 1
(MIN_FLOOR) to 8 (MAX_FLOOR)
- Define your high level requirements. Your requirements
shall describe the overall behaviors of the system. We expect you
will have less than 10 requirements for a project of this complexity.
Refer to the Lab 3 wiper controller
requirements for a good example.
- Each requirement shall have a distinct number (we leave the
numbering method to you).
- Each requirement shall use the term "shall" or "should".
- Each requirement shall be a single sentence in length.
- Each requirement shall be in terms of defined inputs,
outputs, and state variables (So, "It shall work" is not an acceptable
requirement).
Part 3 - State-Chart Design
Develop one or more state-chart based upon your high level
requirements.
Follow the procedure set forth in
Pre-lab
3
-
Part B.
Your
state-chart(s) must include:
- State numbers for each state.
- State names for each state.
- A "Do:" section with any outputs or internal state values
that get set in that state.
- Outputs shall only occur within states, not on transitions.
- Transitions which are numbered and arrowed to clearly indicate
the flow
from one state to another.
- We do not expect you to include your ISRs into your
state-chart(s).
- Your state-chart shall include at least two
states.
Part 4 - Requirements / State-Chart
Traceability Table
Create a traceability table which shows which states and transitions
correspond to which requirements. Place an X in each row for the
states and transitions which implement a behavior described by the
requirement. Every
requirement should correspond to a state or transition (forward
traceability). Every state and transition should trace to
at least
on requirement (backward traceability).
You must have 100% traceability to your requirements. If you find
detailed requirements that were left out of the state-chart, you may
want to consolidate them into higher level requirements.
Example traceability matrix:
State
/
Transition
-->
|
S1:
STATE_OFF
|
S2:
STATE_PARK
|
....
|
T1
|
T2
|
...
|
Requirement
|
R1.
|
X
|
|
|
|
|
|
| R1.A. |
|
|
|
|
|
|
| .... |
|
|
|
|
|
|
Table 1 - Example Requirements
to State-Chart Traceability Table
Part 5 - Scheduling
Define your plan for scheduling tasks in your system. You may use
any scheduling method discussed in lecture.
Your schedule design shall:
- Include a scheduling method.
- List each task along with any priorities and periods / deadlines;
state how you determined each one.
Note: Your times and periods should be estimates at this point in the
design.
Part 6 - Watchdog / COP
Define how your project will use the watchdog timer.
- Describe this in a paragraph (no more than 50 words) with respect
to the tasks in your schedule.
- Define the time-out period and how you arrived at it based on the
tasks in your schedule.
- Describe what actions your program shall take in the event that
the watchdog resets your program.
Part 7 - Develop a Test Plan
In this section, you will develop a series of tests to ensure your
design follows your state-chart and meets your requirements. Your
test plan should include white box and black box testing methods.
This part only includes test plans and traceability tables, you do not
have to include any test results.
Part 7.1 - White Box Testing
Your white box tests should test the transitions of your
state-chart. Create a sufficient number of white box tests to
ensure 100% coverage of your state-chart transitions.
- Each white box test shall include a test number, initial state,
and a series of inputs and the expected states after inputs (Table 2).
- Your test plan shall include a traceability table showing which
state transitions are exercised by each white box test (Table 3).
- Your test plan shall have 100% coverage of all state-chart
transitions.
|
Pass/Fail
|
Initial State
|
Input 1
(State after
input) |
Step 2
(State after
input) |
Step 3
(State after
input) |
Test 2.1
|
PASS
|
1
|
N (2)
|
N (3)
|
N (4) |
Table 2 - Example White Box
Tests
|
T1
|
T2
|
T3
|
T4
|
T5
|
T6
|
T7
|
....
|
Test 2.1
|
X
|
|
|
X
|
|
|
X
|
|
Table 3 - Example White Box
Test Traceability Table
Part 7.2 - Black Box Testing
Your black box tests should test that the behavior of your system
conforms to your requirements. Create a sufficient number of
black box tests to ensure 100% coverage of your requirements.
- Each black box test shall include a test number, and test
description (Table 4).
- Your test plan shall include a traceability table showing which
requirements are exercised by each black box test (Table 5).
- Your test plan shall have 100% coverage of all requirements.
|
Pass/Fail
|
Test
Description
|
Result |
Test 3.1
|
PASS
|
Verify the
timing of FAST
MODE using a stopwatch to measure average cycle time over 10 cycles.
|
--
|
Table 4 - Example Black Box
Tests
|
R1
|
R2
|
R3
|
R4
|
R5
|
R6
|
R7
|
Test 3.1
|
|
|
|
|
|
X
|
|
Table 5 -Example Black Box Test
Traceability Table
Refer to
Pre-lab 6 and Lab 6 - Part B
for a refresher. Also refer
to Lecture 11 - Debug and Test.
Part 8 - Hardware
Create a list of the components that your project will
incorporate. If you need hardware other than what is provided in
the lab, you must receive approval from the course staff.
Draw a simple block diagram of the hardware components of your
system. You do not need to indicate specific ports and pin
numbers.
Part 9 - Acceptance Test Plan
State the procedure that the TA can execute to determine if your
project is functioning and has met the requirements of this project.
You should include enough detail that a TA can perform the acceptance
test without either of the partners present.
Make sure these are the
simplest criteria
to prove that you met the requirements above. If your project
includes complex hardware or PC side program, make sure that you have a
simplified version of your project to demo to the TAs that does not
rely on those complex components.
For example: If your project includes a complicated PC-side
program that communicates with the module over serial, be able to
demonstrate that the module can send and receive data over the serial
port by manually typing queries and getting responses using
HyperTerminal on the PC.
All non-code submissions shall be in a single PDF document.