ICPC 2025
Sun 27 - Mon 28 April 2025 Ottawa, Ontario, Canada
co-located with ICSE 2025

Over the past decade, microservices have gained significant popularity, impacting how applications are designed and deployed. Maintaining a comprehensive high-level view of microservices applications is essential, especially for software evolution tasks, enabling developers to understand, maintain, and optimize the complex interactions across various services.

Developers struggle to obtain such an overview, particularly from a data perspective. Currently, when changes occur, they must identify data access code fragments dependent on the modified parts, or manually search through the entire codebase for potentially impacted ones. This process is time-consuming, error-prone, and cumbersome, especially in large codebases residing in multiple repositories and accessing multiple databases.

We present a novel approach to support code and data co-evolution comprehension. We mine data access fragments using a custom static analyzer and use interactive treemaps to generate a high-level view of the architecture, which can be explored at various levels of detail allowing, among the others, several and quick what-if analyses to assess the impact of changes (e.g., data concept modification, technology switch).

As a case study, we use Overleaf, a popular online LaTeX collaborative authoring platform, to evaluate our approach. We compared multiple versions and analyzed the evolution of 1.9k code fragments associated to more than 350 data concepts across 13 microservices, 855 directories, and 3.5k files mixing different data access technologies. We complement our analysis with insights and reflections on the promising approach.

Sun 27 Apr

Displayed time zone: Eastern Time (US & Canada) change

14:00 - 15:30
Education, Debugging, Dynamic AnalysisResearch Track / Early Research Achievements (ERA) / Replications and Negative Results (RENE) / Tool Demonstration at 205
Chair(s): Simone Scalabrino University of Molise, Coen De Roover Vrije Universiteit Brussel, Gema Rodríguez-Pérez Department of Computer Science, Mathematics, Physics and Statistics, University of British Columbia, Okanagan Campus
14:00
10m
Talk
JavaWiz: A Trace-Based Graphical Debugger for Software Development Education
Research Track
Markus Weninger JKU Linz, Simon Grünbacher Institute for System Software; Johannes Kepler University Linz, Austria, Herbert Prähofer Johannes Kepler University Linz
Pre-print
14:10
10m
Talk
Pinpointing the Learning Obstacles of an Interactive Theorem Prover
Research Track
Sára Juhošová Delft University of Technology, Andy Zaidman TU Delft, Jesper Cockx Delft University of Technology
Pre-print
14:20
10m
Talk
AI-based automated grading of source code of introductory programming assignments
Research Track
Jayant Havare Indian Institute of technology - Bombay, Varsha Apte Indian Institute of technology - Bombay, Kaushikraj Maharajan Indian Institute of technology - Bombay, Nithin Chandra Gupta Samudrala Indian Institute of technology - Bombay, Ganesh Ramakrishnan Indian Institute of technology - Bombay, Srikanth Tamilselvam IBM Research, Sainath Vavilapalli Indian Institute of Technology - Bombay
14:30
10m
Talk
An Analysis of Students' Program Comprehension Processes in a Large Code Base
Research Track
Anshul Shah University of California, San Diego, Thanh Tong University of California, San Diego, Elena Tomson University of California, San Diego, Steven Shi University of California, San Diego, William G. Griswold University of California San Diego, Gerald Soosairaj University of California, San Diego
14:40
6m
Talk
OVERLORD: A C++ overloading inspector
Tool Demonstration
Botond Horváth ELTE Eötvös Loránd University, Budapest, Hungary, Richárd Szalay Eötvös Loránd University, Faculty of Informatics, Department of Programming Languages and Compilers, Zoltán Porkoláb ELTE Eötvös Loránd University, Budapest, Hungary
Pre-print
14:46
6m
Talk
Optimizing Code Runtime Performance through Context-Aware Retrieval-Augmented Generation
Early Research Achievements (ERA)
Manish Acharya Vanderbilt University, Yifan Zhang Vanderbilt University, Kevin Leach Vanderbilt University, Yu Huang Vanderbilt University
14:52
6m
Talk
Investigating Execution-Aware Language Models for Code Optimization
Replications and Negative Results (RENE)
Federico Di Menna University of L'Aquila, Luca Traini University of L'Aquila, Gabriele Bavota Software Institute @ Università della Svizzera Italiana, Vittorio Cortellessa University of L'Aquila
Pre-print
14:58
6m
Talk
Understanding Data Access in Microservices Applications Using Interactive Treemaps
Early Research Achievements (ERA)
Maxime ANDRÉ Namur Digital Institute, University of Namur, Marco Raglianti Software Institute - USI, Lugano, Anthony Cleve University of Namur, Michele Lanza Software Institute - USI, Lugano
Pre-print
15:04
6m
Talk
Divergence-Driven Debugging: Understanding Behavioral Changes Between Two Program Versions
Early Research Achievements (ERA)
Rémi Dufloer Univ. Lille, Inria, CNRS, Centrale Lille, UMR 9189 CRIStAL, F-59000 Lille, France, Imen Sayar Univ. Lille, CNRS, Inria, Centrale Lille, UMR 9189 CRIStAL, F-59000 Lille, France, Anne Etien University of Lille, Lille, France, Steven Costiou INRIA Lille
15:10
10m
Talk
Effectively Modeling UI Transition Graphs for Android Apps via Reinforcement Learning
Research Track
Wunan Guo School of Optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology, Zhen Dong Fudan University, Liwei Shen Fudan University, Daihong Zhou School of Computer Science and Information Engineering, Shanghai Institute of Technology, Bin Hu Fudan University, Chen Zhang Fudan University, Hai Xue University of Shanghai for Science and Technology
15:20
10m
Live Q&A
Session's Discussion: "Education, Debugging, Dynamic Analysis"
Research Track

:
:
:
: