Software architecture diversification for rich Internet applications

We are looking for highly motivated PhD/Post-doc candidates in software engineering. The position takes place in a EU-sponsored collaborative project in the field of empirical software engineering and large-scale distributed systems simulation. The project involves inter-disciplinary work with ecology researchers.

Contact: Benoit Baudry (, Olivier Barais(
: Software diversity, search-based software engineering, self-adaptive software.


Software systems rely on the interactions between parts: client / server, application / framework / database, apps / mobile platform. The nature of these interactions is very close to mutualistic of trophic interactions between species in ecological systems. However, the species and their interactions are highly diverse in ecological systems (forming an essential component of biodiversity), while software systems are rather homogeneous. Biodiversity is a major component for the ability of ecosystems to adapt in front of unpredicted changes. Thus, in this project, we want to investigate the diversification of software systems to improve their ability to face unpredicted perturbations (attacks, bugs, market evolutions, etc.).
This PhD will target Rich Internet Applications. Indeed, Rich Internet Applications rely on large portion of code on the client-side, typically written in JavaScript, dealing with DOM manipulation, event handling and asynchronous calls to the server. The server stack runs on top of complex cloud infrastructure.  The research will confront these challenges with complex ecological phenomena. The goal is to leverage models of biodiversity to increase the resilience of web applications to unpredicted changes.
Two technologies developed in the Team (Kevoree and Js-Scala) will support this work, providing a sandbox to inject and manage diversity at the software architecture level.  Js-Scala is a DSL, which can be compiled to both the server and client sides.  This provides users with the capacity of deciding at deployment time which parts to run on the server or the client side. Kevoree is an open-source models@runtime platform, which properly supports the dynamic adaptation of distributed systems.  In particular, Kevoree provides a proper support for distributed models@runtime and supports heterogeneous runtime environment technologies.

Our ideal candidate is someone with a background in software engineering, and a keen interest in web software architecture, search-based software engineering and adaptive applications.


[1] A.J. O’Donnell, H. Sethu. On achieving software diversity for improved network security using distributed coloring algorithms. Proc. of CCS’04.
[2] D. Posnett, V. Filkov, P. Devanbu. Ecological Inference in Empirical Software Engineering, Proc. of ASE 2011.
[3] E. Schulte, Z. P. Fry, E. Fast, W. Weimer, S. Forrest. Software Mutational Robustness and Proactive Diversity, 2012.
[4] S. Sidiroglou-Douskos, S. Misailovic, H. Hoffmann, M. C. Rinard: Managing performance vs. accuracy trade-offs with loop perforation. Proc. of FSE 2011: 124-134.
[5] F. Fouquet, O. Barais, N. Plouzeau, J.-M. Jézéquel, B. Morin, F. Fleurey. A Dynamic Component Model for Cyber Physical Systems. Proc. of CBSE’2012
[7] Js-Scala
[8] Kevoree

Working Environment

This position is funded by the DIVERSIFY project, supported by the FET European Commission program. The candidates will work at INRIA in the Triskell team. Triskell’s research is in the area of software engineering, focusing on model-driven engineering and software testing. The team is actively involved in European, French and industrial projects and is composed of 7 faculty members, 20 PhD students and 4 engineers.

The position is open and applications will be reviewed until the positions are filled. The monthly net salary is 1600 euros. The PhD position is for 3 years.


Apply here