Vous êtes sur la page 1sur 44

Ministre de l'enseignement suprieur et de la

recherche scientifique Algrie


Universit Saad Dahled Blida
Facult des sciences
Dpartement informatique
Projet fin semestre :prsentation la mthode Z
Module : validation formelle des systmes informatiques (VFSI)

Prsenter par :

Mr: BENKHAOUA Sidahmed

Mr: BELMABROUK Djamel

Mr: Siahoui Karim

Mr: Miraoui Akli

Professeure :
Mme:F,Z,Zahra

La mthode Z

La mthode Z
Pant du travail

Introduction

Les mthodes informelle

Les mthodes semi-formelles

Les mthodes formelle

Dfinition de la mthode Z

Structure du schma Z

Les Prdicats

Rsume symbole au Z

Exemple des fonction dans Z

Raffinement

Exemples dapplications

Variante Z-objets

Bilan et extensions

Conclusion

Reference

La mthode Z
Introduction

Introduction

Les mthodes de spcification (conception) des systmes


informatiques :

Mthodes informelles

Mthodes semi-formelles

Mthodes formelles

La mthode Z
introduction

les mthodes informelle

une spcification est dite informelle si elle est exprime au


moyen dun langage informel, typiquement le langage naturel.
Exemple : la fonction qui tant donn un rel positif x retourne.

La mthode Z
introduction

les mthodes semi-formelles

La spcification semi-formelle graphique des connaissances avec


le langage de Modlisation par Objets Typs (MOT) est une
activit qui permet dextrioriser la connaissance sous la forme
dun modle.

La mthode Z
introduction

les spcifications formelle

la spcification formelle donne toujours une description de ce


que doit faire le logiciel et non pas comment il doit le faire
spcification formelle ces techniques sont formelles puisqu'elles
reposent sur les bases mathmatique le but est d'eliminer les
ambiguts, les mal entendus et les mouvais interprtation qui
prouvent survenir dans la description en langage naturel

La mthode Z
Dfinition de la mthode Z

Dfinition de la mthode Z

A lorigine la mthode Z est dvelopp par lquipe de J.R. Abrial


lUniversit dOxford, dans les annes 80.

Elle permet dexprimer les proprits souhaitables dun systme


en sappuyant sur des rsultats provenant de la thorie des
ensembles.

Principe de modularit : dcomposition de la spcification en


parties de taille raisonnable, (a revoir, ce nest pas tres claire) les
schmas, portant sur un seul aspect du systme la fois.

La mthode Z
Schma Z
Il y a Deux type daspects a considr

Aspects Statiques

La partie statique permet de dfinir les tats et les relations dinvariant


qui sont prserves lors des transitions detats. Elle est dcrite en Z sous
la forme dun schma detat.

Aspects Dynamiques

les oprations

les relations entre les entres et les sorties

les changements dtats.

La mthode Z
Schma Z

10

Syntaxe

Un Schma : unit syntaxique qui comporteIntroduit


trois les
parties
noms
et
principales: nom, dclarations et prdicats.
tablit les relations
entre les entits
dclars
prcdemment

Nom
Dclarations
Prdicats

les types des


entits
qui seront utiliss
par
le schma

La mthode Z
Structure du schma Z

Structure du schma Z

Dclarations de variable de la forme :


< identificateur > : < type >

Les prdicats prcisent les proprits des variables et les


relations entre variables

Un schma est utilis afin de dcrire un tat ou une opration

11

La mthode Z
Structure du schma Z

Dans la description dun tat :


Les variables dclares reprsentent les composantes de ltat,
Les prdicats expriment les proprits invariantes de ltat.

Dans la description dune opration :


Les dclarations incluent les composantes de ltat initial et
celles de ltat final, ainsi que tous les entres et les sorties de
lopration.

Les prdicats expriment les relations entre les entres et les


sorties, et entre ltat initial et ltat final.

12

La mthode Z
Structure du schma Z
Les Types

Les Types

Un
type en Z est interprt comme un ensemble

Les types peuvent tre :

types simples :

Prdfinis: Ex. entier (N), chane (String), etc.

Dfinis par lutilisateur: Ex. Jour, Mois, etc.

Types composites:

Ensembles densembles

Produit cartsienne

Schmas

13

La mthode Z
Structure du schma Z
Les Prdicats

Les Prdicats

Syntaxe:

Langage standard de la thorie des ensembles

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

Oprations etprdicats sur les entiers: +, -, *, div, mod,>, <, etc.

Oprations ensemblistes: =, ,,etc

Connecteurs,quantificateurs: ,,,etc,

14

La mthode Z
Structure du schma Z
Les Prdicats

Les Prdicats (Suite)

Syntaxe:

Oprateurs 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),

15

La mthode Z
Structure du schma Z
Rsume symbole

