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

Identification of Variability Implementations in TypeScript: the 2Cities Visualization

Published: 02 September 2024 Publication History

Abstract

When variability is directly implemented in a single codebase with languages supporting many different mechanisms, its identification and comprehension are impeded by the absence of documentation, their scattered locations, and obviously, their diversity. This is typically the case with TypeScript in which variability can be implemented with Object-Oriented (OO) mechanisms, and design patterns, but also with dynamic loading of files. This latter mechanism allows for organizing internal variants of part of code in directories and files, usually containing code clones of different forms. In this paper, we demonstrate 2Cities, a dedicated visualization based on the city metaphor to highlight variability implementations in a single TypeScript codebase. We introduce the detection toolchain that gathers all the necessary information and variability metrics. Then we detail the visualization mechanisms that use two dedicated cities whose relations also highlight the architecture of the implementation. The first one, ObjectCity, adapts the VariCity visualization with classes as buildings shaped by their variability and usage relationships as streets. The second one, CloneCity, visualizes the directory hierarchy as streets and files as circular districts with different colors to point out duplication and cylindrical shades to highlight clones obtained from a code clone detection phase.

References

[1]
Yann Brault, Philippe Collet, and Anne-Marie Dery-Pinna. 2024. Visualizing Variability Implemented with Object-Orientation and Code Clones: A Tale of Two Citie. In Proceedings of the 28th International Systems and Software Product Line Conference - Volume A (Luxemburg) (SPLC ’24).
[2]
Muhammad Hammad, Hamid Abdul Basit, Stan Jarzabek, and Rainer Koschke. 2020. A systematic mapping study of clone visualization. Computer Science Review 37 (2020), 100266. https://doi.org/10.1016/j.cosrev.2020.100266
[3]
Ivar Jacobson, Martin Griss, and Patrik Jonsson. 1997. Software reuse: architecture process and organization for business success. Vol. 285. acm Press New York.
[4]
Rainer Koschke and Marcel Steinbeck. 2021. SEE Your Clones With Your Teammates. In 2021 IEEE 15th International Workshop on Software Clones (IWSC). 15–21. https://doi.org/10.1109/IWSC53727.2021.00009
[5]
Johann Mortara, Philippe Collet, and Anne-Marie Dery-Pinna. 2024. Visualization of object-oriented software in a city metaphor: Comprehending the implemented variability and its technical debt. J. Syst. Softw. 208 (2024), 111876. https://doi.org/10.1016/J.JSS.2023.111876
[6]
Johann Mortara, Philippe Collet, and Anne-Marie Dery-Pinna. 2021. Visualization of Object-Oriented Variability Implementations as Cities. In 2021 Working Conference on Software Visualization (VISSOFT). Luxembourg (virtual), Luxembourg, 76–87.
[7]
Johann Mortara, Philippe Collet, and Anne-Marie Dery-Pinna. 2022. Customizable Visualization of Quality Metrics for Object-Oriented Variability Implementations. In Proceedings of the 26th ACM International Systems and Software Product Line Conference - Volume A (Graz, Austria) (SPLC ’22). Association for Computing Machinery, New York, NY, USA, 43–54.
[8]
Chanchal Kumar Roy and James R Cordy. 2007. A survey on software clone detection research. Queen’s School of Computing TR 541, 115 (2007), 64–68.
[9]
Yuichi Semura, Norihiro Yoshida, Eunjong Choi, and Katsuro Inoue. 2018. Multilingual Detection of Code Clones Using ANTLR Grammar Definitions. In 2018 25th Asia-Pacific Software Engineering Conference (APSEC). 673–677. https://doi.org/10.1109/APSEC.2018.00088
[10]
Xhevahire Tërnava, Johann Mortara, and Philippe Collet. 2019. Identifying and Visualizing Variability in Object-Oriented Variability-Rich Systems. In Proceedings of the 23rd International Systems and Software Product Line Conference - Volume A (Paris, France) (SPLC ’19). Association for Computing Machinery, New York, NY, USA, 231–243.
[11]
Xhevahire Tërnava, Johann Mortara, Philippe Collet, and Daniel Le Berre. 2022. Identification and visualization of variability implementations in object-oriented variability-rich systems: a symmetry-based approach. Journal of Automated Software Engineering 29 (Feb. 2022), 1–51.
[12]
Xhevahire Tërnava and Philippe Collet. 2017. On the Diversity of Capturing Variability at the Implementation Level. In Proceedings of the 21st International Systems and Software Product Line Conference - Volume B(SPLC ’17). ACM, 81–88.
[13]
Xhevahire Tërnava and Philippe Collet. 2017. Tracing Imperfectly Modular Variability in Software Product Line Implementation. In International Conference on Software Reuse(ICSR ’17). Springer, 112–120.
[14]
Richard Wettel and Michele Lanza. 2007. Visualizing software systems as cities. In 2007 4th IEEE International Workshop on Visualizing Software for Understanding and Analysis. IEEE, 92–99.
[15]
Wenqing Zhu, Norihiro Yoshida, Toshihiro Kamiya, Eunjong Choi, and Hiroaki Takada. 2022. MSCCD: grammar pluggable clone detection based on ANTLR parser generation. In Proceedings of the 30th IEEE/ACM International Conference on Program Comprehension (Virtual Event) (ICPC ’22). Association for Computing Machinery, New York, NY, USA, 460–470. https://doi.org/10.1145/3524610.3529161

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SPLC '24: Proceedings of the 28th ACM International Systems and Software Product Line Conference
September 2024
103 pages
Publication rights licensed to ACM. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of a national government. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government purposes only.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 02 September 2024

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. clone detection
  2. code clones
  3. reverse-engineering
  4. software variability
  5. software visualization

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

SPLC '24
Sponsor:

Acceptance Rates

Overall Acceptance Rate 167 of 463 submissions, 36%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 35
    Total Downloads
  • Downloads (Last 12 months)35
  • Downloads (Last 6 weeks)2
Reflects downloads up to 07 Mar 2025

Other Metrics

Citations

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media