As any PC user knows, installing a new version of a program means exposing it to bugs. This is also true for software known as “legacy” software used to manage a factory’s production, a bank’s financial flows or a multinational’s staff. Bugs in this sort of software could have a disastrous effect on production, sales, payroll etc. And yet, these software programs must be updated if they are often poorly documented.
Millions of lines of code to analyze
Anne Etien, a researcher in Inria’s RMoD team, is working on this topic using abstraction and modeling as her primary tools. “It would be impossible to use the millions of lines of code contained in these programs in their current state, since they are often written in an old programming language. Our analysis and modeling tools find the grammar of this language, deconstruct it, identify dependencies between functions and evaluate the impact of the planned changes. They pave the way for updating the software in a carefully managed, reliable manner.”
Prior to working on these topics, Anne followed a rather unconventional path for a future scientist: a preparatory class at HEC, followed by the Institute National des Communications (which has since become the Mines Télécom Business School). While at the school, she became interested in computer science and chose to complete a PhD thesis on information systems for companies, which introduced her to the power of modeling.
“An information system that manages payroll for employees, for example, includes a software program, databases and processes. A tiny change in the processes could have a major impact on the software. Analysis and modelling are crucial in order to manage such complexity.”
From model to automated code generation
After her PhD thesis, Anne Etien specialized in software engineering. As a postdoc researcher at Inria in 2006 and then a research lecturer within the DART team, she has worked on designing embedded systems based on models which, through successive transformations, generate the application code. “We were the first ones in France to carry out these model transformations for different computer languages.”
When she joined the RMoD team in 2012 her research became focused on legacy software. “That’s what I wanted, for my research – even though it is abstract – to contribute to solving real problems in the real world, for real people.”
Collaborations with Siemens, Thales, Worldline etc.
RMoD, which relies on the freeware Moose, has notably helped Siemens manage updates in its industrial software. This software was designed with object-oriented programming (an object can be a part, a machine, a stage of manufacturing etc.) with 10,000 objects linked through interactions. “Siemens considered updating the software to be extremely risky, or even impossible. Our tools made it easy and quick.”
The RMoD team also helped the Lille-based laboratory CRIStAL manage changes to a database comprising a hundred tables. Deleting a column in a single table could lead to a number of disruptions elsewhere. Detecting them by hand was extremely time-consuming and not necessarily 100% reliable. Today, the tool makes it possible to easily obtain the list of changes and generate a ready-to-use migration script!
RMoD also helped a software publisher who was caught off-guard when Google announced in 2015 that it would no longer provide maintenance for its suite of tools for Google Web Toolkit web applications. Other projects have been carried out through PhD theses, for example with Thales and Wordline (payment services). “These results are the culmination of collaborative work and ongoing mutual intellectual development,” says Anne Etien. “Working on industry problems provides a reality check for our ideas and helps us keep a foot in the real world.”