Skip to content

Commit b084349

Browse files
committed
updated README.md and INSTALL.md for splc23-views
1 parent 7681c06 commit b084349

2 files changed

Lines changed: 44 additions & 68 deletions

File tree

replication/splc23-views/INSTALL.md

Lines changed: 35 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,9 @@ To execute the replication you can run the `execute` script corresponding to you
5454
`./execute.sh replication`
5555

5656
> 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`).
6060
> If you want to stop the execution, you can call the provided script for stopping the container in a separate terminal.
6161
> When restarted, the execution will continue processing by restarting at the last unfinished repository.
6262
> #### Windows:
@@ -69,62 +69,38 @@ Further troubleshooting advice can be found at the bottom of this file.
6969

7070
The results of the verification will be stored in the top level [results](../../results) directory.
7171

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.
87-
```
88-
repository: <NONE>
89-
total commits: 42323
90-
filtered commits: 7425
91-
failed commits: 0
92-
empty commits: 10197
93-
processed commits: 24701
94-
tree diffs: 80751
95-
fastestCommit: 518e205b06d0dc7a0cd35fbc2c6a4376f2959020___xorg-server___0ms
96-
slowestCommit: 9838b7032ea9792bec21af424c53c07078636d21___xorg-server___7996ms
97-
runtime in seconds: 853.9739999999999
98-
runtime with multithreading in seconds: 144.549
99-
treeformat: org.variantsync.diffdetective.variation.diff.serialize.treeformat.CommitDiffDiffTreeLabelFormat
100-
nodeformat: org.variantsync.diffdetective.mining.formats.ReleaseMiningDiffNodeFormat
101-
edgeformat: org.variantsync.diffdetective.mining.formats.DirectedEdgeLabelFormat with org.variantsync.diffdetective.mining.formats.ReleaseMiningDiffNodeFormat
102-
analysis: org.variantsync.diffdetective.validation.PatternValidationTask
103-
#NON nodes: 0
104-
#ADD nodes: 0
105-
#REM nodes: 0
106-
filtered because not (is not empty): 212
107-
AddToPC: { total = 443451; commits = 22470 }
108-
AddWithMapping: { total = 51036; commits = 2971 }
109-
RemFromPC: { total = 406809; commits = 21384 }
110-
RemWithMapping: { total = 36622; commits = 2373 }
111-
Specialization: { total = 7949; commits = 1251 }
112-
Generalization: { total = 11057; commits = 955 }
113-
Reconfiguration: { total = 3186; commits = 381 }
114-
Refactoring: { total = 4862; commits = 504 }
115-
Untouched: { total = 0; commits = 0 }
116-
#Error[conditional macro without expression]: 2
117-
#Error[#else after #else]: 2
118-
#Error[#else or #elif without #if]: 11
119-
#Error[#endif without #if]: 12
120-
#Error[not all annotations closed]: 8
121-
```
122-
123-
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:
128104

129105
#### Windows:
130106
`.\execute.bat path\to\custom\dataset.md`

replication/splc23-views/README.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,28 @@
1+
# Views on Edits to Variational Software
2+
13
[//]: # (![Maven]&#40;https://github.com/VariantSync/DiffDetective/actions/workflows/maven.yml/badge.svg&#41;)
24
[//]: # ([![Documentation]&#40;https://img.shields.io/badge/Documentation-Read-purple&#41;][documentation])
5+
[//]: # ([![DOI]&#40;https://zenodo.org/badge/DOI/10.5281/zenodo.7110095.svg&#41;]&#40;https://doi.org/10.5281/zenodo.7110095&#41;)
36
[![Install](https://img.shields.io/badge/Install-Instructions-blue)](INSTALL.md)
47
[![License](https://img.shields.io/badge/License-GNU%20LGPLv3-blue)](../../LICENSE.LGPL3)
5-
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.7110095.svg)](https://doi.org/10.5281/zenodo.7110095)
6-
7-
# Views on Edits to Variational Software
88

99
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).
1010

1111
This replication package consists of two parts:
1212

1313
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].
1515

1616
## Implementation of Views on Edits to Variational Software in DiffDetective
1717

1818
We implemented the generation of views and our experiment in DiffDetective.
1919
In this section, we outline where our extensions can be found within DiffDetective's code base.
2020

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

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

2727
We documented all relevant source code of our extensions with Javadoc.
2828
The majority of DiffDetective's code base is documented, too.
@@ -32,7 +32,7 @@ The majority of DiffDetective's code base is documented, too.
3232
Hardware and software requirements are documented in the [REQUIREMENTS.md](REQUIREMENTS.md) file.
3333
Please make sure that you meet the specified software requirements (there are no specific hardware requirements).
3434

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

3838
[appendix]: ../../appendix/appendix-splc23.pdf

0 commit comments

Comments
 (0)