Master Thesis / Internship : Change impact analysis on Java-based projects

Elca informatique SA

Postuler
  • Date de publication :

    27 mars 2024
  • Taux d'activité :

    100%
  • Type de contrat :

    Durée indéterminée
  • Lieu de travail :

    Lausanne

Master Thesis / Internship : Change impact analysis on Java-based projects

About ELCA

We are ELCA, one of the largest Swiss IT tribe with over 2,200 experts. We are multicultural with offices in Switzerland, Spain, Italy, France, Vietnam and Mauritius. Since 1968, our team of engineers, business analysts, software architects, designers and consultants provide tailor-made and standardized solutions to support the digital transformation of major public administrations and private companies in Switzerland. Our activity spans across multiples fields of leading-edge technologies such as AI, Machine & Deep learning, BI/BD, RPA, Blockchain, IoT and CyberSecurity.

More and more, projects are developed incrementally. In this case, the regression risk is a problem that needs to be addressed.

A way to address regression is by detecting changes in the code base and then test the impacted functionalities. However, this change analysis is currently done manually, which is time consuming and error prone.

In this internship, we want to study the feasibility of detecting areas of the software using static code analysis in order to provide list of impacted features/screen to test to avoid regressions and make a Proof of Concept (PoC) of such a tool.

 

The objective of this internship includes:

  • Study the feasibility: survey of current research on the subjects of change impact analysis + multi-language analysis. Existing/similar tools (features/limitations/…)
  • Analyze the specific case of our common application stacks


                                                     

  • Proposition of architecture(s) for a software the detects impact changes (code change detection, impact analysis, report engine, mapping from impacted code to testable units like screens or program features, extensibility to multiple languages)
  • Start of development of such a software, with dependency analysis in Java, Angular, SQL

Kind of modules to implement

  • Change detection between 2 Git versions (commits) + mapping of changes to extracted definitions (see next points)
  • Extraction of definitions from Java code + their dependencies
  • Extraction of definitions from Angular and/or JSP code + dependencies
  • Mapping between Angular/JSP definitions and Java code
  • Definition of user testable unit and mapping to Angular/JSP definitions in code
  • Generation of a report listing all user testable units that are impacted by the changes between 2 commits
  • Mapping between SQL definitions and Java code
  • Extraction of definitions from SQL scripts + dependencies (stored procedures, …)

     

Note: the list of tasks is too big for a single internship. The tasks to accomplish will be refined at start of the project. Our ideal goal would be to have a working PoC of the software at the end of the internship. In case a PoC is not realizable, we expect a detailed report on the issues found that prevent the realization of the PoC and mitigation propositions.

 

  • A dynamic work and collaborative environment with a highly motivated multi-cultural and international sites team
  • Personal development through training and coaching
  • A culture of collaboration across all disciplines
  • The chance to make a difference in peoples’ life by building innovative solutions
  • High innovation and research backed up by collaboration with universities like EPFL
  • Various internal coding events (Hackathon, Brownbags), see our  technical blog
  • Monthly After-Works organized per locations
  • Good work-life balance (2 days per week from home)

Static code analysis, dependency analysis, good mathematical/analytical knowledge, Java (good level, similar to compilation), Git , Angular and/or JSP, SQL/Hibernate (optional)


Contact

  • Elca informatique SA

Postuler