Vous êtes sur la page 1sur 417

Mthodes formelles

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

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. 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.

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 spcications 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, vrication 5. Qualit

Methodes formelles p.5/153

Introduction
De lide au code exprimer programmer vrier

Methodes formelles p.6/153

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

Methodes formelles p.6/153

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

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

PROCESSUS GESTION DE PROJET

et qualit modles (correct, able, volutif...) processus (efcace, rentable...)

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 rexion

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" 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

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 dnir les acteurs

Methodes formelles p.8/153

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

Methodes formelles p.8/153

Le dveloppement en groupe
tablir les tches et les rsultats dnir 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 dnir 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 dnir 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 dnir 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 : nancier, 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. modier le dveloppement

Methodes formelles p.9/153

Le dveloppement pour un client


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

Methodes formelles p.9/153

Le dveloppement pour un client


1. ajouter une dimension cot 2. ajouter de nouvelles tapes 3. modier 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. modier 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 : nancier, 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 dnition

Methodes formelles p.11/153

Une rponse : le Gnie logiciel


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

Methodes formelles p.11/153

Une rponse : le Gnie logiciel


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

Methodes formelles p.11/153

Une rponse : le Gnie logiciel


objectifs dnition 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 dnition 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 dnition large spectre : des langages de programmation la gestion dorganisations soumis lvolution des technologies et des mtiers Atelier GL indispensable dition vrication gnration automatique documentation rutilisation personnalisation
Methodes formelles p.11/153

Evolution du Gnie logiciel


1945 Langage machine symbolisme 1950 algorithmique 1955 Assembleur traitement des listes traitement des donnes Lisp Cobol systmes d'information SGBD mcanisme d'infrence

Fortran maintenance programmation structure Algo

1960

1965 rutilisation abstraction types abstraits modularit gnricit approche descendante Pascal objet Smalltalk smantique 1980 ADA Langages de conception Langages de spcification

1970

SGBD relationnels smantique EntitAssociations Prolog

1975

1985

Bases de connaissances

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 = aspects techniques mthode de dveloppement Merise

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


Projet dinformatisation = aspects techniques aspects organisationnels mthode de dveloppement

Methodes formelles p.13/153

Gnie logiciel - Projet informatique


Projet dinformatisation = aspects techniques mthode de dveloppement

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.

Methodes formelles p.13/153

Gnie logiciel - Projet informatique


Projet dinformatisation = aspects techniques aspects organisationnels

mthode de dveloppement gestion de 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].

Methodes formelles p.13/153

Gnie logiciel - Projet informatique


Projet dinformatisation = aspects techniques mthode de dveloppement

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

Methodes formelles p.13/153

Gnie logiciel - Projet informatique


Projet dinformatisation = aspects techniques mthode de dveloppement

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

Methodes formelles p.13/153

Gnie logiciel - Projet informatique


Projet dinformatisation = aspects techniques aspects organisationnels domaine complexe

mthode de dveloppement gestion de projet

Methodes formelles p.13/153

Gnie logiciel - Projet informatique


Projet dinformatisation = aspects techniques aspects organisationnels mthode de dveloppement 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, abilit...) 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 scientique 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 scientique SI, CS algorithmes complexes bases dinformation plus ou moins importantes qualit : efcacit 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 scientique 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 scientique SI, CS il y en a dautres diffrents besoins 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, vrication 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)


Les lments dun systme peuvent se classer selon trois aspects majeurs : 1. Structure, donnes Point de vue statique

Methodes formelles p.18/153

Mthode de dveloppement (Modles)


Les lments dun systme peuvent se classer selon trois aspects majeurs : 1. Structure, donnes informations structure contraintes rpartition Point de vue statique

Methodes formelles p.18/153

Mthode de dveloppement (Modles)


Les lments dun systme peuvent se classer selon trois aspects majeurs : 1. Structure, donnes Point de vue statique Point de vue dynamique

2. Evolution dans le temps

Methodes formelles p.18/153

Mthode de dveloppement (Modles)


Les lments dun systme peuvent se classer selon trois aspects majeurs : 1. Structure, donnes 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)


