How to capture textual requirements in Capella complete step-by-step guide

Capturing textual requirements in Capella complete step-by-step describes how to configure and capture textual requirements within the MBSE Capella modelling tool.

You can find install instructions for the Capella requirements viewpoint captured under the wiki Requirements VP.

Referencing Capella requirements viewpoint

First step, ensure requirement viewpoint is active, tool and model elements contributed by this viewpoint are available. Viewpoint Manager allows to activate the viewpoint.

Open the “Viewpoint Manager” view in Capella. Go to “Window” > “Show View” > “Other…”, open the “Kitalpha” category and select “Viewpoint Manager”. Select a model element, right click on “Capella Requirements” view and click “Reference”.

Check viewpoint works correctly. Right click on a model element, example Operational Analysis package) and verify the Requirements Viewpoint menu is available:

Filters and customisation

Capella requirements VP elements are hidden by default. First, open the Capella Project Explorer menu and choose “Filters and Customization…”:

Locate and uncheck the filters:

  • Requirements VP Attributes.
  • Requirements VP Relations.
  • Requirements VP Types.

Trace (needed if there is the intention to view traces in the project explorer).

Capella Types Folder

In Capella, is available different types of modules:

  • Module Type: allows defining module type, example, Stakeholder Requirements, System requirements.
  • Relation Type: allows to define relationship between textual requirements, and textual requirements and model elements.
  • Requirement Type: allows to define different types of requirements. This example, defines to types: functional and interface.

No mandatory sequence when creating Types, however, requirements are:

  • Captured at a different level of abstraction, example, Stakeholder or System requirements.
  • Traced to model elements or between textual requirements.
  • Type, example, functional and interface.

You can create a Capella Types Folder for each of the above types. Then, creating requirements in the model is possible, associate to a Requirement Type and create relationship with other elements.

It is relevant at this point to mention, that all the Types created at Operational Analysis layer will be visible to all lower layers. Types defined at lower layers are not visible at higher layers. There may be the case where Types are better defined at lower layers, for example, Module Types when capturing system or physical requirements.

To create a Capella Types Folder, mouse right-click on the package Operational Analysis, then the menu “Add Capella Element” > “Capella Types Folder”, as shown in the figure below:

Rename the Capella Types Folder. One way to rename the Capella Types Folder is to open the Capella Types Folder properties window by double-clicking on the Capella Types Folder. The below window opens:

Rename the Capella Type Folder to Module definition.

Repeat the process above to create and rename Capella Type Folder for Relation and Requirement Type. Types shown in the Capella model:

Types definition

Creating a new Capella Type Folder, right-click followed by “Add Capella Element” > “Module Type”, as below:

Repeat the process above for Relation and Requirement Definition and create the below types:

Requirement Data Type and Attribute definition

Textual requirements normally are associated to attributes, example, status (e.g., draft, reviewed) and priority (e.g., high, medium, or low). Attributes can be tailored and defined to fulfil specific project needs.

Requirement Data Type definition

Create new model elements “Enumeration Data Types Definition” within the Requirements Definition Capella Types Folder.

Enumeration Data Type will allows to define enumeration values to set the requirements “Data Type”, as described in a section below. Create a new requirement type, mouse right-click on the Capella Types Folder and select “Add Capella Element” > “Enumeration Data Type Definition” as shown in the below figure:

Rename the Enumeration Data Type to “Status”.

Repeat the process above for a new data type: Priority.

The content within the Requirement Definition Capella Data Folder should be as below:

Requirement Definition Enumeration Data Types

For each of “Enumeration Data Types” defined above, create “Enum Value” to define the available attribute for each requirement. Create a new enumeration value, right-click on each of the “Enumeration Data Type Definition” previously created, “Add Capella Element” > “Enum Value” menu. Create the below “Enum Value” list as the figure below:

Requirements Attribute definition

Requirements attributes can be created and associated to Enumeration Data Type previously created.

Associating Enumeration Data Types to Requirement Data Type, will allow to:

  • Reuse data type.
  • Update data type, as needed, and reflected in all Requirement Type associated to the data type. Hence, there will be the need to update data once. This is of great value to promote data (i.e., requirements attributes) consistency.

Create new attributes, right-click on the Functional requirement type, then “Add Capella Element” > “Attribute Definition Enumeration menu”, as follows:

In the project explorer click on the created Status Attribute Definition Enumeration and rename it in the “Properties”. Click on “Browse Available Elements”. When Selection Dialogue window opens, Associate the Data Type to the Requirements Status Enumeration Data Type created previously, as below:

Repeat the process above and create the priority Attribute Definition Enumeration against the Priority Enumeration Data Type Definition.

Repeat and create the same Attributes Definition Enumeration for the interface Requirement Type. The model in project explorer should be as below:

Associate Attribute Definition Enumeration to Enumeration Data Type final

Requirement definition

