Cours Génie Logiciel Automatisé - M2 IAGL 2015

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. Ce cours fait partie des UVs Outils pour la Programmation des Logiciels (OPL) et Intelligence des Données et des Logiciels (IDL).

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 automatiser l'ingénierie du logiciel. Au delà de l'objectif technique, ce cours a aussi pour objectif de vous faire travailler votre créativité, votre écrit, votre oral, votre sens critique.

Certains outils embarquent une forme d'intelligence, ce qui justifie le nom de l'UV Intelligence des Données et des Logiciels (IDL).

Le cours est organisé autour de 3 thèmes. Chaque thème donne lieu à un projet. Cette année, les thèmes sont:

Modalités d'évaluation

Il y aura 4 rendus de projets, 3 autours des thèmes, plus le projet final. Le 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/bon-rapport

Les rendus doivent être au format ZIP (pas de TAR.GZ ou 7Z), avec le rapport à la racine du ZIP, et le code d'expérimentation.

Rattrapage: Le rattrapage est organisé comme suit. L'étudiant retravaille sur le(s) rendu(s) qui ont été noté(s) en dessous de la moyenne. 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. Le rendus de rattrapage sont à rendre par email un mois après la fin des cours. Un rendu de rattrapage en retard ne sera pas considéré.

Thèmes 2015-2016

Thème 1: L'analyse et la transformation de code source.

Qu'est ce qu'un AST ? que peut on faire avec de la transformation ?

Lectures:

Projets:

Thème 2: Ingénierie des suites de tests

Qu'est ce qu'un bon test ? A quoi sert l'isolation ? Comment mesurer la qualité d'une suite de test ? Comment écrire des assertions ? Comme écrire et vérifier des contrats sur un domaine d'entrée ? Comment sont implémentés les drivers de tests et les assertions ? Quelles implications pour la localization de faute ? Quels sont les avantages et inconvénients d'un langage spécifique pour les test ? Quelle est la taille d'une bonne suite de test par rapport au code applicatif ?

Lectures:

Projets:

Thème 3: Réparation automatique de bugs

Qu'est ce que la réparation automatique ? Qu'est ce qu'un oracle ? Comment éviter les régressions ?

Lectures:

Projets:

Tableau d'honneur

Thème 1:

Thème 2:

Thème 3:

Thème libre:

Tagged as: