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
- simplify maven dependencies to FeatureIDE, Sat4j, and Functjonal?
7
10
## end todos
8
11
9
-
VEVOS is a tool suite for the simulation of the evolution of clone-and-own projects.
10
-
VEVOS has two main components: The ground truth extraction, called VEVOS_Extraction and the variant generation called VEVOS_Generation.
12
+
VEVOS is a tool suite for the simulation of the evolution of clone-and-own projects and consists of two main components: The ground truth extraction, called VEVOS_Extraction and the variant generation called VEVOS_Generation.
11
13
12
14
This repository contains VEVOS_Generation and thus the second part of the replication package for the paper _Simulating the Evolution of Clone-and-Own Projects with VEVOS_ submitted to the International Conference on Evaluation and Assessment in Software Engineering (EASE) 2022.
13
15
VEVOS_Generation is a java library for generating variants with ground truth from an input software product line and dataset extracted with VEVOS_Extraction.
@@ -24,7 +26,13 @@ In the following we give a step by step example in how the library can be used t
24
26
The examples source code can also be found in [GenerationExample.java](src/main/java/vevos/examples/GenerationExample.java).
25
27
We also give a brief introduction of the key features of the library we use in the following example.
26
28
27
-
We start by specifying the necessary paths to (1) the git repository of the input software product line, (2) the directory of the extracted ground truth dataset, (3) and a directory to which we want to generate variants. (We use case sensitive paths to also allow the generation of Linux variants under Windows).
29
+
At the very begin of your program, you have to initialize the library:
30
+
```java
31
+
VEVOS.Initialize();
32
+
```
33
+
This initializes the libraries logging and binding to FeatureIDE.
34
+
35
+
We can then start by specifying the necessary paths to (1) the git repository of the input software product line, (2) the directory of the extracted ground truth dataset, (3) and a directory to which we want to generate variants. (We use case sensitive paths to also allow the generation of Linux variants under Windows).
@@ -154,6 +162,25 @@ In contrast, the suffix is `.spl.csv` for ground truth presence conditions of th
154
162
```
155
163
This was round-trip about the major features of VEVOS_Generation. Further features and convencience methods can be found in our documentation.
156
164
165
+
## ProjectStructure
166
+
167
+
The project is structured into the following packages:
168
+
- `vevos.examples` contains the code of our example described above
169
+
- `vevos.feature` contains our representation for `Variant`s and their `Configuration`s as well as sampling of configurations and variants
170
+
- `vevos.io` contains our `Resources` service and default implementations for loading `CSV` files, ground truth, feature models, and configurations
171
+
- `vevos.repository` contains classes for representing git repositories and commits
172
+
- `vevos.sat` contains an interfacefor SAT solving (currently only used for annotation simplification on demand)
173
+
- `vevos.util` is the conventional utils package with helper methods for interfacing with FeatureIDE, name generation, logging, and others.
174
+
- `vevos.variability` contains the classes for representing evolution histories and the ground truth dataset.
175
+
The package is divided into:
176
+
- `vevos.variability.pc` contains classes for representing , and annotations (i.e., presence conditions and feature mappings). We store annotations in `Artefact`s that follow a tree structure similar to the annotations in preprocessor based software product lines.
177
+
- `vevos.variability.pc.groundtruth` contains datatypes for the ground truth of generated variants
178
+
- `vevos.variability.pc.options` contains the options for the variant generation process
179
+
- `vevos.variability.pc.visitor` contains an implementation of the visitor pattern for traversing and inspecting `ArtefactTree`s. Some visitors for querying a files or a line's presence condition, as well as a pretty printer can be found in `vevos.variability.pc.visitor.common`.
180
+
- `vevos.variability.sequenceextraction` contains default implementation for `SequenceExtractor`. These are algorithms for sorting pairs of commits into continuous histories (see example above).
181
+
182
+
- ``
183
+
157
184
## Setup
158
185
159
186
VEVOS_Generation is a Java 16 library and Maven project.
0 commit comments