Variability-aware Neo4j for Analyzing a Graphical Model of a Software Product Line
Abstrak
Comprehensive analysis of a software product line (SPL) is expensive because the number of products to be analyzed is exponential in the number of the SPL’s features. To compensate, we analyze a model of the SPL rather than the source code, thereby reducing the size of the artifact under analysis. In this paper, we facilitate SPL analysis by lifting the Neo4j query engine to apply to an SPL model, so that a Neo4j query returns variability-aware results that cover all the SPL’s products. We used the lifted Neo4j to analyze five nontrivial SPLs (with respect to dataflows, control-flows, component interactions, etc.) and found that the overhead for returning variability-aware results for the full SPL, versus the results for just one product, ranges from 1.88% to 456%. In comparison to related work V-Soufflé (a lifted Datalog engine), lifted Neo4j is able to report complete path results whereas V-Soufflé reports only endpoints of paths. When both analyzers report the same results (e.g., endpoints of paths), lifted Neo4j is usually more efficient.
Artikel Ilmiah Terkait
Rafael F. Toledo Mingyu Liu Rui Ming Xiong + 1 lainnya
14 April 2024
A software product line (SPL) implements a family of related soft-ware products. As such, analyzing a software produce line produces variable results that apply to some SPL variants and not to others. Typically, such results are annotated with presence conditions, which are logical expressions that represent the product variants to which the results apply. When analyzing large SPLs, these expressions that annotate results can become overwhelmingly large and difficult to reason about. In this paper, we present $\widehat{Neo4j}$ Browser for visualizing and exploring the results of an SPL analysis. $\widehat{Neo4j}$ Browser provides an interactive and customiz-able interface that allows the user to highlight results according to product variants of interest. Previous evaluations show that the $\widehat{Neo4j}$ Browser improves the correctness and efficiency of the user's work and reduces the user's cognitive load in working with variable results. The tool can be downloaded at https://vault.cs.uwaterloo.ca/s/Rqy2f56PeC6s4XD, and a demo video pre-senting its features is at https://youtu.be/CoweflQQFWU.
Jamil Saquer Hazim Shatnawi
18 April 2024
This study introduces an innovative approach to encoding and analyzing feature models within the Network Exploration and Optimization for Java (Neo4j) graph database, significantly enhancing the management of complex Software Product Lines (SPLs). We present a comparative analysis of traditional loading techniques against Neo4j's batch importer and the Awesome Procedures on Cypher (APOC) library, demonstrating the superior efficiency and effectiveness of our proposed methods, especially in handling large datasets. Our methodology extends beyond mere encoding; it capitalizes on Neo4j's Graph Data Science (GDS) library, employing Depth-First Search (DFS) and other advanced traversal techniques to navigate and manipulate these complex structures. The findings reveal not only a significant enhancement in the processing and analysis of feature models but also underscore the potential for more sophisticated SPL management strategies. By integrating innovative loading techniques, encoding strategies, and GDS traversal methods, this study lays a robust foundation for future advancements in the field.
Jamil Saquer Hazim Shatnawi
20 Desember 2024
This paper presents a benchmark study of Breadth-First Search (BFS) and Depth-First Search (DFS) traversal algorithms applied to complex Directed Acyclic Graphs (DAGs) within Neo4j, utilizing the Graph Data Science (GDS) and Awesome Procedures on Cypher (APOC) libraries. DAGs are widely used in fields like data science, project management, software engineering, and bioinformatics to manage dependencies without cycles. Our experiments evaluate the performance of GDS and APOC on DAGs generated from Feature Models representing dependencies in Software Product Lines (SPL). Results indicate that GDS consistently outperforms APOC, particularly for large and intricate graph structures. These findings highlight the importance of optimized traversal techniques for managing complex DAGs efficiently, offering insights into scalability and performance improvements for real-world applications.
Rui Ming Xiong Rafael F. Toledo J. Atlee
6 Oktober 2024
Analyses of a software product line (SPL) model typically report variable results annotated with logical expressions to indicate the set of products for which each result holds. These expressions can be complicated and difficult to reason about when the SPL has lots of features and derivable products. In previous work, we introduced Neo4j Browser, a visualizer for graphical analysis results that highlights the results that apply to specific products. In this paper, we report on a controlled user study that evaluates the visualizer's effectiveness in helping the user (1) understand variable analysis results and (2) compare the analysis results of multiple products. Our findings suggest significant improvements in efficiency (30%), and correctness (22%), and significant reductions in cognitive load (42%).
J. Horcas J. Galindo David Benavides
12 September 2022
Data visualization aims to effectively communicate quantitative information by understanding which techniques and displays work better for different circumstances and why. There are a variety of software solutions capable of generating a multitude of different visualizations of the same dataset. However, data visualization exposes a large space of visual configurations depending on the type of data to be visualized, the different displays (e.g., scatter plots, line graphs, pie charts), the visual components to encode the data (e.g., lines, dots, bars), or the specific visual attributes of those components (e.g., color, shape, size, length). Researchers and developers are not usually aware about best practices in data visualization, and they are required to learn about both the design practices that make communication effective and the low level details of the specific software tool used to generate the visualization. This paper proposes a software product line approach to model and materialize the variability of the visualization design process, guided by feature models. We encode the visualization knowledge regarding the best design practices, resolve the variability following a step-wise configuration approach, and then evaluate our proposal for a specific software visualization tool. Our solution helps researchers and developers communicate their quantitative results effectively by assisting them in the selection and generation of the visualizations that work best for each case. We open a new window of research where data visualization and variability meet each other.
Daftar Referensi
0 referensiTidak ada referensi ditemukan.
Artikel yang Mensitasi
0 sitasiTidak ada artikel yang mensitasi.