# Requirement Diagram

![Requirement Diagram](https://135672590-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-L9shwSMiocGHpSKcbss%2F-MIHbJnAoUFxGOI8ABjT%2F-MIHeNgCUaIyV4zgcToN%2FHSUVRequirements.png?alt=media\&token=2dfe322b-b6f2-4fc2-90f9-8534772cb9d0)

## Create Requirement Diagram

To create a Requirement Diagram:

1. Select first an element where a new Requirement Diagram to be contained as a child.
2. Select **Model | Add Diagram | Requirement Diagram** in Menu Bar or select **Add Diagram | Requirement Diagram** in Context Menu.

## Requirement

To create a Requirement:

1. Select **Requirement** in **Toolbox**.
2. Drag on the diagram as the size you want.

You can use **QuickEdit** for Requirement by double-click or press `Enter` on a selected Requirement.

* **Name Expression** : Edit name expression.

  *Syntax of Name Expression*

  ```
  expression ::= [ '<<' stereotype `>>` ] [ visibility ] name
  stereotype ::= (identifier)
  visibility ::= '+' | '#' | '-' | '~'
  name ::= (identifier)
  ```
* **Visibility** : Change visibility property.
* **Add Note** : Add a linked note.
* **Add Constraint**: Add a constraint.
* **Add Sub-Requirement** : Add a Requirement with a contained relationship.

To suppress Property Values, check (or uncheck) **Format | Suppress Property Values** in Menu Bar or Context Menu

## Copy

To create a Copy:

1. Select **Copy** in **Toolbox**.
2. Drag from an element (to be special) and drop on another element (to be general).

You can use **QuickEdit** for Relationship (See [Relationship](https://docs.staruml.io/master/working-with-uml-diagrams/class-diagram#relationship)).

## DeriveReqt

To create a DeriveReqt:

1. Select **DeriveReqt** in **Toolbox**.
2. Drag from an element (to be special) and drop on another element (to be general).

You can use **QuickEdit** for Relationship (See [Relationship](https://docs.staruml.io/master/working-with-uml-diagrams/class-diagram#relationship)).

## Verify

To create a Verify:

1. Select **Verify** in **Toolbox**.
2. Drag from an element (to be special) and drop on another element (to be general).

You can use **QuickEdit** for Relationship (See [Relationship](https://docs.staruml.io/master/working-with-uml-diagrams/class-diagram#relationship)).

## Satisfy

To create a Satisfy:

1. Select **Satisfy** in **Toolbox**.
2. Drag from an element (to be special) and drop on another element (to be general).

You can use **QuickEdit** for Relationship (See [Relationship](https://docs.staruml.io/master/working-with-uml-diagrams/class-diagram#relationship)).

## Refine

To create a Refine:

1. Select **Refine** in **Toolbox**.
2. Drag from an element (to be special) and drop on another element (to be general).

You can use **QuickEdit** for Relationship (See [Relationship](https://docs.staruml.io/master/working-with-uml-diagrams/class-diagram#relationship)).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.staruml.io/master/working-with-sysml-diagrams/requirement-diagram.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
