symfinder Demos

This site references all demos of the symfinder toolchain.


VaMoS 2020 Experiment

This page summarizes the experiment conducted on ArgoUML-SPL with symfinder, as reported in the paper submitted at VaMoS 2020.

The output visualization of symfinder for ArgoUML-SPL is deployed here.

ArgoUML

ArgoUML is an open source UML modeling tool written in Java. This project has been used by the software product line (SPL) community as a realistic case study for SPL refactoring. The extracted SPL, ArgoUML-SPL, uses compilation directives to delimit the code corresponding to each feature.

In this study, we analyse if symfinder’s identification of vp-s and variants are relevant for the mapping of domain features to their implementation in code assets.

The experiment

We measured the relevance of the automatically identified vp-s and variants by observing their manual mapping to the domain features in ArgoUML-SPL. For experimentation, we used the preexisting ArgoUML-SPL’s ground truth on domain features and manually mapped these features to the detected vp-s.

The Excel spreadsheet used to build the mapping is available here.

Observed Results

The Excel spreadsheet contains also all observed results included in the paper, with great details.

FigNodeModelElement

As an example, the figure above shows an excerpt of the visualization of ArgoUML-SPL by symfinder tool. We can observe a high density of variability consisted of a vp, ui.FigNodeModelElement, and 18 variants. With our mapping, we observed that 16 of the 18 variants could be mapped to features. The table below shows the mapping obtained for eight variants.

A vp with variants Feature
vp: ui.FigNodeModelElement Cognitive, Logging
use_case.ui.FigActor Use Case
sequence.ui.FigClassifierRole Sequence
static_structure.ui.FigComment Logging
collaboration.ui.FigClassifierRole Collaboration
activity.ui.FigObjectFlowState Activity
ui.FigEdgePort
deployment.ui.FigObject Deployment
activity.ui.FigPartition Activity