Resume symbole du langage Z

f cest un ensemble de tout les sous ensemble de X ,


x est un lment de X,

x nest pas un lment de X,

s est un sous ensemble de X

union de ensemble s avec X,

intersection ensemble S avec X,

Dfrence de ensemble S et X,

ensemple vide,

cardinalit de ensemble X,

16

La mthode Z
Structure du schma Z
Rsume symbole

Rsume symbole du langage Z

Logique

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,

17

La mthode Z
Raffinement

Raffinement

Le raffinement permet de remplacer les types de donnes


abstraits dune spcification Z par des types de donnes plus
concrets.

Le raffinement dun schma dtat est, en outre, accompagne


des raffinements des oprations qui modifient ltat du schma
raffine. Les oprations sont par consquent a nouveau spcifies
en utilisant les nouveaux types de donnes dfinis dans le
raffinement du schma du systme.

18

La mthode Z
Exemples

Exemple dun dictionnaire


Voici un exemple de spcification formelle utilisant langage Z
un systme de gestion pour le dictionnaire de donne utilisant dans lanalyse
structure .

Les champs de ce dectionnaire sont;

Nom

Allais

Ou/comment utilis,

Description de continue,

Information supplmentaire ,

Date de cration,

19

La mthode Z
Exemples

Exemple dun dictionnaire


Nous tablissons les opration suivant pour le system de gestion

Ajouter

liminer

Eliminer une description de donne du dictionnaire

Fouiller

Ajouter une description de donne dans le dictionnaire

Trouver une description de donne dans le description dans le dictionnaire

Remplacer

Remplacer une description de donnes par une autre description

20

La mthode Z
Exemples

Exemple dun dictionnaire


Nous dfinissons les type qui seront utiliss dans la spcification du dictionnaire
Les types dans Z sont dfinis par des ensembles
Il existe deux types densemble dans Z:

ensemble dfinis explicitement c'est--dire pare numration pour par


construction .

ensemble de donne c'est--dire dans ensemble indique seulement par des


noms .leur dfinitions sont extraites plus tard lors de la conception ou lors de
limplmentation .

On distingue les ensemble donn par des crochets

[ensemble1,ensemble2]

21

La mthode Z
Exemples dapplications exemple de dectionner

Nom,TXT et date
sont des ensembles
donne ,leurs
dfinition exacte
seront tablies plus
tard

Les invariant de
schma il sont
vrai peu import
tat des
variables

Nous dfinissons les types qui


seront utiliss dans la spcification
du dectionner :

Les schma Z definissant les types


peut
ressembler a ceci
Donneentresdesctionair
e

Nom:[NOM]
Alias:[NOM]
Ou_comment:[TEXTE]
Description:seq char
Information:[DATE]
#description
#information

22

La mthode Z
Exemples dapplications exemple de dectionner

Le dictionnaire de donne
est dfini comme une
fonction partielle.

Cette fonction partielle


admet comme domaine le
type NOM et comme rang
lensemble des valeur du
schma
DonneEntreeDictionniare.

Le dictionnaire est dfini par


une fonction partielle
puisque tous les noms ne
sont pas dans le
dictionnaire,

23

Nous dfinissons maintenant le


dictionnaire :
DectionaireDonnees

DonneentresdIctionaire
dictionnaire : [NOM] {Donneentresdesctionaire}

La mthode Z
Exemples dapplications exemple de dectionner

Nous exprimons
linitialisation du dictionnaire
:

La notion X (x dcor)
signifie ltat de x aprs une
opration si x est un schma
Z alors tout ses variable sont
aussi dcries,

Dans notre cas nous crons


le schme init_Dectaionnaire
pour exprimer la mise en
ouvre du dictionnaire

Nous dfinissons maintenant le


dectionner ,
Init-dictionnaire
DictionnaireDonnee

dicitionnaire=

24

La mthode Z
Exemples

Exemple dun dictionnaire


Dfinissons lopration ajouter pour notre dictionnaire :
Dabord ,il y aura erreur si le nom de la donne est dj dans le
dictionnaire et le continue du dictionnaire ne sera pas changs

Il est recommand de scinder le spcification de lopration


ajouter en deux partie:

Une partie qui dcrit lopration normale

Lautre doit dcrit les situation dexception,

25

La mthode Z
Exemples dapplications exemple de dectionner

Finalement ,lopration
spcifie est la combinaison
ces deux parties ,

Voici lopration normale de


ajouter:

Ajouter_Ok
DictionnaireDonnee
nom?:NOM
Entre?:DonneeEntreeDictionnair
e
Nom? dictionnaire
dictionnaire =dictionnaire {nom?
entre?}

26

La mthode Z
Exemples dapplications exemple de dictionnaire

Voici la description des


situations exceptionnelles de
lopration ajouter ,

