Title: A1263195931MyGgY
1(No Transcript)
2Bonjour !
Henri Habrias Professeur à luniversité de
Nantes Nantes ! Le centre du monde ! En poste Ã
lIUT Responsable du DESS Génie logiciel,
économie, droit et normes Enseignant en DEA et
Formation doctorale
3Je viens du centre du monde !
" Le constat est vieux d'un siècle, mais il a
curieusement été passé sous silence. Si l'on
représente le globe selon une projection polaire
en tenant compte, non pas du pôle Nord, mais de
la surface des terres émergées, Nantes apparaît
au centre du monde." Ce constat a été fait par
August Penck à la fin du XIXe siècle. (voir
Sciences Vie, Hors série, n 203, juin 1998,
Dossier France, p. 10)
4Bibliographie
Jai écrit pour vous des livres Henri Habrias,
Le modèle relationnel binaire, méthode I.A.
(NIAM), Paris, Eyrolles, 1988, ISBN
2-12-08169 Henri Habrias, Introduction à la
spécification, préface de Hervé Gallaire,
présentation par Michael Jackson, Masson, 1993,
ISBN 2-225-82768-0 Henri Habrias, La mesure
du logiciel, 2ième édition, corrigée et
augmentée, Teknea, 1994, ISBN 2-87717-045-4
5Bibliographie
David Lightfoot, La spécification formelle avec
Z, traduit par H. Habrias, Teknea, 1994, ISBN
2-87717-038-1 Henri Habrias, Dictionnaire
encyclopédique du génie logiciel, Préface de
Jean-Pierre Finance, Masson, 1997, ISBN
2-225-85328-2 Henri Habrias, Les paradigmes des
méthodes danalyse et de conception in Génie
logiciel principes, méthodes et techniques A.
Strohmeier, D. Buchs (Publié sous la direction
de), 1996, Presses Polytechniques et
universitaires romandes, ISBN2-88074-296-X
6RDV sur la toile
M. Frappier, H. Habrias - Software Specification
Methods, An Overview Using a Case Study, FACIT,
Springer, 2000, ISBN 1-85233-353-7, Site web
associé Henri Habrias, Spécification formelle
avec B , Hermes/Lavoisier, octobre 2001, ISBN
2-7462-0302-2, 416 pages
RDV sur mon site web http//www.iut-nantes.univ-
nantes.fr/habrias/portailHabrias
7Notre but
Vous fournir des éléments pour aller, au-delà des
mots souvent franglais, aux concepts essentiels
cachés derrière les  nouveautés de
linformatique On parlera de mathématiques
élémentaires, de variables, constantes, de
substitution, de prédicat, dexpression, de
substitution, de machine abstraite, de
pré-condition, de garde, dinvariant, de
composant logiciel, de méta-modélisation Et dUML
8Notre parcours
On remontera à Aristote, avec les entités et les
propriétés Et on vous proposera de profiter de
linvention des ensembles et des relations On
vous proposera dabandonner la métaphysique, de
vous méfier des objets. Et on montrera ce
que lon peut prouver sur une spécification.
9Concepts de base
Pour éviter de compliquer Le complexe suffit Ã
la tâche ! Différence entre compliqué et
complexe
10Attribut, propriété, Attention !
" Des cinq approches discutées dans ce chapitre,
l'approche ER est clairement la
gagnante en termes de manque de définitions
précises, manque de niveaux clairs
d'abstraction, et manque de discipline
mentale. La popularité de ER réside
sans doute dans sa multitude
d'interprétations, aussi bien que dans son
utilisation de modes de pensée
familiers mais obsolètes.  Ted Codd,
The Relational Model for Database Management,
Version 2, Addison-Wesley, 1990, ISBN
020114192 2
11Rasoir dOccam
Ou principe d'économie Si un concept est
inutile, il faut prendre le rasoir et le couper.
 " Entia non sunt multiplicanda praeter
