You are on page 1of 417

Mthodes formelles

La notation Z
Pascal Andre
IRIN - IUP Miage de Nantes
Universite de Nantes
` ; B.P. 92208
2 rue de la Houssiniere
44322 Nantes Cedex 03
Pascal.Andre@irin.univ-nantes.fr

Methodes
formelles p.1/153

Plan du cours
1. Rappels sur le dveloppement du logiciel
mthodes, langages et notations
gestion de projet
2. Exemple introductif
3. La notation Z
- informellement
+ formellement
4. La mthode de dveloppement
- informellement
+ formellement
5. Bilan et extensions

Methodes
formelles p.2/153

Bibliographie sommaire
Gnralits et techniques de base

Methodes
formelles p.3/153

Bibliographie sommaire
Gnralits et techniques de base

[AV01a] Pascal Andr and Alain Vailly. Conception de Systmes


dInformation, Panorama des mthodes et des
techniques, volume 1 of Collection Technosup. Editions
Ellipses, 2001. ISBN 2-7298-0479-X.
[MR93] Jos Morejon and Jean-Ren Rames. Conduite de
projets informatiques. InterEditions, 1993. Principes et
techniques sappuyant sur la mthode MERISE, ISBN
2-7296-0457-X.
[Vil95] Franoise Villeneuve. Conduite de projet. CNRS, 1995.
http://dsi-val.dsi.cnrs.fr/
bureau qualite/qualite/conduit.htm.

Methodes
formelles p.3/153

Bibliographie sommaire
Gnralits et techniques de base
Cours Z

Methodes
formelles p.3/153

Bibliographie sommaire
Gnralits et techniques de base
Cours Z

[AV01b] Pascal Andr and Alain Vailly. Spcification des


logiciels, Deux exemples de pratiques rcentes : Z et
UML, volume 2 of Collection Technosup. Editions
Ellipses, 2001. ISBN 2-7298-0774-8.
[Spi94] Mike Spivey. La notation Z. Collection Mthodologies
du logiciel. Editions Masson, 1994. Traduit de langlais
par Michel Lemoine, ISBN 2-225-84367-8.

Methodes
formelles p.3/153

Bibliographie sommaire
Gnralits et techniques de base
Cours Z
Corrigs dexercices Z

Methodes
formelles p.3/153

Bibliographie sommaire
Gnralits et techniques de base
Cours Z
Corrigs dexercices Z

[AV03] Pascal Andr and Alain Vailly. Exercices corrigs en


langage Z, les spcifications formelles par la pratique,
volume 4 of Collection Technosup. Editions Ellipses,
2003. ISBN -, paratre.

Methodes
formelles p.3/153

Plan du cours
1. Rappels sur le dveloppement du logiciel
mthodes, langages et notations
gestion de projet
2. Exemple introductif
3. La notation Z
- informellement
+ formellement
4. La mthode de dveloppement
- informellement
+ formellement
5. Bilan et extensions

Methodes
formelles p.4/153

Le dveloppement du logiciel
1. Introduction
2. Gnie logiciel
3. Projet informatique
4. Mthode de dveloppement
Modles, produits
Processus
Validation, vrification
5. Qualit

Methodes
formelles p.5/153

Introduction
De lide au code
exprimer
programmer
vrifier

Methodes
formelles p.6/153

Introduction
De lide au code
exprimer
programmer
vrifier
avec mthode...
dans le bon ordre
viter lanarchie
travailler en groupe

Methodes
formelles p.6/153

Introduction
De lide au code
exprimer
programmer
vrifier
avec mthode...
dans le bon ordre
viter lanarchie
travailler en groupe
... et qualit
modles (correct, fiable, volutif...)
processus (efficace, rentable...)

Methodes
formelles p.6/153

MODELES

PROCESSUS
GESTION DE PROJET

et qualit
modles (correct, fiable, volutif...)
processus (efficace, rentable...)

avec mthode.
dans le bon ordre
viter lanarchie
travailler en groupe

De lide au code
exprimer
programmer
vrifier

Introduction

QUALITE

Methodes
formelles p.6/153

Le dveloppement individuel
mthodes "agiles", XP

Analyse lgre ou dans la "tte"

Methodes
formelles p.7/153

Le dveloppement individuel
mthodes "agiles", XP

Analyse lgre ou dans la "tte"


oublis
erreurs tardives
manque de rflexion

Methodes
formelles p.7/153

Le dveloppement individuel
mthodes "agiles", XP

Analyse lgre ou dans la "tte"


Programmation incrmentale et itrative sur le test

Methodes
formelles p.7/153

Le dveloppement individuel
mthodes "agiles", XP

Analyse lgre ou dans la "tte"

Programmation incrmentale et itrative sur le test


nombreux allers/retours
ractivit
manque dorganisation

Methodes
formelles p.7/153

Le dveloppement individuel
mthodes "agiles", XP

Analyse lgre ou dans la "tte"

Programmation incrmentale et itrative sur le test


problmes grande chelle
magma dorganisation
dures alatoires
exprience et capitalisation individuelle

Methodes
formelles p.7/153

Le dveloppement individuel
mthodes "agiles", XP

Analyse lgre ou dans la "tte"

problmes grande chelle


magma dorganisation
dures alatoires
exprience et capitalisation individuelle

Programmation incrmentale et itrative sur le test

pas de travail de groupe, pas rationnel

Methodes
formelles p.7/153

Le dveloppement en groupe
tablir les tches et les rsultats

Methodes
formelles p.8/153

Le dveloppement en groupe
tablir les tches et les rsultats
dfinir les acteurs

Methodes
formelles p.8/153

Le dveloppement en groupe
tablir les tches et les rsultats
dfinir les acteurs
organiser le dveloppement

Methodes
formelles p.8/153

Le dveloppement en groupe
tablir les tches et les rsultats
dfinir les acteurs
organiser le dveloppement
grer la communication (documents, mdia, ...)

Methodes
formelles p.8/153

Le dveloppement en groupe
tablir les tches et les rsultats
dfinir les acteurs
organiser le dveloppement
grer la communication (documents, mdia, ...)
superviser le dveloppement

Methodes
formelles p.8/153

Le dveloppement en groupe
tablir les tches et les rsultats
dfinir les acteurs
organiser le dveloppement
grer la communication (documents, mdia, ...)
superviser le dveloppement
amliorer la qualit

Methodes
formelles p.8/153

Le dveloppement en groupe
tablir les tches et les rsultats
dfinir les acteurs
organiser le dveloppement
grer la communication (documents, mdia, ...)
superviser le dveloppement

amliorer la qualit
pour qui ?

Methodes
formelles p.8/153

Le dveloppement pour un client


1. ajouter une dimension cot

Methodes
formelles p.9/153

Le dveloppement pour un client


1. ajouter une dimension cot
analyse de cots : financier, temporel, humain...
analyse de comptence : technologies requises
(formation ?)
analyse de performance : rentabilit...

Methodes
formelles p.9/153

Le dveloppement pour un client


1. ajouter une dimension cot
2. ajouter de nouvelles tapes

Methodes
formelles p.9/153

Le dveloppement pour un client


1. ajouter une dimension cot
2. ajouter de nouvelles tapes
tude dopportunit
tudes de faisabilit
analyse de risques
gestion des risques
dcisions

Methodes
formelles p.9/153

Le dveloppement pour un client


1. ajouter une dimension cot
2. ajouter de nouvelles tapes
3. modifier le dveloppement

Methodes
formelles p.9/153

Le dveloppement pour un client


1. ajouter une dimension cot
2. ajouter de nouvelles tapes
3. modifier le dveloppement
rle du client
spcification
validation
dcisions

Methodes
formelles p.9/153

Le dveloppement pour un client


1. ajouter une dimension cot
2. ajouter de nouvelles tapes
3. modifier le dveloppement
4. prvoir lassurance qualit, lautomatisation...

Methodes
formelles p.9/153

Le dveloppement pour un client


1. ajouter une dimension cot
2. ajouter de nouvelles tapes
3. modifier le dveloppement
4. prvoir lassurance qualit, lautomatisation...
qualit des rsultats (validit, robustesse) =
satisfaire le client
qualit du processus = respecter dlais et cots

Methodes
formelles p.9/153

Le dveloppement par un prestataire


1. ajouter une dimension production

Methodes
formelles p.10/153

Le dveloppement par un prestataire


1. ajouter une dimension production
analyse de cots : financier, temporel, humain...
analyse de comptence : technologies requises
(formation ?)
analyse de performance : rentabilit...

Methodes
formelles p.10/153

Le dveloppement par un prestataire


1. ajouter une dimension production
2. ajouter de nouvelles tapes

Methodes
formelles p.10/153

Le dveloppement par un prestataire


1. ajouter une dimension production
2. ajouter de nouvelles tapes
formations
maintenance des applications (corrective, volutive)

Methodes
formelles p.10/153

Le dveloppement par un prestataire


1. ajouter une dimension production
2. ajouter de nouvelles tapes
3. prendre en compte dautres proccupations

Methodes
formelles p.10/153

Le dveloppement par un prestataire


1. ajouter une dimension production
2. ajouter de nouvelles tapes
3. prendre en compte dautres proccupations
gestion des ressources humaines (formations,
carrires)
gestion commerciale ou interne des applications

Methodes
formelles p.10/153

Le dveloppement par un prestataire


1. ajouter une dimension production
2. ajouter de nouvelles tapes
3. prendre en compte dautres proccupations
4. rentabiliser la production

Methodes
formelles p.10/153

Le dveloppement par un prestataire


1. ajouter une dimension production
2. ajouter de nouvelles tapes
3. prendre en compte dautres proccupations
4. rentabiliser la production
dvelopper en srie (portabilit, volutivit,
gnralit)
dvelopper en partie (rutilisabilit)
automatiser la production

Methodes
formelles p.10/153

Le dveloppement par un prestataire


1. ajouter une dimension production
2. ajouter de nouvelles tapes
3. prendre en compte dautres proccupations
4. rentabiliser la production

produire du logiciel de qualit, rationaliser le


dvelopperment, rentabiliser les investissements

Methodes
formelles p.10/153

Le dveloppement par un prestataire


1. ajouter une dimension production
2. ajouter de nouvelles tapes
3. prendre en compte dautres proccupations
4. rentabiliser la production

produire du logiciel de qualit, rationaliser le


dvelopperment, rentabiliser les investissements
besoin de mthodes et doutil de dveloppement
besoin de mthodes et doutil de gestion de projets

Methodes
formelles p.10/153

Une rponse : le Gnie logiciel


objectifs

Methodes
formelles p.11/153

Une rponse : le Gnie logiciel


objectifs
mettre en uvre des moyens pour
raliser du logiciel de qualit en respectant des contraintes de cots.

Methodes
formelles p.11/153

Une rponse : le Gnie logiciel


objectifs
dfinition

Methodes
formelles p.11/153

Une rponse : le Gnie logiciel


objectifs
dfinition
Le Gnie Logiciel est lart de construire IN DUSTRIELLEMENT du logiciel.

Methodes
formelles p.11/153

Une rponse : le Gnie logiciel


objectifs
dfinition
large spectre : des langages de programmation la
gestion dorganisations

Methodes
formelles p.11/153

Une rponse : le Gnie logiciel


objectifs
dfinition
large spectre : des langages de programmation la
gestion dorganisations
soumis lvolution des technologies et des mtiers

Methodes
formelles p.11/153

Une rponse : le Gnie logiciel


objectifs
dfinition
large spectre : des langages de programmation la
gestion dorganisations
soumis lvolution des technologies et des mtiers
Atelier GL indispensable

Methodes
formelles p.11/153

Une rponse : le Gnie logiciel


objectifs
dfinition
large spectre : des langages de programmation la
gestion dorganisations
soumis lvolution des technologies et des mtiers
Atelier GL indispensable
dition
vrification
gnration automatique
documentation
rutilisation
personnalisation

Methodes
formelles p.11/153

Evolution du Gnie logiciel


1945

Langage machine
symbolisme

1950

Assembleur
algorithmique

1955

traitement
des listes

Fortran
maintenance
programmation
structure

1960

Algo

rutilisation
abstraction
types abstraits
modularit
gnricit

Lisp
Cobol
systmes
d'information

1965

1970

traitement
des donnes

approche
descendante

SGBD

mcanisme
d'infrence

SGBD
relationnels

Pascal
objet

smantique

1975
Smalltalk

EntitAssociations

Prolog

smantique
1980

ADA
Langages de
conception

1985

Bases de
connaissances

Langages de
spcification

1990

Langages
intgrs ?
Outils
d'analyse

XX
?

Methodes
formelles p.12/153

Evolution

Gnie logiciel - Projet informatique


Projet dinformatisation =

Methodes
formelles p.13/153

Gnie logiciel - Projet informatique


Projet dinformatisation =
aspects techniques

Methodes
formelles p.13/153

Gnie logiciel - Projet informatique


Projet dinformatisation =

aspects techniques
mthode de dveloppement
Une mthode est une technique de rsolution de
problmes [Lau86].
Un aspect cl de la mthode est de privilgier ltude
(lanalyse) avant de commencer concevoir le logiciel.
Il faut bien poser le problme pour bien le rsoudre.
Le terme de mthode recouvre plusieurs notions.

Methodes
formelles p.13/153

Gnie logiciel - Projet informatique


Projet dinformatisation =

aspects techniques
mthode de dveloppement
philosophie (approche du problme)
dmarche (processus)
notation (norme, langage)
outils

Methodes
formelles p.13/153

Gnie logiciel - Projet informatique


Projet dinformatisation =
mthode de dveloppement
Merise

aspects techniques

philosophie (approche du problme)


BD relationnelles, Prog structure
dmarche (processus)
par niveau, par tapes
notation (norme, langage)
E-A-P, Petri, SCOM...
outils
AMCD, WinDesign...

Methodes
formelles p.13/153

Gnie logiciel - Projet informatique


aspects techniques

Projet dinformatisation =
mthode de dveloppement

aspects organisationnels

Methodes
formelles p.13/153

Gnie logiciel - Projet informatique


aspects techniques

Projet dinformatisation =
mthode de dveloppement

aspects organisationnels
gestion de projet
La conduite de projet (gestion de projet, management de projet) "dfinit lenvironnement ncessaire
pour que le projet se droule dans les meilleurs conditions de cot, de dlais ainsi que de qualit des
rsultats produits" [MR93].
En plus des mthodes et techniques de dveloppement, des mthodes et techniques de gestion de
projet sont mises en uvre pour russir le projet.

Methodes
formelles p.13/153

Gnie logiciel - Projet informatique

aspects organisationnels

mthode de dveloppement

aspects techniques

Projet dinformatisation =

gestion de projet

La conduite de projet est un processus difficile


matriser car interviennent plusieurs facteurs de
risque tels que les cots et les dlais respecter, les
technologies matriser, les ressources humaines
grer. [Vil95].

Methodes
formelles p.13/153

Gnie logiciel - Projet informatique


aspects techniques

Projet dinformatisation =
mthode de dveloppement

aspects organisationnels
gestion de projet
gestion du besoin (dfinition, validation, volution)
gestion des ressources et des cots (planification,
suivi, optimisation, capitalisation)
gestion des risques (valuation, suivi, dcision)
gestion de la communication entre acteurs
gestion de la qualit des rsultats produits

Methodes
formelles p.13/153

Gnie logiciel - Projet informatique


aspects techniques

Projet dinformatisation =
mthode de dveloppement

aspects organisationnels
gestion de projet
Projet informatique
gestion du besoin (dfinition, validation, volution)
runions, revues, cahiers des charges
gestion des ressources et des cots (planification,
suivi, optimisation, capitalisation)
humains, matriels, financiers
gestion des risques (valuation, suivi, dcision)
gestion de la communication entre acteurs
gestion de la qualit des rsultats produits
certification, contrle qualit

Methodes
formelles p.13/153

Gnie logiciel - Projet informatique

aspects organisationnels

mthode de dveloppement

aspects techniques

Projet dinformatisation =

gestion de projet

domaine complexe

Methodes
formelles p.13/153

Gnie logiciel - Projet informatique

aspects organisationnels

mthode de dveloppement

aspects techniques

Projet dinformatisation =

gestion de projet

hors contexte
http://www.sciences.univnantes.fr/info/perso/permanents/andre/COURS/cours.html
suivre ...

Methodes
formelles p.13/153

Gnie logiciel - Variantes


Les applications peuvent se classer en trois catgories
majeures :

Methodes
formelles p.14/153

Gnie logiciel - Variantes


Les applications peuvent se classer en trois catgories
majeures :
1. Systmes dinformation de gestion SIG

Methodes
formelles p.14/153

Gnie logiciel - Variantes


Les applications peuvent se classer en trois catgories
majeures :
1. Systmes dinformation de gestion SIG
stockage volumineux
nombreux traitements triviaux (consultation,
mises--jour)
quelques traitements complexes en mise--jour
assurer la cohrence des informations
soumis aux volutions technologiques (distribution,
persistance, IHM)

Methodes
formelles p.14/153

Gnie logiciel - Variantes


Les applications peuvent se classer en trois catgories
majeures :
1. Systmes dinformation de gestion SIG
2. Systmes temps rel STR

Methodes
formelles p.14/153

Gnie logiciel - Variantes


Les applications peuvent se classer en trois catgories
majeures :
1. Systmes dinformation de gestion SIG
2. Systmes temps rel STR
ractivit forte
qualit (sret, fiabilit...)
traitements souvent simples mais conditions
complexes
assurer la cohrence des vnements (rle du
temps)
soumis aux volutions matrielles (capteurs,
actionneurs, environnement)

Methodes
formelles p.14/153

Gnie logiciel - Variantes


Les applications peuvent se classer en trois catgories
majeures :
1. Systmes dinformation de gestion SIG
2. Systmes temps rel STR
3. Systmes intelligents, calcul scientifique SI, CS

Methodes
formelles p.14/153

Gnie logiciel - Variantes


Les applications peuvent se classer en trois catgories
majeures :
1. Systmes dinformation de gestion SIG
2. Systmes temps rel STR
3. Systmes intelligents, calcul scientifique SI, CS
algorithmes complexes
bases dinformation plus ou moins importantes
qualit : efficacit
peu soumis aux volutions technologiques
(techniques de programmation, IHM)

Methodes
formelles p.14/153

Gnie logiciel - Variantes


Les applications peuvent se classer en trois catgories
majeures :
1. Systmes dinformation de gestion SIG
2. Systmes temps rel STR
3. Systmes intelligents, calcul scientifique SI, CS
il y en a dautres

Methodes
formelles p.14/153

Gnie logiciel - Variantes


Les applications peuvent se classer en trois catgories
majeures :
1. Systmes dinformation de gestion SIG
2. Systmes temps rel STR
3. Systmes intelligents, calcul scientifique SI, CS

diffrents besoins

il y en a dautres
diffrentes mthodes

Methodes
formelles p.14/153

Le dveloppement du logiciel
1. Introduction
2. Gnie logiciel
3. Projet informatique
4. Mthode de dveloppement
Modles, produits
Processus
Validation, vrification
5. Qualit

Methodes
formelles p.15/153

Mthode de dveloppement (en bref)


Mthode =
Modles, produits

Methodes
formelles p.16/153

Mthode de dveloppement (en bref)


Mthode =
Modles, produits
+ Processus

Methodes
formelles p.16/153

Mthode de dveloppement (en bref)


Mthode =
Modles, produits
+ Processus
+ Outils

Methodes
formelles p.16/153

Mthode de dveloppement (Modles)


Un modle est une interprtation explicite par son
utilisateur de lide quil se fait dune situation.

Methodes
formelles p.17/153

Mthode de dveloppement (Modles)


Un modle est une interprtation explicite par son
utilisateur de lide quil se fait dune situation.
Il peut tre exprim par des mathmatiques, des
symboles, des mots, mais, essentiellement, cest une
description dentits et de relations entre elles.

Methodes
formelles p.17/153

Mthode de dveloppement (Modles)


Un modle est une interprtation explicite par son
utilisateur de lide quil se fait dune situation.
Il peut tre exprim par des mathmatiques, des
symboles, des mots, mais, essentiellement, cest une
description dentits et de relations entre elles.
Un modle est correct sil permet de rpondre aux
questions quon se pose.

Methodes
formelles p.17/153

Mthode de dveloppement (Modles)


Un modle est une interprtation explicite par son
utilisateur de lide quil se fait dune situation.
Il peut tre exprim par des mathmatiques, des
symboles, des mots, mais, essentiellement, cest une
description dentits et de relations entre elles.
Un modle est correct sil permet de rpondre aux
questions quon se pose.
Un modle est oprationnel sil peut tre excut par
une machine.

Methodes
formelles p.17/153

Mthode de dveloppement (Modles)


Les lments dun systme peuvent se classer selon trois
aspects majeurs :

Methodes
formelles p.18/153

Mthode de dveloppement (Modles)

1. Structure, donnes

Les lments dun systme peuvent se classer selon trois


aspects majeurs :
Point de vue statique

Methodes
formelles p.18/153

Mthode de dveloppement (Modles)

1. Structure, donnes
informations
structure
contraintes
rpartition

Les lments dun systme peuvent se classer selon trois


aspects majeurs :
Point de vue statique

Methodes
formelles p.18/153

Mthode de dveloppement (Modles)

Point de vue statique

2. Evolution dans le temps

1. Structure, donnes

Les lments dun systme peuvent se classer selon trois


aspects majeurs :

Point de vue dynamique

Methodes
formelles p.18/153

Mthode de dveloppement (Modles)

1. Structure, donnes

Les lments dun systme peuvent se classer selon trois


aspects majeurs :
Point de vue statique

2. Evolution dans le temps


Point de vue dynamique
vnements
actions
contraintes temporelles
concurrence

Methodes
formelles p.18/153

Mthode de dveloppement (Modles)

Point de vue statique

3. Traitements

2. Evolution dans le temps

1. Structure, donnes

Les lments dun systme peuvent se classer selon trois


aspects majeurs :

Point de vue dynamique

Point de vue fonctionnel

Methodes
formelles p.18/153

Mthode de dveloppement (Modles)

Point de vue statique

2. Evolution dans le temps

1. Structure, donnes

Les lments dun systme peuvent se classer selon trois


aspects majeurs :

Point de vue dynamique

3. Traitements
Point de vue fonctionnel
algorithmes
transactions et scurit
assertions (contraintes)
paralllisme

Methodes
formelles p.18/153

Types de spcification
Les spcifications peuvent tre classes selon leur forme
ou leur degr de formalisme.
les spcifications informelles, en langue naturelle,
rdiges sans contraintes de forme,

Methodes
formelles p.19/153

Types de spcification
Les spcifications peuvent tre classes selon leur forme
ou leur degr de formalisme.
les spcifications informelles, en langue naturelle,
rdiges sans contraintes de forme,
les spcifications standardises, en langue naturelle,
mais avec une structure, un format et des rgles
prcises (notations, glossaire, index, historique...),

Methodes
formelles p.19/153

Types de spcification
Les spcifications peuvent tre classes selon leur forme
ou leur degr de formalisme.
les spcifications informelles, en langue naturelle,
rdiges sans contraintes de forme,
les spcifications standardises, en langue naturelle,
mais avec une structure, un format et des rgles
prcises (notations, glossaire, index, historique...),
les spcifications semi-formelles, utilisant un langage
de spcification textuel ou graphique, dot dune
syntaxe prcise et dune smantique assez faible),

Methodes
formelles p.19/153

Types de spcification
Les spcifications peuvent tre classes selon leur forme
ou leur degr de formalisme.
les spcifications informelles, en langue naturelle,
rdiges sans contraintes de forme,
les spcifications standardises, en langue naturelle,
mais avec une structure, un format et des rgles
prcises (notations, glossaire, index, historique...),
les spcifications semi-formelles, utilisant un langage
de spcification textuel ou graphique, dot dune
syntaxe prcise et dune smantique assez faible),
les spcifications formelles, exprimes dans un langage
syntaxe et smantique prcises, construites sur une
base thorique solide.

Methodes
formelles p.19/153

Mthode de dveloppement (Processus)


Le processus (la dmarche) prcise
les tches (activits) raliser,

Methodes
formelles p.20/153

Mthode de dveloppement (Processus)


Le processus (la dmarche) prcise
les tches (activits) raliser,
les rsultats attendus (modles, produits,
spcifications),

Methodes
formelles p.20/153

Mthode de dveloppement (Processus)


Le processus (la dmarche) prcise
les tches (activits) raliser,
les rsultats attendus (modles, produits,
spcifications),
lordre qui organise les tches (le cycle de
dveloppement).

Methodes
formelles p.20/153

Processus : le cycle de rfrence


Exploitation
Maintenance

Etude des
besoins
modle
utilisateur
vrification

Spcification
du systme

modle
architectural

Conception
du systme

Validation
Finition

Intgration
et tests

Conception
modulaire

Tests
unitaires

modle
dimplantation
Construction
codage

Methodes
formelles p.21/153

Modles de processus
Principaux cycles
linaires (cascade, V, fontaine),

Methodes
formelles p.22/153

Modles de processus
Principaux cycles
linaires (cascade, V, fontaine),
contractuels (mthodes formelles),

Methodes
formelles p.22/153

Modles de processus
Principaux cycles
linaires (cascade, V, fontaine),
contractuels (mthodes formelles),
itratifs (spirale),

Methodes
formelles p.22/153

Modles de processus
Principaux cycles
linaires (cascade, V, fontaine),
contractuels (mthodes formelles),
itratifs (spirale),
variantes (X, Y).

Methodes
formelles p.22/153

Mthode de dveloppement (Processus)


Ne pas oublier
Vrification : cest contrler que le produit respecte le
cahier des charges. La vrification est donc plus une
affaire de spcialistes.

Methodes
formelles p.23/153

Mthode de dveloppement (Processus)


Ne pas oublier
Vrification : cest contrler que le produit respecte le
cahier des charges. La vrification est donc plus une
affaire de spcialistes.
Validation : cest contrler que le (produit) rsultat
correspond ce qui tait attendu. La validation est un
contrle qui fait intervenir largement les utilisateurs.

Methodes
formelles p.23/153

Mthode de dveloppement (Processus)


Ne pas oublier
Vrification : cest contrler que le produit respecte le
cahier des charges. La vrification est donc plus une
affaire de spcialistes.
Validation : cest contrler que le (produit) rsultat
correspond ce qui tait attendu. La validation est un
contrle qui fait intervenir largement les utilisateurs.
Moyens
Revues
Tests
Preuves
Prototypage

Methodes
formelles p.23/153

Le dveloppement du logiciel
1. Introduction
2. Gnie logiciel
3. Projet informatique
4. Mthode de dveloppement
Modles, produits
Processus
Validation, vrification
5. Qualit

Methodes
formelles p.24/153

Qualit
Qualit des spcifications

Methodes
formelles p.25/153

Qualit
Qualit des spcifications

viter
le bruit
le silence
la sur-spcification
la contradiction
lambiguit
la rfrence avant
le vu pieu

Methodes
formelles p.25/153

Qualit
Qualit des spcifications
Qualit du logiciel

Methodes
formelles p.25/153

Qualit
Qualit des spcifications
Qualit du logiciel
la validit
la robustesse
lextensibilit
la rutilisabilit
la compatibilit

Methodes
formelles p.25/153

Qualit
Qualit des spcifications
Qualit du logiciel
la validit
la robustesse
lextensibilit
la rutilisabilit
la compatibilit
Dautres qualits du logiciel sont moins cruciales :
lefficacit, la portabilit, la vrifiabilit, lintgrit, la
facilit dutilisation

Methodes
formelles p.25/153

Qualit
Qualit des spcifications
Qualit du logiciel
Qualit du processus

Methodes
formelles p.25/153

Qualit
Qualit des spcifications
Qualit du logiciel
Qualit du processus
sret
terminaison
rigueur
cohrence, compltude
souplesse
accessibilit
rentabilit

Methodes
formelles p.25/153

Qualit
Qualit des spcifications
Qualit du logiciel

Plus de dtails

Qualit du processus
[AV01a]

Methodes
formelles p.25/153

Qualit
Qualit des spcifications
Qualit du logiciel

Plus de dtails

Qualit du processus
[AV01a]

Amliorer la qualit :

Methodes
formelles p.25/153

Qualit
Qualit des spcifications
Qualit du logiciel

Plus de dtails

Qualit du processus
[AV01a]

Amliorer la qualit :
rigueur
structuration modulaire

Methodes
formelles p.25/153

Qualit
Qualit des spcifications
Qualit du logiciel

Plus de dtails

Qualit du processus
[AV01a]

Amliorer la qualit :
mthodes formelles

structuration modulaire

rigueur

mthodes objets

Methodes
formelles p.25/153

Qualit
Qualit des spcifications
Qualit du logiciel

Plus de dtails

Qualit du processus
[AV01a]

Amliorer la qualit :
mthodes formelles

structuration modulaire

rigueur

mthodes objets

Z
UML

Methodes
formelles p.25/153

Plan du cours
1. Rappels sur le dveloppement du logiciel
mthodes, langages et notations
gestion de projet
2. Exemple introductif
3. La notation Z
- informellement
+ formellement
4. La mthode de dveloppement
- informellement
+ formellement
5. Bilan et extensions

Methodes
formelles p.26/153

Exemple introductif
1. Description informelle
2. Modlisation avec Merise
MCD
MCT
Critique
3. Modlisation avec Z
Donnes
Traitements
Critique
4. Bilan

Methodes
formelles p.27/153

Description informelle
Ladministration veut grer automatiquement les salles
dattente lhpital. Chaque salle a une capacit daccueil
limite. Elles portent un nom et sont situes un
emplacement prcis de lhpital. Les patients sont admis
normalement ou en urgence. Les patients admis en
urgence sont appels prioritairement vis--vis des patients
en admission normale. Lordre dappel est lordre darrive,
compte-tenu des ventuelles urgences. Un patient appel
est reu et soign par le docteur. Les soins ne sont pas
interrompus par larrive dun patient en urgence. On
considre trois cas :
1. une seule salle dattente et pas durgences,
2. une seule salle dattente et traitement des urgences,
3. plusieurs salles dattente et traitement des urgences.

Methodes
formelles p.28/153

Modlisation avec Merise (MCD)


attente normale
num_ordre_na
Patient
no_SecSoc_p
nom_p
prnom_p
adresse_p

0,1

0,n
X

T
0,n

0,1

SalleAttente
no_s
nom_s
localisation_s
nb_places_s

urgence
num_ordre_u

+ dictionnaire des donnes + explications

Methodes
formelles p.29/153

Modlisation avec Merise (MCT)


Arrive d'un
patient

Orientation des patients


Vrification du patient
Cration ventuelle du patient
Evaluation des soins
Orientation du patient
Normale

Patient
cr

Admission
normale
(a)

Urgence

Refus

Admission
urgente
(b)

Admission
refuse

Methodes
formelles p.30/153

Modlisation avec Merise (MCT)


Admission
normale
(a)

Admission
urgente
(b)

b prioritaire sur a

+ explications

Soin
soins prodigus au patient

Patient
guri

Methodes
formelles p.31/153

Critique (MCD)
+ Plus concis et moins soumis interprtation que la
description informelle.

Methodes
formelles p.32/153

Critique (MCD)
+ Plus concis et moins soumis interprtation que la
description informelle.
+ MCD presque complet (cardinalits, contraintes).

Methodes
formelles p.32/153

Critique (MCD)
+ Plus concis et moins soumis interprtation que la
description informelle.
+ MCD presque complet (cardinalits, contraintes).
Mais ...

Methodes
formelles p.32/153

Critique (MCD)
+ Plus concis et moins soumis interprtation que la
description informelle.
+ MCD presque complet (cardinalits, contraintes).
Mais ...
- Manque de prcision

Methodes
formelles p.32/153

Critique (MCD)
+ Plus concis et moins soumis interprtation que la
description informelle.
+ MCD presque complet (cardinalits, contraintes).
Mais ...
- Manque de prcision
rgles de gestion

Methodes
formelles p.32/153

Critique (MCD)
+ Plus concis et moins soumis interprtation que la
description informelle.
+ MCD presque complet (cardinalits, contraintes).
Mais ...
- Manque de prcision
rgles de gestion
contraintes entre associations

Methodes
formelles p.32/153

Critique (MCD)
+ Plus concis et moins soumis interprtation que la
description informelle.
+ MCD presque complet (cardinalits, contraintes).
Mais ...
- Manque de prcision
rgles de gestion
contraintes entre associations
contraintes informelles

Methodes
formelles p.32/153

Critique (MCD)
+ Plus concis et moins soumis interprtation que la
description informelle.
+ MCD presque complet (cardinalits, contraintes).
Mais ...
- Manque de prcision
rgles de gestion
contraintes entre associations
contraintes informelles
- Manque de smantique formelle

Methodes
formelles p.32/153

Critique (MCD)
+ Plus concis et moins soumis interprtation que la
description informelle.
+ MCD presque complet (cardinalits, contraintes).
Mais ...
- Manque de prcision
rgles de gestion
contraintes entre associations
contraintes informelles
- Manque de smantique formelle
Comment vrifier ?

Methodes
formelles p.32/153

Critique (MCD)
+ Plus concis et moins soumis interprtation que la
description informelle.
+ MCD presque complet (cardinalits, contraintes).
Mais ...
- Manque de prcision
rgles de gestion
contraintes entre associations
contraintes informelles
- Manque de smantique formelle
Comment vrifier ?
Comment prouver la correction ?

Methodes
formelles p.32/153

Critique (MCD)
+ Plus concis et moins soumis interprtation que la
description informelle.
+ MCD presque complet (cardinalits, contraintes).
Mais ...
- Manque de prcision
rgles de gestion
contraintes entre associations
contraintes informelles
- Manque de smantique formelle
Comment vrifier ?
Comment prouver la correction ?
Pas doublis ?

Methodes
formelles p.32/153

Critique (MCT)
+ Enchanements des oprations.

Methodes
formelles p.33/153

Critique (MCT)
+ Enchanements des oprations.
+ Vue globale des traitements.

Methodes
formelles p.33/153

Critique (MCT)
+ Enchanements des oprations.
+ Vue globale des traitements.
Mais ...

Methodes
formelles p.33/153

Critique (MCT)
+ Enchanements des oprations.
+ Vue globale des traitements.
Mais ...
- Manque de prcision

Methodes
formelles p.33/153

Critique (MCT)
+ Enchanements des oprations.
+ Vue globale des traitements.
Mais ...
- Manque de prcision
rgles de gestion

Methodes
formelles p.33/153

Critique (MCT)
+ Enchanements des oprations.
+ Vue globale des traitements.
Mais ...
- Manque de prcision
rgles de gestion
dtails des oprations

Methodes
formelles p.33/153

Critique (MCT)
+ Enchanements des oprations.
+ Vue globale des traitements.
Mais ...
- Manque de prcision
rgles de gestion
dtails des oprations
contraintes sur les vnements

Methodes
formelles p.33/153

Critique (MCT)
+ Enchanements des oprations.
+ Vue globale des traitements.
Mais ...
- Manque de prcision
rgles de gestion
dtails des oprations
contraintes sur les vnements
- Manque de smantique formelle

Methodes
formelles p.33/153

Critique (MCT)
+ Enchanements des oprations.
+ Vue globale des traitements.
Mais ...
- Manque de prcision
rgles de gestion
dtails des oprations
contraintes sur les vnements
- Manque de smantique formelle
Comment vrifier ?

Methodes
formelles p.33/153

Critique (MCT)
+ Enchanements des oprations.
+ Vue globale des traitements.
Mais ...
- Manque de prcision
rgles de gestion
dtails des oprations
contraintes sur les vnements
- Manque de smantique formelle
Comment vrifier ?
Comment prouver la correction ?

Methodes
formelles p.33/153

Critique (MCT)
+ Enchanements des oprations.
+ Vue globale des traitements.
Mais ...
- Manque de prcision
rgles de gestion
dtails des oprations
contraintes sur les vnements
- Manque de smantique formelle
Comment vrifier ?
Comment prouver la correction ?
Pas doublis ?

Methodes
formelles p.33/153

Exemple introductif
1. Description informelle
2. Modlisation avec Merise
MCD
MCT
Critique
3. Modlisation avec Z
Attention : certains lments sont errons avec PDF.
Donnes
Traitements
Critique
4. Bilan

Methodes
formelles p.34/153

Modlisation avec Z (Donnes)

Dfinitions de types, dclarations globales

Dfinitions de ltat du systme (schma)

Methodes
formelles p.35/153

Modlisation avec Z (Traitements)

Dfinitions des oprations de modification (schma)

Methodes
formelles p.36/153

Modlisation avec Z (Traitements)

Dfinitions des prconditions des oprations (schma)

Methodes
formelles p.37/153

Modlisation avec Z (Traitements)

Dfinitions des oprations de consultation (schma)

Combien de patients en attente ?

Methodes
formelles p.38/153

Modlisation avec Z (Traitements)


patient consulter

Methodes
formelles p.39/153

Modlisation avec Z (Validation)


Prouver des
proprits gnrales e.g. cohrence et compltude,
quit, la vivacit etc.

Methodes
formelles p.40/153

Modlisation avec Z (Validation)


Prouver des
proprits gnrales e.g. cohrence et compltude,
quit, la vivacit etc.
proprits attendues du systme.

Methodes
formelles p.40/153

Modlisation avec Z (Validation)


Prouver des
proprits gnrales e.g. cohrence et compltude,
quit, la vivacit etc.
proprits attendues du systme.
proprits lies la pratique de Z (ou VDM) (obligations
de preuves)

Methodes
formelles p.40/153

Modlisation avec Z (Validation)


Prouver des
proprits gnrales e.g. cohrence et compltude,
quit, la vivacit etc.
proprits attendues du systme.
proprits lies la pratique de Z (ou VDM) (obligations
de preuves)
Existence dun tat initial.

Methodes
formelles p.40/153

Modlisation avec Z (Validation)


Prouver des
proprits gnrales e.g. cohrence et compltude,
quit, la vivacit etc.
proprits attendues du systme.
proprits lies la pratique de Z (ou VDM) (obligations
de preuves)
Existence dun tat initial.
Prservation des invariants dans les oprations.

Methodes
formelles p.40/153

Modlisation avec Z (Validation)


Prouver des
proprits gnrales e.g. cohrence et compltude,
quit, la vivacit etc.
proprits attendues du systme.
proprits lies la pratique de Z (ou VDM) (obligations
de preuves)
Existence dun tat initial.
Prservation des invariants dans les oprations.
Preuve de raffinement de donnes ou doprations.

Methodes
formelles p.40/153

Modlisation avec Z (Validation)


Les proprits attendues pour le systme salle
dattente sont :

Methodes
formelles p.41/153

Modlisation avec Z (Validation)


Les proprits attendues pour le systme salle
dattente sont :
La capacit de la salle nest pas dpasse.

Methodes
formelles p.41/153

Modlisation avec Z (Validation)


Les proprits attendues pour le systme salle
dattente sont :
La capacit de la salle nest pas dpasse.
Il y a quit (forte).

Methodes
formelles p.41/153

Modlisation avec Z (Validation)


Les proprits attendues pour le systme salle
dattente sont :
La capacit de la salle nest pas dpasse.
Il y a quit (forte).
Lordre de sortie est lordre darrive.

Methodes
formelles p.41/153

Modlisation avec Z (Validation)


Les proprits attendues pour le systme salle
dattente sont :
La capacit de la salle nest pas dpasse.
Il y a quit (forte).
Lordre de sortie est lordre darrive.
Conservation du nombre pour (arrive + sortie etc. )

Methodes
formelles p.41/153

Modlisation avec Z (Validation)


Les proprits attendues pour le systme salle
dattente sont :
La capacit de la salle nest pas dpasse.
Il y a quit (forte).
Lordre de sortie est lordre darrive.
Conservation du nombre pour (arrive + sortie etc. )
Les obligations de preuves sont :

Methodes
formelles p.41/153

Modlisation avec Z (Validation)


Les proprits attendues pour le systme salle
dattente sont :
La capacit de la salle nest pas dpasse.
Il y a quit (forte).
Lordre de sortie est lordre darrive.
Conservation du nombre pour (arrive + sortie etc. )

Les obligations de preuves sont :


Existence dun tat initial.
;

Methodes
formelles p.41/153

Modlisation avec Z (Validation)


Les proprits attendues pour le systme salle
dattente sont :
La capacit de la salle nest pas dpasse.
Il y a quit (forte).
Lordre de sortie est lordre darrive.
Conservation du nombre pour (arrive + sortie etc. )
Les obligations de preuves sont :
Existence dun tat initial.

;
Prservation de linvariant dans les oprations.
.

Methodes
formelles p.41/153

Modlisation avec Z (Raffinement)


De la spcification au code...
Deux types de raffinement sont distingus en Z :
Le raffinement des oprations. Les structures de
contrle du langage de programmation cible sont
introduites progressivement e.g. squence,
conditionnelles, itrations pour la programmation
imprative.
Le raffinement des donnes. Les structures de
donnes du langage de programmation cible sont
introduites progressivement e.g. structures, tableaux,
pointeurs pour la programmation imprative.

Methodes
formelles p.42/153

Modlisation avec Z (Raffinement *


)

Methodes
formelles p.43/153

Modlisation avec Z (Raffinement * * )

Methodes
formelles p.43/153

Modlisation avec Z (Raffinement * * * )

Methodes
formelles p.43/153

Modlisation avec Z (Raffinement * * * * )

Methodes
formelles p.43/153

Modlisation avec Z (Raffinement * * * * * )

Preuves du raffinement
de ltat initial
des oprations

Methodes
formelles p.43/153

Exemple introductif
1. Description informelle
2. Modlisation avec Merise
MCD
MCT
Critique
3. Modlisation avec Z
Donnes
Traitements
Critique
4. Bilan

Methodes
formelles p.44/153

Bilan
Les "spec formelles"
+ Formalisme (thories, logiques et calculs)

Methodes
formelles p.45/153

Bilan
Les "spec formelles"
+ Formalisme (thories, logiques et calculs)
+ Rigueur (types, contraintes, invariants, traitements)

Methodes
formelles p.45/153

Bilan
Les "spec formelles"
+ Formalisme (thories, logiques et calculs)
+ Rigueur (types, contraintes, invariants, traitements)
+ Abstraction (vis vis des langages de programmation)

Methodes
formelles p.45/153

Bilan
Les "spec formelles"
+ Formalisme (thories, logiques et calculs)
+ Rigueur (types, contraintes, invariants, traitements)

+ Abstraction (vis vis des langages de programmation)


Rduction des erreurs tardives, rutilisabilit en
confiance

Methodes
formelles p.45/153

Bilan
Les "spec formelles"
+ Formalisme (thories, logiques et calculs)
+ Rigueur (types, contraintes, invariants, traitements)

+ Abstraction (vis vis des langages de programmation)


Rduction des erreurs tardives, rutilisabilit en
confiance

- pratique dlicate (lisibilit, exprience)

Methodes
formelles p.45/153

Bilan
Les "spec formelles"
+ Formalisme (thories, logiques et calculs)
+ Rigueur (types, contraintes, invariants, traitements)

+ Abstraction (vis vis des langages de programmation)


Rduction des erreurs tardives, rutilisabilit en
confiance

- pratique dlicate (lisibilit, exprience)


- lourdeur de modlisation

Methodes
formelles p.45/153

Bilan
Les "spec formelles"
+ Formalisme (thories, logiques et calculs)
+ Rigueur (types, contraintes, invariants, traitements)

+ Abstraction (vis vis des langages de programmation)


Rduction des erreurs tardives, rutilisabilit en
confiance

- pratique dlicate (lisibilit, exprience)


- lourdeur de modlisation
- temps de spcification et preuve

Methodes
formelles p.45/153

Bilan
Les "spec formelles"
+ Formalisme (thories, logiques et calculs)
+ Rigueur (types, contraintes, invariants, traitements)

+ Abstraction (vis vis des langages de programmation)


Rduction des erreurs tardives, rutilisabilit en
confiance

- pratique dlicate (lisibilit, exprience)


- lourdeur de modlisation
- temps de spcification et preuve
- domaine dapplication

Methodes
formelles p.45/153

Pour aller plus loin


Les systmes formels
Dfinitions, utilisation des spcifications formelles
Intrts et limites

Classification
[AV01b] Chapitre 1

Methodes
formelles p.46/153

Plan du cours
1. Rappels sur le dveloppement du logiciel
mthodes, langages et notations
gestion de projet
2. Exemple introductif
3. La notation Z
- informellement
+ formellement
4. La mthode de dveloppement
- informellement
+ formellement
5. Bilan et extensions

Methodes
formelles p.47/153

La notation Z
Introduction
Informellement
1. La logique
2. Les types et les ensembles
3. Les relations binaires et leurs variantes
4. Les schmas
Formellement
1. La logique
2. Les types et les ensembles
3. Les relations binaires et leurs variantes
4. Les schmas
Attention : certains lments sont errons avec PDF.

Methodes
formelles p.48/153

Introduction
Modlisation mathmatique

Methodes
formelles p.49/153

Introduction
Modlisation mathmatique
Abrial (Grenoble, Oxford)

Methodes
formelles p.49/153

Introduction
Modlisation mathmatique
Abrial (Grenoble, Oxford)
Annes 70

Methodes
formelles p.49/153

Introduction
Modlisation mathmatique
Abrial (Grenoble, Oxford)
Annes 70
Principes

Methodes
formelles p.49/153

Introduction
Modlisation mathmatique
Abrial (Grenoble, Oxford)
Annes 70
Principes
spcification mathmatique, axiomatique de Hoare

Methodes
formelles p.49/153

Introduction
Modlisation mathmatique
Abrial (Grenoble, Oxford)
Annes 70
Principes
spcification mathmatique, axiomatique de Hoare
abstraction

Methodes
formelles p.49/153

Introduction
Modlisation mathmatique
Abrial (Grenoble, Oxford)
Annes 70
Principes
spcification mathmatique, axiomatique de Hoare
abstraction
schma

Methodes
formelles p.49/153

Introduction
Modlisation mathmatique
Abrial (Grenoble, Oxford)
Annes 70
Principes
spcification mathmatique, axiomatique de Hoare
abstraction
schma
preuve de proprits

Methodes
formelles p.49/153

Introduction
Modlisation mathmatique
Abrial (Grenoble, Oxford)
Annes 70
Principes
spcification mathmatique, axiomatique de Hoare
abstraction
schma
preuve de proprits
raffinement (raffinage, rification)

Methodes
formelles p.49/153

La notation Z
Introduction
Informellement
1. La logique
2. Les types et les ensembles
3. Les relations binaires et leurs variantes
4. Les schmas
Formellement
1. La logique
2. Les types et les ensembles
3. Les relations binaires et leurs variantes
4. Les schmas

Methodes
formelles p.50/153

Description informelle (la logique)


Logique des propositions

Methodes
formelles p.51/153

Description informelle (la logique)


Logique des propositions
Loin des yeux, loin du cur.
Mieux vaut tard que jamais.
Le monde appartient celui qui se lve tt.
La raison du plus fort est toujours la meilleure.
Grard est le plus fort.
Grard se lve tard et vit la nuit.
Aprs la pluie, le beau temps.

Methodes
formelles p.51/153

Description informelle (la logique)


Logique des propositions
Loin des yeux, loin du cur.
Mieux vaut tard que jamais.
Le monde appartient celui qui se lve tt.
La raison du plus fort est toujours la meilleure.
Grard est le plus fort.
Grard se lve tard et vit la nuit.
Aprs la pluie, le beau temps.
exclusion : vrai ou faux
contradiction : non (vrai et faux)
combinaison : et, ou, non, ou exclusif, implique, etc.
cohrence ? Grard

Methodes
formelles p.51/153

Description informelle (la logique)


Logique des propositions
Logique des prdicats

Methodes
formelles p.51/153

Description informelle (la logique)


Logique des propositions
Logique des prdicats
variables : paramtrer les propositions
quantificateur : dcrire le domaine de la variable
(le domaine sera le type en Z)
porte : espace dexistence de la variable.
combinaison : oprateurs des propositions.

Methodes
formelles p.51/153

Description informelle (la logique)


Logique des propositions

++

++

la variable est libre


est une proposition
est une proposition
est une proposition
est lie
est une constante

Logique des prdicats

est lie

Methodes
formelles p.51/153

La notation Z
Introduction
Informellement
1. La logique
2. Les types et les ensembles
3. Les relations binaires et leurs variantes
4. Les schmas
Formellement
1. La logique
2. Les types et les ensembles
3. Les relations binaires et leurs variantes
4. Les schmas

Methodes
formelles p.52/153

Description informelle (types, ensembles)


Ensemble : collection dlments

Methodes
formelles p.53/153

Description informelle (types, ensembles)


Ensemble : collection dlments
Types : ensembles disjoints dlments
lettres
a
b
c
d

chiffres
caractres
&
?

1
2
3
4

Methodes
formelles p.53/153

Description informelle (types, ensembles)


Ensemble : collection dlments
Types : ensembles disjoints dlments
Diffrents types

Methodes
formelles p.53/153

Description informelle (types, ensembles)


Ensemble : collection dlments
Types : ensembles disjoints dlments
Diffrents types
vide (polymorphe)

Methodes
formelles p.53/153

Description informelle (types, ensembles)


Ensemble : collection dlments
Types : ensembles disjoints dlments
Diffrents types
vide (polymorphe)
de base (indfinis)

Methodes
formelles p.53/153

Description informelle (types, ensembles)


Ensemble : collection dlments
Types : ensembles disjoints dlments

Diffrents types
vide (polymorphe)
de base (indfinis)
de prdfinis ( )

Methodes
formelles p.53/153

Description informelle (types, ensembles)


Ensemble : collection dlments
Types : ensembles disjoints dlments

Diffrents types
vide (polymorphe)
de base (indfinis)
de prdfinis ( )
libres (numrations, intervalles)

Methodes
formelles p.53/153

Description informelle (types, ensembles)


Ensemble : collection dlments
Types : ensembles disjoints dlments

Diffrents types
vide (polymorphe)
de base (indfinis)
de prdfinis ( )
libres (numrations, intervalles)
dclars

Methodes
formelles p.53/153

Description informelle (types, ensembles)


Ensemble : collection dlments
Types : ensembles disjoints dlments

Diffrents types
vide (polymorphe)
de base (indfinis)
de prdfinis ( )
libres (numrations, intervalles)
dclars
extension

Methodes
formelles p.53/153

Description informelle (types, ensembles)


Ensemble : collection dlments
Types : ensembles disjoints dlments

Diffrents types
vide (polymorphe)
de base (indfinis)
de prdfinis ( )
libres (numrations, intervalles)
dclars
extension
comprhension

Methodes
formelles p.53/153

Description informelle (types, ensembles)


Ensemble : collection dlments
Types : ensembles disjoints dlments

Diffrents types
vide (polymorphe)
de base (indfinis)
de prdfinis ( )
libres (numrations, intervalles)
dclars
extension
comprhension
rcursif

Methodes
formelles p.53/153

Description informelle (types, ensembles)


Oprateurs

Methodes
formelles p.54/153

Description informelle (types, ensembles)


Oprateurs
lments : galit, diffrence

Methodes
formelles p.54/153

Description informelle (types, ensembles)


Oprateurs
lments : galit, diffrence
lments/ensemble : dclaration de type,
appartenance

Methodes
formelles p.54/153

Description informelle (types, ensembles)


Oprateurs
lments : galit, diffrence
lments/ensemble : dclaration de type,
appartenance
ensembles : intersection, union, produit cartsien,
diffrence, cardinal, puissance...

Methodes
formelles p.54/153

Description informelle (types, ensembles)


Oprateurs
lments : galit, diffrence
lments/ensemble : dclaration de type,
appartenance
ensembles : intersection, union, produit cartsien,
diffrence, cardinal, puissance...

exemples

Methodes
formelles p.54/153

La notation Z
Introduction
Informellement
1. La logique
2. Les types et les ensembles
3. Les relations binaires et leurs variantes
4. Les schmas
Formellement
1. La logique
2. Les types et les ensembles
3. Les relations binaires et leurs variantes
4. Les schmas

Methodes
formelles p.55/153

Description informelle (relations)


Relation : sous-ensemble dun produit cartsien

Methodes
formelles p.56/153

Description informelle (relations)

Relation : sous-ensemble dun produit cartsien


binaire, oriente
Pierre

Michel
Sandrine

17

Gilles
12

Benoit
Luc

Claude

Marie

11

Sophie

10
notes

dom notes

Rgis
ETUDIANT

ran notes

1..20

Methodes
formelles p.56/153

Description informelle (relations)

Relation : sous-ensemble dun produit cartsien


binaire, oriente
couple (antcdent, image)

Methodes
formelles p.56/153

Description informelle (relations)

Relation : sous-ensemble dun produit cartsien


binaire, oriente
couple (antcdent, image)
Domaine et co-domaine

Methodes
formelles p.56/153

Description informelle (relations)

Relation : sous-ensemble dun produit cartsien


binaire, oriente
couple (antcdent, image)
Domaine et co-domaine
Oprateurs : inversions, restrictions, compositions,
fermeture...

Methodes
formelles p.56/153

Description informelle (fonctions)


Fonction (partielle) : relation dont les antcdents ont
au plus une image

Methodes
formelles p.57/153

Description informelle (fonctions)


Fonction (partielle) : relation dont les antcdents ont
au plus une image
Variantes :

Methodes
formelles p.57/153

Description informelle (fonctions)


Fonction (partielle) : relation dont les antcdents ont
au plus une image
Variantes :
Fonction totale : fonction dont les antcdents ont
tous une image

Methodes
formelles p.57/153

Description informelle (fonctions)


Fonction (partielle) : relation dont les antcdents ont
au plus une image
Variantes :
Fonction totale : fonction dont les antcdents ont
tous une image
Injection : fonction dont les images ont au plus un
antcdent

Methodes
formelles p.57/153

Description informelle (fonctions)


Fonction (partielle) : relation dont les antcdents ont
au plus une image
Variantes :
Fonction totale : fonction dont les antcdents ont
tous une image
Injection : fonction dont les images ont au plus un
antcdent
Surjection : fonction dont les images ont au moins
un antcdent

Methodes
formelles p.57/153

Description informelle (fonctions)


Fonction (partielle) : relation dont les antcdents ont
au plus une image
Variantes :
Fonction totale : fonction dont les antcdents ont
tous une image
Injection : fonction dont les images ont au plus un
antcdent
Surjection : fonction dont les images ont au moins
un antcdent
Bijection : fonction dont les images ont exactement
un antcdent

Methodes
formelles p.57/153

Description informelle (fonctions)


Fonction (partielle) : relation dont les antcdents ont
au plus une image

Variantes :
Fonction totale : fonction dont les antcdents ont
tous une image
Injection : fonction dont les images ont au plus un
antcdent
Surjection : fonction dont les images ont au moins
un antcdent
Bijection : fonction dont les images ont exactement
un antcdent
-abstraction : fonction anonyme

Methodes
formelles p.57/153

Description informelle (fonctions)


Fonction (partielle) : relation dont les antcdents ont
au plus une image

Variantes :
Fonction totale : fonction dont les antcdents ont
tous une image
Injection : fonction dont les images ont au plus un
antcdent
Surjection : fonction dont les images ont au moins
un antcdent
Bijection : fonction dont les images ont exactement
un antcdent
-abstraction : fonction anonyme
Oprateurs : idem relations

Methodes
formelles p.57/153

Description informelle (fonctions)


Exemple : composition
fct1

fct2

c1

a1

c2

a2

c3

a3

c4

a4

c5

a5

compos
1

a1

a3

a2

a4

a5

Methodes
formelles p.58/153

Description informelle (multi-ens, squences)


Multi-ensemble : ensemble dont les lments peuvent
avoir plusieurs occurrences

Methodes
formelles p.59/153

Description informelle (multi-ens, squences)


Multi-ensemble : ensemble dont les lments peuvent
avoir plusieurs occurrences
Oprateurs : comptage, appartenance, union,
conversions...

Methodes
formelles p.59/153

Description informelle (multi-ens, squences)


Multi-ensemble : ensemble dont les lments peuvent
avoir plusieurs occurrences
Oprateurs : comptage, appartenance, union,
conversions...

Squence : fonction dont les antcdents forment un


ordre (liste)
intervalle

Methodes
formelles p.59/153

Description informelle (multi-ens, squences)


Multi-ensemble : ensemble dont les lments peuvent
avoir plusieurs occurrences
Oprateurs : comptage, appartenance, union,
conversions...

Squence : fonction dont les antcdents forment un


ordre (liste)
intervalle
les lments peuvent avoir plusieurs occurrences

Methodes
formelles p.59/153

Description informelle (multi-ens, squences)


Multi-ensemble : ensemble dont les lments peuvent
avoir plusieurs occurrences
Oprateurs : comptage, appartenance, union,
conversions...

Squence : fonction dont les antcdents forment un


ordre (liste)
intervalle
les lments peuvent avoir plusieurs occurrences
Oprateurs : concatnation, premier, suite,
inversion, partition...

Methodes
formelles p.59/153

Description informelle (multi-ens, squences)


Multi-ensemble : ensemble dont les lments peuvent
avoir plusieurs occurrences
Oprateurs : comptage, appartenance, union,
conversions...

Squence : fonction dont les antcdents forment un


ordre (liste)
intervalle
les lments peuvent avoir plusieurs occurrences
Oprateurs : concatnation, premier, suite,
inversion, partition...
Squence injective : les lments ont une seule
occurrence

Methodes
formelles p.59/153

Description informelle (multi-ens, squences)


Multi-ensemble : ensemble dont les lments peuvent
avoir plusieurs occurrences
Oprateurs : comptage, appartenance, union,
conversions...

Squence : fonction dont les antcdents forment un


ordre (liste)
intervalle
les lments peuvent avoir plusieurs occurrences
Oprateurs : concatnation, premier, suite,
inversion, partition...
Squence injective : les lments ont une seule
occurrence
Matrice : squence de squences (pas de notation
spcifique)

Methodes
formelles p.59/153

La notation Z
Introduction
Informellement
1. La logique
2. Les types et les ensembles
3. Les relations binaires et leurs variantes
4. Les schmas
Formellement
1. La logique
2. Les types et les ensembles
3. Les relations binaires et leurs variantes
4. Les schmas

Methodes
formelles p.60/153

Description informelle (schmas)


Unit de structuration en Z

Methodes
formelles p.61/153

Description informelle (schmas)


Unit de structuration en Z
dclarations

Methodes
formelles p.61/153

Description informelle (schmas)


Unit de structuration en Z
dclarations
prdicat

Methodes
formelles p.61/153

Description informelle (schmas)


Unit de structuration en Z
dclarations
prdicat

graphique

..
.

Methodes
formelles p.61/153

Description informelle (schmas)


Unit de structuration en Z
dclarations
prdicat
graphique

gnrique

..
.

Methodes
formelles p.61/153

Description informelle (schmas)


Unit de structuration en Z
dclarations
prdicat
graphique
gnrique
type de donnes

Methodes
formelles p.61/153

Description informelle (schmas)


Unit de structuration en Z
dclarations
prdicat
graphique
gnrique
type de donnes
Calcul : inclusion, renommage, oprations logiques,
projection, tubage...

Methodes
formelles p.61/153

La notation Z
Informellement
1. La logique
2. Les types et les ensembles
3. Les relations binaires et leurs variantes
4. Les schmas
Formellement
1. Les schmas
2. La logique
3. Les types et les ensembles
4. Les relations binaires et leurs variantes

Methodes
formelles p.62/153

et

Constantes :

Description formelle (propositions)

Methodes
formelles p.63/153

et

Constantes :

Description formelle (propositions)


Oprateurs :

Sens
Notations alternatives
ngation
conjonction
disjonction
ngation
quivalence quivalence logique

Oprateur

A ces oprateurs peuvent tre ajouts de nouveaux


).
oprateurs tels que le ou exclusif (

Methodes
formelles p.63/153

Description formelle (propositions)


Proprits :
Axiomes

Methodes
formelles p.64/153

Description formelle (propositions)


Proprits :
Axiomes
Thormes

Proposition

Proprit
Commutativit

Lois DE MORGAN
(formes normales)
Forme normale

Nom
P
P
P
P
P

Methodes
formelles p.64/153

Description formelle (propositions)


Proprits :
Axiomes
Preuve

Thormes
raisonnement par

Methodes
formelles p.64/153

Description formelle (propositions)


Proprits :
Axiomes
Thormes

Preuve
raisonnement par
rduction

Methodes
formelles p.64/153

Description formelle (propositions)


Proprits :
Axiomes
Thormes

Preuve
raisonnement par
rduction
dduction

Methodes
formelles p.64/153

Description formelle (propositions)


Proprits :
Axiomes
Thormes

Preuve
raisonnement par
rduction
dduction
labsurde

Methodes
formelles p.64/153

Description formelle (propositions)


Proprits :
Axiomes
Thormes

Preuve
raisonnement par
rduction
dduction
labsurde
cas

Methodes
formelles p.64/153

Description formelle (propositions)


Proprits :
Axiomes
Thormes

Preuve
raisonnement par
rduction
dduction
labsurde
cas
hypothse

Methodes
formelles p.64/153

Description formelle (propositions)


Proprits :
Axiomes
Thormes

Preuve
raisonnement par
rduction
dduction
labsurde
cas
hypothse
rcurrence

Methodes
formelles p.64/153

Description formelle (propositions)


Proprits :
Axiomes
Thormes

Preuve
raisonnement par
rduction
dduction
labsurde
cas
hypothse
rcurrence
autres (tables de vrit, Karnaugh, rsolution)

Methodes
formelles p.64/153

Description formelle (propositions)


Proprits :
Axiomes
Thormes

Preuve
raisonnement par
rduction
dduction
labsurde
cas
hypothse
rcurrence
autres (tables de vrit, Karnaugh, rsolution)
++ Dtails : [AV01b], chapitre 2, section 2

Methodes
formelles p.64/153

et

Constantes :

Description formelle (prdicats)

Methodes
formelles p.65/153

et

Constantes :

Description formelle (prdicats)

variable libre
prdicat paramtr par la variable
variable lie
P est vrai pour toute valeur de
il y a au moins une valeur de
telle que P soit vrai
il y a une seule valeur de
telle que P soit vrai

Quantificateurs :

Methodes
formelles p.65/153

Description formelle (prdicats)


Interprtation :
Domaine : dfini ou pas (cf types)

Methodes
formelles p.66/153

Description formelle (prdicats)


Interprtation :
Domaine : dfini ou pas (cf types)
Oprateurs de base : propositions

Methodes
formelles p.66/153

Description formelle (prdicats)


Interprtation :
Domaine : dfini ou pas (cf types)
Oprateurs de base : propositions
Expressions : dduction naturelle

est un terme arbitraire

est un terme arbitraire

-limination

-introduction

Rgle dinfrence

Nom

Rgles de dduction du calcul des prdicats

Methodes
formelles p.66/153

Description formelle (prdicats)


Proprits :
Axiomes

Methodes
formelles p.67/153

Proprit
sur

sur

sur

sur

Nom
P

Description formelle (prdicats)

Proprits :
Axiomes

Thormes : exemple de la distribution


Formule

Methodes
formelles p.67/153

Description formelle (prdicats)


Proprits :
Axiomes
Preuve

Thormes : exemple de la distribution


propositions

Methodes
formelles p.67/153

Description formelle (prdicats)


Proprits :
Axiomes
Preuve

Thormes : exemple de la distribution


propositions

++ Dtails : [AV01b], chapitre 2, section 4

Methodes
formelles p.67/153

La notation Z
Introduction
Informellement
1. La logique
2. Les types et les ensembles
3. Les relations binaires et leurs variantes
4. Les schmas
Formellement
1. La logique
2. Les types et les ensembles
3. Les relations binaires et leurs variantes
4. Les schmas

Methodes
formelles p.68/153

Toutes les variables sont types en Z.


dclaration libre
dclaration contrainte

Description formelle (types, ensembles)

porte de la dclaration (global, schma, liaison)

Methodes
formelles p.69/153

Description formelle (types, ensembles)


Toutes les variables sont types en Z.

Diffrents types
vide ,
de base
de prdfinis ( )
libres
dclars
extension
comprhension
rcursif

(global)

Methodes
formelles p.69/153

Description formelle (types, ensembles)


Oprateurs

Methodes
formelles p.70/153

Oprateurs
lments :

Description formelle (types, ensembles)

Methodes
formelles p.70/153

Oprateurs
lments :
lments/ensemble :

Description formelle (types, ensembles)

Methodes
formelles p.70/153

avec

Oprateurs
lments :
lments/ensemble :
ensembles :

Description formelle (types, ensembles)

Methodes
formelles p.70/153

Proprits
appartient
vide
extension
prdicat
motif

Description formelle (types, ensembles)

Methodes
formelles p.71/153

Preuve

Proprits
appartient
vide
extension
prdicat
motif

Description formelle (types, ensembles)

logique

Methodes
formelles p.71/153

Preuve

Proprits
appartient
vide
extension
prdicat
motif

Description formelle (types, ensembles)

logique

++ Dtails : [AV01b], chapitre 2, section 5

Methodes
formelles p.71/153

Description formelle (boolens)


Pas de type prdfini, aucun lien avec les constantes
de la logique !

Methodes
formelles p.72/153

Description formelle (boolens)


Pas de type prdfini, aucun lien avec les constantes
de la logique !
2 solutions :

Methodes
formelles p.72/153

Description formelle (boolens)

2 solutions :
Type libre

Pas de type prdfini, aucun lien avec les constantes


de la logique !

Methodes
formelles p.72/153

Description formelle (boolens)


Pas de type prdfini, aucun lien avec les constantes
de la logique !

2 solutions :
Type libre
+ permet de rendre un boolen en rsultat

Methodes
formelles p.72/153

Description formelle (boolens)


Pas de type prdfini, aucun lien avec les constantes
de la logique !

2 solutions :
Type libre
+ permet de rendre un boolen en rsultat
- implique un test permanent de la valeur

Methodes
formelles p.72/153

Description formelle (boolens)


Pas de type prdfini, aucun lien avec les constantes
de la logique !

2 solutions :
Type libre
+ permet de rendre un boolen en rsultat
- implique un test permanent de la valeur
Sous-ensemble

Methodes
formelles p.72/153

Description formelle (boolens)


Pas de type prdfini, aucun lien avec les constantes
de la logique !

2 solutions :
Type libre
+ permet de rendre un boolen en rsultat
- implique un test permanent de la valeur
Sous-ensemble

+ intgration directe avec la logique de Z

Methodes
formelles p.72/153

Description formelle (boolens)


Pas de type prdfini, aucun lien avec les constantes
de la logique !

2 solutions :
Type libre
+ permet de rendre un boolen en rsultat
- implique un test permanent de la valeur
Sous-ensemble

+ intgration directe avec la logique de Z


- pas de boolen en rsultat

Methodes
formelles p.72/153

La notation Z
Introduction
Informellement
1. La logique
2. Les types et les ensembles
3. Les relations binaires et leurs variantes
4. Les schmas
Formellement
1. La logique
2. Les types et les ensembles
3. Les relations binaires et leurs variantes
4. Les schmas

Methodes
formelles p.73/153

ou

et des ensembles ;
et
.
; ou
]

ou

Soient ,
;

Relation :

Description formelle (relations)


.

Methodes
formelles p.74/153

Description formelle (relations)


Exemple
Pierre

Michel
Sandrine

17

Gilles
12

Benoit
Luc

Claude

Marie

11

Sophie

10
notes

dom notes

Rgis
ETUDIANT

ran notes

1..20

Methodes
formelles p.75/153

Description formelle (relations)

Dfinitions axiomatiques, gnriques

Methodes
formelles p.76/153

ou

Description formelle (relations)

Proprits

Methodes
formelles p.77/153

Description formelle (fonctions)

Fonction (partielle) :

Methodes
formelles p.78/153

Description formelle (fonctions)

Fonction totale :

Fonction (partielle) :

Methodes
formelles p.78/153

Description formelle (fonctions)

Injection :

Fonction totale :

Fonction (partielle) :

Methodes
formelles p.78/153

Fonction totale :

Injection :

Surjection :

Description formelle (fonctions)


Fonction (partielle) :

Methodes
formelles p.78/153

Fonction totale :

Surjection :

Injection :

Bijection :

Description formelle (fonctions)


Fonction (partielle) :

Methodes
formelles p.78/153

Fonction totale :

Fonction finie :

Surjection :

Bijection :

Injection :

Description formelle (fonctions)


Fonction (partielle) :

Methodes
formelles p.78/153

Fonction totale :

-abstraction :

Fonction finie :

Surjection :

Bijection :

Injection :

Description formelle (fonctions)


Fonction (partielle) :

Methodes
formelles p.78/153

-abstraction :

Fonction totale :

Fonction finie :

Bijection :

Surjection :

Injection :

Description formelle (fonctions)


Fonction (partielle) :

Exemple fonction successeur :

Methodes
formelles p.78/153

Description formelle (fonctions)


Exemple : Calculer la moyenne des tudiants.
Pierre

Michel
Sandrine

17

Gilles
12

Benoit
Luc

Claude

Marie

11

Sophie

10
notes

dom notes

Rgis
ETUDIANT

ran notes

1..20

Methodes
formelles p.79/153

Pas ditrateur en Z

Description formelle (fonctions)


fonction annexe rcursive

Methodes
formelles p.80/153

Dfinition :

Description formelle (multi-ensembles)


Oprateurs : comptage, appartenance, union,
conversions...

Methodes
formelles p.81/153

Description formelle (squences)


Dfinition

Methodes
formelles p.82/153

Dfinition
formelle :

Description formelle (squences)

Methodes
formelles p.82/153

soit

en extension :

Dfinition
formelle :

Description formelle (squences)

Methodes
formelles p.82/153

soit

en extension :

Dfinition
formelle :

Description formelle (squences)

Oprateurs :

Methodes
formelles p.82/153

soit

(si

lment :

Oprateurs :
accs au i

en extension :

Dfinition
formelle :

Description formelle (squences)

Methodes
formelles p.82/153

soit

(si

Oprateurs :
accs au i
lment :
concatnation :

en extension :

Dfinition
formelle :

Description formelle (squences)

Methodes
formelles p.82/153

soit

en extension :

Dfinition
formelle :

Description formelle (squences)

inversion :

(si

Oprateurs :
accs au i
lment :
concatnation :

Methodes
formelles p.82/153

Dfinition
formelle :

(si

Oprateurs :
accs au i
lment :
concatnation :

en extension :

inversion :
premier :

Description formelle (squences)

soit

Methodes
formelles p.82/153

Dfinition
formelle :

(si

Oprateurs :
accs au i
lment :
concatnation :

en extension :

inversion :
premier :
suite :

Description formelle (squences)

soit

Methodes
formelles p.82/153

Description formelle (squences)

Exemples.

Methodes
formelles p.83/153

Description formelle (squences)

concatnation distribue

Oprateurs (suite)

Methodes
formelles p.84/153

concatnation distribue

compactage

Description formelle (squences)

Oprateurs (suite)
:

, filtrage , extraction :

Methodes
formelles p.84/153

Description formelle (squences)

Oprateurs (suite)
:

, partition

, filtrage , extraction :

un ensemble dindices (sous-ensemble dentiers).

Soit

disjonction

compactage

concatnation distribue

Methodes
formelles p.84/153

Description formelle (squences)

Exemples.

Methodes
formelles p.85/153

La notation Z
Introduction
Informellement
1. La logique
2. Les types et les ensembles
3. Les relations binaires et leurs variantes
4. Les schmas
Formellement
1. La logique
2. Les types et les ensembles
3. Les relations binaires et leurs variantes
4. Les schmas

Methodes
formelles p.86/153

Description formelle (schmas)

Dclarations contraintes par un prdicat

ou crit autrement dans le format horizontal par

Methodes
formelles p.87/153

Description formelle (schmas)

Pas de dclarations circulaires

les types sont dfinis

Methodes
formelles p.88/153

Un schma sert de dclaration (


)
(

Description formelle (schmas)


) ou de prdicat

est quivalent

Methodes
formelles p.89/153

Description formelle (schmas)

dun type

dont les instances sont des liaisons


schma

Un schma dcrit un type de donnes

Methodes
formelles p.90/153

Description formelle (schmas)


Calcul de schmas

Soit

Methodes
formelles p.91/153

Description formelle (schmas)

Calcul de schmas : inclusion

Methodes
formelles p.92/153

Description formelle (schmas)


Calcul de schmas : dcoration

est quivalent :

Par exemple, le schma

Une dcoration est un suffixage de variables par une


marque de ponctuation (, , ?, !).

Methodes
formelles p.93/153

Description formelle (schmas)

Calcul de schmas : variation

Methodes
formelles p.94/153

Description formelle (schmas)

Calcul de schmas : variation

Methodes
formelles p.95/153

Description formelle (schmas)


Calcul de schmas : autres

Oprateurs sur les prdicats


Projection prdicat :
Ajout prdicat :

Oprateurs sur les dclarations


Projection dclarations :
Ajout dclarations :
Masquage :
Projection :

soient S et T des schmas.

Methodes
formelles p.96/153

Description formelle (schmas)

Renommage

Calcul de schmas : autres (suite)

Methodes
formelles p.97/153

Description formelle (schmas)

Oprateurs logiques (

Renommage

Calcul de schmas : autres (suite)

):

Methodes
formelles p.97/153

Description formelle (schmas)

Oprateurs logiques (
fusion des dclarations

Renommage

Calcul de schmas : autres (suite)

):

Methodes
formelles p.97/153

Description formelle (schmas)

Oprateurs logiques (
fusion des dclarations
opration logique des prdicats

Renommage

Calcul de schmas : autres (suite)

):

Methodes
formelles p.97/153

Description formelle (schmas)

):

Oprateurs logiques (
fusion des dclarations
opration logique des prdicats
Prcondition :

Renommage

Calcul de schmas : autres (suite)

Methodes
formelles p.97/153

Description formelle (schmas)

):

Surcharge :

Oprateurs logiques (
fusion des dclarations
opration logique des prdicats
Prcondition :

Renommage

Calcul de schmas : autres (suite)

Methodes
formelles p.97/153

Description formelle (schmas)

):

Composition :

Surcharge :

Oprateurs logiques (
fusion des dclarations
opration logique des prdicats
Prcondition :

Renommage

Calcul de schmas : autres (suite)

(application squentielle)

Methodes
formelles p.97/153

Description formelle (schmas)

):

Composition :
Tubage :

Surcharge :

Oprateurs logiques (
fusion des dclarations
opration logique des prdicats
Prcondition :

Renommage

Calcul de schmas : autres (suite)

(application squentielle)

(les sorties de lun entrent dans lautre)

Methodes
formelles p.97/153

Description formelle (schmas)

):

Composition :
Tubage :

Surcharge :

Oprateurs logiques (
fusion des dclarations
opration logique des prdicats
Prcondition :

Renommage

Calcul de schmas : autres (suite)

(application squentielle)

(les sorties de lun entrent dans lautre)

++ Dtails et exemples : [AV01b], chapitre 3, section 2

Methodes
formelles p.97/153

En rsum

Z=
Logique des prdicats
+
Thorie des ensembles

Methodes
formelles p.98/153

Plan du cours
1. Rappels sur le dveloppement du logiciel
mthodes, langages et notations
gestion de projet
2. Exemple introductif
3. La notation Z
- informellement
+ formellement
4. La mthode de dveloppement
- informellement
+ formellement
5. Bilan et extensions

Methodes
formelles p.99/153

La mthode de dveloppement avec Z


Une dmarche et des alternatives
Schmas utiliss
Organisation dune spcification Z
Exemples
Merise + Z

Methodes
formelles p.100/153

Dmarche de spcification en Z
Description informelle

Analyse prliminaire
Modles Entit/Association

Spcification formelle
Spcification Z

preuves
validation

Conception abstraite

Spcification Z raffine

raffinement
preuves
validation

Prototype

Ralisation
optimisations

Logiciel

Methodes
formelles p.101/153

Dmarche de spcification en Z
Programmation
structure

Spcification
squentielle en Z

structure de
donnes

tat

procdures

oprations

Methodes
formelles p.102/153

La mthode de dveloppement avec Z


Une dmarche et des alternatives
Schmas utiliss
Organisation dune spcification Z
Exemples
Merise + Z

Methodes
formelles p.103/153

Schmas utiliss

Schma dtat

Schma dopration (dcorations)

Methodes
formelles p.104/153

Schmas utiliss

Variantes pour ltat initial et les prconditions.

Methodes
formelles p.105/153

La mthode de dveloppement avec Z


Une dmarche et des alternatives
Schmas et calcul de schmas
Organisation dune spcification Z
Exemples
Merise + Z

Methodes
formelles p.106/153

Les lments dune spcification Z (1/2)


Dfinitions de types
de base
libres (numr ou union de types)
construits par les oprateurs de types
Dclarations globales
Constantes
Variables
variables globales types
contraintes (dfinition axiomatique)
Oprateurs ou relations par dfinition axiomatique
et/ou gnriques
relations
fonctions
oprations

Methodes
formelles p.107/153

Les lments dune spcification Z (2/2)


Dclarations de schmas.
Etat ou partie de ltat du systme.
Schma de ltat initial du systme.
Opration ou partie doprations accdant ou
modifiant ltat du systme.
Schmas des pr-conditions des oprations.
Schmas de raffinement.
Preuves
Obligations de preuve (tat initial, conservation de
linvariant, pr-conditions).
Dmontrations de proprits (thormes).
Dmontrations de validit du raffinement.

Methodes
formelles p.108/153

Organisation dune spcification Z


La spcification Z est organise de la faon suivante :
1. Les dclarations globales
de types de base et de types libres,
constantes, variables et fonctions.
2. Les types utilisateur : construits, schmas
3. Un schma dtat.
4. Un schma initial.
5. Des schmas doprations
6. Des schmas de prcondition
7. Des thormes et des preuves.
8. Le raffinement.

Methodes
formelles p.109/153

La mthode de dveloppement avec Z


Une dmarche et des alternatives
Schmas et calcul de schmas
Organisation dune spcification Z
Exemples
Merise + Z

Methodes
formelles p.110/153

Exemples
Hpital
Spcification de ltat
Spcification des oprations
Obligations de preuve (tat initial, prconditions)
Raffinage
++ voir [AV01b], chapitre 3
Facturation
Spcification de ltat
Spcification des oprations
Obligations de preuve (tat initial, prconditions)
++ voir [AV01b], chapitre 4

Methodes
formelles p.111/153

Cas Hpital - Etat

Methodes
formelles p.112/153

Cas Hpital - Etat initial

Etat initial

Preuve de lexistence dun tat initial.

Methodes
formelles p.113/153

[par substitution de
[se dduit par

Cas Hpital - Preuve tat initial

[ -limination]
]
]

[ -limination]

est lensemble vide, tautologie]


[ -introduction]

Methodes
formelles p.114/153

Cas Hpital - Oprations en mise--jour

Methodes
formelles p.115/153

Cas Hpital - Oprations en consultation

Methodes
formelles p.116/153

Application lopration

Cas Hpital - prcondition

Prservation de linvariant dans les oprations.


.

Methodes
formelles p.117/153

Cas Hpital - prcondition

La dmonstration se fait en remplaant les schmas par


leurs dclarations et leurs prdicats.

Methodes
formelles p.118/153

Cas Hpital - prcondition

Puis en substituant progressivement les variables dcores


par par des valeurs non dcores par et les sorties par
leur valeur.

Methodes
formelles p.119/153

sur

Par distributivit de

Cas Hpital - prcondition


le schma se simplifie en

Methodes
formelles p.120/153

Par dfinition de

Cas Hpital - prcondition


, nous avons

Methodes
formelles p.121/153

Par application de
sur chaque membre de lgalit, et
par commutativit de , nous obtenons

Cas Hpital - prcondition

Methodes
formelles p.122/153

Par dfinition de
schma en

Cas Hpital - prcondition


et application de P , nous simplifions le

Methodes
formelles p.123/153

Cas Hpital - prcondition


Nous nous intressons maintenant la proprit dunicit
du patient dans la salle. Pour cela nous avons besoin de
deux lemmes.

lemme 1 (ordre)
Les premiers termes dune concatnation de squence
sont ceux de la premire squence :

lemme 2
Un prdicat li un intervalle peut tre dcoup en une
conjonction du prdicat sur des sous-intervalles :

Methodes
formelles p.124/153

Cas Hpital - prcondition

Ce dernier point se simplifie dans le schma de


prcondition.

Methodes
formelles p.125/153

Cas Hpital - prcondition

Ce dernier point se simplifie dans le schma de


prcondition.

utilit des outils !

Methodes
formelles p.125/153

Cas Hpital - Robustesse

La prcondition dune opration robuste est true.


prvoir les cas derreur

Une manire de procder consiste tudier chaque cas


normal et chaque cas derreur.

Methodes
formelles p.126/153

Cas Hpital - Robustesse

Exercice : vrifier que la prcondition est vraie.

Methodes
formelles p.127/153

Cas Hpital - Raffinage


Deux types de raffinage sont distingus en Z :
Le raffinage des oprations. Les structures de contrle
du langage de programmation cible sont introduites
progressivement, e.g. squences, conditionnelles,
itrations pour la programmation imprative.
Le raffinage des donnes. Les structures de donnes
du langage de programmation cible sont introduites
progressivement, e.g. structures, tableaux, pointeurs
pour la programmation imprative.

Methodes
formelles p.128/153

Cas Hpital - Raffinage de donnes


La file est implante par un tableau avec des pointeurs.

Affectation

Lecture

Dclaration

En Z, un tableau se reprsente par une squence (!!).

Methodes
formelles p.129/153

Cas Hpital - Raffinage


un pointeur

deux pointeurs
MAX

MAX

premier

queue

tte
MAX

MAX

1
Ajout

dcalage
premier

MAX

MAX

Retrait

premier

queue

tte

tte

queue

Methodes
formelles p.130/153

Cas Hpital - Raffinage

Methodes
formelles p.131/153

Cas Hpital - Raffinage

idem pour les oprations


La suite de raffinage tablit limplantation (prouve) finale.
Preuves et dtails : voir [AV01b], chapitre 3, section 7

Methodes
formelles p.132/153

La mthode de dveloppement avec Z


Une dmarche et des alternatives
Schmas et calcul de schmas
Organisation dune spcification Z
Exemples
Merise + Z

Methodes
formelles p.133/153

Retour sur la dmarche de spcification 1/2


Spcification
informelle

Elaboration
du MCD

Schma E-A-P

Traduction
en Z

Elaboration
du MCT

correction
s

MCT

Validation
croise
Spcification

Methodes
formelles p.134/153

Retour sur la dmarche de spcification 2/2


Traduction en Z
Spcification
Spcification de
l'tat du systme
Spcification
des oprations
en Z
vrification

Implantation

preuves et
raffinement

Application
(ex: Pascal,
Caml, SGBDR)

Implantation

Tests
Vrifications

Methodes
formelles p.135/153

Traduction du formalisme E-A-P en Z


Plusieurs variantes sont possibles, seule la traduction
principale est prsente ici.
Traduction dun type dentit

Methodes
formelles p.136/153

Traduction du formalisme E-A-P en Z


Plusieurs variantes sont possibles, seule la traduction
principale est prsente ici.
Traduction dun type dentit
Traduction dun type dassociation

Methodes
formelles p.136/153

Traduction du formalisme E-A-P en Z


Plusieurs variantes sont possibles, seule la traduction
principale est prsente ici.
Traduction dun type dentit
Traduction dun type dassociation
Optimisations

Methodes
formelles p.136/153

Traduction du formalisme E-A-P en Z


Plusieurs variantes sont possibles, seule la traduction
principale est prsente ici.
Traduction dun type dentit
Traduction dun type dassociation

Optimisations
Dtails et exemples : [AV01b], chapitre 5, section 2

Methodes
formelles p.136/153

Traduction dun type dentit en Z

no_SecSoc_p
nom_p
prnom_p
adresse_p

Patient

Un TE = un schma Z

Methodes
formelles p.137/153

Traduction dun type dentit en Z

Un TE = un schma Z

Reprsenter lextension => traduire les contraintes

Methodes
formelles p.137/153

Traduction dun type dentit en Z

Un TE = un schma Z

Reprsenter lextension => traduire les contraintes

Cest une fonction partielle !

Methodes
formelles p.137/153

Traduction dun type dentit en Z

Un TE = un schma Z

Reprsenter lextension => traduire les contraintes

Cest une fonction partielle !


Sparation identifiant - TE

Methodes
formelles p.137/153

Traduction dun type dentit en Z

Methodes
formelles p.138/153

Traduction dun type dentit en Z

identifiant du TE

Methodes
formelles p.138/153

Traduction dun TA en Z
Identifiant => inclusion des extensions de TE

Methodes
formelles p.139/153

Traduction dun TA en Z
Identifiant => inclusion des extensions de TE
Porteur dinformations => reprsentation similaire au
TE pour le TA

Methodes
formelles p.139/153

Traduction dun TA en Z
Identifiant => inclusion des extensions de TE
Porteur dinformations => reprsentation similaire au
TE pour le TA
une seule proprit : pas de TA explicite

Methodes
formelles p.139/153

Traduction dun TA en Z
Identifiant => inclusion des extensions de TE
Porteur dinformations => reprsentation similaire au
TE pour le TA
une seule proprit : pas de TA explicite
plusieurs proprits

Methodes
formelles p.139/153

Traduction dun TA en Z
Identifiant => inclusion des extensions de TE
Porteur dinformations => reprsentation similaire au
TE pour le TA
une seule proprit : pas de TA explicite
plusieurs proprits
Arit

Methodes
formelles p.139/153

Traduction dun TA en Z
Identifiant => inclusion des extensions de TE
Porteur dinformations => reprsentation similaire au
TE pour le TA
une seule proprit : pas de TA explicite
plusieurs proprits
Arit
binaire : relation Z ou variante

Methodes
formelles p.139/153

Traduction dun TA en Z
Identifiant => inclusion des extensions de TE
Porteur dinformations => reprsentation similaire au
TE pour le TA
une seule proprit : pas de TA explicite
plusieurs proprits
Arit
binaire : relation Z ou variante
n-aire (n>2) : produit cartsien

Methodes
formelles p.139/153

Traduction dun TA en Z
Identifiant => inclusion des extensions de TE
Porteur dinformations => reprsentation similaire au
TE pour le TA
une seule proprit : pas de TA explicite
plusieurs proprits
Arit
binaire : relation Z ou variante
n-aire (n>2) : produit cartsien
Cardinalits : prdicats, simplifications possibles pour
les TA binaires

Methodes
formelles p.139/153

Traduction dun TA en Z
Identifiant => inclusion des extensions de TE
Porteur dinformations => reprsentation similaire au
TE pour le TA
une seule proprit : pas de TA explicite
plusieurs proprits
Arit
binaire : relation Z ou variante
n-aire (n>2) : produit cartsien
Cardinalits : prdicats, simplifications possibles pour
les TA binaires
Association dassociation => personnaliser dabord puis
cas normal

Methodes
formelles p.139/153

Traduction dun TA binaire non porteur en Z


EntitA

EntitB

idA : TypeIdA

m,n

o,p

AB

idB : TypeIdB
...

...

Methodes
formelles p.140/153

cas m n
1
0 1
2
0 1
3
0 1
4
0 1
5
0 n
6
0 n
7
0 n
8
0 n
o
0
1
0
1
0
1
0
1

p
1
1
n
n
1
1
n
n

Traduction dun TA binaire (cardinalits) 1/2

Methodes
formelles p.141/153

cas m n
9
1 1
10
1 1
11
1 1
12
1 1
13
1 n
14
1 n
15
1 n
16
1 n
o
0
1
0
1
0
1
0
1

p
1
1
n
n
1
1
n
n

Traduction dun TA binaire (cardinalits) 2/2

Methodes
formelles p.142/153

Traduction dun TA binaire porteur en Z


EntitA

EntitB

idA : TypeIdA

m,n

o,p

AB
v:T

...

...

idB : TypeIdB

Methodes
formelles p.143/153

Traduction E-A-P en Z (exemple)

Methodes
formelles p.144/153

Traduction E-A-P en Z (exemple)

Methodes
formelles p.145/153

Il sagit bien dune fonction partielle

Traduction E-A-P en Z (exemple)

Methodes
formelles p.146/153

Il sagit bien dune fonction partielle

Traduction E-A-P en Z (exemple)

Methodes
formelles p.147/153

Traduction E-A-P en Z (exemple)

Systme global

Methodes
formelles p.148/153

Traduction E-A-P en Z (optimisations)


Les optimisations suivantes peuvent tre appliques.
Suppression des schmas mono-variable

Methodes
formelles p.149/153

Traduction E-A-P en Z (optimisations)


Les optimisations suivantes peuvent tre appliques.
Suppression des schmas mono-variable
substitution du schma par sa variable

Methodes
formelles p.149/153

Traduction E-A-P en Z (optimisations)


Les optimisations suivantes peuvent tre appliques.

Suppression des schmas mono-variable


substitution du schma par sa variable
exemple :
,

Methodes
formelles p.149/153

Traduction E-A-P en Z (optimisations)


Les optimisations suivantes peuvent tre appliques.

Suppression des schmas mono-variable


substitution du schma par sa variable
exemple :
,
Suppression des schmas types

Methodes
formelles p.149/153

Traduction E-A-P en Z (optimisations)


Les optimisations suivantes peuvent tre appliques.

Suppression des schmas mono-variable


substitution du schma par sa variable
exemple :
,

Suppression des schmas types


gnralisation du cas prcdent plusieurs
variables

Methodes
formelles p.149/153

Traduction E-A-P en Z (optimisations)


Les optimisations suivantes peuvent tre appliques.

Suppression des schmas mono-variable


substitution du schma par sa variable
exemple :
,

Suppression des schmas types


gnralisation du cas prcdent plusieurs
variables
viter : conserver la structure

Methodes
formelles p.149/153

Traduction E-A-P en Z (optimisations)


Les optimisations suivantes peuvent tre appliques.

Suppression des schmas mono-variable


substitution du schma par sa variable
exemple :
,

Suppression des schmas types


gnralisation du cas prcdent plusieurs
variables
viter : conserver la structure
! Le critre majeur est la lisibilit attendue.
On tient aussi compte de la rutilisabilit.

Methodes
formelles p.149/153

et

Les types

Traduction E-A-P en Z (optimisations)


sont inchangs.

La reprsentation est condense (plus apprhendable)


mais on a perdu la structure de dpart.

Methodes
formelles p.150/153

Traduction du formalisme E-A-P en Z


Exemple de la bibliothque
voir [AV01b], chapitre 3

Methodes
formelles p.151/153

Plan du cours
1. Rappels sur le dveloppement du logiciel
mthodes, langages et notations
gestion de projet
2. Exemple introductif
3. La notation Z
- informellement
+ formellement
4. La mthode de dveloppement
- informellement
+ formellement
5. Bilan et extensions

Methodes
formelles p.152/153

Bilan et extensions
Bilan
1. Bon complment dune modlisation semi-formelle
2. Documentation rigoureuse
3. Preuve de programmes
4. OCL
Extensions
1. Outils
2. Spcification dfensive ou offensive
3. Promotion
4. Orientation objet

Methodes
formelles p.153/153

References
[AV01a] Pascal Andre and Alain Vailly.
Conception de
`

Systemes
dInformation, Panorama des methodes
et
des techniques, volume 1 of Collection Technosup.
Editions Ellipses, 2001. ISBN 2-7298-0479-X.

[AV01b] Pascal Andre and Alain Vailly. Specification


des logi
ciels, Deux exemples de pratiques recentes
: Z et
UML, volume 2 of Collection Technosup. Editions Ellipses, 2001. ISBN 2-7298-0774-8.
`

`
[Lau86] Jean.-Louis Lauriere.
Resolution
de problemes
par
lHomme et la machine. Eyrolles, 1986.
[MR93] Jose Morejon and Jean-Rene Rames. Conduite de
projets informatiques. InterEditions, 1993. Principes

et techniques sappuyant sur la methode


MERISE,
ISBN 2-7296-0457-X.
[Vil95]

Francoise
duite
de

Villeneuve.
projet.

CNRS,

Con1995.

http://dsi-val.dsi.cnrs.fr/bureau qual

153-1

You might also like