IGL501 - Méthodes formelles en génie logiciel

Transcription

IGL501 - Méthodes formelles en génie logiciel
IGL501 - Méthodes formelles en génie logiciel Plan de cours
Automne 2015
UNIVERSITÉ DE
SHERBROOKE
Département d’informatique
IGL501 - Méthodes formelles en génie logiciel
Plan de cours
Automne 2015
Enseignant : Marc Frappier
Courriel :
Remise de travaux :
Téléphone :
Site :
Disponibilité :
[email protected]
[email protected]
(819) 821-8000 poste 62096
http://info.usherbrooke.ca/mfrappier/igl501/igl501.html
sur rendez-vous par courriel
Horaire
Cours théoriques :
lundi
13h30 à 16h20
salle D3-2031
Description officielle de l’activité pédagogique 1
Objectifs
Connaître et utiliser les méthodes formelles de spécification, de validation et de vérification.
Contenu
Rappels mathématiques. Spécification à base de modèles. Algèbre de processus. Techniques de vérification : analyse formelle des spécifications, correction et preuve de
spécifications, preuve de correction d’une implémentation, vérification par exploration de l’espace d’états (model checking). Techniques de validation : exécution de
spécifications formelles, prototypage.
Crédits :
Organisation :
3
Cours magistraux :
3 heures/semaine
Exercices/laboratoires : 0 heure(s)/semaine
Travail personnel :
6 heures/semaine
(GEN 700 et GLO 700)
ou IFT 159
Préalable :
Particularités :
Aucune
1. http://www.usherbrooke.ca/fiches-cours/igl501
24 août 2015
1
IGL501
IGL501 - Méthodes formelles en génie logiciel Plan de cours
1
Automne 2015
Présentation
1.1
Mise en contexte
La construction de systèmes de qualité tout en respectant les contraintes de temps et de budget représente
toujours un formidable défi pour les informaticiens. Dans les domaines où la sécurité des personnes et des
biens est en cause, ce défi est encore plus grand. Une des approches proposées pour résoudre ce problème
consiste à utiliser des outils mathématiques pour spécifier, valider et vérifier les systèmes informatiques. On
désigne communément ces approches basées sur les mathématiques comme des méthodes formelles.
Le choix des mathématiques s’explique par le besoin de rigueur et de précision dans la description du
comportement de systèmes complexes, et par la nécessité de disposer de mécanismes d’abstraction pour
juguler la complexité. Les méthodes formelles permettent également de palier aux faiblesses des méthodes
traditionnelles de tests qui ne peuvent traiter de manière exhaustive tous les cas possibles d’utilisation d’un
système.
On distingue deux approches pour vérifier la cohérence d’un système par rapport à sa spécification: la
preuve et la vérification. La preuve consiste à démontrer de manière systématique, en utilisant les règles
d’inférences d’une logique, un théorème de correction. La vérification (appelée model checking en anglais)
consiste à vérifier, de manière exhaustive en parcourant tous les états possibles du système, que le théorème
est satisfait. Ces deux approches seront abordés dans le cadre du cours en utilisant des outils logiciels
appropriés.
Après plus de trois décennies de recherches, la communauté scientifique a proposé plusieurs méthodes
formelles de construction de systèmes. Certaines d’entre elles sont maintenant utilisées pour concevoir des
systèmes critiques en milieu industriel comme le transport, les télécommunications, l’énergie nucléaire, les
circuits intégrés et les appareils médicaux. Toutefois, l’utilisation de méthodes formelles demeure peu répandue, et leur utilisation à grande échelle nécessitera encore plusieurs investissements au niveau de la recherche,
mais également au niveau de la formation des informaticiens.
1.2
Objectifs généraux
À la fin de ce cours, l’étudiant devra être capable de connaître et utiliser les méthodes formelles de
spécification, de validation et de vérification.
1.3
Objectifs spécifiques
À la fin de ce cours, l’étudiant devra être capable de :
1. traduire les exigences d’un cahier des charges (analyse des besoins) en une spécification formelle;
2. raffiner une spécification;
3. implémenter une spécification;
4. comprendre les principes de base de la preuve;
5. comprendre les principes de base de la vérification;
6. spécifier des propriétés en logique temporelle;
7. comprendre l’apport des méthodes formelles pour la production de logiciel de qualité;
8. identifier les situations où l’utilisation de méthodes formelles est souhaitable.
24 août 2015
2
IGL501
IGL501 - Méthodes formelles en génie logiciel Plan de cours
1.4
Contenu détaillé
Semaine
Date
Début
1
15#08#24
2
15#08#31
15#09#07
15#09#14
15#09#21
15#09#28
15#10#05
15#10#12
15#10#19
15#10#26
15#11#02
15#11#09
15#11#16
15#11#23
15#11#30
15#12#07
15#12#14
15#12#21
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
Automne 2015
Sujet
Mathématiques3discrètes3pour3la3spécification
(logique,3ensemble,3relation,3fonction,3séquence,...)
Mathématiques3discrètes3pour3la3spécification
(logique,3ensemble,3relation,3fonction,3séquence,...)
Congé3fête3du3travail3(pas3de3cours)
B3#3spécification3#3modélisation
B3#3spécification3#3modélisation
B3#3Raffinement
examen3mi#session3(date3à3déterminer)
relâche
B3#3implémentation
Alloy3et3preuve
Alloy
Alloy
CSP
CSP
LTL
LTL
examen3final3(date3à3déterminer)
examen3final3(date3à3déterminer)
TP
Date
Remise
tp1
15#09#04
tp2
15#09#18
tp3
15#10#02
tp4
15#11#06
tp5
15#11#20
tp6
15#12#07
Organisation
2.1
Méthode pédagogique
— Une semaine comprend 3 heures de heures de cours constituées d’un exposé magistral et de cas d’étude
traités en groupe.
— Le cours comporte 6 devoirs.
2.2
Évaluation
travaux pratiques
examen intra
examen final
3
30 %
35 %
35 %
Références
Références principales
Langage B
[1] J.-R. Abrial, The B book, Cambridge University Press, 1996.
[2] J.-R. Abrial, Modeling in Event-B : System and Software Engineering, Cambridge University Press,
2010.
Alloy
24 août 2015
3
IGL501
IGL501 - Méthodes formelles en génie logiciel Plan de cours
Automne 2015
[3] D. Jackson, Software Abstractions, Logic, Language, and Analysis, Revised Edition, MIT Press, 2012
CSP
[4] Hoare, C.A.R. : Communicating Sequential Processes. Prentice Hall, 1985.
http://info.usherbrooke.ca/mfrappier/IFT734/ref/csp/CSP-hoare-cspbook.pdf
[5] Roscoe, A.W. : The Theory and Practice of Concurrency, Prentice-Hall, 2005.
http://info.usherbrooke.ca/mfrappier/IFT734/ref/csp/CSP-roscoe-theory-concurrency.pdf
Références complémentaires
[6] G.J. Holzmann. The Spin Model Checker : Primer and Reference Manual. Addison-Wesley, 2004.
[7] C. Baier and J.-P. Katoen, Principles of Model Checking, MIT Press, 2008.
[8] Morgan, C.C. : Programming from Specifications Prentice Hall, 1998.
http://info.usherbrooke.ca/mfrappier/IFT734/ref/logique/morgan-pgm-from-spec.pdf
[9] Woodcock, J., Davies, J. : Using Z : Specification, Refinement, and Proof. Prentice Hall, 1996.
http://info.usherbrooke.ca/mfrappier/IFT734/ref/logique/UsingZWoodcock.pdf
24 août 2015
4
IGL501