Cours Génie Logiciel Automatisé - M2 IAGL - UE OPL 2016

by Martin Monperrus

Cette page présente les ressources du cours de M. Monperrus à la promotion 2015-2016 du master IAGL de l'Université de Lille.

Informations Pratiques

Prérequis: bonne connaissance de la programmation et bases du génie logiciel (test, design).

Horaires des cours: cf Calendrier numérique

Page Moodle: http://moodle.univ-lille1.fr/course/view.php?id=932

Contact: martin.monperrus@univ-lille1.fr

Objectifs du cours

Ce cours a pour objectif l'étude du génie logiciel automatisé, défini comme l'art d'inventer, de designer, d'implémenter et de valider des outils logiciels pour améliorer et/ou automatiser l'ingénierie du logiciel. Au delà de l'objectif technique, ce cours a d'abord pour objectif de vous faire travailler votre méthodologie, votre sens critique, votre créativité, votre écrit, votre oral.

Le cours est organisé autour de 3 thèmes. Chaque thème donne lieu à un projet.

Modalités d'évaluation

Il y aura 3 ou 4 rendus de projets, Chaque projet est un prototypage et une évaluation d'une technique existante ou un développement libre dans le cadre du thème.

Dates des rendus:

Le sujet du projet final est libre, sous la seule contrainte de rentrer dans le périmètre du « génie logiciel automatisé ».

Les projets sont notés de la manière suivante:

Consignes pour les rapports: http://www.monperrus.net/martin/regles-rapport-technique

Les rendus doivent être:

Rattrapage: Le rattrapage est organisé comme suit. L'étudiant retravaille sur un rendu qui a été noté en dessous de la moyenne, l'étudiant choisit celui à rattraper. Si la moyenne est trop basse, il peut y avoir besoin de rendre 2 nouveaux travaux. Une nouvelle évaluation est faite (et une seule) sur le nouveau code et le nouveau rapport produit, et ce avec le même niveau d'exigence que pendant l'année. La rapport doit commencer par lister le delta avec le précédent rendu: ce qui a été ajouté, enlevé, modifié. Les rendus de rattrapage sont à rendre par email un mois après la fin des cours, c'est à dire le 31 mars 2017, 23:59 cette année. Aucun rendu de rattrapage en retard ne sera considéré.

Première séance

Topics 2016-2017

Topic 1: Pull Request Engineering

What is pull-based development? What is a pull request? What is a good pull request? What has to be done to get good pull requests? What tool can help the creation of good pull requests? how to evaluate those tools? How are pull requests used in practice?

Warmup:

Projects:

Topic 2: Crash Analysis

What is a crash? How to detect it? How to collect it? How to analyze crashes? What to put in crash report? What are the issues related to privacy and law? What is a bucket? What is a stack trace? What are the technical limitations and tradeoffs or crash analysis? Which crash to fix first?

Resources:

Topics:

Topic 3: Automatic Diagnosis and Repair

What is a bug? What is an oracle? What is automatic repair? What are automatic repair techniques? What is a regression? This year, we will study automatic repair with cause-effect chain analysis and with multi-version execution.

A team will be composed of people with: 1) communication / collaboration skills, 2) implementation skills, 3) reading / writing skills, 4) rigor and testing skills.

Topic 4: You choose it

Projet 1 (pull request engineering)

Sélection de travaux remarquables:

Projet 2 (Crash)

Sélection de travaux remarquables:

Projet 3 (Delta Debugging)

Sélection de travaux remarquables:

Projet libre

Sélection de travaux remarquables:

Tableau d'honneur

Tableau 2014: http://www.monperrus.net/martin/iagl2014

Tableau 2015: http://www.monperrus.net/martin/iagl2015

Tagged as: