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.
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 |