PhD Position F/M Tracing business rules in source code

Contract type : Fixed-term contract

Level of qualifications required : Graduate degree or equivalent

Fonction : PhD Position

About the research centre or Inria department

The Inria University of Lille centre, created in 2008, employs 360 people including 305 scientists in 15 research teams. Recognised for its strong involvement in the socio-economic development of the Hauts-De-France region, the Inria University of Lille centre pursues a close relationship with large companies and SMEs. By promoting synergies between researchers and industrialists, Inria participates in the transfer of skills and expertise in digital technologies and provides access to the best European and international research for the benefit of innovation and companies, particularly in the region.

For more than 10 years, the Inria University of Lille centre has been located at the heart of Lille's university and scientific ecosystem, as well as at the heart of Frenchtech, with a technology showroom based on Avenue de Bretagne in Lille, on the EuraTechnologies site of economic excellence dedicated to information and communication technologies (ICT).


This PhD will happen in the context of the common team between the Inria team EVREF and the Berger-Levrault company. 



Because software is a computer model of the real world, it must continually adapt to changes in the world. For example, for software publisher Berger-Levrault, which equips more than three-quarters of local public administrations (i.e. 26,000 out of 36,000 French local authorities) in the education, health, maintenance, social and land management sectors, its software solutions must model the legislation in force in each area of application. This may concern, for example, the number of days of statutory leave for a birth or death, the tax rules to be applied when deducting tax at source, the pricing of a day in a nursing home or the calculation methods for invoicing children's canteen meals. These rules, imposed on the software by the real world, are called Business Rules.
Each time there is a change in the real world, whether in the form of a decree implementing a law, case law or a change in local practice (e.g. the recent extension of parental leave to men), the software in the domain must be updated. This presupposes, of course, that the corresponding business rule can be found in the code. A typical piece of software implements a huge number (i.e. several tens of thousands) of business rules in code that extends over tens of thousands of pages.

Maintaining the functioning of this software, which governs directly (e.g. management of civil status, electoral rolls, care plans in nursing homes, etc.) or indirectly (e.g. management of public employee salaries, maintenance of public assets, etc.), is absolutely essential to ensure the missions of public and private establishments and the smooth running of the state. The increasing complexity of this software makes it difficult to modify and can lead to malfunctions that can have a major impact on our day-to-day lives. To facilitate this work of perpetual updating and modification, we need to develop tools that enable us to identify which business rules are implemented in the code, how and where.

Main activities

Possible solutions

Finding the implementation of the business rules means discarding all the parts of the code that deal with other things, i.e. those that deal with the graphical interface, data persistence or security controls, for example.

In another thesis (Santiago Bragagnolo), in collaboration with Berger-Levrault, we began to identify certain parts of the code according to the software libraries they call on (graphics library, telecommunications library, database access library, etc.). The assumption is that the implementation of business rules should not depend on any external library, since it is these that justify the development of each application. It should be noted, however, that database access libraries may have a special role to play. Databases are mainly used to store business data, which is then manipulated in business rules. The initial results are not sufficient, as they do not cover enough code. We want to extend this approach:

  1. How to propagate the initial results (which part of the code uses which library) to more code while maintaining the assumption that the implementation of the business rules should not depend on any of them;
  2. Using program slicing to identify execution paths that do and do not depend on these libraries;
  3. Using specific code visualisations (maps) to highlight the properties that interest us.

We will also look at the results for establishing a link between the code and the domain (Requirement to code traceability, Feature Location) to understand how best to find the code relating to a particular business rule in all the code identified as relating to the business.


T0 - T4 : Literature review, Learning the Moose and Pharo environments

T5 - T8 : Prototype on Property Propagation

T9 - T12: Evaluation of results + conference or workshop paper

T13 - T16: State of the art on slicing + Modifications to the prototype to introduce slicing

T17 - T20: Evaluation of the results + paper in a rank A conference

T21 - T24: Modification of the prototype to introduce the trace between the code and the extracted rules

T25 - T28: Evaluation of results + article in a journal

T29 - T36: Writing of thesis, new article and preparation of defence.



  • Advanced Object-Oriented Design
  • Pharo ( is a big plus
  • Technical writing
  • Synthesis and presentation


  • English
  • Francais is a plus


  • Team work
  • Good communication

Benefits package

  • Subsidized meals
  • Partial reimbursement of public transport costs
  • Leave: 7 weeks of annual leave + 10 extra days off due to RTT (statutory reduction in working hours) + possibility of exceptional leave (sick children, moving home, etc.)
  • Possibility of teleworking and flexible organization of working hours
  • Professional equipment available (videoconferencing, loan of computer equipment, etc.)
  • Social, cultural and sports events and activities
  • Access to vocational training
  • Social security coverage


2082€ gross per month for the 1st and 2nd years
2190€ gross per month for the 3rd year