La méthode z validation

Preview:

Citation preview

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

2

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

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

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

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

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

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, les schémas, portant sur un seul aspect du système à la fois.

La méthode ZDéfinition de 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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,

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

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

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:

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

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

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 :

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

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 :

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 :

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 :

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

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 :

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

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

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

39

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

La méthode ZVariant Object-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

41

Bilan et extensions Extensions

Outils

Spécification défensive ou offensive

Orientation objet

La méthode ZBilan et extensions

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

43

Merci pour Votre Attention

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

Recommended