The sections below will describe how to:

  • Create Requirement Types and associate with data types.
  • Create textual requirements.
  • Allocate textual requirements to model elements.
  • View textual requirements in the project explorer and diagrams
  • Manage textual requirements.
  • Export textual requirements.

Requirement Types definition

First create a new Requirements Capella Module. Right-click on the “Operational Analysis” > “Add Capella Element” > “Capella Module”, as below:

Requirements Capella Module can be associated to “Module Type”. Associating a set of requirements to a Module Type may be of value to ensure requirements are created and allocated at the right level of abstraction, that is, Operational Analysis, System Needs, Logical or Physical Architecture. At this point the below project Explorer should present the following:

Requirement capture

At this point textual requirements can be captured under the Requirement Capella Module. Requirements can (and should) be grouped, under a Folder (aka heading). For this example, requirements will be captured and grouped to define the expected behaviour to describe a Functional Chain: Perform Audio Announcement.

Requirements Folder

To create a new Folder, mouse right-click on the Stakeholder Requirements document Requirements Module, then “Add Capella Element” > “Folder”, as below:

Rename the Folder model element as: Perform Audio Announcement

Requirement capture

Create three textual requirements :

  • The Cabin Crew shall be able to make audio announcement.
  • The Aircraft shall be able to broadcast audio.
  • The Passenger shall be able to listen to audio.

Create a requirement under the Folder, right-click on the Folder, then “Add Capella Element” > “Requirement”, as follows:

At this point, it can be associated the requirement types. For this example, only functional requirements are created, as below:

In addition, give a name and specify the requirement:

  1. Name: Make Audio Announcement
  2. Text: The Cabin Crew shall be able to make audio announcement

Repeat the process above for the additional requirements two requirements:

  1. Name: Broadcast audio
  2. Text: The Aircraft shall be able to broadcast audio

Finally,

  1. Name: Listen to audio
  2. The Passenger shall be able to listen to audio

The below requirements should be captured and seen in the project explorer, as below:

Requirement allocation

Requirements traceability links in Capella can be created between:

  • Textual requirements and model elements.
  • Between textual requirements at the same layer or between layers.

This section will describe how to allocate textual requirements to model elements.

Select the requirement “The Cabin shall be able to make audio announcement”, then in the requirement properties click on “Requirements Allocation” > “Add elements (+)”, as below:

In the selection dialog search for: make audio announcement Operational Activity, then select and click “Ok”, as below:

Next create:

  1. Requirement relationship type: click on the requirement relationship and “satisfy”. Model elements satisfy requirements. Hence, traceability links are from a model element to a requirement.
  2. Visualise requirements in a diagram: from the palette, select the “Requirements” filter, then the requirement to be shown.

When completed, the textual requirements should be traced and shown in the diagram, as below:

Repeat the process above for the other two requirements.

Requirement management

Requirements in Capella can be visualised, and attributes edited in a table format.

Requirement attributes editing

To edit requirements attributes in a table, select only the three requirements captured, then mouse right-click “Send to Mass Editing View” > “New Mass Editing View”, as below:

It is possible to select what columns to show or hide. For this example, a sub-set of columns will be shown. To select what columns to show/hide, mouse right-click in a column, then “Select columns”, as below:

Select the columns as shown in the figure below:

The Mass Editing view should look, as below:

It is possible to edit single attributes or a selection.

It will be edited a selection of attributes. To set a selection of attributes hold SHIFT and select the attributes as shown in the figure above, then select “Edit selection” and set to value to draft, as below:

Repeat the process above for the priority attribute and set value to High.

Requirements attributes viewing

Similarly, to editing requirements in a table it is possible to view requirements in a table. To view requirements in a table, select the three requirements in the project explorer, then “Send Mass to Mass Visualization View” > “New Mass Visualization View”.
As described in section above, select the columns as shown below:

In the Mass Visualization View, requirements can be sorted and grouped. This can be quite useful when reviewing requirement traceability. Several combinations and groupings can be done to satisfy a modeller needs.

For this example, there is the need to verify that only Operational Activities (i.e., functional behaviour) are traced to functional requirement. To achieve this grouping click and drag the column “Allocating Elements” and make it the first column, then click and drag “Requirement Type” to the area “Drag columns here to group by columns values” above the table. When completed a similar table should be shown as below:

Finally, requirement and attributes can be seen in the project explorer and semantic browser, but first it needs to be activated the “Show requirements in the semantic browser”, each time the Capella tool is started, as below:

Export textual requirements

Textual requirements can be exported to a .csv file. To export to a .csv file click “View Menu” > “Export to CSV”, as below:

When CSV file is created it is them possible to be imported to a requirements management tool, e.g., IBM Doors. However, there is prior work to be done in the file before importing. For example:

  • Delete line 2 (empty).
  • Rename and match exported attributes in columns with any already created in a Doors module.
  • Delete all HTML references from the requirement text, e.g., <p>.