Skip to content

Commit

Permalink
Adding requirements page
Browse files Browse the repository at this point in the history
  • Loading branch information
LeStarch committed Oct 16, 2023
1 parent 50932fe commit e5869e9
Showing 1 changed file with 39 additions and 0 deletions.
39 changes: 39 additions & 0 deletions docs/requirements.md
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.

0 comments on commit e5869e9

Please sign in to comment.