Lifestate: Event-Driven Protocols and Callback Control Flow

Who: Sergio Mover (assistant professor at Ecole Polytechnique)
Date: Thurday, 5th of September @ 10:30
Place: Amphi building B
Title: “Lifestate: Event-Driven Protocols and Callback Control Flow”

Abstract: Developing interactive applications (apps) against event-driven software frameworks such as Android is notoriously difficult. To create apps that behave as expected, developers must follow complex and often implicit asynchronous programming protocols. Such protocols intertwine the proper registering of callbacks to receive control from the framework with appropriate application-programming interface (API) calls that in turn affect the set of possible future callbacks. An app violates the protocol when, for example, it calls a particular API method in a state of the framework where such a call is invalid.

What makes automated reasoning hard in this domain is largely what makes programming apps against such frameworks hard: the specification of the protocol is unclear, and the control flow is complex, asynchronous, and higher-order.

In this talk, we tackle the problem of specifying and modeling event-driven application-programming protocols. We first formalize a core meta-model capturing the dialogue between event-driven frameworks and application callbacks. Based on this meta-model, we define a language called lifestate that permits precise and formal descriptions of application-programming protocols and the callback control flow imposed by the event-driven framework. Lifestate unifies modeling what app callbacks can expect of the framework with specifying rules the app must respect when calling into the framework. In this way, we effectively combine lifecycle constraints and typestate rules.

We provide a dynamic verification algorithm that takes as input a trace of execution of an app and a lifestate protocol specification to either produce a trace witnessing a protocol violation or a proof that no such trace is realizable.

We evaluate our approach experimentally, showing that lifestate modeling is “sufficient and necessary”, and that it’s rigorous formalization avoids model unsoundness, differently from existing framework models.

Short bio: Sergio Mover is an assistant professor at Ecole Polytechnique. His main research focuses on the development of theory and tools to automatically reason about Cyber-Physical systems and software, and more recently in applying machine learning and data mining techniques to learn software properties from existing code bases. Sergio obtained a Ph.D. degree in 2014 from the University of Trento and Fondazione Bruno Kessler, Italy. Sergio was then a postdoctoral researcher in the Computer Science Department at the University of Colorado Boulder, and is a faculty member at Ecole Polytechnique since October 2018.

Seminar with VUB

On Friday 3rd May 2019, several researchers from the SoftLab VUB are coming to present their work. Some members of the RMod team will also present theirs.

The workshop will occur in the Amphi of Inria B Building.

First idea of the schedule:

Speech from RMod team:
– short Extracting Information From Ticket databases (Honore Mahugnon)
– Designing language-agnostic code transformation engines (Jason Lecerf)
– Migration GWT Angular (Benoit Verhaeghe)
– short DrTests (Dayne Lorena Guerra Calle)
– Rotten Green Tests (Stephane Ducasse)
– Database recommandation (Julien Delplanque)
– About Software naturalness: Title please (Oleksandr Zaitsev)
– Improving Cherry-Picking Changes: How to get fruits from longer branches (Pablo Tesone)
– Object Miners: capturing objects for object-centric debugging (Steven Costiou)
– A steppable debugger for micro kernel (Carolina Hernadez-Philips)
Speech from VUB
-Mining library usage with machine learning (Camilo Velazquez)
-Mining framework extensions for recommendation patterns  (Dario Dinucci)
– Validating Program Merges (Ward Muylaert)
– A (Debuggable) Live Programming Framework for Big Data Applications. (Matteo Marra)
– Non-deterministic Debugging for Non-deterministic Programs (Carmen Torres)

Yann-Gaël Guéhéneuc au colloquium Polaris

Yann-Gaël Guéhéneuc – The IoT fragmentation, issues and opportunities in software engineering research

Jeudi 25 avril 2019 de 14h00 à 15h30

Auditorium IRCICA, 50 avenue Halley, parc scientifique de la Haute Borne à Villeneuve d’Ascq

Abstract :

The IoT fragmentation, issues and opportunities in software engineering research

The IoT creates opportunities for many, novel applications. However, it also create issues due to the fragmentation of the hardware and software running (on) the IoT. This fragmentation makes it difficult to integrate the diverse technologies of the various objects found in IoT systems. Diverse technologies induce interoperability issues while designing and developing various services and applications, hence, limiting the possibility of reusing the data, more specifically, the software (including frameworks, firmware, APIs, user interfaces) as well as of facing issues, like security threats, when developing new applications. Various objects have different capabilities in terms of memory, processing power, and connectivity. In this presentation, we highlight issues due to the lack of interoperability among technologies developed for IoT systems. We also provide guidelines for researchers and practitioners developing IoT systems for new applications. Within the Evidence-based Software Engineering paradigm, we report a SLR of both IoT interoperability issues and the state-of-practice of IoT technologies in the industry, highlighting the integration challenges related to the IoT. We also introduce a possible research avenue to solve these issues through the miniaturization of software systems running (on) the IoT systems. Software miniaturization promises that developers could « write once and run everywhere » their software, shielding them from the IoT fragmentation.

Bio :

