la méthode z

44
Ministre de l'enseignement supérieur et de la recherche scientifique Algérie Université Saad Dahled Blida Faculté des sciences Département informatique Projet fin semestre :présentation la méthode Z Module : validation formelle des systèmes informatiques (VFSI) Présenter par : Professeure : Mme:F,Z,Zahra Mr: BENKHAOUA Sidahmed Mr: BELMABROUK Djamel Mr: Siahoui Karim Mr: Miraoui Akli

Upload: sidahmed-benkhaoua

Post on 31-Jul-2015

84 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: La méthode z

Ministre de l'enseignement supérieur et de la recherche scientifique Algérie

Université Saad Dahled Blida

Faculté des sciences

Département informatique

Projet fin semestre :présentation la méthode Z

Module : validation formelle des systèmes informatiques (VFSI)

Présenter par : Professeure :Mme:F,Z,Zahra Mr: BENKHAOUA Sidahmed

Mr: BELMABROUK Djamel

Mr: Siahoui Karim

Mr: Miraoui Akli

Page 2: La méthode z

2

La méthode Z

Page 3: La méthode z

3

Introduction Les méthodes informelle

Les méthodes semi-formelles

Les méthodes formelle

Définition de la méthode Z

Structure du schéma Z Les Prédicats

Résume symbole au Z

Exemple des fonction dans Z

Raffinement

Exemples d’applications

Variante Z-objets

Bilan et extensions

Conclusion

Reference

La méthode ZPant du travail

Page 4: La méthode z

4

Introduction Les méthodes de spécification (conception) des systèmes

informatiques : Méthodes informelles

Méthodes semi-formelles

Méthodes formelles

La méthode ZIntroduction

Page 5: La méthode z

5

les méthodes informelle

une spécification est dite informelle si elle est exprimée au moyen d’un langage informel, typiquement le langage naturel. Exemple : la fonction qui étant donné un réel positif x retourne.

La méthode Zintroduction

Page 6: La méthode z

6

les méthodes semi-formelles

La spécification semi-formelle graphique des connaissances avec le langage de Modélisation par Objets Typés (MOT) est une activité qui permet d’extérioriser la connaissance sous la forme d’un modèle.

La méthode Zintroduction

Page 7: La méthode z

7

les spécifications formelle

la spécification formelle donne toujours une description de ce que doit faire le logiciel et non pas comment il doit le faire spécification formelle ces techniques sont formelles puisqu'elles reposent sur les bases mathématique le but est d'eliminer les ambiguïtés, les mal entendus et les mouvais interprétation qui prouvent survenir dans la description en langage naturel

La méthode Zintroduction

Page 8: La méthode z

8

Définition de la méthode Z A l’origine la méthode Z est développé par l’équipe de J.R. Abrial

à l’Université d’Oxford, dans les années 80.

Elle permet d’exprimer les propriétés souhaitables d’un système en s’appuyant sur des résultats provenant de la théorie des ensembles.

Principe de modularité : décomposition de la spécification en parties de taille raisonnable, (a revoir, ce n’est pas tres claire) les schémas, portant sur un seul aspect du système à la fois.

La méthode ZDéfinition de la méthode Z

Page 9: La méthode z

9

Il y a Deux type d’aspects a considéré Aspects Statiques

La partie statique permet de définir les états et les relations d’invariant qui sont préservées lors des transitions d’etats. Elle est décrite en Z sous la forme d’un schéma d’etat.

Aspects Dynamiques

les opérations

les relations entre les entrées et les sorties

les changements d’états.

La méthode ZSchéma Z

Page 10: La méthode z

10

Syntaxe Un Schéma : unité syntaxique qui comporte trois parties

principales: nom, déclarations et prédicats.

La méthode ZSchéma Z

Nom

Déclarations

Prédicats

Introduit les noms et

les types des entités

qui seront utilisés par

le schéma

Établit les relations

entre les entitésdéclarés

précédemment

Page 11: La méthode z

11

Structure du schéma Z Déclarations de variable de la forme :

< identificateur > : < type >

Les prédicats précisent les propriétés des variables et les relations entre variables

Un schéma est utilisé afin de décrire un état ou une opération

