a domain specific language for configurable traceability analysis
TRANSCRIPT
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Hendrik Bünder, Herbert Kuchen, Christoph Rieger
A Domain-specific Language for Configurable Traceability Analysis
Hendrik Bünder
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Hendrik Bünder, Herbert Kuchen, Christoph Rieger
• Traceability
• Contribution
• Configurable Analysis Example
• Language Features
• Conclusion and Outlook
Agenda
2
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Hendrik Bünder, Herbert Kuchen, Christoph Rieger
(Requirements) Traceability is the ability to describe and follow an artifact and all its linked artifacts in forward and backward direction.
Gotel and Finkelstein (1994)
TraceabilityDefinition
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Hendrik Bünder, Herbert Kuchen, Christoph Rieger
TraceabilityTraceability Information Configuration Model
• Defines traceable artifacts and trace links
• Trace links are bidirectional (arrow-head for primary direction)
• Basis for the Traceability Information Model (TIM)
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Hendrik Bünder, Herbert Kuchen, Christoph Rieger
• Verify all/only requested requirements are implemented (prescribed by laws and process maturity models)
• Estimate project budgets
• Track project progress and quality
• Support development and maintenance
• Document test execution and results per requirement or code unit
TraceabilityGoals
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Hendrik Bünder, Herbert Kuchen, Christoph Rieger
• TIMs are created in late phases of the project (just before the audit)
• Traceability tools offer limited support for analysing trace data
• Insight remains hidden in large TIMs
TraceabilityPractical Experience
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Hendrik Bünder, Herbert Kuchen, Christoph Rieger
Query Languages for information retrieval from TIMs available,…
…but no support for further data processing or computing metrics
ContributionBuilding bridges to gain knowledge
• Analysis Language consisting of Query, Metric and Rule expressions to retrieve, aggregate and check traceability information
• An interpreter integrated into a commercial software solution for real time model evaluation
Meaningful metrics with proven practical relevance for TIMs available,….
…but information retrieval is not configurable
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Hendrik Bünder, Herbert Kuchen, Christoph Rieger
Computing the number of related requirements
Configurable Analysis Example
“With every relation to another requirement, which can be direct or transitive, the complexity of the originated requirement increases”
Rempel and Mäder (2015)
Metric:
Compute the number of related Requirements per Requirement
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Hendrik Bünder, Herbert Kuchen, Christoph Rieger
Computing the number of related requirements
Configurable Analysis Example
Requirement Number of Related Requirements
RQ1 1
“With every relation to another requirement, which can be direct or transitive, the complexity of the originated requirement increases”
Rempel and Mäder (2015)
Metric:
Compute the number of related Requirements per Requirement
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Hendrik Bünder, Herbert Kuchen, Christoph Rieger
Computing the number of related requirements
Configurable Analysis Example
Requirement Number of Related Requirements
RQ1 1
“With every relation to another requirement, which can be direct or transitive, the complexity of the originated requirement increases”
Rempel and Mäder (2015)
Metric:
Compute the number of related Requirements per Requirement
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Hendrik Bünder, Herbert Kuchen, Christoph Rieger
Computing the number of related requirements
Configurable Analysis Example
Requirement Number of Related Requirements
RQ1 2
“With every relation to another requirement, which can be direct or transitive, the complexity of the originated requirement increases”
Rempel and Mäder (2015)
Metric:
Compute the number of related Requirements per Requirement
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Hendrik Bünder, Herbert Kuchen, Christoph Rieger
Computing the number of related requirements
Configurable Analysis Example
Requirement Number of Related Requirements
RQ1 2
RQ2 2
RQ3 2
RQ4 1
RQ5 1
“With every relation to another requirement, which can be direct or transitive, the complexity of the originated requirement increases”
Rempel and Mäder (2015)
Metric:
Compute the number of related Requirements per Requirement
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Hendrik Bünder, Herbert Kuchen, Christoph Rieger
Real World Traceability Information Model
Configurable Analysis Example
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Hendrik Bünder, Herbert Kuchen, Christoph Rieger
result relatedRequirements from
tracesFromTo(Requirement, Requirement) as paths
.collect(paths.getStart().getName() as srcReq,
paths.getEnd().getName() as targetReq)
Query named relatedRequirements
Function tracesFromTo called for Requirements
Defining the columns of the query result
Retrieving raw data from the TIM
Query Language
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Hendrik Bünder, Herbert Kuchen, Christoph Rieger
Features
Query Language
• Graph traversal encapsulated in a function
• Function parameterized with traceable artifacts as defined by the TICM
• Columns can be specified based on the returned trace artefacts and links
• Additional predicates such as groupBy or sum
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Hendrik Bünder, Herbert Kuchen, Christoph Rieger
metric NRR = cnt(relatedRequirements.srcReq)
• Metric with the name NRR
• The cnt function counts all values with the same content
• Parameterized with the srcReq column from the query result
Aggregating raw data
Metrics Language
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Hendrik Bünder, Herbert Kuchen, Christoph Rieger
Features
Metrics Language
• Predefined functions to count, sum up, etc.
• Tabular result structure
• Metrics may refer to other metrics
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Hendrik Bünder, Herbert Kuchen, Christoph Rieger
rule highNRR = warnIf(m: NRR > 3, “Number of related requirements too high!“)
• After keyword „rule“ a name is given
• Warning message introduced by „warnIf“
• Reference to metric value that is compared to given threshold
• Warning message
Defining analysis statements
Rules Language
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Hendrik Bünder, Herbert Kuchen, Christoph Rieger
Features
Rules Language
• Rules to check metric or query results against defined thresholds
• Different severity: Warning or Error
• Result is a tabular structure as well
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Hendrik Bünder, Herbert Kuchen, Christoph Rieger
• Analysis Language Interpreter was tested with models up to 50,000 artifacts
• Flexible approach to query raw data from custom traceability models
• Company-, project-, or user-specific analysis possible
• Staggered analysis to define warning and error rules for the same metric or result column
Conclusion and Future WorkConclusion
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Hendrik Bünder, Herbert Kuchen, Christoph Rieger
Conclusion and Future WorkIntegration
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Hendrik Bünder, Herbert Kuchen, Christoph Rieger
• Quality of every analysis depends on the quality of the underlying TIM
• Users need to be trained to use all features of the Analysis Language
Conclusion and Future WorkLimitations
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Hendrik Bünder, Herbert Kuchen, Christoph Rieger
• Investigation of real-world projects is pending
• Evaluate which analyses are reasonable for specfic industries
• Apply data mining techniques to TIMs
Conclusion and Future WorkFuture Work
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Hendrik Bünder, Herbert Kuchen, Christoph Rieger
itemis AG | Am Brambusch 15-24 | D-44536 Lünen | www.itemis.de
Thank you for your attention!