Les lments dun systme peuvent se classer selon trois aspects majeurs : 1. Structure, donnes 3. Traitements

Point de vue statique Point de vue dynamique

2. Evolution dans le temps

Point de vue fonctionnel

Methodes formelles p.18/153

Mthode de dveloppement (Modles)


Les lments dun systme peuvent se classer selon trois aspects majeurs : 1. Structure, donnes

Point de vue statique Point de vue dynamique

2. Evolution dans le temps

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

Methodes formelles p.18/153

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,

Methodes formelles p.19/153

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

Methodes formelles p.19/153

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

Methodes formelles p.19/153

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

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

Methodes formelles p.20/153

Mthode de dveloppement (Processus)


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

Methodes formelles p.20/153

Processus : le cycle de rfrence


Etude des besoins modle utilisateur Spcification du systme vrification Validation Finition Exploitation Maintenance

modle architectural

Conception du systme

Intgration et tests

Conception modulaire modle dimplantation

Tests unitaires

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 Vrication : cest contrler que le produit respecte le cahier des charges. La vrication est donc plus une affaire de spcialistes.

Methodes formelles p.23/153

Mthode de dveloppement (Processus)


Ne pas oublier Vrication : cest contrler que le produit respecte le cahier des charges. La vrication 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 Vrication : cest contrler que le produit respecte le cahier des charges. La vrication 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, vrication 5. Qualit

Methodes formelles p.24/153

Qualit
Qualit des spcications

Methodes formelles p.25/153

Qualit
Qualit des spcications viter le bruit le silence la sur-spcication la contradiction lambiguit la rfrence avant le vu pieu

Methodes formelles p.25/153

Qualit
Qualit des spcications Qualit du logiciel

Methodes formelles p.25/153

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

Methodes formelles p.25/153

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

Methodes formelles p.25/153

Qualit
Qualit des spcications Qualit du logiciel Qualit du processus

Methodes formelles p.25/153

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

Methodes formelles p.25/153

Qualit
Qualit des spcications Qualit du logiciel Qualit du processus Plus de dtails [AV01a]

Methodes formelles p.25/153

Qualit
Qualit des spcications Qualit du logiciel Qualit du processus Plus de dtails Amliorer la qualit : [AV01a]

Methodes formelles p.25/153

Qualit
Qualit des spcications Qualit du logiciel Qualit du processus Plus de dtails Amliorer la qualit : rigueur structuration modulaire [AV01a]

Methodes formelles p.25/153

Qualit
Qualit des spcications Qualit du logiciel Qualit du processus Plus de dtails Amliorer la qualit : rigueur mthodes formelles mthodes objets

[AV01a]

structuration modulaire

Methodes formelles p.25/153

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

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 X 0,1 urgence num_ordre_u T 0,n 0,n SalleAttente no_s nom_s localisation_s nb_places_s

+ 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 Urgence Refus

Patient cr

Admission normale (a)

Admission urgente (b)

Admission refuse

Methodes formelles p.30/153

Modlisation avec Merise (MCT)


Admission normale (a) Admission urgente (b)

b prioritaire sur a Soin soins prodigus au patient

+ explications

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 vrier ?

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 vrier ? 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 vrier ? 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 vrier ?

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 vrier ? 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 vrier ? 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)


Dnitions de types, dclarations globales

Dnitions de ltat du systme (schma)


            *                 "   

 !

. +  !    , &    +         

 ()'

$%

&

 
Methodes formelles p.35/153