Yann-Gaël Guéhéneuc is full professor at the Department of Computer Science and Software Engineering of Concordia University since 2017, where he leads the Ptidej team on evaluating and enhancing the quality of the software systems, focusing on the Internet of Things and researching new theories, methods, and tools to understand, evaluate, and improve the development, release, testing, and security of such systems. Prior, he was faculty member at Polytechnique Montréal and Université de Montréal, where he started as assistant professor in 2003. In 2014, he was awarded the NSERC Research Chair Tier II on Patterns in Mixed-language Systems. In 2013-2014, he visited KAIST, Yonsei U., and Seoul National University, in Korea, as well as the National Institute of Informatics, in Japan, during his sabbatical year. In 2010, he became IEEE Senior Member. In 2009, he obtained the NSERC Research Chair Tier II on Software Patterns and Patterns of Software. In 2003, he received a Ph.D. in Software Engineering from University of Nantes, France, under Professor Pierre Cointe’s supervision. His Ph.D. thesis was funded by Object Technology International, Inc. (now IBM Ottawa Labs.), where he worked in 1999 and 2000. In 1998, he graduated as engineer from École des Mines of Nantes. His research interests are program understanding and program quality, in particular through the use and the identification of recurring patterns. He was the first to use explanation-based constraint programming in the context of software engineering to identify occurrences of patterns. He is interested also in empirical software engineering; he uses eye-trackers to understand and to develop theories about program comprehension. He has published papers in international conferences and journals, including IEEE TSE, Springer EMSE, ACM/IEEE ICSE, IEEE ICSME, and IEEE SANER. He was the program co-chair and general chair of several events, including IEEE SANER’15, APSEC’14, and IEEE ICSM’13.

Software Engineering Day 2017

Who: The Software Engineering research theme from the CRIStAL laboratory
When: Wednesday 25 October 2017
Where: Koezio Villeneuve d’Ascq, 31 rue Alfred de Musset


14:00 – 14:40 – Extending Dynamic Software Product Lines with Temporal Constraints, presented by Gustavo Sousa (Spirals) [HAL]

14:40 – 15:20 – Isolating and Reusing Template Instances In UML, presented by Matthieu Allon (Caramel) [HAL]

15:20 – 15:40 – break

15:40 – 16:20 – Visual Variables in UML: a First Empirical Assessment, presented by Yossr El Ahmar (Carbon)

16:20 – 16:25 – CRIStAL PAR, presented by Guillermo Polito

16:25 – 17:00 – Run-Fail-Grow: Creating Tailored Object-Oriented Runtimes, presented by Guillermo Polito (Rmod) [HAL]

​Empirical studies of modeling in software development – M. Chaudron

Talk by Michel.Chaudron at University of Lille.

​Empirical studies of modeling in software development

Location & Time
IRCICA / Salle du conseil
Wednesday 26th April 2017 – 14H-15H

Modeling is a common part of modern day software engineering practice. Little evidence exists about how models are made​, are used​
and how they help in producing better software. In this talk I will present highlights from my last decade of research in the area of software modeling using UML.
Topics that will be addressed:
​- ​What is the state of UML modeling practice ​​ in open source projects?
​- ​How can we assess the quality of UML models?
​- ​Do UML models actually help in creating better software?
-​ How can we improve usability of software modeling tools?

Short bio
Michel Chaudron is Full Professor at the Software Engineering division which is part of the joint Department of Computer Science of Chalmers and Gothenburg University in Sweden. Prior to this, ​h​e work​ed​ at Universities in Leiden and Eindhoven in the Netherlands. He obtained his Ph.D. in the area of formal methods and programming calculi for parallel computing. His research interests are in: software architecture, software design, software modeling with a special focus on UML, software composition. He has an interest in empirical studies in software engineering esp in the aforementioned areas and preferably industrial industrial context. He supports several conferences and journals including (Conf:) MODELS and Euromicro SEAA and (Jnl:) SoSyM and Empirical Studies in Software Engineering (EMSE).

Towards a seamless integration of V&V activities for DSMLs

Faiez Zalila (Postdoc in the Spirals Research Team)
Monday April 3rd at 15h
Inria Lille Room B31


In the last decade, Model Driven Engineering (MDE) has been used to improve the development of safety critical systems by providing early Validation and Verification (V&V) tools for Domain Specific Modeling Languages (DSML).
V&V of behavioral models is mainly addressed by translating domain specific models to formal verification dedicated languages in order to use the sophisticated associated tools such as model-checkers and simulators.

This approach has been successfully applied in many different contexts, but it has a major drawback: the user has to interact with the formal tools. In this talk, I present illustrated approaches that allow the hidden integration of V&V activities for DSMLs.

This talk will be in French.
Slides will be in English.

Large-Scale Empirical Software Engineering Research using GitHub Data (Marco Tulio Valente)

Prof. Marco Tulio Valente from UFMG, Brazil

will give a talk about : Large-Scale Empirical Software Engineering Research using GitHub Data

on Thursday 15th December 2016, 13h30, in room INRIA B31 (the warm one)

