a domain specific language for configurable traceability analysis

24
Hendrik Bünder , Herbert Kuchen, Christoph Rieger A Domain-specific Language for Configurable Traceability Analysis Hendrik Bünder

Upload: hendrik-buender

Post on 12-Apr-2017

27 views

Category:

Software


0 download

TRANSCRIPT

Page 1: A domain specific language for configurable traceability analysis

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

Hendrik Bünder, Herbert Kuchen, Christoph Rieger

A Domain-specific Language for Configurable Traceability Analysis

Hendrik Bünder

Page 2: A domain specific language for configurable traceability analysis

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

Hendrik Bünder, Herbert Kuchen, Christoph Rieger

• Traceability

• Contribution

• Configurable Analysis Example

• Language Features

• Conclusion and Outlook

Agenda

2

Page 3: A domain specific language for configurable traceability analysis

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

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

Page 4: A domain specific language for configurable traceability analysis

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

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)

Page 5: A domain specific language for configurable traceability analysis

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

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

Page 6: A domain specific language for configurable traceability analysis

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

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

Page 7: A domain specific language for configurable traceability analysis

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

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

Page 8: A domain specific language for configurable traceability analysis

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

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

Page 9: A domain specific language for configurable traceability analysis

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

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

Page 10: A domain specific language for configurable traceability analysis

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

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

Page 11: A domain specific language for configurable traceability analysis

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

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

Page 12: A domain specific language for configurable traceability analysis

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

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

Page 13: A domain specific language for configurable traceability analysis

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

Hendrik Bünder, Herbert Kuchen, Christoph Rieger

Real World Traceability Information Model

Configurable Analysis Example

Page 14: A domain specific language for configurable traceability analysis

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

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

Page 15: A domain specific language for configurable traceability analysis

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

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

Page 16: A domain specific language for configurable traceability analysis

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

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

Page 17: A domain specific language for configurable traceability analysis

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

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

Page 18: A domain specific language for configurable traceability analysis

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

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

Page 19: A domain specific language for configurable traceability analysis

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

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

Page 20: A domain specific language for configurable traceability analysis

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

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

Page 21: A domain specific language for configurable traceability analysis

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

Hendrik Bünder, Herbert Kuchen, Christoph Rieger

Conclusion and Future WorkIntegration

Page 22: A domain specific language for configurable traceability analysis

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

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

Page 23: A domain specific language for configurable traceability analysis

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

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

Page 24: A domain specific language for configurable traceability analysis

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

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!