Méthodes formelles pour la conception de systèmes répartis par Luigi Logrippo et tous ses collaborateurs et étudiants . . . École d`ingénierie et technologie.

Slides:



Advertisements
Présentations similaires
Yassine Lakhnech Prof. UJF Verimag
Advertisements

Les présentateurs doivent souvent transmettre des informations techniques à des auditeurs qui connaissent moins bien le sujet et le vocabulaire spécifique.
Les Systèmes d’Information Financière Atelier conjoint ACBF / Banque Mondiale / AFRITAC de l’Ouest Gérer l’application dans le temps, sur les plans fonctionnel,
Résolution de problèmes et logiciel de calcul symbolique
Algorithmes et structures de données avancés
2002 Exploratoire ASTRÉE : Analyse Statique de logiciels Temps-RÉel Embarqués 1)Le problème considéré est de démontrer statiquement (à la compilation)
Programme de seconde 2009 Géométrie
Tolérance aux défaillances de logiciel
M.E.D.A.L. Module dEnseignement à Distance pour lArchitecture Logicielle Alain VAILLY Diapositive n° 1 IUP MIAGE - Université de NANTES IUP-MIAGE 3ème.
UML - Présentation.
Mise en œuvre d’une démarche et d’un outil de gestion de « connaissances métier » basés sur la collaboration. Cyril BEYLIER
Les méthodes formelles en ingénierie des connaissances Damien Lhomme-Desages Jérémie Barlet.
TP 3-4 BD21.
Quoi ? Un tampon.
1 B Système Enjeux et principes Cours DESS Nantes 04 Décembre 2002 Didier ESSAME.
INTRODUCTION.
UML (Unified Modeling Langage)
Alain Le Guennec Jean-Marc Jézéquel Action Triskell
Les personas : une méthode pour l’intelligence client ?
Langage SysML.
La revue de projet.
Maple, modélisation et résolution de problèmes
Chapitre 0 INF6001 Ingénierie des protocoles de communication
Calcul et programmation au lycée avec Scilab
Principes de la technologie orientée objets
le profil UML en temps réel MARTE
Démarche de résolution de problèmes
Concepts de base : la Classe Pour faire une comparaison simple, une classe serait a priori, une structure C avec des variables et des fonctions.
Algorithmique et Programmation
Analyse et Conception orientée objet
Initiation à la conception de systèmes d'information
Détection de co-évolution de gènes Master 2 : Informatique à Finalité Professionnelle et Recherche Unifiée (IFPRU) Parcours Ingénierie de lIntelligence.
Algorithmique et Programmation
Vers la conception objet
Techniques de test Boulanger Jean-Louis.
Calculatrice Financière Android
IGL301 - Spécification et vérification des exgiences 1 Chapitre 1 Introduction (ref : Bray chapitre 1)
IGL301 - Spécification et vérification des exgiences 1 Chapitre 2 Le processus dingénierie des exigences (ref : Bray chapitre 2)
Unified Modeling Langage
CSI3525: Concepts des Languages de Programmation
3.2 PRODUIT VECTORIEL Cours 7.
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Notions de Base Hiver 2002 Petko Valtchev.
ADAMOS Une plate-forme pour concevoir et évaluer des services proactifs Système proactif ? qui évolue en fonction des paramètres de lenvironnement physique.
Programmation logique Le Langage PROLOG
Programmation non procédurale Le projet ECOLE 2000
Systèmes d’informations : Définition, Composantes, Rôles et Approches.
Programmation linéaire en nombres entiers : les méthodes de troncature
Présentation de la méthode des Eléments Finis
ANALYSE METHODE & OUTILS
Paradigmes des Langages de Programmation
Paradigmes des Langages de Programmation
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
30 Janvier 2002 Club SEE 63 "Systèmes Informatiques de Confiance" 1 Vérification de spécification de logiciel critique Jean-Louis Boulanger RATPEST/ITF/AQL.
INTRODUCTION.
Supports de formation au SQ Unifié
Projets Synthèse Luigi Logrippo Politiques dans les systèmes informatiques Les systèmes informatiques de demain seront réglés de plus en.
Institut Supérieur des Sciences Appliquées et de Technologie Sousse
Algorithmique et programmation (1)‏
Vérification dans le cycle de vie GEF492A 2014 Référence: [HvV §14.2, 14.9] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
UML : un peu d’histoire H. Lounis.
J. Cardoso — C. Sibertin-Blanc — C
Initiation à la conception des systèmes d'informations
Présentation AICHA REVEL INGENIEUR D’ÉTUDE STERIA DEPARTEMENT TRD
MOCK.
Introduction et Généralités sur l’Algorithmique
GPA-779 Application des systèmes experts et des réseaux de neurones.
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Le Processus Hiver 2002 Petko Valtchev.
Dániel Darvas (CERN BE-ICS-PCS) Spécification formelle pour les API CERN-ESTEREL séminaire 21/01/2016, CERN Travail conjoint avec B. Fernández, E. Blanco,
PRÉSENTATION AGL LES TESTS LOGICIELS LES TEST LOGICIELS 1 Mickael BETTINELLI Brandon OZIOL Gaétan PHILIPPE Simon LUAIRE.
Transcription de la présentation:

Méthodes formelles pour la conception de systèmes répartis par Luigi Logrippo et tous ses collaborateurs et étudiants . . . École d`ingénierie et technologie de l`information UNIVERSITÉ D’OTTAWA

Mon intérêt de recherche Formalisation des concepts reliés à la conception des programmes répartis, surtout protocoles de communication Pour conduire à un véritable génie informatique dans ce domaine Car le génie justifie ses procédés sur des bases scientifiques (math, chimie...) Ces dernières ne sont pas souvent utilisées en pratique, cependant elles sont invoquées quand il est important de s’assurer que la conception est propre

Hypothèse La logique et l`algèbre abstraite sont pour le génie logiciel ce que le calcul différentiel et intégral sont pour le génie mécanique ou civil C`est à dire le génie informatique est en retard d’au moins 200 ans par rapport à ces autres domaines nous sommes encore à un stage où le produits informatiques sont construits selon les principes de l’expérience, sans bases scientifiques Fort probablement, les maths existantes ne sont pas suffisantes: le développement des bases mathématiques d’un nouveau domaine de génie a souvent demandé le développement de nouvelles méthodes de calcul, etc.

Conception rigoureuse ou vérification à posteriori Si la vérif est un pas à côté par rapport au processus de développement normal, elle ne sera pas beaucoup utilisée: seulement pour des systèmes critiques Il faut développer un processus linéaire de conception qui soit suivi naturellement par les ingénieurs du logiciel débutant à la conception et finissant avec l`exécutable comme aujourd`hui nous passons à travers la compilation, etc.

Premiers pas déjà faits Un compilateur est en partie un système de vérification très élémentaire: l’analyse grammaticale d’un programme, son analyse statique prouvent certaines propriétés élémentaires du programme avec des langages bien conçus, un certain nombre de propriétés importantes pour la réussite d`un programme peut être prouvé statiquement l’analyse dynamique (à l`exécution) est beaucoup plus complexe

Information sur le domaine d’application Les langages et compilateurs d'aujourd'hui sont conçus pour utilisation générale dans un grand éventail d’applications Pour avoir plus d’information concernant la validité d’un programme au moment de la compilation il faut donner plus d`information au système concernant le domaine d’application spécifique langages spécialisés, instructions spécialisées bases de données de connaissances concernant le domaine programmes de preuve automatique pour un domaine spécifique

Programme de recherches Développement de langages pour l’expression formelle des propriétés d’un système réparti (sémantique formelle) Spécification de systèmes réels en utilisant ces langages Recherche de méthodes qui pourraient être considérées naturelles par un professionnel

L'interaction de fonctionnalités téléphoniques complexes Domaine très intéressant et actuel la création de nouveau services téléphoniques sur demande de l ’usager sont-ils en conflit? comment résoudre les conflits?

Exemple d’interaction de fonctionnalités B est dans la liste OCS de A 3. A est connecté à B A B 2. C renvoie à B 1. A appelle C C Cette interaction peut être évitée si OCS contrôle le numéro de l’appel final, au lieu de contrôler le numéro composé (facile seul. si OCS est centralisé) C est en CFA à B

L’intéraction de fonctionnalités comme contradiction logique Un bon nombre d ’interactions de fonctionnalité peut être expliqué comme contradiction logique entre exigences Une contradiction existe entre les besoins de OCS et CFA si nous utilisons la même valeur pour un numéro dans la base de données OCS de A et le numéro de CFA pour B

Une méthode pour détecter les interactions statiquement Spécifier les exigences de chaque fonctionnalité en termes de programmation logique Voir s’il est possible de dériver une contradiction en unifiant les variables de toutes les façons possibles Ceci est faisable, car nous avons un nombre fini d’usagers

Déterminer si le scénario détecté peut effectivement se vérifier Le procédé mentionné ne peut que détecter le risque d’intéractions Il faut exécuter les fonctionnalités concernées pour voir si l’interaction est effectivement possible

LOTOS: un langage algébrique LOTOS est un langage basé sur l ’algèbre des processus de Milner (CCS) Rend possible des vérifications dynamique d’interactions Nous cherchons à exécuter le scénario dans la spec LOTOS

Use Case Maps: Une notation intuitive pour les premiers stages de conception (une notation de spécification exigences?)

Les UCMs se traduisent facilement en LOTOS Les UCM représentent un stage de conception très préliminaire Cependant ils sont exécutables à travers LOTOS! Donc nous pouvons déjà effectuer une simulation du comportement d’un système aux premiers stages de conception

Example de traduction Process User[ dial, U_A, A_U, ringBack, busyTone ]: (a:Agent, u:User):= dial !u ?dU:User; U_A !u !a !conReq !dU; ( A_U !a !u !conConf !ring; ringBack; exit [] (* - OR - *) A_U !a !u !conConf !busy; busyTone; ) endproc Process Agent[A_U, U_A, A_A, req]: (a:Agent, u:User):= U_A !u !a !conReq ?dU:User; req !dU ?dA; A_A !a !dA !conReq !dU; ( A_A !dA !a !conConf !ring; A_U !a !u !conConf !ring; exit [] (* - OR - *) A_A !dA !a !conConf !busy; A_U !a !u !conConf !busy; ) endproc

Nouvelles fonctionnalités basées sur l’internet L’internet ouvre les portes à toutes sortes de nouveaux types d’utilisation des réseaux et nouvelles fonctionnalités SIP, Session Initiation Protocol est un protocole qui permet la téléphonie à travers l ’internet CPL, Call Processing Language, est un langage pour la définition de fonctionnalités téléphoniques utilisant SIP Potentiel énorme, mais aussi risque énorme de dégâts et confusion...

Recherches reliées Résolution dynamique de conflits entre fonctionnalités Langages pour spécification de politiques d`usager Support pour les autres phases: implémentation, génération de code dérivation de données test Comment placer cette méthodologie dans le cadre de méthodologies de conception de logiciels tel que UML...?