Benoit Combemale’s research while affiliated with University of Rennes and other places

What is this page?


This page lists works of an author who doesn't have a ResearchGate profile or hasn't added the works to their profile yet. It is automatically generated from public (personal) data to further our legitimate goal of comprehensive and accurate scientific recordkeeping. If you are this author and want this page removed, please let us know.

Publications (239)


Modeling and Digital Twins: Insights and Strategies for Software Engineers
  • Article

March 2025

·

6 Reads

IEEE Software

·

·

Judith Michael

·

[...]

·

Marsha Chechik

Software modeling and digital twins are transforming the way software engineers design, operate, and maintain complex systems. In this column, we highlight cutting-edge research presented at the ACM/IEEE 27th International Conference on Model-Driven Engineering Languages and Systems (MODELS 2024) and the 1st International Conference on Engineering Digital Twins (EDTconf 2024). The selected papers tackle critical challenges in improving system understanding, enhancing stakeholder communication, streamlining design and development processes, optimizing lifecycles, and enabling seamless integration of complex systems.


Figure 7 A debug session on a toy program in our VSCode extension
Figure 8 Benchmarks results, with data scaled as a percent of the slowest and fastest single-language runs Figure 9 Execution time of the stress test depending on amount of loop iterations
SLOC spread for our implementation of the architecture
PolyDebug: A Framework for Polyglot Debugging
  • Preprint
  • File available

February 2025

·

24 Reads

As software grows increasingly complex, the quantity and diversity of concerns to be addressed also rises. To answer this diversity of concerns, developers may end up using multiple programming languages in a single software project, a practice known as polyglot programming. This practice has gained momentum with the rise of execution platforms capable of supporting polyglot systems. However, despite this momentum, there is a notable lack of development tooling support for developers working on polyglot programs, such as in debugging facilities. Not all polyglot execution platforms provide debugging capabilities, and for those that do, implementing support for new languages can be costly. This paper addresses this gap by introducing a novel debugger framework that is language-agnostic yet leverages existing language-specific debuggers. The proposed framework is dynamically extensible to accommodate the evolving combination of languages used in polyglot software development. It utilizes the Debug Adapter Protocol (DAP) to integrate and coordinate existing debuggers within a debugging session. We found that using our approach, we were able to implement polyglot debugging support for three different languages with little development effort. We also found that our debugger did not introduce an overhead significant enough to hinder debugging tasks in many scenarios; however performance did deteriorate with the amount of polyglot calls, making the approach not suitable for every polyglot program structure. The effectiveness of this approach is demonstrated through the development of a prototype, PolyDebug, and its application to use cases involving C, JavaScript, and Python. We evaluated PolyDebug on a dataset of traditional benchmark programs, modified to fit our criteria of polyglot programs. We also assessed the development effort by measuring the source lines of code (SLOC) for the prototype as a whole as well as its components. Debugging is a fundamental part of developing and maintaining software. Lack of debug tools can lead to difficulty in locating software bugs and slow down the development process. We believe this work is relevant to help provide developers proper debugging support regardless of the runtime environment.

Download




Figure 1. Global workflow of HydroModPy displaying the organization and the name of the Python files for handling 5 major stages of the toolbox.
Figure 2. HydroModPy modeling steps illustrated on the site of Nançon. (a) Extraction of the watershed from a regional DEM. (b) 210
Figure 3. Workflow and results for the estimation of hydraulic conductivity K and specific yield Sy for 32 catchments (a) The best 290
Figure 4. Evolution of the computation time in steady-and transient-state (3 years with a monthly time-step) with the catchment area 310
Figure 5. Worldwide application sites of HydroModPy. Simplified Global groundwater resources map modified from Taylor et al., 2013, initially obtained from Struckmeier et al., 2008. Catchments are grouped into three main application fields: water resources management, understanding processes and tool development. HydroModPy being primarily focused on subsurface/surface 375
HydroModPy: A Python toolbox for deploying catchment-scale shallow groundwater models

