Construction rigoureuse des logiciels

Code UE : USRS28

  • Cours + travaux pratiques
  • 5 crédits

Responsable national

Nicole LEVY

Responsable opérationnel

Tristan CROLARD

Contenu

Cette UE permet d'aborder plusieurs méthodes de vérification de logiciels et d'utiliser leurs outils correspondants. Elle comporte 4 parties :
  • Correction d'un programme impératif: Dans cette partie du cours, nous étudierons une méthode classique (la logique de Floyd-Hoare) permettant de prouver la correction d'un programme impératif par rapport à une spécification donnée. Nous présenterons tout d'abord brièvement les fondements théoriques de cette méthode, puis nous passerons à la pratique avec la plateforme Spark Ada. Cette plateforme, qui est utilisée dans l'industrie depuis de nombreuses années, permet de garantir la correction de systèmes critiques développés en Ada. Nous en profiterons pour rappeler les principes du paradigme "design-by-contract" adopté par le standard 2012 du langage.
  • Utilisation de Tests pour la validation de logiciels: Dans cette partie du cours, nous étudierons le développement de logiciels piloté par les tests en évaluant le coût des tests et le modèle de qualité FURPSE. Dans un deuxième temps nous étudierons les Tests dirigés par les modèles en détaillant l’utilisation des modèles dynamiques d’UML pour spécifier les tests.
  • Développement de programmes par la méthode B: de la spécification formelle à la génération automatique de code. Dans cette partie du cours, nous étudierons à l'aide d'études de cas la méthode B pour spécifier formellement des systèmes. Nous vérifierons leur correction à l'aide du prouveur de l'Atelier B et enfin en utilisant des techniques de raffinement nous obtiendrons un code correct par construction.
  • Conception par utilisation de méthodes formelles: algèbre de processus : Dans cette partie du cours, nous étudierons à l'aide d'études de cas l'utilisation d’une algèbre de processus pour spécifier formellement et vérifier des systèmes communicants. Nous utiliserons le langage LOTOS et la plateforme CADP.  
Techniques et outils abordés dans les 4 parties de l’UE :


  • Preuves de correction d'un programme impératif à l’aide de la logique de Floyd-Hoare. Utilisation de la plateforme Spark Ada.
  • Développement de logiciels piloté par les tests et étude du modèle de qualité FURPSE. Étude des tests dirigés par les modèles à l’aide des modèles dynamiques d’UML.
  • Développement de programmes corrects par construction à l’aide de la méthode B. Utilisation de l'Atelier B.
Spécification et vérification formelles de systèmes communicants à l’aide d’une algèbre de processus. Utilisation du langage LOTOS et de la plateforme CADP.

Cette UE apparaît dans les diplômes et certificats suivants

Chargement du résultat...
Patientez
Type
Intitulé
Equipe pédagogique
Modalité(s) / Lieu(x)
Code
Equipe pédagogique Informatique
Modalité(s) / Lieu(x)
  • - Enseignée en formation présentielle et/ou partiellement à distance : Paris
  • Type Intitulé Equipe pédagogique Modalité(s) / Lieu(x) Code

    Contact



    Voir les dates et horaires, les lieux d'enseignement et les modes d'inscription sur les sites internet des centres régionaux qui proposent cette formation

    Enseignement non programmé en 2017/2018