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