|
3 | 3 | # trace-boosting: Give an Inch and Take a Mile? Effects of Adding Reliable Knowledge to Heuristic Feature Tracing |
4 | 4 |
|
5 | 5 | ## Overview |
6 | | -This research artifact is based on the findings of our SPLC 2024 paper on boosting retroactive feature tracing techniques with proactive traces. |
7 | | -Our paper explores how providing a minimal seed of accurate feature traces proactively can significantly enhance the accuracy of automated, heuristic-based retroactive tracing. |
8 | | -The paper demonstrates that increasing amounts of proactive information can boost the overall accuracy of the tracing and that the number of variants compared affects the effectiveness of the combined tracing approach. |
| 6 | +This research artifact contains the boosted retroactive comparison-based feature tracing algorithm as presented in our [SPLC 2024 paper](). |
| 7 | +In the paper, we explore how minimal seeds of proactive feature traces enhance the accuracy of automated, heuristic-based retroactive tracing. |
| 8 | +Our results demonstrate that only small amounts of proactive feature information can boost the overall accuracy of the tracing and |
| 9 | +that the number of variants compared affects the effectiveness of the boosted tracing approach. |
9 | 10 |
|
10 | 11 | TraceBoosting is an algorithm designed to enhance retroactive feature tracing with proactively collected feature traces. |
11 | 12 | It is particularly useful for projects with multiple product variants, where it can improve the accuracy and efficiency of the tracing process. |
@@ -42,14 +43,17 @@ Add the following dependency to your `pom.xml` file: |
42 | 43 | ## Usage |
43 | 44 | To use the TraceBoosting algorithm, follow these steps: |
44 | 45 |
|
45 | | -1. Initialize a list to hold `ProductPassport` objects that describe the artifact locations for each variant. |
46 | | -2. Iterate over the collection of variants for which traces are to be computed, creating a `ProductPassport` for each and adding it to the list. |
47 | | -3. Instantiate the TraceBoosting algorithm with the product passports, working directory, and the supported language for tracing. |
48 | | -4. Retrieve the list of products from the TraceBoosting instance. |
49 | | -5. Apply the proactively collected traces to the products by settings the mappings for the products' AST nodes. |
50 | | -6. Compute the Main tree, which represents the merged variant AST with feature traces. |
51 | | - |
52 | | -Here is a code snippet demonstrating how to use the TraceBoosting algorithm: |
| 46 | +1. Initialize an empty list to hold `ProductPassport` objects that comprise the artifact locations for each variant. |
| 47 | +2. Iterate the collection of variants for which traces are to be computed, create a `ProductPassport` for each variant and add it to the list. |
| 48 | +3. Instantiate the TraceBoosting algorithm with |
| 49 | + - the list of product passports, |
| 50 | + - the working directory, and |
| 51 | + - the 'language' used for parsing in the tracing algorithm (e.g. a generic, line-based parsing of lines into artifact nodes). |
| 52 | +4. Retrieve the list of products from the TraceBoosting instance, which are abstracted as AST structures. |
| 53 | +5. Apply the proactively collected feature traces to the products by settings the mappings for the respective nodes in the products' AST. |
| 54 | +6. Compute the Main tree, which represents the AST with feature traces, resulting from merging the products. |
| 55 | + |
| 56 | +The following code snippet demonstrates how to use the TraceBoosting algorithm: |
53 | 57 |
|
54 | 58 | ```java |
55 | 59 | List<ProductPassport> productPassports = new ArrayList<>(); |
|
0 commit comments