&

      +

       

                                                     


 ! 

 

     


 ( (  '  !    ,          #

 



Dnitions des oprations de modication (schma)

Modlisation avec Z (Traitements)

. /

Methodes formelles p.36/153

   ! #   ( (                     / 

. 

  




     

   

'  !     , 

 

 

 , 


. + 

 

Dnitions des prconditions des oprations (schma)

Modlisation avec Z (Traitements)

Methodes formelles p.37/153

Modlisation avec Z (Traitements)


Dnitions des oprations de consultation (schma)
            



 !

 

Combien de patients en attente ?

 



 

Methodes formelles p.38/153

        ! 

 

  " 

                

        

patient consulter

 *

 

   

 

   

Modlisation avec Z (Traitements)

, '

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 rafnement 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 (Rafnement)


De la spcication au code... Deux types de rafnement sont distingus en Z : Le rafnement des oprations. Les structures de contrle du langage de programmation cible sont introduites progressivement e.g. squence, conditionnelles, itrations pour la programmation imprative. Le rafnement 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 (Rafnement *

& /

Methodes formelles p.43/153

           

  




 

 

  

 

 


 ( (  '  #


'   #

( (   

'

, 





 

   

 /


 +

 / 

. +

Methodes formelles p.43/153

   

Modlisation avec Z (Rafnement * * )

    


     

        

 


   



 

 

'

Modlisation avec Z (Rafnement * * * )

Methodes formelles p.43/153

 

 

 

   


     


   

"

 

   





 




 

  

 

 . /

 

 

Modlisation avec Z (Rafnement * * * * )

Methodes formelles p.43/153

Modlisation avec Z (Rafnement * * * * *


     

   



 

  



 

Preuves du rafnement 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 conance

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 conance

- 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 conance

- 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 conance

- pratique dlicate (lisibilit, exprience) - lourdeur de modlisation - temps de spcication 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 conance

- pratique dlicate (lisibilit, exprience) - lourdeur de modlisation - temps de spcication et preuve - domaine dapplication

Methodes formelles p.45/153

Pour aller plus loin


Les systmes formels Dnitions, utilisation des spcications formelles Intrts et limites Classication [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 spcication mathmatique, axiomatique de Hoare

Methodes formelles p.49/153

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

Methodes formelles p.49/153

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

Methodes formelles p.49/153

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

Methodes formelles p.49/153

Introduction
Modlisation mathmatique Abrial (Grenoble, Oxford) Annes 70 Principes spcication mathmatique, axiomatique de Hoare abstraction schma preuve de proprits rafnement (rafnage, rication)

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 quanticateur : 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 Logique des prdicats
.
/

++
.
/

++

la variable est libre est une proposition est une proposition est une proposition est lie est une constante



 



 & 

 

 & 

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 caractres & ? chiffres 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 (indnis)

Methodes formelles p.53/153

Description informelle (types, ensembles)


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

Methodes formelles p.53/153

Description informelle (types, ensembles)


Ensemble : collection dlments Types : ensembles disjoints dlments Diffrents types vide (polymorphe) de base (indnis) de prdnis ( ) 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 (indnis) de prdnis ( ) 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 (indnis) de prdnis ( ) 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 (indnis) de prdnis ( ) 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 (indnis) de prdnis ( ) 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 Gilles Benoit Luc Claude Marie Sophie notes dom notes Rgis ETUDIANT 12 9 5 11 10 7 ran notes 17 8

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 1 2 3 4 5 c1 c2 c3 c4 c5 fct2 a1 a2 a3 a4 a5

compos 1 2 3 4 5 a1 a3 a2 a4 a5

Methodes formelles p.58/153

escription informelle (multi-ens, squences


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

Methodes formelles p.59/153

escription informelle (multi-ens, squences


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

Methodes formelles p.59/153

escription 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

escription 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

escription 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

escription 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

escription 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 spcique)
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

Description formelle (propositions)


Constantes : et

Methodes formelles p.63/153

Description formelle (propositions)


Constantes : Oprateurs : Oprateur

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 (



Methodes formelles p.63/153

Description formelle (propositions)


Proprits : Axiomes

Methodes formelles p.64/153

Description formelle (propositions)


Proprits : Axiomes Thormes Nom P P P P P

Proprit Commutativit
.

Proposition

Lois DE MORGAN (formes normales) Forme normale

Methodes formelles p.64/153

Description formelle (propositions)


Proprits : Axiomes Thormes Preuve 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

Description formelle (prdicats)


Constantes : et

Methodes formelles p.65/153

Description formelle (prdicats)


Constantes : et

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
.
/

Methodes formelles p.65/153

Description formelle (prdicats)


Interprtation : Domaine : dni ou pas (cf types)

Methodes formelles p.66/153

Description formelle (prdicats)


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

Methodes formelles p.66/153

Description formelle (prdicats)


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

Rgle dinfrence
/

-introduction -limination

o o

est un terme arbitraire est un terme arbitraire

/  .

/ /

Rgles de dduction du calcul des prdicats


Methodes formelles p.66/153

Description formelle (prdicats)


Proprits : Axiomes

Methodes formelles p.67/153

Proprits :

Axiomes

Nom P

P
# #

Proprit sur

sur


. . . . .

sur

sur

, . ,

# #
,

#
,

, / / /

#
,

.
/ /

. .

. /

.
/ /

. .
/

.
.

.

. /

#
, / / /

# .

Formule

Thormes : exemple de la distribution

, /

, / /

/ /

Description formelle (prdicats)

/
Methodes formelles p.67/153

/ /

/ /

Description formelle (prdicats)


Proprits : Axiomes Thormes : exemple de la distribution Preuve propositions

Methodes formelles p.67/153

Description formelle (prdicats)


Proprits : Axiomes Thormes : exemple de la distribution Preuve 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

Description formelle (types, ensembles)


Toutes les variables sont types en Z. dclaration libre dclaration contrainte

 ( ( (
Methodes formelles p.69/153

porte de la dclaration (global, schma, liaison)

"

Description formelle (types, ensembles)


Toutes les variables sont types en Z. Diffrents types vide , de base de prdnis ( ) libres dclars extension comprhension rcursif

(global)

 

'

$ *

 




   

Methodes formelles p.69/153

Description formelle (types, ensembles)


Oprateurs

Methodes formelles p.70/153

Description formelle (types, ensembles)


Oprateurs lments :

Methodes formelles p.70/153

Description formelle (types, ensembles)


Oprateurs lments : lments/ensemble :

Methodes formelles p.70/153

Description formelle (types, ensembles)


Oprateurs lments : lments/ensemble : ensembles :

avec

Methodes formelles p.70/153

Description formelle (types, ensembles)


Proprits appartient vide extension prdicat motif

/ . /

Methodes formelles p.71/153

Description formelle (types, ensembles)


Proprits appartient vide extension prdicat motif Preuve

/ . /

logique

Methodes formelles p.71/153

Description formelle (types, ensembles)


Proprits appartient vide extension prdicat motif Preuve

/ . /

logique

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

Methodes formelles p.71/153

Description formelle (boolens)


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

Methodes formelles p.72/153

Description formelle (boolens)


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

Methodes formelles p.72/153

Description formelle (boolens)


Pas de type prdni, aucun lien avec les constantes de la logique ! 2 solutions : Type libre
*

   

Methodes formelles p.72/153

Description formelle (boolens)


Pas de type prdni, 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 prdni, 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 prdni, 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 prdni, 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 prdni, 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


* 

Relation :

Soient , ;




 

 ,

* .

et des ensembles ; et . ; ou ]

Description formelle (relations)

/  * ,

ou

Methodes formelles p.74/153

Description formelle (relations)


Exemple
Pierre Michel Sandrine Gilles Benoit Luc Claude Marie Sophie notes dom notes Rgis ETUDIANT 12 9 5 11 10 7 ran notes 17 8

1..20

Methodes formelles p.75/153

Description formelle (relations)


Dnitions axiomatiques, gnriques

Methodes formelles p.76/153

   

    

ou



 



  

 

   .


  . /

Proprits







.

 

. 

 / / .

. /

#
/ $

#
$

 $

  , 

#
 

#
, 

 ,

, /

 


 

/ /
Methodes formelles p.77/153

Description formelle (relations)

Description formelle (fonctions)


Fonction (partielle) :

Methodes formelles p.78/153

Description formelle (fonctions)


Fonction (partielle) :

Fonction totale :

Methodes formelles p.78/153

Description formelle (fonctions)


Fonction (partielle) :

Fonction totale : Injection :


.
/

Methodes formelles p.78/153

Injection :

Description formelle (fonctions)

Surjection :
/

Fonction totale :


Fonction (partielle) :

#


* $


 

Methodes formelles p.78/153

Injection :

Description formelle (fonctions)

Bijection :

Surjection :
.
/

Fonction totale :

Fonction (partielle) :

#


, .

#
$


 / 

Methodes formelles p.78/153

Injection :

Bijection :
.

Surjection :
/

Description formelle (fonctions)




Fonction nie :

Fonction totale :

Fonction (partielle) :

. / 

#
 

* *


 /

/ /

Methodes formelles p.78/153

Injection :

Bijection :
.

Surjection :
/

Fonction nie :

Fonction totale :


Fonction (partielle) :

Description formelle (fonctions)

-abstraction :

* ,

/  

 /

 

* *

#
*

$ ,


 /  ,

/ /

Methodes formelles p.78/153

Injection :

Bijection :
.

Surjection :

Fonction nie :


-abstraction :

Fonction totale :

 .

Fonction (partielle) :

 

,  /

. 

. /

 

Exemple fonction successeur :

 ' *

* *


 /  ,

Description formelle (fonctions)

/ /

Methodes formelles p.78/153

Description formelle (fonctions)


Exemple : Calculer la moyenne des tudiants.
Pierre Michel Sandrine Gilles Benoit Luc Claude Marie Sophie notes dom notes Rgis ETUDIANT 12 9 5 11 10 7 ran notes 17 8

1..20
Methodes formelles p.79/153

 #

 

  

 # 

 # 

 


 

 

  *

   *

Pas ditrateur en Z

+ ,

 

  





   , ( (

 . 


/ 

 

   

 ! 

fonction annexe rcursive

   .  

Description formelle (fonctions)


.

Methodes formelles p.80/153

 .*

*/ /

/ /

 #

#
#  

Dnition :

 .

 ,

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

Description formelle (multi-ensembles)

Methodes formelles p.81/153

Description formelle (squences)


Dnition

Methodes formelles p.82/153

Description formelle (squences)


Dnition formelle :

/ , ) ( '



( 

Methodes formelles p.82/153

Description formelle (squences)


Dnition formelle :

/ ,

en extension :

soit

'

) ( '



( 

Methodes formelles p.82/153

Description formelle (squences)


Dnition formelle :

/ ,

en extension :

soit

'

Oprateurs :

) ( '



( 

Methodes formelles p.82/153

Description formelle (squences)


Dnition formelle :

/ ,

en extension :

soit

'

Oprateurs : accs au i

lment :

(si

()'

) ( '



( 

Methodes formelles p.82/153

Description formelle (squences)


Dnition formelle :

/ ,

en extension :

soit

'

Oprateurs : accs au i lment : concatnation :


(si
.



()'

) ( '



( 

Methodes formelles p.82/153

Description formelle (squences)


Dnition formelle :

/ ,

en extension :

soit

'

Oprateurs : accs au i lment : concatnation :


(si
.

 .



()'

) ( '



( 

inversion :

'
Methodes formelles p.82/153




'

Dnition formelle :

Oprateurs : accs au i lment : concatnation :




Description formelle (squences)

inversion : premier :


en extension :

  ,  

$ (

( ( $ 

 #

 .   

$ (

  ( ( 

 !

 , 

 . /

(si


soit

 ! 

()' (

 !

 ' /
Methodes formelles p.82/153

) ( ' . ' / /

(  /




'

 .

Dnition formelle :

inversion : premier : suite :




 ) ( ' ( 

   ,  

en extension :

! 

$ (

( ( $ 

, '  

 #   

  . 

$ (

  ( ( 

Oprateurs : accs au i lment : concatnation :


*

 . ! ,

 , 

' / /  ,

 . /

(si
  .

soit

 ! 

()' (

 !

 ' /
Methodes formelles p.82/153

) ( ' . ' / /

(  /

Description formelle (squences)

   !

  

Exemples.


. $ $ '

$  ! 

$ $ $

 $ $

$ $

/ .

$ $

/ $

'

Description formelle (squences)

Methodes formelles p.83/153

Description formelle (squences)


Oprateurs (suite) concatnation distribue







, /



 /





Methodes formelles p.84/153

 # # 

. 

 

  

compactage

Oprateurs (suite)

, 



 

/ ,

.  

concatnation distribue

 



 

 

 ( ' ) ( 

. 

, ltrage , extraction :

Description formelle (squences)

Methodes formelles p.84/153

Description formelle (squences)


Oprateurs (suite) concatnation distribue compactage disjonction Soit

: :

, ltrage , extraction :

, partition

un ensemble dindices (sous-ensemble dentiers).


$ .

$  %

&

, &

&

/ 

/ 

Methodes formelles p.84/153

 

Exemples.

'  $

$ $

 $

$ $ $

 

' $

$ $

$ 

$ 

 $  $

Description formelle (squences)

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

  

 

  


  

 


 

    


 

 



  

les types sont dnis


 

Pas de dclarations circulaires

Description formelle (schmas)

Methodes formelles p.88/153

#
$     ,

      

est quivalent
*

Un schma sert de dclaration ( ) (

  

  

Description formelle (schmas)


Methodes formelles p.89/153

) ou de prdicat

Description formelle (schmas)


Un schma dcrit un type de donnes
  

 

 .

 &

dont les instances sont des liaisons schma


 *

  

dun type
*

  

 



Methodes formelles p.90/153

Description formelle (schmas)


Calcul de schmas Soit
 

  



'

"

Methodes formelles p.91/153

   

  

         

' 


"

 

 

Calcul de schmas : inclusion

 

 !

 

 


  '



"

 '

 





 


"

 

Description formelle (schmas)

 

Methodes formelles p.92/153

Description formelle (schmas)


Calcul de schmas : dcoration Une dcoration est un sufxage de variables par une marque de ponctuation (, , ?, !).

Par exemple, le schma


  

est quivalent :

 



'

"

Methodes formelles p.93/153

  !

 

  

 

  " '

  



      

 !

 

" '

Calcul de schmas : variation

Description formelle (schmas)

Methodes formelles p.94/153

 

 !

 

  

  '

   

 " 


  

   

  

  


 !

 

"

 '

 

Calcul de schmas : variation

Description formelle (schmas)

Methodes formelles p.95/153

Description formelle (schmas)


Calcul de schmas : autres soient S et T des schmas. Oprateurs sur les dclarations Projection dclarations : Ajout dclarations : Masquage : Projection :

$(

$(

Oprateurs sur les prdicats Projection prdicat : Ajout prdicat :


*

Methodes formelles p.96/153

Description formelle (schmas)


Calcul de schmas : autres (suite)

Renommage

 

 $ ( ( ( $

Methodes formelles p.97/153

Description formelle (schmas)


Calcul de schmas : autres (suite)

Renommage

 

 $ ( ( ( $

Oprateurs logiques (

):

$ 

Methodes formelles p.97/153

Description formelle (schmas)


Calcul de schmas : autres (suite)

Renommage

 

 $ ( ( ( $

Oprateurs logiques ( fusion des dclarations


$

):

$ 

Methodes formelles p.97/153

Description formelle (schmas)


Calcul de schmas : autres (suite)

Renommage

 

 $ ( ( ( $

Oprateurs logiques ( fusion des dclarations opration logique des prdicats


$ $

):

$ 

Methodes formelles p.97/153

Description formelle (schmas)


Calcul de schmas : autres (suite)

Renommage

 

 $ ( ( ( $

Oprateurs logiques ( fusion des dclarations opration logique des prdicats


$ $

):

$ 

Prcondition :

Methodes formelles p.97/153

Description formelle (schmas)


Calcul de schmas : autres (suite)

Renommage

 

 $ ( ( ( $

Oprateurs logiques ( fusion des dclarations opration logique des prdicats


$ $

):

$ 

Prcondition : Surcharge :

Methodes formelles p.97/153

Description formelle (schmas)


Calcul de schmas : autres (suite)

Renommage

 

 $ ( ( ( $

Oprateurs logiques ( fusion des dclarations opration logique des prdicats


$ $

):

$ 

Prcondition : Surcharge : Composition :

(application squentielle)

Methodes formelles p.97/153

Description formelle (schmas)


Calcul de schmas : autres (suite)

Renommage

 

 $ ( ( ( $

Oprateurs logiques ( fusion des dclarations opration logique des prdicats


$ $

):

$ 

Prcondition : Surcharge : Tubage :


Composition :

(application squentielle)

(les sorties de lun entrent dans lautre)

Methodes formelles p.97/153

Description formelle (schmas)


Calcul de schmas : autres (suite)

Renommage

 

 $ ( ( ( $

Oprateurs logiques ( fusion des dclarations opration logique des prdicats


$ $

):

$ 

Prcondition : Surcharge : Tubage :


Composition :

(application squentielle)

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


Methodes formelles p.97/153

(les sorties de lun entrent dans lautre)

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 spcication Z Exemples Merise + Z

Methodes formelles p.100/153

Dmarche de spcication 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 spcication en Z
Programmation structure Spcication squentielle en Z

= +

structure de donnes procdures

=
tat

+
oprations

Methodes formelles p.102/153

La mthode de dveloppement avec Z


Une dmarche et des alternatives Schmas utiliss Organisation dune spcication 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 spcication Z Exemples Merise + Z

Methodes formelles p.106/153

Les lments dune spcication Z (1/2)


Dnitions de types de base libres (numr ou union de types) construits par les oprateurs de types Dclarations globales Constantes Variables variables globales types contraintes (dnition axiomatique) Oprateurs ou relations par dnition axiomatique et/ou gnriques relations fonctions oprations
Methodes formelles p.107/153

Les lments dune spcication 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 modiant ltat du systme. Schmas des pr-conditions des oprations. Schmas de rafnement. Preuves Obligations de preuve (tat initial, conservation de linvariant, pr-conditions). Dmontrations de proprits (thormes). Dmontrations de validit du rafnement.
Methodes formelles p.108/153

Organisation dune spcication Z


La spcication 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 rafnement.
Methodes formelles p.109/153

La mthode de dveloppement avec Z


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

Methodes formelles p.110/153

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

Methodes formelles p.111/153

$  % &        " 

#  !    

   
   

 ( ' ) (     !     * + , &         /

    

 

Cas Hpital - Etat

. +       

Methodes formelles p.112/153

& /

                                     

Etat initial

  

     ,                 

Preuve de lexistence dun tat initial.




Cas Hpital - Etat initial

Methodes formelles p.113/153

( ' ' '


    *  .

 & 

 $  %

 " "   ( ' (

 " $% & "   # .

 

 ( ( ' .  /

   


$% #  & ( . ( / ( ( * 

  !

+ , &


. $  % '  & ' ! + , &  * #

       

   * 

[
( ( '


& / .


  

& / /

+ , & ,

 ! 

+  /

, &

 

 

 

 

& / /

" +

Cas Hpital - Preuve tat initial

[par substitution de [se dduit par


"


& / / .

est lensemble vide, tautologie] [ -introduction]


Methodes formelles p.114/153

] ]

[ -limination]

[ -limination]

      +

                 

                          


 ! 

 


  

  

    

 

     

 


 ( (  '  !     ,         /

 # 



. + 

Cas Hpital - Oprations en mise--jour

Methodes formelles p.115/153

  

      

 

                 !       *              

    !       

"

  


 !          

Cas Hpital - Oprations en consultation

, '

Methodes formelles p.116/153

    !

      

      

          



      

 

   ,  . #  .  (      !        

         

Application lopration
  


          



  ( ' )

 
  

 

,  


    

Prservation de linvariant dans les oprations.

Cas Hpital - prcondition

    ,              /

. + 

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

 !      ( .  !       !                  ()'   &   .  !     $% #

. .

 


 

Par distributivit de


 

   

sur


/  . / .


/ "

 


#   ( ' ) (

+  .   !       

! 


/   

  ,
  

, &

/     & / / / .

Cas Hpital - prcondition

le schma se simplie en


 /

. + 

Methodes formelles p.120/153

 !      ( .  !       ' /   "               ( ' )   &   .  !   $  % #

. .

 


 

Par dnition de


 

      


/  . / .


#   ( ' ) (

, nous avons

+  .   !        

' / *


+   , &

Cas Hpital - prcondition

   ,  /  .  & /   /
  /


 /

. + 

Methodes formelles p.121/153

  . (    !      !   . "       (           ( ' )    &      

# $  %

. #  !

 

 ( ' )

  

     

'

  ,    

/ . /

 +

' *

' /

  .   .     /

 + 

  !  +  , &    

/ 


/ & / / .

Cas Hpital - prcondition

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


Methodes formelles p.122/153

  . (    !      !
   .        (           ()'    &    

# $  %

. #  !

 

Par dnition de schma en

 ( ' )

  

"

  ,    

/ . /

 

 +


' / 

* + , &

  .   .     /  +  

/ 


/ & / / .

Cas Hpital - prcondition

et application de P , nous simplions 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 simplie dans le schma de prcondition.

  



 





 

+  !        ,         ! # .  ()'      

Methodes formelles p.125/153

Cas Hpital - prcondition


Ce dernier point se simplie 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

 

 !    


    

    

 


 

 




 

      

  ( (  

'  !    ,         /

Exercice : vrier que la prcondition est vraie.


 . 

Cas Hpital - Robustesse

Methodes formelles p.127/153

Cas Hpital - Rafnage


Deux types de rafnage sont distingus en Z : Le rafnage des oprations. Les structures de contrle du langage de programmation cible sont introduites progressivement, e.g. squences, conditionnelles, itrations pour la programmation imprative. Le rafnage 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 - Rafnage de donnes


La le est implante par un tableau avec des pointeurs. En Z, un tableau se reprsente par une squence (!!).

Dclaration Lecture Affectation

   

  

( ' )

 

 

'

 

'

"

 

   ()'  (

 $

 

'

Methodes formelles p.129/153

Cas Hpital - Rafnage


un pointeur 1 MAX 1 deux pointeurs MAX

premier 1 MAX Ajout 1

tte

queue MAX

dcalage premier tte MAX


queue MAX

Retrait

premier

tte

queue

Methodes formelles p.130/153

 # ! 

$  %    ' (

& '

 

      (      ! "     *

 $  %  &     + , &        !

           

( (  " 

 

  +

 * 

      

, &

 "

   

    

 /

. +

    

 / . & /

. +       & / .

Cas Hpital - Rafnage

Methodes formelles p.131/153

Cas Hpital - Rafnage


     

   



 

  



 

idem pour les oprations La suite de rafnage tablit limplantation (prouve) nale. 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 spcication Z Exemples Merise + Z

Methodes formelles p.133/153

Retour sur la dmarche de spcication 1/2


Spcification informelle

Elaboration du MCD

Elaboration du MCT

Schma E-A-P

correction s

MCT

Traduction en Z

Validation croise Spcification

Methodes formelles p.134/153

Retour sur la dmarche de spcication 2/2


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

Implantation

preuves et raffinement

Implantation

Application (ex: Pascal, Caml, SGBDR)

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


Un TE = un schma Z
     ' 

Patient
 

no_SecSoc_p nom_p prnom_p adresse_p





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 identiant - TE


Methodes formelles p.137/153

  




      

    

 

    

 

    

Traduction dun type dentit en Z

Methodes formelles p.138/153

  




     

    

 

    

 

identiant du TE

 

    

Traduction dun type dentit en Z

Methodes formelles p.138/153

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

Methodes formelles p.139/153

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

Methodes formelles p.139/153

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

Methodes formelles p.139/153

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

Methodes formelles p.139/153

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

Methodes formelles p.139/153

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

Methodes formelles p.139/153

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

Methodes formelles p.139/153

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

Methodes formelles p.139/153

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

raduction dun TA binaire non porteur en


EntitA idA : TypeIdA
...

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
                          


       

 

raduction dun TA binaire (cardinalits) 1/

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
                          


       

 

raduction dun TA binaire (cardinalits) 2/

Methodes formelles p.142/153

Traduction dun TA binaire porteur en Z


EntitA idA : TypeIdA
...

EntitB
m,n AB v:T o,p

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

       

    

Les types



   

 .

     


      

   








  

    

     



   


 

  

    / 

et

 

 








 


Methodes formelles p.150/153

sont inchangs.

Traduction E-A-P en Z (optimisations)

La reprsentation est condense (plus apprhendable) mais on a perdu la structure de dpart.

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. Spcication dfensive ou offensive 3. Promotion 4. Orientation objet

Methodes formelles p.153/153

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

Vous aimerez peut-être aussi