Académique Documents
Professionnel Documents
Culture Documents
Cours Z03
Cours Z03
La notation Z
Pascal Andre IRIN - IUP Miage de Nantes de Nantes Universite ` ; B.P. 92208 2 rue de la Houssiniere 44322 Nantes Cedex 03 Pascal.Andre@irin.univ-nantes.fr
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
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.
Bibliographie sommaire
Gnralits et techniques de base Cours Z
Bibliographie sommaire
Gnralits et techniques de base Cours Z
AV01b] Pascal Andr and Alain Vailly. Spcication 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.
Bibliographie sommaire
Gnralits et techniques de base Cours Z Corrigs dexercices Z
Bibliographie sommaire
Gnralits et techniques de base Cours Z Corrigs dexercices Z
[AV03] Pascal Andr and Alain Vailly. Exercices corrigs en langage Z, les spcications formelles par la pratique, volume 4 of Collection Technosup. Editions Ellipses, 2003. ISBN -, paratre.
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, vrication 5. Qualit
Introduction
De lide au code exprimer programmer vrier
Introduction
De lide au code exprimer programmer vrier avec mthode... dans le bon ordre viter lanarchie travailler en groupe
Introduction
De lide au code exprimer programmer vrier avec mthode... dans le bon ordre viter lanarchie travailler en groupe ... et qualit modles (correct, able, volutif...) processus (efcace, rentable...)
Methodes formelles p.6/153
Introduction
De lide au code exprimer programmer vrier
MODELES
QUALITE
Le dveloppement individuel
mthodes "agiles", XP Analyse lgre ou dans la "tte"
Le dveloppement individuel
mthodes "agiles", XP Analyse lgre ou dans la "tte" oublis erreurs tardives manque de rexion
Le dveloppement individuel
mthodes "agiles", XP Analyse lgre ou dans la "tte" Programmation incrmentale et itrative sur le test
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
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
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 pas de travail de groupe, pas rationnel
Le dveloppement en groupe
tablir les tches et les rsultats
Le dveloppement en groupe
tablir les tches et les rsultats dnir les acteurs
Le dveloppement en groupe
tablir les tches et les rsultats dnir les acteurs organiser le dveloppement
Le dveloppement en groupe
tablir les tches et les rsultats dnir les acteurs organiser le dveloppement grer la communication (documents, mdia, ...)
Le dveloppement en groupe
tablir les tches et les rsultats dnir les acteurs organiser le dveloppement grer la communication (documents, mdia, ...) superviser le dveloppement
Le dveloppement en groupe
tablir les tches et les rsultats dnir les acteurs organiser le dveloppement grer la communication (documents, mdia, ...) superviser le dveloppement amliorer la qualit
Le dveloppement en groupe
tablir les tches et les rsultats dnir les acteurs organiser le dveloppement grer la communication (documents, mdia, ...) superviser le dveloppement amliorer la qualit pour qui ?
1960
1965 rutilisation abstraction types abstraits modularit gnricit approche descendante Pascal objet Smalltalk smantique 1980 ADA Langages de conception Langages de spcification
1970
1975
1985
Bases de connaissances
1990
XX ?
Methodes formelles p.12/153
Evolution
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...
aspects organisationnels gestion de projet La conduite de projet (gestion de projet, management de projet) "dnit 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.
La conduite de projet est un processus difcile matriser car interviennent plusieurs facteurs de risque tels que les cots et les dlais respecter, les technologies matriser, les ressources humaines grer. [Vil95].
aspects organisationnels gestion de projet gestion du besoin (dnition, validation, volution) gestion des ressources et des cots (planication, suivi, optimisation, capitalisation) gestion des risques (valuation, suivi, dcision) gestion de la communication entre acteurs gestion de la qualit des rsultats produits
aspects organisationnels gestion de projet Projet informatique gestion du besoin (dnition, validation, volution) runions, revues, cahiers des charges gestion des ressources et des cots (planication, suivi, optimisation, capitalisation) humains, matriels, nanciers gestion des risques (valuation, suivi, dcision) gestion de la communication entre acteurs gestion de la qualit des rsultats produits certication, contrle qualit
Le dveloppement du logiciel
1. Introduction 2. Gnie logiciel 3. Projet informatique 4. Mthode de dveloppement Modles, produits Processus Validation, vrication 5. Qualit
2. Evolution dans le temps Point de vue dynamique vnements actions contraintes temporelles concurrence
3. Traitements Point de vue fonctionnel algorithmes transactions et scurit assertions (contraintes) paralllisme
Types de spcication
Les spcications peuvent tre classes selon leur forme ou leur degr de formalisme. les spcications informelles, en langue naturelle, rdiges sans contraintes de forme,
Types de spcication
Les spcications peuvent tre classes selon leur forme ou leur degr de formalisme. les spcications informelles, en langue naturelle, rdiges sans contraintes de forme, les spcications standardises, en langue naturelle, mais avec une structure, un format et des rgles prcises (notations, glossaire, index, historique...),
Types de spcication
Les spcications peuvent tre classes selon leur forme ou leur degr de formalisme. les spcications informelles, en langue naturelle, rdiges sans contraintes de forme, les spcications standardises, en langue naturelle, mais avec une structure, un format et des rgles prcises (notations, glossaire, index, historique...), les spcications semi-formelles, utilisant un langage de spcication textuel ou graphique, dot dune syntaxe prcise et dune smantique assez faible),
Types de spcication
Les spcications peuvent tre classes selon leur forme ou leur degr de formalisme. les spcications informelles, en langue naturelle, rdiges sans contraintes de forme, les spcications standardises, en langue naturelle, mais avec une structure, un format et des rgles prcises (notations, glossaire, index, historique...), les spcications semi-formelles, utilisant un langage de spcication textuel ou graphique, dot dune syntaxe prcise et dune smantique assez faible), les spcications formelles, exprimes dans un langage syntaxe et smantique prcises, construites sur une base thorique solide.
Methodes formelles p.19/153
modle architectural
Conception du systme
Intgration et tests
Tests unitaires
Construction codage
Modles de processus
Principaux cycles linaires (cascade, V, fontaine),
Modles de processus
Principaux cycles linaires (cascade, V, fontaine), contractuels (mthodes formelles),
Modles de processus
Principaux cycles linaires (cascade, V, fontaine), contractuels (mthodes formelles), itratifs (spirale),
Modles de processus
Principaux cycles linaires (cascade, V, fontaine), contractuels (mthodes formelles), itratifs (spirale), variantes (X, Y).
Le dveloppement du logiciel
1. Introduction 2. Gnie logiciel 3. Projet informatique 4. Mthode de dveloppement Modles, produits Processus Validation, vrication 5. Qualit
Qualit
Qualit des spcications
Qualit
Qualit des spcications viter le bruit le silence la sur-spcication la contradiction lambiguit la rfrence avant le vu pieu
Qualit
Qualit des spcications Qualit du logiciel
Qualit
Qualit des spcications Qualit du logiciel la validit la robustesse lextensibilit la rutilisabilit la compatibilit
Qualit
Qualit des spcications Qualit du logiciel la validit la robustesse lextensibilit la rutilisabilit la compatibilit Dautres qualits du logiciel sont moins cruciales : lefcacit, la portabilit, la vriabilit, lintgrit, la facilit dutilisation
Qualit
Qualit des spcications Qualit du logiciel Qualit du processus
Qualit
Qualit des spcications Qualit du logiciel Qualit du processus sret terminaison rigueur cohrence, compltude souplesse accessibilit rentabilit
Qualit
Qualit des spcications Qualit du logiciel Qualit du processus Plus de dtails [AV01a]
Qualit
Qualit des spcications Qualit du logiciel Qualit du processus Plus de dtails Amliorer la qualit : [AV01a]
Qualit
Qualit des spcications Qualit du logiciel Qualit du processus Plus de dtails Amliorer la qualit : rigueur structuration modulaire [AV01a]
Qualit
Qualit des spcications Qualit du logiciel Qualit du processus Plus de dtails Amliorer la qualit : rigueur mthodes formelles mthodes objets
[AV01a]
structuration modulaire
Qualit
Qualit des spcications Qualit du logiciel Qualit du processus Plus de dtails Amliorer la qualit : rigueur mthodes formelles mthodes objets
[AV01a]
Z UML
structuration modulaire
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
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
Orientation des patients Vrification du patient Cration ventuelle du patient Evaluation des soins Orientation du patient Normale Urgence Refus
Patient cr
Admission refuse
+ explications
Patient guri
Critique (MCD)
+ Plus concis et moins soumis interprtation que la description informelle.
Critique (MCD)
+ Plus concis et moins soumis interprtation que la description informelle. + MCD presque complet (cardinalits, contraintes).
Critique (MCD)
+ Plus concis et moins soumis interprtation que la description informelle. + MCD presque complet (cardinalits, contraintes). Mais ...
Critique (MCD)
+ Plus concis et moins soumis interprtation que la description informelle. + MCD presque complet (cardinalits, contraintes). Mais ... - Manque de prcision
Critique (MCD)
+ Plus concis et moins soumis interprtation que la description informelle. + MCD presque complet (cardinalits, contraintes). Mais ... - Manque de prcision rgles de gestion
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
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
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
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 vrier ?
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 vrier ? Comment prouver la correction ?
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 vrier ? Comment prouver la correction ? Pas doublis ?
Methodes formelles p.32/153
Critique (MCT)
+ Enchanements des oprations.
Critique (MCT)
+ Enchanements des oprations. + Vue globale des traitements.
Critique (MCT)
+ Enchanements des oprations. + Vue globale des traitements. Mais ...
Critique (MCT)
+ Enchanements des oprations. + Vue globale des traitements. Mais ... - Manque de prcision
Critique (MCT)
+ Enchanements des oprations. + Vue globale des traitements. Mais ... - Manque de prcision rgles de gestion
Critique (MCT)
+ Enchanements des oprations. + Vue globale des traitements. Mais ... - Manque de prcision rgles de gestion dtails des oprations
Critique (MCT)
+ Enchanements des oprations. + Vue globale des traitements. Mais ... - Manque de prcision rgles de gestion dtails des oprations contraintes sur les vnements
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
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 vrier ?
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 vrier ? Comment prouver la correction ?
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 vrier ? Comment prouver la correction ? Pas doublis ?
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
!
. + ! , & +
()'
$%
&
Methodes formelles p.35/153
&
+
!
( ( ' ! , #
. /
! # ( ( /
.
' ! ,
,
. +
!
!
"
patient consulter
*
, '
,
,
# !
&
$ %
( " ( ' )
*
, &
" /
. +
& /
( ( ' #
' #
( (
'
,
/
+
/
. +
'
"
. /
'
Exemple introductif
1. Description informelle 2. Modlisation avec Merise MCD MCT Critique 3. Modlisation avec Z Donnes Traitements Critique 4. Bilan
Bilan
Les "spec formelles" + Formalisme (thories, logiques et calculs)
Bilan
Les "spec formelles" + Formalisme (thories, logiques et calculs) + Rigueur (types, contraintes, invariants, traitements)
Bilan
Les "spec formelles" + Formalisme (thories, logiques et calculs) + Rigueur (types, contraintes, invariants, traitements) + Abstraction (vis vis des langages de programmation)
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 conance
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 conance
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 conance
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 conance
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 conance
- pratique dlicate (lisibilit, exprience) - lourdeur de modlisation - temps de spcication et preuve - domaine dapplication
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
Introduction
Modlisation mathmatique Abrial (Grenoble, Oxford)
Introduction
Modlisation mathmatique Abrial (Grenoble, Oxford) Annes 70
Introduction
Modlisation mathmatique Abrial (Grenoble, Oxford) Annes 70 Principes
Introduction
Modlisation mathmatique Abrial (Grenoble, Oxford) Annes 70 Principes spcication mathmatique, axiomatique de Hoare
Introduction
Modlisation mathmatique Abrial (Grenoble, Oxford) Annes 70 Principes spcication mathmatique, axiomatique de Hoare abstraction
Introduction
Modlisation mathmatique Abrial (Grenoble, Oxford) Annes 70 Principes spcication mathmatique, axiomatique de Hoare abstraction schma
Introduction
Modlisation mathmatique Abrial (Grenoble, Oxford) Annes 70 Principes spcication mathmatique, axiomatique de Hoare abstraction schma preuve de proprits
Introduction
Modlisation mathmatique Abrial (Grenoble, Oxford) Annes 70 Principes spcication mathmatique, axiomatique de Hoare abstraction schma preuve de proprits rafnement (rafnage, rication)
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
++
.
/
++
la variable est libre est une proposition est une proposition est une proposition est lie est une constante
&
&
est lie
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
'
*
'
*
'
*
* '
!
'
'
'
'
'
'
'
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
1..20
Methodes formelles p.56/153
compos 1 2 3 4 5 a1 a3 a2 a4 a5
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
. . .
. . .
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
et
Sens Notations alternatives ngation conjonction disjonction ngation quivalence quivalence logique
$
A ces oprateurs peuvent tre ajouts de nouveaux ). oprateurs tels que le ou exclusif (
Proprit Commutativit
.
Proposition
Quanticateurs : 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
.
/
Rgle dinfrence
/
-introduction -limination
o o
/ .
/ /
Proprits :
Axiomes
Nom P
P
# #
Proprit sur
sur
. . . . .
sur
sur
, . ,
# #
,
#
,
, / / /
#
,
.
/ /
. .
. /
.
/ /
. .
/
.
.
.
. /
#
, / / /
# .
Formule
, /
, / /
/ /
/
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
( ( (
Methodes formelles p.69/153
"
(global)
'
$ *
avec
/ . /
/ . /
logique
/ . /
logique
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
*
Relation :
Soient , ;
,
* .
et des ensembles ; et . ; ou ]
/ * ,
ou
1..20
ou
.
. /
Proprits
.
.
/ / .
. /
#
/ $
#
$
$
,
#
#
,
,
, /
/ /
Methodes formelles p.77/153
Fonction totale :
Injection :
Surjection :
/
Fonction totale :
Fonction (partielle) :
#
* $
Injection :
Bijection :
Surjection :
.
/
Fonction totale :
Fonction (partielle) :
#
, .
#
$
/
Injection :
Bijection :
.
Surjection :
/
Fonction nie :
Fonction totale :
Fonction (partielle) :
. /
#
* *
/
/ /
Injection :
Bijection :
.
Surjection :
/
Fonction nie :
Fonction totale :
Fonction (partielle) :
-abstraction :
* ,
/
/
* *
#
*
$ ,
/ ,
/ /
Injection :
Bijection :
.
Surjection :
Fonction nie :
-abstraction :
Fonction totale :
.
Fonction (partielle) :
, /
.
. /
' *
* *
/ ,
/ /
1..20
Methodes formelles p.79/153
#
#
#
*
*
Pas ditrateur en Z
+ ,
, ( (
.
/
!
.
.
.*
*/ /
/ /
#
#
#
Dnition :
.
,
/ , ) ( '
(
/ ,
en extension :
soit
'
) ( '
(
/ ,
en extension :
soit
'
Oprateurs :
) ( '
(
/ ,
en extension :
soit
'
Oprateurs : accs au i
lment :
(si
()'
) ( '
(
/ ,
en extension :
soit
'
(si
.
()'
) ( '
(
/ ,
en extension :
soit
'
(si
.
.
()'
) ( '
(
inversion :
'
Methodes formelles p.82/153
'
Dnition formelle :
inversion : premier :
en extension :
,
$ (
( ( $
#
.
$ (
( (
!
,
. /
(si
soit
!
()' (
!
' /
Methodes formelles p.82/153
) ( ' . ' / /
( /
'
.
Dnition formelle :
) ( ' (
,
en extension :
!
$ (
( ( $
, '
#
.
$ (
( (
. ! ,
,
' / / ,
. /
(si
.
soit
!
()' (
!
' /
Methodes formelles p.82/153
) ( ' . ' / /
( /
!
Exemples.
. $ $ '
$ !
$ $ $
$ $
$ $
/ .
$ $
/ $
'
, /
/
# #
.
compactage
Oprateurs (suite)
,
/ ,
.
concatnation distribue
( ' ) (
.
, ltrage , extraction :
: :
, ltrage , extraction :
, partition
$ %
&
, &
&
/
/
Exemples.
' $
$ $
$
$ $ $
' $
$ $
$
$
$ $
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
!
"
!
"
#
$ ,
est quivalent
*
Methodes formelles p.89/153
) ou de prdicat
.
&
dun type
*
'
"
'
"
!
'
"
'
"
est quivalent :
'
"
!
" '
!
" '
!
'
"
!
"
'
$(
$(
Renommage
$ ( ( ( $
Renommage
$ ( ( ( $
Oprateurs logiques (
):
$
Renommage
$ ( ( ( $
):
$
Renommage
$ ( ( ( $
):
$
Renommage
$ ( ( ( $
):
$
Prcondition :
Renommage
$ ( ( ( $
):
$
Prcondition : Surcharge :
Renommage
$ ( ( ( $
):
$
(application squentielle)
Renommage
$ ( ( ( $
):
$
Composition :
(application squentielle)
Renommage
$ ( ( ( $
):
$
Composition :
(application squentielle)
En rsum
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
Dmarche de spcication en Z
Description informelle
Analyse prliminaire
Modles Entit/Association
Spcification formelle
Spcification Z preuves validation
Conception abstraite
Spcification Z raffine
Prototype
Ralisation
optimisations
Logiciel
Dmarche de spcication en Z
Programmation structure Spcication squentielle en Z
= +
=
tat
+
oprations
Schmas utiliss
Schma dtat
'
"
'
"
Schmas utiliss
Variantes pour ltat initial et les prconditions.
'
"
Exemples
Hpital Spcication de ltat Spcication des oprations Obligations de preuve (tat initial, prconditions) Rafnage ++ voir [AV01b], chapitre 3 Facturation Spcication de ltat Spcication des oprations Obligations de preuve (tat initial, prconditions) ++ voir [AV01b], chapitre 4
$ % & "
# !
( ' ) ( ! * + , & /
. +
& /
Etat initial
* .
&
$ %
( ( ' . /
$% # & ( . ( / ( ( *
!
+ , &
. $ % ' & ' ! + , & * #
*
[
( ( '
& / .
& / /
+ , & ,
!
+ /
, &
& / /
" +
& / / .
] ]
[ -limination]
[ -limination]
+
!
( ( ' ! , /
#
. +
!
"
!
, '
!
, . # . ( !
Application lopration
( ' )
,
, /
. +
! ( (
. $ % #
& ( ' )
*
!
# .
( ' ) ! ,
+ , & ,
. !
. / + / &
" . + . / / /
La dmonstration se fait en remplaant les schmas par leurs dclarations et leurs prdicats.
/ . . /
. ( ! # +
( ' )
/
+ , & *
,
/ & / / / .
/
. +
Puis en substituant progressivement les variables dcores par par des valeurs non dcores par et les sorties par leur valeur.
. .
Par distributivit de
sur
/ . / .
/ "
# ( ' ) (
+ . !
!
/
,
, &
/ & / / / .
le schma se simplie en
/
. +
. .
Par dnition de
/ . / .
# ( ' ) (
, nous avons
+ . !
' / *
+ , &
, / . & / /
/
/
. +
# $ %
. # !
( ' )
'
,
/ . /
+
' *
' /
. . /
+
! + , &
/
/ & / / .
Par application de sur chaque membre de lgalit, et par commutativit de , nous obtenons
Methodes formelles p.122/153
. ( ! !
. ( ()' &
# $ %
. # !
( ' )
"
,
/ . /
+
' /
* + , &
. . / +
/
/ & / / .
Methodes formelles p.123/153
, '
( ' )
(
(
lemme 2 Un prdicat li un intervalle peut tre dcoup en une conjonction du prdicat sur des sous-intervalles :
.
/ / .
'
'
+ ! , ! # . ()'
+ ! , ! # .
()'
!
( (
' ! , /
( ' )
'
'
"
()' (
$
'
tte
queue MAX
queue MAX
Retrait
premier
tte
queue
# !
$ % ' (
& '
( ( "
+
*
, &
"
/
. +
/ . & /
. + & / .
idem pour les oprations La suite de rafnage tablit limplantation (prouve) nale. Preuves et dtails : voir [AV01b], chapitre 3, section 7
'
Elaboration du MCD
Elaboration du MCT
Schma E-A-P
correction s
MCT
Traduction en Z
Implantation
preuves et raffinement
Implantation
Tests Vrifications
Methodes formelles p.135/153
Patient
'
+ '
#
(
(
'
+ '
#
(
(
'
+ '
#
(
(
identiant du TE
Traduction dun TA en Z
Identiant => inclusion des extensions de TE
Traduction dun TA en Z
Identiant => inclusion des extensions de TE Porteur dinformations => reprsentation similaire au TE pour le TA
Traduction dun TA en Z
Identiant => inclusion des extensions de TE Porteur dinformations => reprsentation similaire au TE pour le TA une seule proprit : pas de TA explicite
Traduction dun TA en Z
Identiant => inclusion des extensions de TE Porteur dinformations => reprsentation similaire au TE pour le TA une seule proprit : pas de TA explicite plusieurs proprits
Traduction dun TA en Z
Identiant => inclusion des extensions de TE Porteur dinformations => reprsentation similaire au TE pour le TA une seule proprit : pas de TA explicite plusieurs proprits Arit
Traduction dun TA en Z
Identiant => 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
Traduction dun TA en Z
Identiant => 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
Traduction dun TA en Z
Identiant => 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, simplications possibles pour les TA binaires
Traduction dun TA en Z
Identiant => 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, simplications possibles pour les TA binaires Association dassociation => personnaliser dabord puis cas normal
Methodes formelles p.139/153
EntitB
m,n AB o,p
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
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
EntitB
m,n AB v:T o,p
idB : TypeIdB
...
.
/
Suppression des schmas types gnralisation du cas prcdent plusieurs variables viter : conserver la structure
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.
Les types
.
/
et
Methodes formelles p.150/153
sont inchangs.
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. Spcication dfensive ou offensive 3. Promotion 4. Orientation objet
References
and Alain Vailly. [AV01a] Pascal Andre Conception de ` Systemes dInformation, Panorama des methodes et des techniques, volume 1 of Collection Technosup. Editions Ellipses, 2001. ISBN 2-7298-0479-X. and Alain Vailly. Specication [AV01b] Pascal Andre 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. Morejon and Jean-Rene Rames. Conduite de [MR93] Jose projets informatiques. InterEditions, 1993. Principes et techniques sappuyant sur la methode MERISE, ISBN 2-7296-0457-X. [Vil95] Franc oise duite de Villeneuve. projet. Con1995.
CNRS,
http://dsi-val.dsi.cnrs.fr/bureau qual
153-1