Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3639478.3640046acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

(Neo4j)^ Browser: Visualizing Variable-Aware Analysis Results

Published: 23 May 2024 Publication History
  • Get Citation Alerts
  • Abstract

    A software product line (SPL) implements a family of related software 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 Neo4j Browser for visualizing and exploring the results of an SPL analysis. Neo4j Browser provides an interactive and customizable interface that allows the user to highlight results according to product variants of interest. Previous evaluations show that the 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 presenting its features is at https://youtu.be/CoweflQQFWU.

    References

    [1]
    Sven Apel and Dirk Beyer. 2011. Feature Cohesion in Software Product Lines: An Exploratory Study. In Proceedings of the ACM/IEEE International Conference on Software Engineering (ICSE'11). ACM, New York, NY, USA, 421--430.
    [2]
    Sven Apel, Christian Kästner, Armin Größlinger, and Christian Lengauer. 2010. Type Safety for Feature-Oriented Product Lines. Automated Software Engineering 17, 3 (2010), 251--300.
    [3]
    Ritu Arora and Sanjay Goel. 2019. JavaRelationshipGraphs (JRG) Transforming Java Projects into Graphs using Neo4j Graph Databases. In Proceedings of the International Conference on Software Engineering and Information Management (ICSIM'19). Association for Computing Machinery, New York, NY, USA, 80--84.
    [4]
    Mohsen Asadi, Samaneh Soltani, Dragan Gasévić, and Marek Hatala. 2016. The Effects of Visualization and Interaction Techniques on Feature Model Configuration. Empirical Software Engineering 21, 4 (2016), 1706--1743.
    [5]
    Shoham Ben-David, Baruch Sterin, Joanne M Atlee, and Sandy Beidu. 2015. Symbolic Model Checking of Product-Line Requirements Using SAT-Based Methods. In 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering (ICSE'15), Vol. 1. IEEE, IEEE, Florence, Italy, 189--199.
    [6]
    Chris Bennett, Del Myers, Margaret-Anne Storey, and Daniel German. 2007. Working with 'Monster' Traces: Building a Scalable, Usable, Sequence Viewer. In In Proceedings of the International Workshop on Program Comprehension Through Dynamic Analysis (PCODA'07). IEEE, Vancouver, Canada, 1--5.
    [7]
    Eric Bodden, Tarsis Tolédo, Márcio Ribeiro, Claus Brabrand, Paulo Borba, and Mira Mezini. 2013. SPLLIFT: Statically Analyzing Software Product Lines in Minutes Instead of Years. ACM SIGPLAN Notices (SIGPLAN'13) 48, 6 (06 2013), 355--364.
    [8]
    Krzysztof Borowski, Bartosz Balis, and Tomasz Orzechowski. 2022. Graph Buddy---an Interactive Code Dependency Browsing and Visualization Tool. In Proceedings of the Working Conference on Software Visualization (VISSOFT'22). IEEE, Limassol, Cyprus, 152--156.
    [9]
    Goetz Botterweck, Steffen Thiel, Daren Nestor, Saad bin Abid, and Ciarán Cawley. 2008. Visual Tool Support for Configuring and Understanding Software Product Lines. In Proceedings of the International Conference on Software Product Lines (SPLC'08. IEEE, Limerick, Ireland, 77--86.
    [10]
    Xiang Chen and Joanne M. Atlee. 2023. Variability-aware Neo4j for Analyzing a Graphical Model of a Software Product Line. In ACM/IEEE International Conference on Model Driven Engineering Languages and Systems MODELS'23. IEEE, Vasterás, Sweden, 307--318.
    [11]
    Andreas Classen, Patrick Heymans, Pierre-Yves Schobbens, Axel Legay, and Jean-François Raskin. 2010. Model Checking Lots of Systems: Efficient Verification of Temporal Properties in Software Product Lines. In Proceedings of the ACM/IEEE International Conference on Software Engineering (ICSE'10). Association for Computing Machinery, New York, NY, USA, 335--344.
    [12]
    Paul Clements and Linda Northrop. 2001. Software Product Lines: Practices and Patterns. Addison-Wesley Professional, Boston.
    [13]
    Krzysztof Czarnecki and Krzysztof Pietroszek. 2006. Verifying Feature-Based Model Templates against Well-Formedness OCL Constraints. In Proceedings of Generative Programming: Concepts and Experiences (GPCE'06). Association for Computing Machinery, New York, NY, USA, 211--220.
    [14]
    Peter Eades. 1984. A Heuristic for Graph Drawing. Congressus Numerantium 42 (1984), 149--160.
    [15]
    David Greenspan and Tom Coleman. 2023. Logic Solver. https://github.com/meteor/logic-solver. Accessed: 2023-10-24.
    [16]
    Florian Heidenreich, Ilie Şavga, and Christian Wende. 2008. On Controlled Visualisations in Software Product Line Engineering. In Proceedings of the International Workshop on Visualisation of Software Product Line Engineering (ViSPLE@SPLC '08). IEEE, Washington, DCUnited States, 335--341.
    [17]
    Christian Kästner, Sven Apel, Salvador Trujillo, Martin Kuhlemann, and Don Batory. 2009. Guaranteeing Syntactic Correctness for All Product Line Variants: A Language-Independent Approach. In Proceedings of the Interntional Confer-fence on Objects, Components, Models and Patterns (TOOLS'09)). Springer, Zurich, Switzerland, 175--194.
    [18]
    Christian Kästner, Paolo G Giarrusso, Tillmann Rendel, Sebastian Erdweg, Klaus Ostermann, and Thorsten Berger. 2011. Variability-Aware Parsing in the Presence of Lexical Macros and Conditional Compilation. In Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications (OOPSLA'11). Association for Computing Machinery, New York, NY, USA, 805--824.
    [19]
    Thomas D LaToza and Brad A Myers. 2011. Visualizing Call Graphs. In Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC'11). IEEE, Pittsburgh, PA, 117--124.
    [20]
    Kim Lauenroth, Klaus Pohl, and Simon Toehning. 2009. Model Checking of Domain Artifacts in Product Line Engineering. In Proceedings of the IEEE/ACM International Conference on Automated Software Engineering (ASE'09). IEEE, Auckland, New Zealand, 269--280.
    [21]
    Jörg Liebig, Alexander von Rhein, Christian Kästner, Sven Apel, Jens Dörre, and Christian Lengauer. 2013. Scalable Analysis of Variable Software. In Proceedings of the Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE'13). Association for Computing Machinery, New York, NY, USA, 81--91.
    [22]
    Felix Loesch and Erhard Ploedereder. 2007. Optimization of Variability in Software Product Lines. In Proceedings of International Conference on Software Product Lines (SPLC'07). IEEE, Kyoto, Japan, 151--162.
    [23]
    Roberto E Lopez-Herrejon and Don Batory. 2001. A Standard Problem for Evaluating Product-line Methodologies. In Proceedings of the International Symposium on Generative and Component-Based Software Engineering (GCSE'01). Springer, Berlin, Heidelberg, 10--24.
    [24]
    Jabier Martinez, Tewfik Ziadi, Raul Mazo, Tegawendé F Bissyandé, Jacques Klein, and Yves Le Traon. 2014. Feature Relations Graphs: A Visualisation Paradigm for Feature Constraints in Software Product Lines. In Proceedings of the IEEE Working Conference on Software Visualization (VISSOFT'14). IEEE, Victoria, BC, Canada, 50--59.
    [25]
    Jan Midtgaard, Aleksandar S Dimovski, Claus Brabrand, and Andrzej Wąsowski. 2015. Systematic Derivation of Correct Variability-Aware Program Analyses. Science of Computer Programming (SCP'15) 105 (07 2015), 145--170.
    [26]
    Bryan J. Muscedere, Robert Hackman, Davood Anbarnam, Joanne M. Atlee, Ian J. Davis, and Michael W. Godfrey. 2019. Detecting Feature-Interaction Symptoms in Automotive Software using Lightweight Analysis. In 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER). IEEE, Hangzhou, China, 175--185.
    [27]
    Neo4j. 2023. Neo4j Browser. https://neo4j.com/developer/neo4j-browser/. Accessed August, 2023.
    [28]
    Neo4j. 2023. Neo4j Database. https://neo4j.com/ Accessed July, 2023.
    [29]
    Zachary Patterson, Zenong Zhang, Brent Pappas, Shiyi Wei, and Paul Gazzillo. 2022. SugarC: scalable desugaring of real-world preprocessor usage into pure C. In Proceedings of the 44th International Conference on Software Engineering. Association for Computing Machinery, New York, NY, USA, 2056--2067.
    [30]
    Ramy Shahin and Marsha Chechik. 2020. Automatic and Efficient Variability-Aware Lifting of Functional Programs. Proceedings of the ACM on Programming Languages (PACMPL'20) 4, OOPSLA (11 2020), 1--27.
    [31]
    Ramy Shahin, Rafael Toledo, Robert Hackman, Joanne M Atlee, and Marsha Chechik. 2023. Applying Declarative Analysis to Industrial Automotive Software Product Line Models. Empirical Software Engineering 28, 2 (2023), 40.
    [32]
    Daniel Strüber, Anthony Anjorin, and Thorsten Berger. 2020. Variability Representations in Class Models: An Empirical Assessment. In Proceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems (Virtual Event, Canada) (MODELS '20). Association for Computing Machinery, New York, NY, USA, 240--251.
    [33]
    Rafael F. Toledo, Joanne M. Atlee, and Rui Ming Xiong. 2023. Comprehending Variability in Analysis Results of Software Product Lines. arXiv:2310.20042
    [34]
    James Yoo. 2022. Investigating Data-flow Reachability Questions. Master's thesis. University of British Columbia.

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ICSE-Companion '24: Proceedings of the 2024 IEEE/ACM 46th International Conference on Software Engineering: Companion Proceedings
    April 2024
    531 pages
    ISBN:9798400705021
    DOI:10.1145/3639478
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

    Sponsors

    In-Cooperation

    • Faculty of Engineering of University of Porto

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 23 May 2024

    Check for updates

    Author Tags

    1. variability-aware visualizer
    2. software product lines
    3. graphical software models
    4. Neo4j database

    Qualifiers

    • Research-article

    Funding Sources

    • NSERC Collaborative Research and Development Grant
    • NSERC Discovery Grant

    Conference

    ICSE-Companion '24
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 276 of 1,856 submissions, 15%

    Upcoming Conference

    ICSE 2025

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • 0
      Total Citations
    • 36
      Total Downloads
    • Downloads (Last 12 months)36
    • Downloads (Last 6 weeks)6
    Reflects downloads up to 27 Jul 2024

    Other Metrics

    Citations

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media