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