La méthode ZStructure du schéma Z

Page 12: La méthode z

12

Dans la description d’un état :Les variables déclarées représentent les composantes de l’état, Les prédicats expriment les propriétés invariantes de l’état.

Dans la description d’une opération :Les déclarations incluent les composantes de l’état initial et celles de l’état final, ainsi que tous les entrées et les sorties de l’opération.

Les prédicats expriment les relations entre les entrées et les sorties, et entre l’état initial et l’état final.

La méthode ZStructure du schéma Z

Page 13: La méthode z

13

Les Types Un type en Z est interprété comme un ensemble

Les types peuvent être : types simples :

Prédéfinis: Ex. entier (N), chaîne (String), etc.

Définis par l’utilisateur: Ex. Jour, Mois, etc.

Types composites:

Ensembles d’ensembles

Produit cartésienne

Schémas

La méthode ZStructure du schéma Z

Les Types

Page 14: La méthode z

14

Les PrédicatsSyntaxe:

Langage standard de la théorie des ensembles

Constantes:entiers (…,-1,0,1,2,…), ensemblistes (ø), etc.

Opérations etprédicats sur les entiers: +, -, *, div, mod,>, <, etc.

Opérations ensemblistes: =, ,,etc

Connecteurs,quantificateurs: ,,,etc,

La méthode ZStructure du schéma Z

Les Prédicats

Page 15: La méthode z

15

Les Prédicats (Suite)Syntaxe:

Opérateurs sur fonctions etre relations:

relation (X Y),fonction totale (X Y)ou partielle(X Y)

domaine (dom R), co-domaine (ran R), identité (id R),

composition (Q R),image (X Y)

restrictions: domaine (Q R),

co-domaine (R Q),

surcharge (Q R),

La méthode ZStructure du schéma Z

Les Prédicats

Page 16: La méthode z

16

Resume symbole du langage Z f c’est un ensemble de tout les sous –ensemble de X ,

x est un élément de X,

x n’est pas un élément de X,

s est un sous ensemble de X

union de ensemble s avec X,

intersection ensemble S avec X,

Déférence de ensemble S et X,

ensemple vide,

cardinalité de ensemble X,

La méthode ZStructure du schéma Z

Résume symbole

Page 17: La méthode z

17

Résume symbole du langage ZLogique :

vrai si P est Q sont vrai ,

vrai si P ou Q sont vrai,

vrai si P est vrai ou Q et faux,

vrai si P est vrai ou Q et faux et vice versa ,

vrai si P est faux,

La méthode ZStructure du schéma Z

Résume symbole

Page 18: La méthode z

18

Raffinement Le raffinement permet de remplacer les types de données

abstraits d’une spécification Z par des types de données plus concrets.

Le raffinement d’un schéma d’état est, en outre, accompagne des raffinements des opérations qui modifient l’état du schéma raffine. Les opérations sont par conséquent a nouveau spécifiées en utilisant les nouveaux types de données définis dans le raffinement du schéma du système.

La méthode ZRaffinement

Page 19: La méthode z

19

Voici un exemple de spécification formelle utilisant langage Z

un système de gestion pour le dictionnaire de donnée utilisant dans l’analyse structurée .

Les champs de ce dectionnaire sont ; Nom

Allais

Ou/comment utilisé,

Description de continue,

Information supplémentaire ,

Date de création,

La méthode ZExemples

Exemple d’un dictionnaire

Page 20: La méthode z

20

Exemple d’un dictionnaire Nous établissons les opération suivant pour le system de gestion

Ajouter Ajouter une description de donnée dans le dictionnaire

Éliminer Eliminer une description de donnée du dictionnaire

Fouiller Trouver une description de donnée dans le description dans le dictionnaire

Remplacer Remplacer une description de données par une autre description

La méthode ZExemples

Page 21: La méthode z

21

Exemple d’un dictionnaire Nous définissons les type qui seront utilisés dans la spécification du dictionnaire

Les types dans Z sont définis par des ensembles

Il existe deux types d’ensemble dans Z :

ensemble définis explicitement c'est-à-dire pare énumération pour par construction .

ensemble de donnée c'est-à-dire dans ensemble indique seulement par des noms .leur définitions sont extraites plus tard lors de la conception ou lors de l’implémentation .

