Cours "Empirical Software Engineering" à EJCP'2016

by Martin Monperrus

Title of the lecture: "Introduction to Empirical Software Engineering"

Abstract: "In this lecture, I will first study the epistemological foundations of science and engineering, then try to come with a working definition of empirical software engineering, and finally go through the main types of work in this field."

Rules: Ask questions, interrupt me, you don't have to listen to me.

Course Notes

Introduction to Empirical Software Engineering: http://www.monperrus.net/martin/introduction-to-empirical-software-engineering.pdf

Experiment

Dans le cadre du cours "Génie Logiciel Empirique" de l'EJPS, nous discuterons de l'expérience mythique de Knight Leveson (*).

N-version programming consiste à faire implémenter la même spécification par des équipes différentes. L'hypothèse fondamentale est que chaque équipe introduit des bugs différents, et donc qu'en votant à l'exécution sur au moins 3 versions on obtient moins de bugs. Ç'a été utilisé dans certains Boeing.

Voici la spécification utilisée par Knight Leveson dans leur expérience, légèrement modifiée, http://www.monperrus.net/martin/decide.pdf avec des inputs de test en JSON http://www.monperrus.net/martin/input-DECIDE.zip. Cela spécifie un système de contrôle de missile anti-missile.

L'interface est très simple, le programme prend en entrée un fichier JSON, et sort à la fin "yes" ou "no" sur la sortie standard (le missile intercepteur doit-il décoller?).

–Martin

Tagged as: