You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: replication/splc23-views/INSTALL.md
+35-59Lines changed: 35 additions & 59 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -54,9 +54,9 @@ To execute the replication you can run the `execute` script corresponding to you
54
54
`./execute.sh replication`
55
55
56
56
> WARNING!
57
-
> The replication will at least require an hour and might require up to a day depending on your system.
58
-
> Therefore, we offer a short verification (5-10 minutes) which runs DiffDetective on only four of the datasets.
59
-
> You can run it by providing "verification" as argument instead of "replication" (i.e., `.\execute.bat verification`, `./execute.sh verification`).
57
+
> The replication may require multiple hours, depending on your system (and internet connection to clone the datasets repositories).
58
+
> Therefore, we offer a short verification (5-10 minutes) which runs the feasibility study on only four of the datasets (instead of all 44).
59
+
> You can run the short verification by providing "verification" as argument instead of "replication" (i.e., `.\execute.bat verification`, `./execute.sh verification`).
60
60
> If you want to stop the execution, you can call the provided script for stopping the container in a separate terminal.
61
61
> When restarted, the execution will continue processing by restarting at the last unfinished repository.
62
62
> #### Windows:
@@ -69,62 +69,38 @@ Further troubleshooting advice can be found at the bottom of this file.
69
69
70
70
The results of the verification will be stored in the top level [results](../../results) directory.
71
71
72
-
### Expected Output of the Verification
73
-
The aggregated results of the verification/replication can be found in the following files.
74
-
The example file content shown below should match your results when running the _verification_.
75
-
(Note that the links below only have a target _after_ running the replication or verification.)
76
-
77
-
- The [speed statistics](../../results/validation/current/speedstatistics.txt) contain information about the total runtime, median runtime, mean runtime, and more:
78
-
```
79
-
#Commits: 24701
80
-
Total commit process time is: 14.065916666666668min
81
-
Fastest commit process time is: d86e352859e797f6792d6013054435ae0538ef6d___xfig___0ms
82
-
Slowest commit process time is: 9838b7032ea9792bec21af424c53c07078636d21___xorg-server___7996ms
83
-
Median commit process time is: f77ffeb9b26f49ef66f77929848f2ac9486f1081___tcl___13ms
84
-
Average commit process time is: 34.166835350795516ms
85
-
```
86
-
- The [classification results](../../results/validation/current/ultimateresult.metadata.txt) contain information about how often each pattern was matched, and more.
edgeformat: org.variantsync.diffdetective.mining.formats.DirectedEdgeLabelFormat with org.variantsync.diffdetective.mining.formats.ReleaseMiningDiffNodeFormat
Moreover, the results comprise the (LaTeX) tables that are part of our paper and appendix.
124
-
The processing times might deviate because performance depends on your hardware.
125
-
126
-
### (Optional) Running DiffDetective on Custom Datasets
127
-
You can also run DiffDetective on other datasets by providing the path to the dataset file as first argument to the execution script:
72
+
### Expected Output of the Feasibility Study
73
+
The aggregated results of the study can be found in the `results/views` directory.
74
+
The results split into two subdirectories:
75
+
76
+
#### results/views/current
77
+
78
+
There should be a subdirectory for each repository, the feasibility study has been executed on.
79
+
The analysis processes the commits of each repository in batches of up to 1000 commits.
80
+
Each repository directory contains three files for each batch.
81
+
The three files are named by the hash of the first commit in the batch.
82
+
The files are:
83
+
84
+
-`<first commit hash>.metadata.txt`: contains various metadata on the analysis of this commit batch, such as the number of processed commits.
85
+
-`<first commit hash>.committimes.txt`: Contains the time in milliseconds each commit in the batch required to be analysed.
86
+
-`<first commit hash>.views.csv`: contains information on each generated view. This file contains the main results of our feasibility study.
87
+
88
+
Additionally, each repository directory also contains a `totalresult.metadata.txt` that is an aggregation of the `*.metadata.txt` files of each batch.
89
+
90
+
#### results/views/current_plots
91
+
92
+
The directory `results/views/current_plots` contains plots, latex tables, and aggregated results that we used to report
93
+
our results in the paper. The directory should contain the following files:
94
+
-`count.csv`: Lists how many views of each view type were generated.
95
+
-`hist.tex`: A latex table that reports the runtimes of the view-smart and view-naive algorithm. Table 1 in our paper is a slightly adapted variant of `hist.tex`.
96
+
-`median.tex`: A latex table that repots the median runtime for each view type per algorithm.
97
+
-`merged.csv`: An aggregation of all `*.views.csv` of all batches of all repositories within the `results/views/current` directory. This file thus lists the result data for each view we generated during the entire feasibility study.
98
+
-`rank.csv`: Lists the slowest view generations with the naive algorithm. This table allows us to inspect how the view-smart algorithm performs on the worst case candidates of the view-naive algorithm.
99
+
-`rel_speedup1sOrMore.csv`: Shows the relative speedups with the optimized algorithm view-smart relative to the naive algorithm view-naive for all views that required 1s or longer to generate with view-naive.
100
+
-`wilcoxon.csv`: Results of the Wilcoxon Signed-Rank Test for determining whether there is a statistically significant improvement in runtimes with the optimized algorithm view-smart.
101
+
102
+
### (Optional) Running the Feasibility Study on Custom Datasets
103
+
You can also run the feasibility study on other datasets by providing the path to the dataset file as first argument to the execution script:
This is the replication package for our paper _Views on Edits to Variational Software_ conditionally accepted at the 27th Systems and Software Product Line Conference (SPLC 2023).
10
10
11
11
This replication package consists of two parts:
12
12
13
13
1.**Feasibility Study**: We implemented our feasibility study in _DiffDetective_, a library and command-line tool for analysis of edits to preprocessor-based software product lines.
14
-
2.**Appendix**: The appendix of our paper is given in PDF format in the file [appendix.pdf][appendix].
14
+
2.**Appendix**: The appendix of our paper is given in PDF format in the file [../../appendix/appendix-splc23.pdf][appendix].
15
15
16
16
## Implementation of Views on Edits to Variational Software in DiffDetective
17
17
18
18
We implemented the generation of views and our experiment in DiffDetective.
19
19
In this section, we outline where our extensions can be found within DiffDetective's code base.
20
20
21
-
Our implementation of views as proposed in our paper can be found in the packages `org.variantsync.diffdetective.variation.tree.view` and `org.variantsync.diffdetective.variation.diff.view` for views on variation trees and diffs, respectively.
21
+
Our implementation of views as proposed in our paper can be found in the packages [org.variantsync.diffdetective.variation.tree.view](../../src/main/java/org/variantsync/diffdetective/variation/tree/view) and [org.variantsync.diffdetective.variation.diff.view](../../src/main/java/org/variantsync/diffdetective/variation/diff/view) for views on variation trees and diffs, respectively.
22
22
The algorithms _view-naive_ and _view-smart_ from the paper are implemented in the [DiffView](../../src/main/java/org/variantsync/diffdetective/variation/diff/view/DiffView.java) class.
23
23
24
-
The experiment is implemented in the package `org.variantsync.diffdetective.experiments.views`.
25
-
The experiment's entry point is the main method in the [Main](../../src/main/java/org/variantsync/diffdetective/experiments/views/Main.java) class for the experiment.
24
+
The experiment is implemented in the package [org.variantsync.diffdetective.experiments.views](../../src/main/java/org/variantsync/diffdetective/experiments/views).
25
+
The experiment's entry point is the main method in the [Main](../../src/main/java/org/variantsync/diffdetective/experiments/views/Main.java) class in that package.
26
26
27
27
We documented all relevant source code of our extensions with Javadoc.
28
28
The majority of DiffDetective's code base is documented, too.
@@ -32,7 +32,7 @@ The majority of DiffDetective's code base is documented, too.
32
32
Hardware and software requirements are documented in the [REQUIREMENTS.md](REQUIREMENTS.md) file.
33
33
Please make sure that you meet the specified software requirements (there are no specific hardware requirements).
34
34
35
-
We offer a [Docker](https://www.docker.com/) setup to easily __replicate__ the feasibility study performed in our paper.
36
-
Information for the Docker setup and replicating our experiments can be found in the [INSTALL](INSTALL.md) file, including detailed descriptions of each step and troubleshooting advice.
35
+
We offer a [Docker](https://www.docker.com/) setup to replicate the feasibility study performed in our paper.
36
+
Information for the Docker setup and replicating our experiments can be found in the [INSTALL.md](INSTALL.md) file, including detailed descriptions of each step and troubleshooting advice.
0 commit comments