necessitatem" Il ne faut pas multiplier les
entités au delà du nécessaire
12Rasoir dOccam
Ce principe portant le nom du logicien anglais
nominaliste du XIV e siècle Guillaume d'Occam
(illustré dans le roman Le nom de la rose d'U.
Eco par Guillaume de Baskerville) qui a donné
aussi son nom à un langage de programmation, "
est illustré au siècle précédent par Thomas
d'Aquin, puis Duns Scot, qui l'empruntent tous
deux à un adage scolaire tiré d'Aristote
(Physique), qui prétend s'inspirer d'Empédocle
(!) Â Frustra fit per plura quod potest fieri
per pauciora. Il vaut mieux prendre des
principes moins nombreux et de nombre limité,
comme fait Empédocle.
13La phrase dAristote
L'homme est mortel. Socrate est mortel.
mortel est l'attribut de l'homme mortel est
l'attribut de Socrate Le logicien pensait
atteindre l'essence des choses à travers ces
attributs. Un jour l'un d'eux ayant entendu que
l'homme est un animal sans plume, a collé des
plumes à un homme pour montrer que la définition
n'avait pas atteint l'essence de l'homme.
14Complication
Dudule copie sur Huguette Dudule est copiant sur
Huguette  copiant sur Huguette attribut ou
propriété de Dudule
15Naissance des relations
La pensée scientifique a reconnu l'impossibilité
d'atteindre l'essence des choses et la logique
des relations est née. On ne se demande pas ce
qu'est un attribut, on a des ensembles, des
relations, un point c'est tout. Et en ce qui
concerne l'essence des choseslaissons ça
aux métaphysiciens
16Et lontologie ?
Cest la  science de lêtre en tant quêtre.Â
Cest de la métaphysique.
De nos jours, des informaticiens pensent quils
vont mettre lessence de lêtre dans les
ordinateurs !
S.V.P. Lisez Jacques Arsac
17Les 4 sens du verbe  êtreÂ
G. Frege
- Existence  Dieu estÂ
- Appartenance  Socrate est mortelÂ
- Inclusion  le Niçois est françaisÂ
- Dénotation  létoile du matin est létoile du
soir -  Etoile du matin, étoile du soir dénotent VénusÂ
G. Fre
18Prédicat dappartenance
Dudule promo
Dudule
promo
Prédicat dappartenance
19Inclusion
Un ensemble est inclus dans un autre ensemble.
1, 2, 4, 8 lt 1, 2, 3, 4, 5, 6, 7, 8, 9
Un ensemble peut appartenir à un autre ensemble
(qui est alors un ensemble densembles)
1, 2 2, , 1, 2
20Relation
Ensemble de départ
Ensemble d arrivée ou cible (target)
e
1
a
2
b
3
c
4
Codomaine ou range
d
5
domaine
Relation quelconque
21Fonction partielle
e
1
a
2
b
3
c
4
d
5
Fonction partielle
22Fonction totale
e
1
a
2
b
3
c
4
d
5
Fonction totale
23Fonction partielle
e
a
2
b
c
d
5
Fonction partielle surjective
24Totaliser les fonctions
On peut rendre une fonction totale en utilisant
la  valeur nulleÂ
Mais si on suppose quon a une valeur nulle dans
chaque Ensemble de base, toutes les fonctions
sont totales et toutes Les relations ont leur
domaine qui est égale à lensemble
de Départ. Alors que reste-t-il comme contrainte
? La contrainte de fonctionnalité, dite aussi
 unicitéÂ
