FOCAL Un atelier de construction modulaire de logiciels Tentant de répondre aux besoins de la Sûreté de Fonctionnement et de la Sécurité 1
Groupe FOCAL M. Jaume, T. Hardin, R. Rioboo - SPI, LIP6 D. Delahaye, C. Dubois, V. Viguié Donzeau- Gouge et membres de l'équipe CPR, CEDRIC D. Doligez, P. Weis, CRISTAL, INRIA Rocq. S. Boulmé, V. Prevosto, S. Fechter (Drs FOCAL) R. Bonichon, J. Blond, M. Carlier, J-F Etienne, C. Morisset, Y. Noyer (Doctorants FOCAL) Avec la participation des membres de l'aci Modulogic et L. Moussa, ingénieur-expert 2
Culture commune Logiques, lambda-calculs et extensions Systèmes d'aide à la preuve Démonstration automatique Réécriture et théories équationnelles Langages de programmation et compilation Sémantiques des langages Analyses statiques, Interprétation abstraite 3
Notre ouverture vers Sûreté et Sécurité 1995-2001 Groupe BIP (J-R Abrial, T. Hardin, V. Viguié) 1996 Dvpt. d' un outil de validation de contrôle d'accès (Bertin) 1996 Dvpt d'un outil d'analyse des chemins d'exécution (Surlog) 1995 Modélisation des alarmes d'un avion (Aerospatiale) 1996 Etude de la sécurité des passagers (Meteor).. 4
Besoins en Formation Manque d'ingénieurs de niveau bac+5 solides compétences générales en logiciel, systèmes, réseaux, archi (bac+4) temps-réel, systèmes synchrones, asynchrones automates, vérification, tests Sémantiques, conception formelle (B), interprétation abstraite, prouveurs (Coq) Formés à la sûreté de fonctionnement et à la sécurité (normes, méthodes de mise en œuvre, évaluation) DESS Développement de Logiciels Sûrs Parcours "Logiciels Sûrs" Masters CNAM et P6 5
Besoins identifiés Spécification la plus formelle possible mais Impossible de formaliser certaines infos importantes Spécification Informel : texte, UML Documentation Formel Noms Relations Propriétés 6
Besoins identifiés Implantation Réutiliser Encapsuler Evoluer Documenter héritage paramétrage Modularité Liaison retardée redéfinitions 7
Besoins identifiés Donner confiance Cohérence Complétude Spec. Correction Implantation/spec Doc. à jour Preuves Tout prouver? Non 8
Quid de la conception? Architecture du sytème : des planches Scade pour le contrôle-commande, des diagrammes UML,.. Des boîtes qui communiquent Propriétés sur paramètres d'entrée et sortie Propriétés comportementales globales En cours de réflexion 9
Quid de la conception? 1997: Début de l'histoire FOCAL Librairie de polynômes: Spécification: des maths Implantations: représentation dense représentation récursive Suite finie de coeff. Conception: Monôme-tête Poly-sans-tête Ordre sur variables Représentation de données avec invariants 10
Conception de FOCAL 1997-2000 Choix de Ocaml et Coq comme langages cible Description en Coq des structures souhaitées (noms, fonctions, propriétés, preuves) et des traits recherchés (héritage, redéfinitions, paramétrisation) Utiliser les objets de Ocaml pas n'importe comment (preuves à faire!) Elaboration d'une méthodologie de programmation en réalisant des prototypes de librairies dans différents styles objet. Tests d'efficacité : expression, exécution 11
FOCAL depuis 2000 Syntaxe concrète obligeant à suivre la méthodologie de Programmation et à éviter partiellement les risques d'incohérence logique Compilateur(s) Aide à la preuve, Aide à la documentation Des outils d'aide au développement Des utilisations dans différents domaines 12
Conclusion Distribution: http://focal.inria.fr Environnement utilisable : enjoy it! Nous sommes à l'écoute des utilisateurs : remarques, suggestions, rapports d'expérience (et de. difficultés ) sont les bienvenus toute aide aussi Merci de votre intérêt 13