On distingue les ensemble donné par des crochets

[ensemble1,ensemble2]

La méthode ZExemples

Page 22: La méthode z

22La méthode Z

Exemples d’applications exemple de dectionner

Nous définissons les types qui seront utilisés dans la spécification du dectionner : Les schéma Z definissant les types

peut ressembler a ceciDonnéeentresdesctionaire

Nom:[NOM]Alias:[NOM]Ou_comment:[TEXTE]Description:seq charInformation:[DATE]

#description #information Les invariant de

schéma il sont vrai peu import

état des variables

Nom,TXT et date sont des ensembles

donnée ,leurs définition exacte

seront établies plus tard

Page 23: La méthode z

23La méthode Z

Exemples d’applications exemple de dectionner

Nous définissons maintenant le dictionnaire :

DectionaireDonnees

DonnéeentresdIctionairedictionnaire : [NOM] {Donnéeentresdesctionaire}

Le dictionnaire de donnée est défini comme une fonction partielle.

Cette fonction partielle admet comme domaine le type NOM et comme rang l’ensemble des valeur du schéma DonnéeEntreeDictionniare.

Le dictionnaire est défini par une fonction partielle puisque tous les noms ne sont pas dans le dictionnaire,

Page 24: La méthode z

24La méthode Z

Exemples d’applications exemple de dectionner

Nous définissons maintenant le dectionner ,

Init-dictionnaire

DictionnaireDonnee’

dicitionnaire’=

Nous exprimons l’initialisation du dictionnaire :

La notion X’ (x décoré) signifie l’état de x après une opération si x est un schéma Z alors tout ses variable sont aussi décriées,

Dans notre cas nous créons le schème init_Dectaionnaire pour exprimer la mise en ouvre du dictionnaire

Page 25: La méthode z

25

Exemple d’un dictionnaire Définissons l’opération ajouter pour notre dictionnaire :

D’abord ,il y aura erreur si le nom de la donnée est déjà dans le dictionnaire et le continue du dictionnaire ne sera pas changés

Il est recommandé de scinder le spécification de l’opération ajouter en deux partie: Une partie qui décrit l’opération normale

L’autre doit décrit les situation d’exception,

La méthode ZExemples

Page 26: La méthode z

26La méthode Z

Exemples d’applications exemple de dectionner

Ajouter_Ok

DictionnaireDonneenom?:NOM

Entrée?:DonneeEntreeDictionnaire

Nom? dictionnairedictionnaire’ =dictionnaire {nom? entrée?}

Finalement ,l’opération spécifiée est la combinaison ces deux parties ,

Voici l’opération normale de ajouter:

Page 27: La méthode z

27La méthode Z

Exemples d’applications exemple de dictionnaire

Ajouter_Erreur

DictionnaireDonneenom?:NOMerreur!: seq char

nom? dictionnaireerreur! = ‘données déjà dans le dictionnaire ’

Voici la description des situations exceptionnelles de l’opération ajouter ,

La combinaison des schémes Ajouter_Ok et Ajouter_Erreur donne la description compléte de l’operation

Ajouter Ajouter_OK Ajouter_Erreur

Page 28: La méthode z

28

Exemple d’un dictionnaire De la même façon , définissons l’opération chercher pour notre dictionnaire :

D’abord , une erreur est signalée si le nom de la donnée n’est pas dans dictionnaire et le contenu du dictionnaire ne sera pas changé,

Encore une fois, il est recommandé se scinder la spécification de l’opération chercher en deux parties:

Une partie qui décrit l’opération normale

L’autre doit décrit les situation d’exception

La méthode ZExemples

Page 29: La méthode z

29La méthode Z

Exemples d’applications exemple de dectionner

Cherche_Ok

DictionnaireDonneenom?:NOM

entrée?:DonneeEntreeDictionnaire

Nom? dictionnaireEntrée! = dictionnaire(nom?)

Finalement ,l’opération spécifiée est la combinaison ces deux parties ,

Voici l’opération normale de chercher :

Page 30: La méthode z

30La méthode Z

Exemples d’applications exemple de dictionnaire

recherche_Erreur

