-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
39 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
# Specifying Requirements | ||
|
||
In this addendum to the tutorial, you will learn a bit about specifying requirements. Software requirements are derived from higher-level system requirements and represent the detail needed to implement the software. | ||
|
||
## System Requirements | ||
|
||
For this tutorial we have severl higher-level system requirements. These requirements would be defined by requirements specified by the electronics subsystem which are themselves derived by requirements defined at the full system level. | ||
|
||
| Requirement | Description | | ||
|-----------------|----------------------------------------------------------| | ||
| ELECTRONICS-001 | The system shall blink an LED in response to a command. | | ||
| ELECTRONICS-002 | The blink rate of the LED shall be changeable in-flight. | | ||
|
||
## Software Requirements | ||
|
||
These are the requirements that the software team cares about. These dictate how the software should operate and trace to the higher-level system requirements. These also come with a verification method to ensure the softare meets these requirements. | ||
|
||
Ideally, the software engineer would be handed these requirements, however; in-practice this is often a discussion between the software engineer and their system engineers. A sample requirement is provided below. | ||
|
||
| Requirement | Description | Derives From | Verification | | ||
|-----------------|-----------------------------------------------------------------|-----------------|--------------| | ||
| LED-BLINKER-001 | The software shall start LED blinking in response to a command. | ELECTRONICS-001 | Unit Test | | ||
|
||
> Take a moment to identify some other requirements you might derive from the above electronics requirements. Do this before moving on to the next section. | ||
## LED Blinker | ||
|
||
Here we list a number of requirements for our led software to implement. | ||
|
||
| Requirement | Description | Derived From | Verification | | ||
|-----------------|-----------------------------------------------------------------|-----------------|--------------| | ||
| LED-BLINKER-001 | The software shall start LED blinking in response to a command. | ELECTRONICS-001 | Unit Test | | ||
| LED-BLINKER-002 | The software shall stop LED blinking in response to a command. | ELECTRONICS-001 | Unit Test | | ||
| LED-BLINKER-003 | The software shall telemeter the current LED blinking state. | ELECTRONICS-001 | Unit Test | | ||
| LED-BLINKER-004 | The software shall emit events when the blinking state changes. | ELECTRONICS-001 | Unit Test | | ||
| LED-BLINKER-005 | The software shall store the blink interval as a parameter. | ELECTRONICS-002 | Unit Test | | ||
| LED-BLINKER-006 | The software shall blink the LED using GPIO pin 13 | Electrical ICD | Unit Test | | ||
|
||
> Notice how the software also includes a requirement that derived from the Electrical Interface Control Document. This captures the details of the software/hardware interface and is captured here as a requirement. |