GitHub has in recent years become the world’s largest
collection of open source software, with around 9
million users and 17 million public repositories.
These numbers make GitHub an invaluable source of
data for large-scale research in empirical software engineering.
In this talk, we describe recent research conducted
in our group, using GitHub data. For example,
we are using GitHub to understand and predict the
popularity of open source projects, to understand
the motivations behind refactoring, to assess the
concentration of knowledge in software teams, and
to study the evolution of software APIs.


Marco Tulio Valente received his PhD degree in Computer Science
from the Federal University of Minas Gerais, Brazil (2002),
where he is an assistant professor in the Computer Science Department,
since 2010. His research interests include software architecture
and modularity, software maintenance and evolution, and
software quality analysis. He is a “Researcher I-D” of the Brazilian
National Research Council (CNPq). He also holds a “Researcher
from Minas Gerais State” scholarship, from FAPEMIG. Currently,
he heads the Applied Software Engineering Research Group
(ASERG), at DCC/UFMG, Brazil.

PhD Talk: Détection et analyse de l’impact des défauts de code dans les applications mobiles

Geoffrey HECHT le 30 novembre à 14:00 – Bât. B à l’INRIA

Détection et analyse de l’impact des défauts de code dans les applications mobiles

Les applications mobiles deviennent des logiciels complexes qui doivent être développés rapidement tout en évoluant de manière continue afin de répondre aux nouveaux besoins des utilisateurs ainsi qu’à des mises à jour régulières.
S’adapter à ces contraintes peut provoquer la présence de mauvais choix d’implémentation ou de conception que nous appelons défauts de code.
La présence de défauts de code au sein d’une application peut dégrader la qualité et les performances d’une application.
Il est alors important de connaître ces défauts mais aussi de pouvoir les détecter et les corriger.
Les défauts de code sont bien connus pour les applications orientés objets et de nombreux outils permettent leurs détections, mais ce n’est pas le cas pour les applications mobiles.
Les connaissances concernant les défauts de code dans les applications mobiles sont lacunaires, de plus les outils permettant la détection et la correction des défauts sont inexistants ou peu matures.
Nous présentons donc ici une classification de 17 défauts de code pouvant apparaître dans les applications Android, ainsi qu’un outil permettant la détection et la correction des défauts de code sur Android.
Nous appliquons et validons notre méthode sur de grandes quantités d’applications (plus de 3000) dans deux études qui évaluent la présence et l’évolution du nombre des défauts de code dans des applications populaires.
De plus, nous présentons aussi deux approches destinées à évaluer l’impact de la correction des défauts de code sur les performances et la consommation d’énergie.
Ces approches nous ont permis d’observer que la correction des défauts de code est bénéfique dans la plupart des cas.

Leveraging Software Engineering Data: multiple sources, multiple opportunities

Prof Marcelo Maia (Universidade Federal de Uberlândia) will give a talk on Thursday 17 November 2016 11:00 AM in room A21 (Inria Lille Building A).

Title: Leveraging Software Engineering Data: multiple sources, multiple opportunities

Abstract: A rapidly increasing rate of new information being produced is a phenomenon observed in many different areas, such as, social interaction, scientific data, news. In Software Engineering the situation is not different. Software repositories evolved to deliver a social service. Version control systems were enhanced with new operations to allow more manageable forms of interaction. Issues are tracked during the life cycle recording lot of knowledge in a semi-structured way. The social interaction of developers all around the world is tracked in blogs, forums and question-and-answer (Q&A) sites generating partially structured content that can be considered one of the thriving forms of documentation available nowadays.
In this scenario, we face many challenges to explore the available opportunities. We have been studying techniques to assist developers in different facets of their work. Execution trace analysis could help to understand better your architecture, specially in poorly documented systems. Co-change analysis could help to improve modular quality. Longitudinal studies on change history could also be analyzed under the view of evolution of code anomalies. Source code available in repositories could be learned to predict repetitive tasks and assist API usage. Q&A is a source of raw knowledge that have applications having from redocumenting APIs to improve automatic repair techniques.

Automated Extraction of Mixins in Cascading Style Sheets

JR Falleri (Univ Bordeaux) will give a talk on Thursday 3 November 2016, 10:00am – 10:45am

Where: Inria Lille, B11

Titre : Automated Extraction of Mixins in Cascading Style Sheets
Abstract :
Cascading style sheets (CSS) is a language that describes the presentation of web documents.
CSS is widely adopted in web development and it is now common for web projects to have several thousands of CSS lines of code.
Because the language lacks advanced features to allow code reuse, several languages such as Sass and Less have emerged as extensions to CSS.
They provide mechanisms such as mixins to enable reuse.
However, when a developer wants to migrate her web project from CSS to one of these extension languages, identifying mixins is a challenging task.
In this talk, I will describe an automated approach to extract mixins from CSS code.
We have developed a tool that identifies mixins in CSS files and automatically generates Sass code.
Our technique enables a fine-grained control on the generated code tailored to developer needs.
We evaluate our approach on more than a hundred CSS files and conduct several case studies to assess its real-world relevance.