La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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.

Présentations similaires


Présentation au sujet: "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."— Transcription de la présentation:

1 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 U NIVERSITÉ D O TTAWA

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

3 3 Hypothèse n 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 n C`est à dire le génie informatique est en retard dau moins 200 ans par rapport à ces autres domaines u nous sommes encore à un stage où le produits informatiques sont construits selon les principes de lexpérience, sans bases scientifiques n Fort probablement, les maths existantes ne sont pas suffisantes: le développement des bases mathématiques dun nouveau domaine de génie a souvent demandé le développement de nouvelles méthodes de calcul, etc.

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

5 5 Premiers pas déjà faits n Un compilateur est en partie un système de vérification très élémentaire: u lanalyse grammaticale dun 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 lanalyse dynamique (à l`exécution) est beaucoup plus complexe

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

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

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

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

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

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

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

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

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

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

16 16 Example de traduction 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; exit ) endproc 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; exit ) endproc

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

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


Télécharger ppt "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."

Présentations similaires


Annonces Google