DictionnaireDonneenom?:NOMerreur!: seq char

nom? dictionnaireerreur! = ‘données n’est pas dans la dictionnaire’

Voici la description des situations exceptionnelles de l’opération chercher,

La combinaison des schémes Chercher_Ok et Chercher_Erreur donne la description compléte de l’operation

chercher Chercher_Ok Chercher_Erreur

Page 31: La méthode z

31

le Birthday Book est un exemple connu de système qui permet de retenir les dates d’anniversaire

La méthode ZExemples d’applications

Décrire les aspects statiques :

Page 32: La méthode z

32

le Birthday Book est un exemple connu de système qui permet de retenir les dates d’anniversaire

La méthode ZExemples d’applications

Décrire les aspects dynamiques : l’opération AddBirthday permet de

rajouter une date d’anniversaire dans le système :

Page 33: La méthode z

33

le Birthday Book est un exemple connu de système qui permet de retenir les dates d’anniversaire

La méthode ZExemples d’applications

Décrire les aspects dynamiques : Pour initialiser, un schéma

InitBirthdayBook est défini :

Page 34: La méthode z

34

le Birthday Book est un exemple connu de système qui permet de retenir les dates d’anniversaire

La méthode ZExemples d’applications

Décrire les aspects dynamiques : Puis on fait le raffinement: donc

BirthdayBook est raffine par le schéma BirthdayBook1

Page 35: La méthode z

35

le Birthday Book est un exemple connu de système qui permet de retenir les dates d’anniversaire

La méthode ZExemples d’applications

Décrire les aspects dynamiques : l’opération AddBirthday est raffinée

par :

Page 36: La méthode z

36

Variant Object-Z Object-Z est une extension du langage Z qui permet de spécifier

des systèmes dans un style oriente objet. Dans une spécification Z, il est difficile de déterminer les conséquences des opérations sur un schéma d’état donne, car les schémas d’opération peuvent agir sur les états de plusieurs schémas d’etat. La notion de classe est introduite pour regrouper dans un même schéma toutes les opérations la concernant.

La méthode ZVariant Object-Z

Page 37: La méthode z

37

Une classe Object-Z est représentée par une boîte contenant la liste des classes héritées.

des définitions de types.

des définitions de constantes.

un schéma d’etat.

un Schema d‘etat Initial.

des schémas d’opération.

Le schéma d’état ne porte généralement pas de nom dans une classe Object-Z.

La méthode ZVariant Object-Z

Page 38: La méthode z

38

Héritage :L’héritage permet a une classe de considérer les définitions d’une autre classe, (type, constante et les schémas).

Instanciation :L’instanciation permet de renommer les variables, les types et les constantes d’une classe.

La méthode ZVariant Object-Z

Page 39: La méthode z

39

Exemple :Une classe Queue[T] qui définit une file d’attente de type FIFO

La méthode ZVariant Object-Z

Page 40: La méthode z

40

Bilan et extensions Bilan

Bon complément d’une modélisation semi-formelle

Documentation rigoureuse

Preuve de programmes

La méthode ZBilan et extensions

Page 41: La méthode z

41

Bilan et extensions Extensions

Outils

Spécification défensive ou offensive

Orientation objet

La méthode ZBilan et extensions

Page 42: La méthode z

42

Conclusion Z est manifestement celIe qui nous semble la plus prometteuse,

Z est applicable a tous les domaines de l'informatique,

i1 est statique et non-procedural,

il a une base théorique saine; il est complet,

i1 combine la precision des mathematiques avec l'elegance d'expression des Lang âges de programmation actuels

La méthode ZConclusion

Page 43: La méthode z

43

Merci pour Votre Attention

Page 44: La méthode z

44

Reference [SOMM96] Sommerville,I,,software ebgineering,Harlow,England:Addision-Wesley,1996,

[PRES97] Pressman,R,S,Software Engineering-A partionner’s approch,New York:McGraw-Hill,1997,

[HTTP01] www,cs,herts,ac,uk/jean/algspec/pr,html

[MONO92] Monarchi,D,E,,G,I,Puhr, » A research topology for OO Analys»

Communication of the ACM,vol,35,no 9,pp,35-45,spt 1992

La méthode Z Reference