January 2025

·

537 Reads

In response to the growing demand for groundwater flow models, we present HydroModPy, an open-source toolbox designed to automate their deployment at the catchment scale. Built on top of the MODFLOW-enabling FloPy library, HydroModPy combines the robust WhiteboxTools toolbox for geospatial analysis and the well-validated MODFLOW code for groundwater modeling. This Python-based toolbox streamlines the construction, calibration, and analysis of unconfined aquifer models while adhering to FAIR (Findable, Accessible, Interoperable, and Reusable) principles. It enhances model reproducibility through editable Python code, supports multi-site deployment, and provides compatibility with alternative groundwater flow solvers. Furthermore, it integrates pre- and post-processing functionalities to simplify workflows. The toolbox enables catchment delineation and hydrological feature extraction from DEMs, followed by semi-automatic model construction and advanced visualization of hydraulic head and flow results. Users can choose from predefined aquifer structures and hydraulic properties such as exponential decay of hydraulic conductivity and porosity with depth or import complex 3D geological models. HydroModPy outputs can be exported in standard formats (e.g., raster, shapefile, netCDF), including water table elevation, water table depth, groundwater storage, groundwater-dependent hydrographic network and streamflow rates, and subsurface residence times. HydroModPy is tailored for the deployment in diverse geomorphological and hydrological settings, enabling the testing and exploration of aquifer models under varying recharge conditions. Its deployment capabilities are demonstrated in complex shallow basement and crystalline aquifers, where topography and geology primarily govern groundwater flow dynamics from hillslope to catchment scales. As an open-source toolbox, HydroModPy is designed for the community and actively encourages contributions from its users. It supports research in hydro(geo)logy and land and water management, while also providing valuable opportunities for teaching and education.




Software Frugality in an Accelerating World: the Case of Continuous Integration

October 2024

·

41 Reads

The acceleration of software development and delivery requires rigorous continuous testing and deployment of software systems, which are being deployed in increasingly diverse, complex, and dynamic environments. In recent years, the popularization of DevOps and integrated software forges like GitLab and GitHub has largely democratized Continuous Integration (CI) practices for a growing number of software. However, this trend intersects significantly with global energy consumption concerns and the growing demand for frugality in the Information and Communication Technology (ICT) sector. CI pipelines typically run in data centers which contribute significantly to the environmental footprint of ICT, yet there is little information available regarding their environmental impact. This article aims to bridge this gap by conducting the first large-scale analysis of the energy footprint of CI pipelines implemented with GitHub Actions and to provide a first overview of the energy impact of CI. We collect, instrument, and reproduce 838 workflows from 396 Java repositories hosted on GitHub to measure their energy consumption. We observe that the average unitary energy cost of a pipeline is relatively low, at 10 Wh. However, due to repeated invocations of these pipelines in real settings, the aggregated energy consumption cost per project is high, averaging 22 kWh. When evaluating CO2 emissions based on regional Wh-to-CO2 estimates, we observe that the average aggregated CO2 emissions are significant, averaging 10.5 kg. To put this into perspective, this is akin to the emissions produced by driving approximately 100 kilometers in a typical European car (110 gCO2/km). In light of our results, we advocate that developers should have the means to better anticipate and reflect on the environmental consequences of their CI choices when implementing DevOps practices.



Citations (54)


... Building on the concepts of its predecessor, Sirius Web [15] transitions to a native web environment, using React to deliver a modern interface. It introduces collaborative modeling features and supports various representation types, including diagrams, forms, and Gantt charts. ...

Reference:

Modeling in Jjodel: Bridging Complexity and Usability in Model-Driven Engineering
Sirius Web: Insights in Language Workbenches – An Experience Report.
  • Citing Article
  • January 2024

The Journal of Object Technology