La combinaison des schmes


Ajouter_Ok et Ajouter_Erreur
donne la description
complte de loperation

Ajouter
Ajouter_OK Ajouter_Erreur

Ajouter_Erreur
DictionnaireDonnee
nom?:NOM
erreur!: seq char
nom? dictionnaire
erreur! = donnes dj dans le
dictionnaire

27

La mthode Z
Exemples

Exemple dun dictionnaire


De la mme faon , dfinissons lopration chercher pour notre
dictionnaire :
Dabord , une erreur est signale si le nom de la donne nest pas
dans dictionnaire et le contenu du dictionnaire ne sera pas chang,
Encore une fois, il est recommand se scinder la spcification de
lopration chercher en deux parties:

Une partie qui dcrit lopration normale

Lautre doit dcrit les situation dexception

28

La mthode Z
Exemples dapplications exemple de dectionner

Finalement ,lopration
spcifie est la combinaison
ces deux parties ,

Voici lopration normale de


chercher :

Cherche_Ok
DictionnaireDonnee
nom?:NOM
entre?:DonneeEntreeDictionnair
e
Nom? dictionnaire
Entre! = dictionnaire(nom?)

29

La mthode Z
Exemples dapplications exemple de dictionnaire

Voici la description des


situations exceptionnelles de
lopration chercher,

La combinaison des schmes


Chercher_Ok et
Chercher_Erreur donne la
description complte de
loperation
chercher
Chercher_Ok Chercher_Erreur

recherche_Erreur
DictionnaireDonnee
nom?:NOM
erreur!: seq char
nom? dictionnaire
erreur! = donnes nest pas
dans la dictionnaire

30

La mthode Z
Exemples dapplications

le Birthday Book est un


exemple connu de
systme qui permet de
retenir les dates
danniversaire

31
Dcrire les aspects statiques :

La mthode Z
Exemples dapplications

32
Dcrire les aspects dynamiques :

le Birthday Book est un


exemple connu de
systme qui permet de
retenir les dates
danniversaire

lopration AddBirthday permet de


rajouter une date danniversaire
dans le systme :

La mthode Z
Exemples dapplications

33
Dcrire les aspects dynamiques :

le Birthday Book est un


exemple connu de
systme qui permet de
retenir les dates
danniversaire

Pour initialiser, un schma


InitBirthdayBook est dfini :

La mthode Z
Exemples dapplications

34
Dcrire les aspects dynamiques :

le Birthday Book est un


exemple connu de
systme qui permet de
retenir les dates
danniversaire

Puis on fait le raffinement: donc


BirthdayBook est raffine par le
schma BirthdayBook1

La mthode Z
Exemples dapplications

35
Dcrire les aspects dynamiques :

le Birthday Book est un


exemple connu de
systme qui permet de
retenir les dates
danniversaire

lopration AddBirthday est raffine


par :

La mthode Z
Variant Object-Z

Variant Object-Z

Object-Z est une extension du langage Z qui permet de spcifier


des systmes dans un style oriente objet. Dans une spcification
Z, il est difficile de dterminer les consquences des oprations
sur un schma dtat donne, car les schmas dopration
peuvent agir sur les tats de plusieurs schmas detat. La notion
de classe est introduite pour regrouper dans un mme schma
toutes les oprations la concernant.

36

La mthode Z
Variant Object-Z

Une classe Object-Z est reprsente par une bote contenant

la liste des classes hrites.

des dfinitions de types.

des dfinitions de constantes.

un schma detat.

un Schema detat Initial.

des schmas dopration.

Le schma dtat ne porte gnralement pas de nom dans une


classe Object-Z.

37

La mthode Z
Variant Object-Z

Hritage :
Lhritage permet a une classe de considrer les dfinitions
dune autre classe, (type, constante et les schmas).

Instanciation :
Linstanciation permet de renommer les variables, les types et
les constantes dune classe.

38

La mthode Z
Variant Object-Z

Exemple :
Une classe Queue[T] qui
dfinit une file dattente
de type FIFO

39

La mthode Z
Bilan et extensions

Bilan et extensions

Bilan

Bon complment dune modlisation semi-formelle

Documentation rigoureuse

Preuve de programmes

40

La mthode Z
Bilan et extensions

Bilan et extensions

Extensions

Outils

Spcification dfensive ou offensive

Orientation objet

41

La mthode Z
Conclusion

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 thorique saine; il est complet,

i1 combine la precision des mathematiques avec l'elegance


d'expression des Lang ges de programmation actuels

42

43

Merci pour Votre Attention

La mthode Z
Reference

Reference
[SOMM96] Sommerville,I,,software
ebgineering,Harlow,England:Addision-Wesley,1996,
[PRES97] Pressman,R,S,Software Engineering-A partionners
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

44