Skip to content

Requirements Management#

Requirements Management is at the core of SysGit, and is the business layer of any complex engineering project. Requirements is the highest layer where we map the needs of the organization to the hardware implementation. It's the formalized common ground between customers and engineers.

Many organizations have different approaches to this activity, but the most simplified approach is:

  • Maintaining a list of "shall statements" that have been contractually agreed upon between the Engineering Team and the Customer.
  • Creating a series of "derived requirements" that better match to development strategies to be implemented by the Engineering Team.
  • Developing Verification artifacts, which can prove to the Customer that the agreed upon Requirements have been met.
  • Ensuring traceability between the top level contractual Requirements, the Derived Requirements, and the Verification Activities.

SysGit's Requirements Table, Verification Table, and Traceability views are designed to work together as an integrated system. They support end-to-end visibility from stakeholder needs through implementation and verification, enabling teams to manage complexity while ensuring accountability.

Requirements Table#

The primary interface for working with requirements is the Requirements Table. This is built to be an Excel-like user experience while still generating underlying data structures that adhere to the SysML v2 standard. The Requirements Table has one requirement per row, and the following columns:

  • ID: an internally generated paragraph number, computed based on the ordering and depth of the Requirement
  • Short Name: a unique alphanumeric identifier for referencing the Requirement
  • Description: the descriptive text detailing the requirement, often referred to as a "shall statement"
  • Rationale: an optional column for detailing the rationale behind a requirement
  • Relationship: this is used to establish or modify a relationship between this requirement and other objects within the current SysML package, including other requirements, parts, verifications, and more. Simply use the dropdown to select the intended object, as well as the relationship type.

Interacting with the Requirements Table#

When interacting with the table, you can do a few things, including:

  • Adding a row
  • Selecting multiple rows
  • Grouping and ungrouping rows, establishing a decomposition hierarchy
  • Moving one or more rows up or down within a level
  • Adding comments

Adding Rows#

To add a row, click the "add a row" button at the bottom of the table. You can also right click on the table to insert a row just below the highlighted row at the same level of the hierarchy as that row.

Selecting Rows#

To select one or more rows, click the leftmost column (containing the generated IDs). Hold shift to select multiple rows.

Grouping and Hierarchy#

To group rows, select multiple rows, right-click on the leftmost column, and choose 'Group Row'. This will make all selected requirements (except the first one) a decomposed child of the first requirement selected. If the decomposed parent is moved, the children will follow.

Note that children cannot be moved outside of the grouping. To undo the grouping, right-click on any individual member and click "un-group", this will ungroup the entire group.

Keyboard Navigation#

You can use the keyboard to navigate the table as well. Use the arrow keys to move up, down, left, and right between the cells. To change the content of a cell that can be edited, just start typing, and hit Enter to save the changes.

Importing Requirements#

[Content to be added - importing from spreadsheets, legacy tools, etc.]

Requirements Best Practices#

[Content to be added - naming conventions, organization strategies, etc.]

See Also#