... Throughout the BUMBLE project, as we developed these initial contributions and further explored related work while drafting this paper, we identified a general consensus on MDE terminology and methodologies for realizing (blended) modeling environments. This aligns with recent reflections on MDE conceptual foundations, such as the SoSyM editorial by Combemale et al. [12], which revisits Stachowiak's definitions [49]. However, we found a notable gap: Whereas MDE terminology and methodologies are widely discussed, they are not yet condensed or standardized across the MDE community (as highlighted by the ongoing discourse on the MBEBOK [7]). ...

How does your model represent the system? A note on model fidelity, underspecification, and uncertainty

Software and Systems Modeling

... Developers can decide to mix any programming language, and our approach can provide debugging support by leveraging DAP-compliant debuggers. Polyglot platforms can provide both execution flow and data flow constructs [11]. While our approach can in theory support both of these, this paper focuses mostly on supporting execution flow during a debug session. ...

On Polyglot Program Testing
  • Citing Conference Paper
  • July 2024

... A plethora of programming languages exist today to support the increasingly complex software engineering needs across diverse domains. The activity of writing code using multiple programming languages in conjunction has been defined as polyglot programming [3,4,7,10,20,32]. ...

Polyglot Software Development: Wait, What?

IEEE Software

... Recently [23] proposed to combine the modeling of both epistemic and aleatory uncertainties to help find optimal solutions while implementing Program Development Plans (PDPs) at Airbus. That boils down to combine the idea of SPL with explicit random variables modeling of lead times in BPMN. ...

Experience in Specializing a Generic Realization Language for SPL Engineering at Airbus
  • Citing Conference Paper
  • October 2023

... Moreover, the application of MDE approaches has many advantages such as increasing the development speed, better maintainability, reusability and interoperability [91]. Examples for the application of MDE for digital twin engineering are, e.g., supporting the connection from DTs to IoT systems [52], methods for the evolution of DTs [24], or integrating (model-based) DevOps principles with DT engineering [21,46]. In addition, MDE could support the reengineering and re-modeling of digital twins, e.g., when systems already exist and the physical reality has to be reflected in the DT. ...

Model-Based DevOps: Foundations and Challenges

... A plethora of programming languages exist today to support the increasingly complex software engineering needs across diverse domains. The activity of writing code using multiple programming languages in conjunction has been defined as polyglot programming [3,4,7,10,20,32]. ...

Polyglot AST: Towards Enabling Polyglot Code Analysis
  • Citing Conference Paper
  • June 2023

... Next, a series of experiments were designed and conducted on 40 students' UML modeling reports to explore the performance of ChatGPT in evaluating UML diagrams with the proposed evaluation criteria. The results show that (1) ChatGPT performed well in this assessing task because the scores that ChatGPT gives to the UML models are similar to the ones by human experts, and (2) there are three evaluation discrepancies between ChatGPT and human experts, but varying in different evaluation criteria used in different types of UML models. ...

Large language models as an “operating” system for software and systems modeling

Software and Systems Modeling

... In modeling, RSEs help domain experts work with the complex software they develop. They play a translational role between domain-specific expertise and software-specific tasks, such as data processing, model simulation, and software testing [51]. Thus, the RSE both applies their skills in software engineering, and comes to learn some of the intricacies of the domains with which they engage. ...

Research software engineering and the importance of scientific models

Software and Systems Modeling

... We chose to study GitHub Copilot specifically for three reasons: (i) it is the most used code assistant according to the 2023 StackOverflow developer survey, 1 (ii) the inference server provided by GitHub Copilot exhibits low latency and correct quality [6], which we may not be able to reproduce with our own inference server, and (iii) GitHub Copilot provides many mechanisms making it one of the state-of-the-art code assistant, such as preventing some generations requests that may not be useful, caching the results of the previous generations requests, canceling the previous request when a new one is sent, and building of prompts that take into accounts multiple files. We are aware of the existence of these mechanisms thanks to the Copilot Explorer project [7], while evidence of similar mechanisms in other code assistants is unclear, and verification is time-consuming. ...

Piloting Copilot and Codex: Hot Temperature, Cold Prompts, or Black Magic?
  • Citing Preprint
  • January 2023