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

JSD et algèbre de processus

Présentations similaires


Présentation au sujet: "JSD et algèbre de processus"— Transcription de la présentation:

1 JSD et algèbre de processus
(ref : Bray section pages 311 à 313) IGL301 - Spécification et vérification des exgiences

2 JSD et Algèbre de processus
Décrire les séquences d’évènement à l’aide d’une algèbre Orthogonal (en terme de style) aux automates et machines à états Similaire aux expressions régulières IGL301 - Spécification et vérification des exgiences

3 IGL301 - Spécification et vérification des exgiences
JSD Jackson System Development (1983) notation graphique pour les expressions régulières diagramme JSD est l’arbre syntaxique d’une expression régulière opérateurs séquence, choix, itération IGL301 - Spécification et vérification des exgiences

4 IGL301 - Spécification et vérification des exgiences
Algèbre de processus Tony Hoare (CSP) et Robin Milner (CCS) (~ ) plus puissant que JSD expression régulière plus paramètres pour les actions opérateurs additionnels || - synchronisation ||| - entrelacement appel de processus opérations quantifiées IGL301 - Spécification et vérification des exgiences

5 EB3 - Algèbre de processus
Frappier et St-Denis (1998) Inspiré de CSP, CCS et Lotos, mais syntaxe plus simple, inspirée des expressions régulières Utilise les traces pour spécifier les sorties d’un système d’information algèbre de processus traditionnelles (CSP et CCS) ne le permettent pas facilement Sémantique opérationnelle IGL301 - Spécification et vérification des exgiences

6 Exemple de la bibliothèque
main = ( ||| b : BookId : book(b)* ) || ( ||| m : MemberId : member(m)* ) IGL301 - Spécification et vérification des exgiences

7 Exemple de la bibliothèque
book(b : BookId ) = Acquire(b, _) • ( loan( _, b)* ||| ListBookId(b)* ) • Discard(b) IGL301 - Spécification et vérification des exgiences

8 Exemple de la bibliothèque
member(m : MemberId ) = Join(m, _,_) • ( ||| b : BookId : loan( m, b)* ) • Leave(m) IGL301 - Spécification et vérification des exgiences

9 Exemple de la bibliothèque
loan (m:MemberId, b:BookId ) = Lend(m, b) • Renew(b)* • Return(b) IGL301 - Spécification et vérification des exgiences

10 IGL301 - Spécification et vérification des exgiences
Opérateurs opérateurs définis par des règles de transitions règles définissent un système de transition E peut exécuter  et se transformer en E’ IGL301 - Spécification et vérification des exgiences

11 IGL301 - Spécification et vérification des exgiences
Règle de l’action dénote une action interne dénote un processus qui a terminé avec succès IGL301 - Spécification et vérification des exgiences

12 IGL301 - Spécification et vérification des exgiences
Règles -1 IGL301 - Spécification et vérification des exgiences

13 IGL301 - Spécification et vérification des exgiences
Règles - 2 IGL301 - Spécification et vérification des exgiences

14 IGL301 - Spécification et vérification des exgiences
Règles - 3 IGL301 - Spécification et vérification des exgiences

15 Exemples de transitions
IGL301 - Spécification et vérification des exgiences

16 IGL301 - Spécification et vérification des exgiences
Exemple de preuve IGL301 - Spécification et vérification des exgiences

17 IGL301 - Spécification et vérification des exgiences
Garde P ==> E pour définir la condition P, on peut utiliser des fonctions récursives sur les traces de l’expression de processus main exemple nbLoansMember(t,m) < maxLoans(t,m) ==> Lend(m,b) IGL301 - Spécification et vérification des exgiences

18 IGL301 - Spécification et vérification des exgiences
Fonction récursive int nbLoansMember(t:Trace, m:MemberId) = match last(t) with  : ; Join(m, _ ) : 0; Lend( m, b) : 1 + nbLoansMember(front(t),m); otherwise : nbLoansMember(front(t),m) end IGL301 - Spécification et vérification des exgiences

19 IGL301 - Spécification et vérification des exgiences
Fonction récursive int nbLoans(t : Trace, b : BookId) = match last(t) with  : ; Acquire(b, _ ) : 0; Lend( _, b) : 1 + nbLoans(front(t),b); Renew(b) : 1 + nbLoans(front(t),b); otherwise : nbLoans(front(t),b); end appel récursif valeur de retour action IGL301 - Spécification et vérification des exgiences

20 IGL301 - Spécification et vérification des exgiences
TP6 Donnez l’expression de processus décrivant le système suivant : “Le système doit gérer des équipes et des joueurs. Un joueur peut jouer pour une seule équipe à la fois. Une équipe comporte un maximum de 25 joueurs. Prenez en compte les actions suivantes : créer et supprimer une équipe, créer et supprimer un joueur, embauche d’un joueur par une équipe,libération d’un joueur par une équipe.” IGL301 - Spécification et vérification des exgiences


Télécharger ppt "JSD et algèbre de processus"

Présentations similaires


Annonces Google