Overview
Expansion paths are the mechanism that transforms normalized Polarion work item hierarchies into denormalized grid layouts. Each expansion level adds columns to the PowerSheet or Risksheet, enabling progressive disclosure of related entities while maintaining context.
Key Characteristics:
- Relationship-Based Navigation — Uses RTM link roles (verifies, validates, refines, mitigates, assesses) to traverse from source entity to target entities
- Multi-Level Traversal — Supports chains of 2+ levels (requirement → test → evidence → attachment)
- Entity-Scoped Filtering — Restricts expansion to specific entity types via document filters or entity factory constraints
- Denormalized Output — Creates separate rows for each combination of parent + expanded entity
- Progressive Disclosure — Column groups can collapse to key fields, hiding expanded detail until needed
Expansion Path Syntax
Expansion paths use dot notation to reference nested relationships:
<EntityType>.<linkRole>.<TargetEntityType>
Or for multi-level expansions:
<EntityType>.<linkRole1>.<IntermediateEntity>.<linkRole2>.<FinalEntity>
Example: DesignRequirement.verificationTestCases.VerificationTestCase.externalReferences.ExternalReference
This expands design requirements through their verification test cases to show external evidence artifacts.
Single-Level Expansion Paths
A single-level expansion connects one entity type to another via a direct link role.
| Path Notation | Source Entity | Link Role | Target Entity | Use Case |
|---|
SystemRequirement.verifies.TestCase | SystemRequirement | verifies | TestCase | Show test cases that verify each requirement |
CustomerRequirement.refines.SystemRequirement | CustomerRequirement | refines | SystemRequirement | Show derived system requirements |
Function.failureModes.FailureMode | Function | failureModes | FailureMode | Show failure modes per function |
Characteristic.assesses.FailureMode | Characteristic | assesses | FailureMode | Show design characteristics that mitigate failure modes |
FailureMode.mitigates.RiskControl | FailureMode | mitigates | RiskControl | Show risk controls linked to failure modes |
Properties Table: Single-Level Expansion
| Property | Type | Example | Description |
|---|
sourceEntity | string | SystemRequirement | Work item type that serves as expansion starting point |
linkRole | string | verificationTestCases | RTM link role name connecting source to target |
targetEntity | string | VerificationTestCase | Work item type reached through the link role |
cardinality | enum | 1:N | Relationship multiplicity: 1:1 (single target) or 1:N (multiple targets per source) |
documentFilter | object | {module: "Testing/DesignVerificationSpecification"} | Optional: restrict target entities to specific document path |
collapsed | boolean | true | Whether the expansion column group collapses by default in UI |
collapseTo | string | title | Field name to show when column group is collapsed |
colorScheme | string | orange | Visual color for expanded columns: blue, orange, green, red, purple |
Multi-Level Expansion Paths
Multi-level expansions chain 2+ link role traversals, enabling complex traceability chains across the V-model.
Two-Level Expansion Example
Path: DesignRequirement.verificationTestCases.VerificationTestCase.externalReferences.ExternalReference
This creates three visual layers in PowerSheet:
- Design requirements (source)
- Linked verification test cases (first expansion)
- External evidence artifacts linked to test cases (second expansion)
Column Structure:
[Design Req ID] [Design Req Title] | [Test Case ID] [Test Case Title] | [Evidence Type] [Evidence URL]
When users expand a design requirement row, they see all linked test cases. When they expand a test case sub-row, they see all evidence artifacts for that test case.
Three-Level Expansion Example
Path: SystemRequirement.verifies.TestCase.validates.ExternalReference.documents.Document
This traverses through:
- System requirements (source)
- Test cases that verify requirements (level 1)
- External reference evidence (level 2)
- Related documents (level 3)
PowerSheet and Risksheet configurations support up to 3 expansion levels deep. Deeper chains impact performance and readability. For very deep traceability, use navigation or reports instead of nested expansions.
Multi-Level Expansion Configuration
When configuring multi-level expansions in PowerSheet YAML or Risksheet JSON:
columnGroups:
- id: design_reqs
title: Design Requirements
sourceEntity: DesignRequirement
columns:
- field: objectId
- field: title
- field: description
- id: verification_tests
title: Verification Test Cases
sourceEntity: VerificationTestCase
parentExpansion: design_reqs.verificationTestCases
columns:
- field: objectId
- field: title
- field: status
collapseTo: title
- id: evidence
title: Evidence Artifacts
sourceEntity: ExternalReference
parentExpansion: verification_tests.externalReferences
columns:
- field: attachmentName
- field: url
collapseTo: attachmentName
Each column group specifies its parentExpansion to establish the chain. The system builds the complete traversal path by concatenating all parent relationships.
Expansion Path Architecture Diagram
Common Expansion Path Patterns
V-Model Verification Pattern
The V-model verification chain spans requirements through test cases to evidence:
| Pattern | Path | Document Types | Use |
|---|
| System Verification | SystemRequirement.verifies.VerificationTestCase.externalReferences.ExternalReference | SRS + System Verification Spec + Evidence | Verify system requirements are tested |
| Design Verification | DesignRequirement.verifies.VerificationTestCase.externalReferences.ExternalReference | DRS + Design Verification Spec + Evidence | Verify design requirements are tested |
| Validation | CustomerRequirement.validates.ValidationTestCase.externalReferences.ExternalReference | CRS + Validation Spec + Evidence | Validate customer needs with acceptance tests |
Traceability Chain Pattern
Requirement decomposition and refinement chains:
| Pattern | Path | Direction |
|---|
| Refinement | CustomerRequirement.refines.SystemRequirement.refines.DesignRequirement | Top-down (decomposition) |
| Verification | DesignRequirement.verifiedBy.VerificationTestCase | Reverse traceability |
| Mitigation | FailureMode.mitigates.RiskControl.implements.DesignRequirement | Risk to design |
FMEA Integration Pattern
Failure mode expansion for analysis workflows:
| Pattern | Path | Purpose |
|---|
| Function Failures | Function.failureModes.FailureMode.mitigates.RiskControl | Show controls per failure mode |
| Characteristic Failures | Characteristic.assesses.FailureMode | Design parameters affecting risks |
| Control Plan | RiskControl.implements.Characteristic.measured.ControlPlanItem | Measurement and inspection |
Entity Factory and Auto-Creation
Expansion paths often work with entity factory configurations to enable inline creation of linked entities. When a user creates a new item within an expanded column group, the system automatically:
- Creates the new work item in the specified module (via
entityFactory.modulePath)
- Creates a link using the expansion’s link role
- Adds the new row to the expanded view
Example Configuration:
columnGroups:
- id: verification_tests
title: Verification Test Cases
parentExpansion: design_reqs.verificationTestCases
entityFactory:
workItemType: VerificationTestCase
modulePath: Testing/DesignVerificationSpecification
linkRole: verificationTestCases
reverseLink: true
When a user creates a test in the verification_tests group, the system:
- Creates a new
VerificationTestCase work item in Testing/DesignVerificationSpecification
- Links it to the parent design requirement via the
verificationTestCases link role
- Automatically includes the link in reverse (design requirement ← test case)
Document Filtering with Expansions
Expansion paths often include document constraints to limit which entities appear in expanded columns. This prevents expansion into unrelated documents or modules.
Filter Types
| Filter Type | Example | Effect |
|---|
| Exact Module Path | Testing/DesignVerificationSpecification | Show only test cases from this specific document |
| Module Prefix | Testing/* | Show test cases from any document under Testing/ |
| Entity Type + Module | VerificationTestCase @ Testing/SystemVerificationSpec | Expand only to specific work item type in specific module |
| None (unrestricted) | (empty) | Show all linked entities of target type, any module |
Document Filter Configuration
columnGroups:
- id: verification_tests
title: Verification Test Cases
parentExpansion: system_reqs.verificationTestCases
# This expansion shows only test cases from the specified module
documentFilter:
module: Testing/SystemVerificationSpecification
entityType: VerificationTestCase
# Entity factory ensures new tests are created in the same module
entityFactory:
workItemType: VerificationTestCase
modulePath: Testing/SystemVerificationSpecification
linkRole: verificationTestCases
Performance Factors
| Factor | Impact | Mitigation |
|---|
| Expansion Depth | 3 levels: fast; 4+ levels: slow | Limit to 3 levels; use navigation for deeper chains |
| Link Cardinality | 1:N with N>20 items per parent | Use document filters to reduce result set |
| Unfiltered Queries | Expansion across all modules | Always apply document filter for target entities |
| Real-Time Recalc | Large denormalized grids | Cache intermediate results; lazy-load expansions |
Each expansion level multiplies the number of rows displayed. A requirement with 5 test cases that each have 3 evidence items creates 15 rows (1 requirement × 5 tests × 3 pieces of evidence). For large projects, use filters to limit expansion scope.
Configuring Expansions: YAML Example
This PowerSheet configuration shows a complete multi-level expansion setup:
sourceEntity: DesignRequirement
columns:
- field: objectId
title: Req ID
readOnly: true
- field: title
title: Requirement
readOnly: true
formatter: boldreadOnly
expansions:
- id: verification_tests
linkRole: verificationTestCases
targetEntity: VerificationTestCase
documentFilter:
module: Testing/DesignVerificationSpecification
collapsed: true
collapseTo: title
columns:
- field: objectId
title: Test ID
- field: title
title: Test Case
formatter: bold
- field: status
title: Status
# Second-level expansion from test cases to evidence
expansions:
- id: evidence_artifacts
linkRole: externalReferences
targetEntity: ExternalReference
collapsed: true
collapseTo: attachmentName
columns:
- field: attachmentName
title: Evidence
- field: description
title: Description
- field: url
title: URL
Cross-Linking Between Expansion Paths
In complex projects, multiple PowerSheets or Risksheets may share expansion paths, enabling consistent traceability views across the project.
Example: The System Verification, Design Verification, and Whole RTM sheets all use similar expansion patterns:
By standardizing link role names and entity types across these sheets, engineers can navigate consistently between views.
Relationship to RTM Model
Expansion paths are defined by the RTM domain model configuration. For an expansion to work:
- Source entity type must exist in
.polarion/nextedy/models/*.yaml
- Link role must be defined and connect source to intermediate entity
- Target entity type must exist in the model
- For multi-level: each intermediate entity must support onward link roles
Example RTM Model Fragment:
entityTypes:
- name: DesignRequirement
polarionType: DesignRequirement
links:
- role: verificationTestCases
target: VerificationTestCase
cardinality: 1:N
- name: VerificationTestCase
polarionType: TestCase
links:
- role: externalReferences
target: ExternalReference
cardinality: 1:N
- name: ExternalReference
polarionType: ExternalReference
This model definition enables the three-part expansion path shown above.
Relation to Constraints and Validation
Expansion paths interact with RTM constraints:
- Required Link Constraints — If a link role is marked required, the expansion will show all source entities but highlight missing links
- Cardinality Constraints — Defines whether expansion shows 0..1, 1..1, or N items per parent
- Document Constraints — Expansion document filters respect constraint rules (e.g., test case must be in Testing module)
See Constraints and Validation for details on constraint configuration.
See Also