25Totalisation dune fonction
e
1
a
2
b
3
c
4
d
5
nulle
Fonction partielle totalisée !
26Bijection
e
a
2
b
c
d
5
Fonction totale surjective Bijection
27Image relationnelle
e
1
a
2
b
3
c
4
d
5
R1 a, b, c 2, 4
Image relationnelle
28Restriction de domaine
r1
e
1
a
2
b
3
c
4
d
5
R1 gt 2, 5 (a, 2), (b, 2), (d, 5)
Restriction de codomaine
29Restriction de domaine
r1
e
1
a
2
b
3
c
4
d
5
a, b lt r1 (b, 2), (c, 4)
Restriction de domaine
30Antirestriction de domaine
r1
e
1
a
2
b
3
c
4
d
5
b, c ltlt r1 (a, 2), (a, 4), (d, 5)
Antirestriction de domaine
31Composition de relations
r1
r2
e
1
x
a
2
y
b
3
z
c
4
w
d
5
r1 r2 r2 o r1
32Variable, ensemble
Ne pas confondre un ensemble et une
variable Promo est une variable qui a comme
invariant dêtre un ensemble détudiants Promo lt
ETUDIANT La valeur de Promo peut changer. On
peut faire Promo Promo \/ dudule dudule,
duchnock, dutif nest pas une variable ! Un
ensemble ne peut être modifié, une variable est
modifiable.
33Alors, un attribut, cest quoi ?
Cest - soit la valeur dune fonction f(x) -
soit limage relationnelle dune relation r
x
Application de fonction
Image relationnelle
r
f
a
7
a
7
8
b
b
c
f(a) 7
R (a,b 7, 8
34Attribut
- Pour une relation vue sous forme dun tableau
(lignes et colonnes) - Attention de ne pas tout mélanger !
- nom dune colonne
- valeur dune  caseÂ
- valeur de plusieurs cases (ex valeur des
numéros produits - commandés sur une commande donnée)
35Valeur vs objet
Encore complication ! Un peu de théorie
élémentaire. Essentiel si on ne veut pas
compliquer
Différence entre prédicat et expression
36Différence entre prédicat et expression
Un prédicat se prouve. On peut prouver quil est
faux.
Nantes est sur la Loire Dudule est lamant
dHuguette 5 8 1, 2, 3 lt 1, 2, 3, 4, 5 2
1, 2, 3
Ce na pas de sens de vouloir prouver une
expression
1, 2, 3 8 Dudule Sophia-Antipolis
(1, b), (4, b), (7, c)
vrai faux
37Valeurs
On peut appeler les expressions des valeurs.
En B, on passe dun prédicat à une expression,
ainsi Bool (5 9) faux
Pourquoi distinguer valeur et objet ?
38 Vous savez pourquoi ça n'intéresse pas les gens
? Parce que ce ne sont pas des événements. Ce
sont des anecdotes! Première anecdote La main
de ma soeur. Deuxième anecdote Une
culotte. Troisième anecdote Un
zouave. Seulement, si vous prenez la
première... que vous la glissiez dans la
deuxième qui appartient au troisième... Vous
obtenez un événement sur lequel on n'a pas fini
de jaser ! R. Devos
39Un nom peut devenir valeur !
Nétudiant sexe Bac
23 masc C
45 masc B
78 fem C
93 masc C
40Attribut devenant valeur !
N étudiant Attribut Valeur
23 sexe masc
23 bac C
45 sexe masc
45 bac B
78 sexe fem
78 bac C
43 sexe fem
43 bac C
41Triplets objet, attribut, valeur
Attribut relation binaire d un ensemble
d objets vers un ensemble de valeurs
Objets
Attribut couleur
Valeurs
voiture veste vélo chapeau
bleu rouge vert jaune noir
42Triplets O-A-V
Objet
Valeur
Attribut
Objet
Sujet
Prédicat
Objet
Ressource
Propriété
43Le langage LEAP (Feldman, Rover, 1969)
A.O V fils.Jean Melle Henri Melle l assoc.
Si dans la base A.O x fils.Jean Melle x fils
de Jean Melle A.x V fils.x Henri Melle père
de Henri Melle x.O V x.Jean Melle Henri
Melle nom de la relation entre Jean Melle
et Henri Melle A.x z fils.x z tous les
couples père-fils de la base x.Z V x.z
Henri Melle Toutes les associations ayant
Henri Melle comme 3e composant x.O
z x.Jean Melle z Toutes les
associations ayant Jean Melle comme 2e
composant x.y z x.y z Toutes les assoc de
la base
44Langage et métalangage
Huguette, mange ta soupe ! Oui maman ! Huguette,
range la table ! Oui, maman ! Huguette, arrête de
dire  Oui maman ! Oui maman !
45Langage et métalangage
Cest complètement fou Le mot court est plus
long que le mot long !
Cest complètement fou  Le mot court est plus
long que le mot long !
Cest complètement fou  Le mot court est plus
long que le mot longÂ
46Objet, où es-tu ?
" Revenons à une situation décrite par Spade
jai devant moi deux stylos à bille noirs. Le
point crucial est combien de couleurs vois-je ?
Deux réponses soffrent. La première je vois
une seule couleur la noirceur (blackness) qui
est " simultanément partagée par les deux stylos
ou commune aux deux " -, une seule et même
couleur donc, bien quinhérente à deux choses
distinctes et présente en même temps en deux
endroits différents. Cette position, ce que Spade
appelle " croire aux universaux ", est le
réalisme admettre que des " entités
universelles " comme la noirceur sont partagées
par toutes les choses qui présentent une même
propriété (ici, être noires) et quà ce titre
elles leur sont communes.
472 crayons, et pourquoi pas 2 couleurs ?
A lopposé, évidemment, le nominalisme est
caractérisé comme celui qui voit deux noirceurs,
autant de noirceurs que de stylos. Deux noirceurs
qui sont " semblables ", certes, mais qu " il
suffit de regarder pour voir quelles ne sont pas
et nen restent pas moins deux noirceurs ".
Ainsi illustré, le problème des universaux est
simple y-a-t-il ou non deux couleurs dans les
stylos de P.V. Spade ? " Le réalisme et le
nominalisme sont les deux principales réponses Ã
cette question. " () " le réaliste est celui,
qui voyant la noirceur partout où il y a des
choses noires, en conclut quil y a en chacune la
même " entité universelle ". Alain de Libera in
La querelle des universaux, Seuil, 1996, p. 18-19
48Sémiologie
Stoïciens
Semainomenon ce qui est exprimé, ou contenu,
qui ne représente pas une entité physique
signifié
référent
signifiant
Tynchanon Objet auquel on se réfère, entité
physique ou événement ou action
Seimainon expression perçue comme
entité physique
49Sémiologie
Stoïciens
Idée, concept de cheval  chevalÂ
signifié
référent
signifiant
Tous les chevaux existant, ayant existé, qui
existeront
/cheval/
50Les stoïciens Platon --gt Aristote --gt
Théophraste --gt les Mégarites et les Stoïciens
51Sémiologie
Existant, ayant existé, qui existeront ? !
 licorneÂ
signifié
référent
signifiant
/licorne/
Ensemble vide !  le référent licorne n a jamais
eu d existence réelleÂ
52Sémiologie
Exister ? Etre vivant (biologie ?) NÂ y a-t-il
pas un objet qui existe bien et qui est la
licorne ? Allez voir la tapisserie de la Dame Ã
la licorne au Musée du Moyen Age à Paris
! Pourquoi toutes les licornes peintes,
sculptées, tissées ne seraient-elles pas des
référents ? Les licornes n existeront plus le
jour où on aura détruit toutes les licornes,
qu il n y aura plus aucune trace de licornes
dans les livres, musées, etc. Quand la licorne
aura disparu de la mémoire de l humanité.
53Sémiologie
Exister ? Etre vivant (biologie ?) NÂ y a-t-il
pas un objet qui existe bien et qui est la
licorne ? Allez voir la tapisserie de la Dame Ã
la licorne au Musée du Moyen Age à Paris
! Pourquoi toutes les licornes peintes,
sculptées, tissées ne seraient-elles pas des
référents ? Les licornes n existeront plus le
jour où on aura détruit toutes les licornes,
qu il n y aura plus aucune trace de licornes
dans les livres, musées, etc. Quand la licorne
aura disparu de la mémoire de l humanité.
54Sémiologie
Signifié interprétant (Pierce) sens
(Frege) intension (Carnap) designatum (Morris,
1938) signficatum (Morris, 1946) concept
(Saussure) connotation (Stuart Mill) image
mentale (Saussure, Pierce) contenu
(Hjelmslev) état de conscience (Buyssens)
référent
signifiant
55Sémiologie
signifié
Référent objet (Pierce) denotatum
(Morris) Bedeutung (Frege) dénotation
(Russell) extension (Carnap)
signifiant
Qu est ce que le signe ? Ce qui est à gauche ?
56Sémiologie
signifié
référent
Signifiant (Saussure) signe (Pierce) symbole
(Ogden(Richards) véhicule du signe
(Morris) expression (Hjelmslev) representamen
(Pierce) sème (Buyssens)
57Sémiologie
Linguistique
signifié
référent
signifiant
58Sémiologie
Signifiant  aliquid stat pro aliquoÂ
 Something which stands to somebody for
something in some respect or capacity  Quelqu
e chose qui tient lieu pour quelqu un de quelque
chose sous quelque rapport ou à quelque
titre Pierce
59Sémiologique
Sémantique le signe dans sa relation à ce
qu il signifie syntaxe pragmatique le signe
est perçu en fonction de ses origines, et des
effets qu il a sur ses destinataires Rhétorique
60Modèle
- Deux sens
- Premier sens
- interprétation attribution d'un sens à des
énoncés formels de sorte qu'ils soient vérifiés - La géométrie devient un modèle d'un langage
formel, plutôt que la formalisation de propriétés
idéalisées à partir d'observation de l'espace
sensible.
61Modèle
- Etude des relations entre ensembles d'énoncés et
ensembles de modèles de ces énoncés. - Un modèle d'un énoncé fait dans un langage formel
est une interprétation (association d'un sens
aux symboles du langage formel) où cet énoncé est
vrai. - Deuxième sens
- associer à une "réalité empirique" un énoncé
formel. - Minsky Un objet O est un modèle d'une réalité R
si O permet des répondre aux questions que l'on
se pose sur R.
62Modèle et interprétation
- " les deux sens du concept de modèle ne sont que
les deux faces complémentaires d'une même
activité interpréter - Interpréter est inéluctable, qu'il s'agisse
- d'interpréter un formalisme, ou, inversement
- d'interpréter mathématiquement un ensemble de
données. - D'une part, parce qu'un langage qui n'aurait pas
de modèle n'a aucun intérêt, d'autre part et
réciproquement, parce que l'expression n'est pas
le miroir de l'expérience." - Hourya Sinaceur
63Spécifier
- Attention !Spécifier nest pas dessiner des
boîtes et - des flèches (boxologie)
- Il faut
- Une syntaxe formelle
- Une sémantique formelle (qui peut être
dénotationnelle ou - opérationnelle
Spécifier nest pas écrire un algorithme. Mais on
passe de la Spéc au programme en prouvant le
raffinage.
64Boxologie
65Complication
Jules est à côté de Paul.  à côté de Paul"
serait l'attribut de Jules ?! Et pourquoi pas
"à côté de Jules" l'attribut de Paul ?
66Théorie des ensembles
Prédicat dappartenance Ensembles de base Produit
cartésien Ensemble des sous-ensembles
Rappel À gauche du signe dappartenance, si on
a un ensemble, Ã droite on a un ensemble
densembles. A gauche du signe dappartenance, si
on a un ensemble densembles à droite, on a un
ensemble densemble densembles
67Axiome de fondation
Partant dun ensemble, si on prend un de ses
éléments (une boîte) Et quon prend un élément
dedans (une boîte), Et quon prend un élément
dedans cette boîte, etc. On est obligé de
sarrêter. On arrive à un niveau où lon ne peut
plus décomposer. Cet axiome interdit quun
ensemble puisse se retrouver à lintérieur de
lui-même. X X
68Typage
 Dans un village dAndalousie, le barbier rase
toutes les personnes Qui ne se rasent pas
elles-mêmes Qui rase le barbier ?
69Invariant
MACHINE MDBS SETS ETUDIANT GROUPE g1, g2,
g3 VARIABLES promo ,estMembreDe INVARIANT
promo lt ETUDIANT estMembreDe promo -gt
GROUPE INITIALISATION promo estMembreDe
70Ensembles de base
On construit tout ensemble en partant des
ensembles de base
Vous êtes habitués par vos profs de maths Ã
écrire Soient les ensembles A, B, C
Ensembles donc constantes ! Incommensurables. On
na pas le droit décrire A /\ B ou encore A \/
B
Sécrit en B SETS A B
71Produit cartésien et POW
On construit des ensembles à laide du produit
cartésien () Et de lensemble des sous-ensembles
(ens. des parties) POW
Attention ! Ne pas confondre un élément dun
ensemble de base et un ensemble.
72Eléments des ensembles de base
SETS DEPARTEMENT COMMUNE VARIABLES
communes, départements, estDans INVARIANT
communes lt COMMUNE départements lt
DEPARTEMENT estDans communes --gtgt
départements
73SETS
SETS COMMUNE VARIABLES communes,
départements INVARIANT communes lt COMMUNE
départements lt POW (COMMUNE)
Un département est un ensemble de communes. On ne
décider de créer deux nouveaux départements sans,
en même temps, Décider de communes qui le
constitueront. Rien ne distingue un ensemble vide
de communes dun autre !
741ière forme normale de Codd
Quest-ce quune relation n-aire (Ã la Codd) en
Première forme normale ?
Une relation dont les constituants prennent pour
valeur des éléments densembles de base
75Et une relation n-aire ?
schéma d'une relation Personne (N personne,
Nom de Personne, ville de naissance, ville
d'études) attributs de la relation N
personne, Nom, ville de naissance, ville
d'études ville de naissance et ville d'études
ont le même domaine VILLE
Personne lt NAT NOM VILLE VILLE
76Regroupement de fonctions binaires
aPourN PERSONNE-gt NAT / Npersonne
ran (aPourN) / aPourNom PERSONNE -gt
NOM / Nom de Personne ran (aPourNom) /
estNéA PERSONNE -gt VILLE / ville de
naissance ran (estNéA) / faitSesEtudesA
PERSONNE -gt VILLE / ville d'études ran
(faitSesEtudesA) /
77La méthode B
Son auteur Jean-Raymond Abrial Cest lui qui a
conçu la notation Z, Puis B Qui est la méthode
qui a fait lobjet du plus grand nombre
de communications à la conf mondiale sur les
méthodes formelles Un succès le logiciel
sécuritaire du métro automatique Meteore. De la
spec au code avec preuve mathématique.
78Une machine abstraite
Une interface des  boutons , des noms
dopération avec paramètres dentrée, de sortie
Variables avec un invariant Constantes avec
propriétés
Un état encapsulé
op3
op1
op4
op2
Initialisation Corps des opérations
79Machine abstraite
MACHINE (paramètres) CONSTRAINTS prédicat sur
les paramètres SETS ensembles de
base CONSTANTS liste des constantes PROPERTIES p
rédicat sur les constantes VARIABLES liste des
variables
INVARIANT prédicat sur les variables INITIALISA
TION pour sassurer que notre spec a un
modèle OPERATIONS préconditionnées ou gardées
END
80Autres types de machines
En B, on a aussi des REFINEMENT des
IMPLEMENTATIONS Tout le développement est
assisté par la preuve.
812 variables
INVARIANT promo lt ETUDIANT estMembreDe
promo -gt GROUPE
VARIABLES estMembreDe, promo
ETUDIANT
GROUPE
estMembreDe
g1
promo
g2
g3
82Pré-condition
MACHINE MDBS SETS ETUDIANT GROUPE g1, g2,
g3 VARIABLES promo ,estMembreDe INVARIANT
promo lt ETUDIANT estMembreDe promo -gt
GROUPE INITIALISATION promo estMembreDe
OPERATIONS ajoutMembre (ee, gg) PRE
ee promo gg GROUPE ee / dom
(estMembreDe) THEN estMembreDe estMembreDe \/
ee -gt gg END
83On peut ne pas respecter la pré-condition
Une pré-condition est une pré-condition
demploi. Rien ne vous empêche de ne pas
respecter la pré-condition. Mais Vous êtes
prévenus. Si vous voulez que lopération fasse ce
Que dit son nom, il faut respecter la
pré-condition. Ex. Si vous ne respectez pas la
pré-condition de la division, (ne pas donner un
diviseur 0) vous naurez pas une fonction
division.
84Crash !
La pré-condition dune opération nest pas dans
le code de cette opération. Ce nest pas alors
que vous avez sauté par la fenêtre quil
faut exécuter  si fenêtre à plus de 5 mètres, ne
pas sauter Trop tard Cest le crash !
Comme pour Ariane 5. Qui est sorti du domaine
du vol. (voir notion de domaine dune relation)
85Le crash dAriane 5
Accélération min4..max4
Ariane 4
x min4..max4
Fonction de conversion de A4
y
86Ariane 5
Accélération min5..max5
Non respecté car mas5 gt max4
x min4..max4
Fonction de conversion de A4
Levée dune exception
y
Commutation sur un autre calculateur et exécution
de la même fonction
87La chuteaprès la faute !
Copie du composant B
Y code erreur
Composant B
Braquage tuyères
88La garde
La garde empêche deffectuer lopération. Quand
on raffine on renforce la garde, on étire le
temps. Si nous avons le temps, nous parlerons du
 B événementielÂ
89Calcul de la WPC
x x 1 (x lt 100) x 1 lt 100 ltgt x lt 99
x, b b, a (a lt b) alt b
Plus faible pré-condition (Dijkstra)
a y z k (x gt k) y gt k
90Indéterminisme
MACHINE MDBS SETS ETUDIANT GROUPE g1, g2,
g3 VARIABLES promo ,estMembreDe INVARIANT
promo lt ETUDIANT estMembreDe promo -gt
GROUPE INITIALISATION promo estMembreDe
ajoutEtudiant PRE ETUDIANT promo /
THEN ANY ee WHERE ee ETUDIANT promo
THEN promo promo \/ ee END
91Définitions
MACHINE MDBS SETS ETUDIANT GROUPE g1, g2,
g3 VARIABLES promo ,estMembreDe INVARIANT
promo lt ETUDIANT estMembreDe promo -gt
GROUPE INITIALISATION promo estMembreDe
Une définition nest pas une variable !
DEFINITIONS groupesAffectés ran (estMembreDe)
92Ce quest une spéc abstraite
- Une spécification abstraite
- nest pas exécutable
- peut être indéterministe
- les opérations peuvent être pré-conditionnées
- - pas de séquencement
- Intérêt ?
93Pré-condition
- La pré-condition permet
- dexpliciter lopération par ses conditions
dexécution - de prouver que, si lon appelle lopération sous
sa - pré-condition, linvariant est respecté
- Bien sûr, la preuve est relative aux
 propriétés exprimées dans - linvariant. Si invariant  léger , on ne
prouvera pas grand chose !
94Obligation de preuve
Pré-condition Invariant gt Substitution
Invariant
INVARIANT x lt 100 OPERATIONS incrémentation
PRE x lt 100 THEN x x 1 END
Calcul de pré-condition x x 1 (x lt 100)
x 1 lt 100 ltgt x lt 99
95Ex-falso quodlibet
P or Q ? not P gt Q P ? Q ? (P gt Q) (Q
gt P)
btrue or Q ? btrue Daprès la définition du
or, on a btrue or Q ? not (btrue) gt Q
? bfalse gt Q Donc il faut considérer que
bfalse gt Q est toujours vrai.
96To be or not to be !
Idem non esse et non probari Ne pas être ou ne
pas être prouvé, c'est tout un.
97De la logique à linformatique
Les axiomes des substitutions généralisées
x E P P E/x x, y E, F P PE, F/x,
y skip P P PRE P THEN SI P I gt S
I SELECT P THEN S I P gt S I Garde CHOICE S
OR T I S I T I Choix indéterministe IF
E THEN S ELSE TI (E SI) or (not E T I)
98Le raffinage
- On réduit lindéterminisme
- On affaiblit les pré-conditions
- On renforce les gardes
- 4) On sapproche de la machine concrète
- Avec introduction de
- - du séquencement et donc de la boucle
Et on prouve que le raffinage se fait en
respectant les fonctionnalités
99Raffinage
100Raffinage
Avant
Réduction indéterminisme
Après
I
Abstrait
I
Opération S
J
J
Opération T
Concret
I J P gt Q T not S not J
101Composant
Comme  objet , le terme recouvre tout et
nimporte quoi pourvu Que ça fasse vendre !
Daprès Clemens Szyperski  Component Software,
Beyond Object-Oriented Programming Second
edition, Addison-Wesley, 2002, Pearson
Publications
102Caractéristiques essentielles
- unité indépendante de déploiement
- Donc séparé de son environnement et des autres
composants - Encapsule ses services
- Nest jamais déployé partiellement
- un tiers ne peut avoir accès aux détails de
construction du - Composant
- Donc a une spécification claire.
- Il encapsule son implantation.
- Interagit avec son environnement par une
interface bien définie
103Caractéristiques essentielles (suite)
- ne doit pas avoir un état observable
 extérieurement - i.e. il ne doit pas pouvoir être distingué de
copies de lui-même - (si ce nest des choses comme son numéro de série
pour le - comptable)
- Un état dun composant sert pour des raison de
performances - (comme un cache)
- Un composant est chargé et activé dans un
système. - Ca na aucun sens davoir plusieurs copies dun
composant - dans un système
104Composant vs Module
- Exemples
- un serveur de base de données
- Attention ce nest pas parce quil y a
peut-être une seule base - de données maintenue par ce serveur quil faut
confondre l - instance avec le concept
Lensemble base de données , serveur peut être
vu comme un module avec un état observable.
105Le plan vs les objets
- Séparation entre
- le plan que lon ne peut modifier
( immutable ) - les instances que lon peut modifier
( mutable ) - (donc ce sont des variables et non des
expressions)
106Confusion !
Le concept de composant na pas trait au niveau
de lobjet ! N est donc pas relié à la vie des
objets Ne traite pas de létat de lobjet.
107Objet es-tu là ?
- Caractéristiques de lobjet (chez les
informaticiens) -  unité dinstanciation (cest un élément dun
ensemble, - Élément obtenu par demande dinstanciation à la
classe dont - lobjet est un représentant). Il a une  identité
unique - (curieuse expression. Quest-ce quune identité
non unique ?) - Ne peut être instancié quen partie.
- On peut avoir aussi des objets  prototypesÂ
dont on fait des clones.
108- doit avoir un état qui peut être observable
extérieurement - Encapsule son état et son comportement
109La notation UML
utilisons le concept densemble (une
relation est un ensemble) et évitons les
problèmes connus pendant 20 siècles !
110Une mauvaise notation (OMT)
Rappel une information réduit le champs des
possible. Cest une contrainte.
A
B
A
B
A gt-gtgt B
A gt--gt B
A
B
A
B
A gt-gt B
A --gt B
A
B
A lt--gt B
111Une mauvaise notation
Avec cette notation, plus il y a de contrainte,
moins on a de signifiants ! Imaginez la même
chose pour le code de la route ou pour un un code
de droit !
112Le progrès ?
 C'est vrai, nous devons avoir quelque part, un
outil à dessiner des boîtes et des flèches qui
s'appelle MEGA. Autrefois il dessinait des
rectangles et des ovales (MERISE) aujourd'hui
c'est pire, il y a toutes sortes de boîtes et
flèches (c'est de l'UML). Inutile de dire que
cela n'apporte rien en terme de réflexion sur un
développement informatique. Il y a des personnes
qui trouvent cela bien car ils remplissent des
pages de dessins et quand on leur demande d'en
donner la signification précise, on entend tout
et n'importe quoi. Bien sûr, le programmeur ne se
sert absolument pas de ces dessins, mais il fait
semblant pour que tout le monde soit satisfait
... Cela doit être le progrès. Monsieur X,
Chef de projet dans un gros service informatique
113Notation UML
1
1
A
B
R ( A, B)
A gt-gtgt B
R1(A, B) R2 (B)
0..1
1
A
B
A gt--gt B
R1 (A, B) R2 (A) R3 (B)
A
B
0..1
0..1
A gt-gt B
114 association qualifiée ?!
Bât
estDans
estDans salle --gt Bât
salle
U
NAT
aPourN
aPourN salle --gt NAT
estDans gtlt aPourN salle gt--gt Bât NAT
bâtiment
salle
Salle (n)
115Manufacturer
Bottle
product(Date)
Size Number
SETS BOUTEILLE FABRICANT DATE INVARIANT
fabricants lt FABRICANT bouteilles lt
BOUTEILLE aEtéProduitePar bouteilles --gtgt
fabricants aEtéProduiteLe bouteilles --gtgt
DATE aPourTaille bouteilles -gt NAT
aEtéProduitePar gtlt aEtéProduiteLe bouteilles
gt--gt fabricants
116Automates de Harel en B
S1
Sn
SETS SS S1, , Sn VARIABLES ss INVARIANT ss
SS INITIALISATION ss S1
117Initialisation indéterministe
S1
Initialisation indéterministe
Sn
ss SS
118Transition
E
S1
S2
E IF ss S1 THEN ss S2 END
119Plusieurs transitions, même évt
E
S1
S2
E
Si
S
OPERATION E CASE ss OF EITHER S1 THEN ss
S1 OR Si THEN ss ss END
120Action sur événement
E/act
S1
S2
OPERATIONS E IF ss S1 THEN ss S2
act END
121Action sur initialisation
/act
S1
INITIALISATION ss S1 act
122Condition sur transition
E cond/act
S1
S2
OPERATIONS E IF ss S1 cond THEN
ss S2 act END
123Conditions sur plusieurs trans.
Econd1/act
S1
S1
S1
Econdi/acti
OPERATIONS E SELECT ss S1 cond1 THEN ss
S1 act1 WHEN ss S1 condi THEN ss
Si acti ELSE skip END
124Transition avec paramètre
E(para) cond/act
S1
S2
OPERATIONS E (para) IF ss S1 cond
THEN ss S2 act END
125Transitions simultanées
S1
E(para) IF ss S1 cond1 cond2 THEN ss
S3 act1 act2 END
E(para) cond1/act1
S2
cond2/act2
S3
126Entrée dans super état
E
S1
R1
R2
S2
SETS SS S1, S2 RR R1, R2 VARIABLES ss,
rr INVARIANT ss SS rr RR OPERATIONS E
IF ss S1 THEN ss S2 rr R1 END
127Etats indépendants simultanés
S1
R
Q
Q1
R1
Qn
Rm
VARIABLES ss, qq, rr INVARIANT ss SS qq
QQ rr SS
SETS SS S1,, Sn QQ Q1,.., Qn RR
R1,, Rm
128Transition vers deux sous-états
S1
Q1
Qn
S1
R1
Rm
OPERATIONS E IF ss S1 THEN ss S2 qq
Q1 rr R1 END
1292 transitions dans 2 états conc.
S1
E
Q1
Q2
OPERATIONS E BEGIN IF qq Q1 THEN qq
Q2 END IF rr R1 THEN rr R2
END END
E
R1
R2
130Communication
- Communication entre états concurrents
- Les états concurrents peuvent communiquer par
variables globales. - Les var. globales peuvent être mises à jour dans
les actions et lues - Dans les actions et les conditions
- 2) La condition ou laction dune transaction
peut dépendre du sous- - État concurrent dun état concurrent
- 3) Les états concurrents peuvent communiquer par
diffusion des - Événements. Sur la diffusion dun événement, tous
les états - Concurrents réagissent simultanément.
131Génération des événements
- Les événements sont
- soit générés de manière interne à travers une
diffusion - soit générés extérieurement par lenvironnement
- En B, la diffusion dun événement, est exprimée
par lappel de lopé- - ration pour cet événement
E1/E2
S1
S2
OPERATIONS E IF ss S1 THEN ss S2 E2
END
132MACHINE M SETS PQ, R S T, U, V W
X, Y VARIABLES p, s, w INVARIANT pP sS
wW INITIALISATION p Q s T w
X DEFINITIONS
S
Q
T
U
E
E
H
R
V
F/G
P
W
G/H
X
Y
E
(Q, T, X) -E--gt (R, U, X)
(R, U, X) - E --gt (Q, V, Y)
HH IF pR THEN p Q END GG IF w X THEN
w Y END
133OPERATIONS E BEGIN IF p Q THEN p R
END CASE s OF EITHER T THEN s U
OR V THEN s T END END
IF w Y THEN w X END END F IF s U THEN
s V GG END G GG H HH END
134Réutiliser des composants
- La réutilisation nécessite labstraction on
ne doit pas avoir à lire le code de lopération
- de disposer des Pré-conditions demploi des
opérations - d être sûr que si on respecte la
pré-condition lopération fait ce qui est annoncé
(choisir un nom qui est convenable.) On ne fera
pas léconomie de lattention au choix des mots.
135Vers le génie logiciel
Nous navons pas parlé du paradigme des
processus Séquentiels communicants (CCS de
Milner, CSP de Hoare) Ce sera pour une autre
fois mais vous pouvez fréquenter votre
bibliothèque et le web. On na pas attendu UML
pour utiliser automates, expressions régulières,
cardinalités (pardon multiplicité !!!) de
relations. Bon voyage dans le monde du génie
logiciel à construire.