226
H. Habrias 2006 1

«  Aux lecteurs bénévoles

Embed Size (px)

DESCRIPTION

«  Aux lecteurs bénévoles. Buveurs infatigables, & vous, vérolés très précieux, pendant qu’êtes de loisir, & que n’ai autre plus urgente affaire en main, je vous demande en demandant : « Pourquoi est-ce qu’on dit maintenant en commun - PowerPoint PPT Presentation

Citation preview

Page 1: «  Aux lecteurs bénévoles

H. Habrias 2006 1

Page 2: «  Aux lecteurs bénévoles

H. Habrias 2006 2

« Aux lecteurs bénévoles

Buveurs infatigables, & vous, vérolés très précieux, pendant qu’êtes deloisir, & que n’ai autre plus urgente affaire en main, je vous demande en demandant : « Pourquoi est-ce qu’on dit maintenant en communproverbe : le monde n’est plus fat? » Fat est un vocable de Languedoc& signifie non salé, sans sel, insipide, fade ; par métaphore, signifiefol, niais, dépourvu de sens, éventé de cerveau. (…)Vous l’avez ouï, l’avez-vous entendu ? »

François Rabelais, Prologue pour le cinquième livre des faicts & dictsHeroïques de Pantagruel.

Page 3: «  Aux lecteurs bénévoles

H. Habrias 2006 3

Présentation du 24 février 2005

MDBS Nice, Sophia Antipolis

Henri Habrias

Page 4: «  Aux lecteurs bénévoles

H. Habrias 2006 4

Bonjour !

Henri HabriasProfesseur à l’université de Nantes, Labo [email protected]

Nantes ! Le centre du monde !Nantes, où est né Jules Verne (mort en 1905, 2005, Année Jules Verne)En poste à l’IUT, département informatiqueEnseigne les spécifications, informatique et droitEx Responsable du DESS Génie logiciel, économie, droit et normesEnseignant en master (Nantes, Limoges) et Formation doctorale

Page 5: «  Aux lecteurs bénévoles

H. Habrias 2006 5

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

Il vous reste à spécifier ce concept de centre dumonde….

Page 6: «  Aux lecteurs bénévoles

H. Habrias 2006 6

No apologies !

Page 7: «  Aux lecteurs bénévoles

H. Habrias 2006 7

La France d’enhaut et la

France d’enbas

Page 8: «  Aux lecteurs bénévoles

H. Habrias 2006 8

Nantes, en Bretagne

La Cour des Comptes de BretagneLe Château des ducs de Bretagnesont situés à Nantes

Spectacle deRoyal de Luxe

Page 9: «  Aux lecteurs bénévoles

H. Habrias 2006 9

Bibliographie

J’ai é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

Page 10: «  Aux lecteurs bénévoles

H. Habrias 2006 10

Bibliographie

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 d’analyse 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, ISBN:2-88074-296-X

Page 11: «  Aux lecteurs bénévoles

H. Habrias 2006 11

RDV 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é

H. Habrias, M. Frappier - Software Specification Methods, An Overview Using a Case Study, Hermes Publishing, April 2006(avec TLA+ (L. Lamport), ASM (E. Börger), Event B (D. Méry, D. Cansell)

Page 12: «  Aux lecteurs bénévoles

H. Habrias 2006 12

RDV à la bibliothèque…

Henri Habrias, Spécification formelle avec B , Hermes/Lavoisier, octobre 2001, ISBN : 2-7462-0302-2, 416 pages

Jean Jolivet, Henri Habrias, Pierre Abélard, à l’aube des universités, PUR, 2003

Et un Petit Dictionnaire pour le lecteur novice de P. Abélard

RDV sur mon site web :http://www.iut-nantes.univ-nantes.fr/~habrias/portailHabrias

Page 13: «  Aux lecteurs bénévoles

H. Habrias 2006 13

Notre 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 l’informatique »

On parlera de mathématiques élémentaires, de variables, constantes, de substitution, de prédicat, d’expression, de substitution, de machine abstraite, de pré-condition, de garde, d’invariant, de composant logiciel, de méta-modélisation

Et d’UML

Page 14: «  Aux lecteurs bénévoles

H. Habrias 2006 14

Spécifications

en résumé, nous parlerons … de spécifications

Attention ! On verra que si l’on est purement formel, « on ne saitpas de quoi l’on parle et si ce que l’on dit est vrai » (B. Russell au sujet des mathématiques)Nous voulons « modéliser » (on va traiter de ce qu’est un modèle).Il nous faudra donc, à la fois un texte formel et un texte informel pourque l’on puisse exprimer ce dont on parle…

Mais E. Borel a tout aussi bien dit : « Les mathématiques sont la seulescience où l’on sait de quoi on parle et où on est certain que ce que l’on dit est vrai. »

Page 15: «  Aux lecteurs bénévoles

H. Habrias 2006 15

L’expression en français, ce que nous dit Boileau

Avant donc que d'écrire apprenez à penser.Selon que notre idée est plus ou moins obscure, L'expression la suit, ou moins nette, ou plus pure.Ce que l'on conçoit bien s'énonce clairement,

Hâtez-vous lentement, et, sans perdre courage,Vingt fois sur le métier remettez votre ouvrage :Polissez-le sans cesse et le repolissez ;Ajoutez quelquefois, et souvent effacez..

Boileau, L'art poétiqueChant I, v. 27-48; 147-174.

Page 16: «  Aux lecteurs bénévoles

H. Habrias 2006 16

Notre parcours…

On remontera à Aristote, avec les entités et les propriétés…

Et on vous proposera de profiter de l’invention des ensembleset des relations

On vous proposera d’abandonner la métaphysique, de vous méfier des objets.

Et on montrera ce que l’on peut prouver sur une spécification.

Page 17: «  Aux lecteurs bénévoles

H. Habrias 2006 17

Concepts de base

Pour éviter de compliquer

Le complexe suffit à la tâche !

Différence entre compliqué et complexe

Page 18: «  Aux lecteurs bénévoles

H. Habrias 2006 18

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

Page 19: «  Aux lecteurs bénévoles

H. Habrias 2006 19

Rasoir d’Occam

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

Page 20: «  Aux lecteurs bénévoles

H. Habrias 2006 20

Rasoir d’Occam

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.

Page 21: «  Aux lecteurs bénévoles

H. Habrias 2006 21

Lavoisier et le rasoir d’Occam

« il est des principes d’unebonne logique de ne pasmultiplier les êtres sansnécessité »Lavoisier

Page 22: «  Aux lecteurs bénévoles

H. Habrias 2006 22

Aristote, l’organon

Page 23: «  Aux lecteurs bénévoles

H. Habrias 2006 23

La phrase d’Aristote

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.

Page 24: «  Aux lecteurs bénévoles

H. Habrias 2006 24

Complication

Dudule copie sur Huguette

Dudule est copiant sur Huguette

« copiant sur Huguette » attribut ou propriété de Dudule

Page 25: «  Aux lecteurs bénévoles

H. Habrias 2006 25

Naissance 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 choses…laissons ça auxmétaphysiciens

Page 26: «  Aux lecteurs bénévoles

H. Habrias 2006 26

Et l’ontologie ?

C’est la « science de l’être en tant qu’être. »

C’est de la métaphysique.

De nos jours, des informaticiens pensent qu’ils vontmettre l’essence de l’être dans les ordinateurs !

S.V.P. Lisez Jacques Arsac

Page 27: «  Aux lecteurs bénévoles

H. Habrias 2006 27

La Quinte Essence

«…descendîmes au port de Matrotehecne (science vaine), peu distant du palais de la Quinte Essence. (…) …car à son dîner rien ne mangeait, fors quelques catégories, jechabots (abstraction), eminins (vérités), dimions (images), abstractions, harborins (concepts), chelimins (songes),secondes intentions, caradoths (visions terrifiantes), antithèses, métempsycoses, transcendantes prolepses (anticipations)

François Rabelais, Le Cinquième Livre, Chap. XVIII

Page 28: «  Aux lecteurs bénévoles

H. Habrias 2006 28

Occam et le singulier

Il n’y a que le singulier. Cet arbre, cette pierre, Protagoras…« On dit singulier la chose hors de l’esprit qui est une et non pas plusieurs et n’est pas signe d’une autre. » (Summa logicae)

La chose singulière subsiste en elle-même, sans rien devoir aux signes, elle demeure hors de l’esprit.

Distinction entre ontologie et sémiologie

Homme, concept singulier, regroupe tous les hommes en une seuleunité, mais ne les ramène pas à un seul.

Page 29: «  Aux lecteurs bénévoles

H. Habrias 2006 29

Occam et les termes discrets

Certains signes, dans leur singularité, ne désignent qu’un étant singulier (« signe propre à un seul étant qui est appelé terme discret »)

Page 30: «  Aux lecteurs bénévoles

H. Habrias 2006 30

Occam contre Platon

Les termes généraux sont des symboles qui représentent une « intention »de l’esprit visant à regrouper une pluralité d’objets ordinaires.

Il n’y a pas besoin de faire appel à un objet supplémentaire qui serait« l’essence du chêne » auquel le mot se référerait.

Donc une telle essence n’existe pas (utilisation du rasoir d’Occam)

Nominalisme

Page 31: «  Aux lecteurs bénévoles

H. Habrias 2006 31

Un couteau

Page 32: «  Aux lecteurs bénévoles

H. Habrias 2006 32

 Un couteau sans lame auquel il manque le manche »

Page 33: «  Aux lecteurs bénévoles

H. Habrias 2006 33

« Un couteau sans lame auquel il manque le manche »

Lichtenberg

- l’état du couteau que je vais vous fabriquer

- l’état du couteau que l’on vient de détruire

- le concept de couteau ?

Page 34: «  Aux lecteurs bénévoles

H. Habrias 2006 34

Objet et accident

- Objet :“ Ce qui peut avoir lieu ou disparaître, sans destruction du sujet ”

-Porphyre (Isagore) divise les accidents en :

séparables (par ex., pour l’homme de dormir) et

inséparables (par ex., pour l’Ethiopien, d’être noir : caractère constant, mais qu’on peut concevoir comme venant à disparaître sans que le sujet auquel il s’applique soit détruit).

André Lalande, Vocabulaire technique et critique de la philosophie, Quadrige, PUF

Page 35: «  Aux lecteurs bénévoles

H. Habrias 2006 35

Platonisme, formalisme, constructivisme (1)

Platon : les objets mathématiques sont réels. Leur existence est un faitobjectif totalement indépendant de la connaissance que nous en avons.Immuables, non créés.Le mathématicien découvre les objets mathématiques.

Thom :« Tout bien considéré, les mathématiciens devraient avoir le couragede leurs convictions les plus profondes et par suite affirmer que lesformes mathématiques ont vraiment une existence indépendante del’esprit que les considère. (…) cependant à un moment donné, lesmathématiciens ont cependant une vision incomplète et fragmentaire dece monde d’idées. »

Platonisme (ou réalisme des idées)

Page 36: «  Aux lecteurs bénévoles

H. Habrias 2006 36

Platonisme, formalisme, constructivisme (2)

Formalisme : il n’y a pas d’objets mathématiques.

Les mathématiques consistent seulement en axiomes, définitions etthéorèmes, en d’autres mots, des formules sans signification.

Quand on donne à une formule une interprétation physique, elleacquiert une signification, et elle peut être vraie ou fausse

Formalisme

Page 37: «  Aux lecteurs bénévoles

H. Habrias 2006 37

Platonisme, formalisme, constructivisme (3)

Constructivisme : ne considèrent comme mathématiques véritablesque celles que l’on peut obtenir par une construction finie

« Le mathématicien type est à la fois platonicien et formaliste –Platonicien dans son for intérieur mettant un masque formalistequand les circonstances l’exigent. » Davis, Hersh, p. 312

Et les informaticiens…?

constructivisme

Page 38: «  Aux lecteurs bénévoles

H. Habrias 2006 38

L ’Aubergiste et les philosophes“ L’un des philosophes, disciple de Hume et voyageur plein d’expérience, fit venir notre hôte et lui dit :

“ Ce n’est pas du bœuf, c’est du cheval. ”

l’aubergiste lui répondit :

“ Monsieur, je suis surpris de vous entendre dire quelque chose que vous croyez dépourvu de sens. “ Bœuf ” et “ cheval ”, selon vous, ne sont que des mots, et ne désignent rien dans le monde du non-langage. La discussion ne concerne donc que des mots. Si vous préférez le mot “ cheval ”, c’est bel et bien ; mais je trouve le mot “ bœuf ” plus profitable. ”

Page 39: «  Aux lecteurs bénévoles

H. Habrias 2006 39

L ’Aubergiste et les philosophes

A cette réplique, tous les philosophes se mirent immédiatement à discuter.

“ L’aubergiste a raison, dit un disciple de Roscelin, “ bœuf ” et “ cheval ” ne sont que des sons proférés par le souffle de l’homme, et aucun d’eux ne peut désigner cet abominable et très coriace morceau de viande. –

Absurdité, répliqua un platonicien, ce rôti vient d’un animal qui, lorsqu’il était vivant, était une copie du cheval éternel qui se tient au ciel, et non d’un bœuf éternel. ”

Page 40: «  Aux lecteurs bénévoles

H. Habrias 2006 40

L ’Aubergiste et les philosophes

Un Augustinien fit remarquer :

“ Bœuf ” et “ cheval ” sont des idées dans l’esprit de Dieu, et je suis certain que l’idée divine du bœuf est quelque chose de très différent. ”

Le sens de cette parabole est que la question des “ universaux ” n’est pas simplement une question de mots, mais qu’elle se pose lorsque l’on veut énoncer des énoncés de faits. ”

Bertrand Russell, in Histoire de mes idées philosophiques, chap. XIV, Les universaux, les particuliers et les noms, p. 194-95

Page 41: «  Aux lecteurs bénévoles

H. Habrias 2006 41

La querelle des universaux, la position d’Abélard

“ le retranchement ne confère substantiellement à ce qui reste ou a été supprimé rien qu’il n’ait eu d’abord, parce que, après l’ablation d’une main, ce qui est maintenant reste un homme, et, avant l’ablation, restait une certaine partie cachée dans l’homme qui était intacte ”.

Pierre Abélard (XIIe)Créateur du Quartier LatinNé au Pallet, à côté de Nantes

Page 42: «  Aux lecteurs bénévoles

H. Habrias 2006 42

Et Frege vint…

Wismar 1848/Mecklembourg 1925

Page 43: «  Aux lecteurs bénévoles

H. Habrias 2006 43

Les 4 sens du verbe « être »

1) Existence : « Dieu est »

2) Appartenance : « Socrate est mortel »

3) Inclusion : « le Niçois est français »

4) Dénotation : « l’étoile du matin est l’étoile du soir »

« Etoile du matin, étoile du soir dénotent Vénus »

G. Fre

G. Frege

Page 44: «  Aux lecteurs bénévoles

H. Habrias 2006 44

Et Nicolas Bourbaki…1939…

Page 45: «  Aux lecteurs bénévoles

H. Habrias 2006 45

Cantor

La théorie des ensembles

Saint-Petersbourg, 1845/Halle 1918

Page 46: «  Aux lecteurs bénévoles

H. Habrias 2006 46

Aristote en diagramme d ’Euler

S P

S P

S P

S P

Affirmative universelleTout homme est blanc

Sujet Prédicat

Négative universelleAucun homme n ’est blanc

Affirmative particulièreQuelque homme est blanc

Négative particulièreQuelque homme n ’est pas blanc

Page 47: «  Aux lecteurs bénévoles

H. Habrias 2006 47

Diagrammes de Venn

Dans l ’interprétation aristotélicienne, on présuppose l ’existence(Il existe au moins un) laquelle est liée de manière indissoluble àl ’universalité (tous)

Si on sépare les deux (interprétation moderne), les diagrammes d ’Eulerne suffisent plus. Il faut distinguer entre :

- le cas où l ’on sait que la classe est vide (avec Venn, hachures)

-le cas où l ’on sait que la classe est non vide (avec Venn, on met -ne X)

- le cas où l ’on ne sait rien sur la classe (avec Venn, on laisse à blanc)

Page 48: «  Aux lecteurs bénévoles

H. Habrias 2006 48

Aristote vs les stoïciens

Aristote : logique des termes

Stoïciens : logique des propositions

Page 49: «  Aux lecteurs bénévoles

H. Habrias 2006 49

Aristote vs les stoïciensAristote

Tous les hommes sont mortelsDonc tous les non mortels sont non hommes

Tous les A sont B Donc tous les non B sont non A

Stoïciens

S ’il fait jour, il fait clairDonc s ’il ne fait pas clair, il ne fait pas jour.

Si p alors q.Donc si non q alors non p.

Termes ou expressions

Propositions

Page 50: «  Aux lecteurs bénévoles

H. Habrias 2006 50

Aristote vs les stoïciens

Forme commune aux deux raisonnements :une permutation et un changement de signeTous les hommes sont mortelsDonc tous les non mortels sont non hommes

S ’il fait jour, il fait clairDonc s ’il ne fait pas clair, il ne fait pas jour.

Chez Aristote, les unités les plus petites sont des termes et les symboles logiques sont des symboles intra propositionnels

Chez les stoïciens, les plus petites sont des propositions et lessymboles logiques sont des symboles inter propositionnels (connecteurs binaires, négation)

Page 51: «  Aux lecteurs bénévoles

H. Habrias 2006 51

Les stoïciens, Schémas d ’inférence (suite)

Non P et QOr PDonc non Q

P ou Q (mais pas les deux)Or PDonc non Q

P ou Q (mais pas les deux)Or non QDonc P

Page 52: «  Aux lecteurs bénévoles

H. Habrias 2006 52

Logique

Bien différencier Prédicat (et proposition) et Expression

Ca a du sens de vouloir prouver un prédicat, ça n’a pas de sensde vouloir prouver une expression.

x := x + 1 n’est pas un prédicat

« Lève toi et marche » , n’est pas une proposition

Vrai, {1, 4, 9}, {(Alcofibras Nasier, François Rabelais), (Romain Gary, Emile Ajar)}, 5 sont des expressions

Page 53: «  Aux lecteurs bénévoles

H. Habrias 2006 53

Logique, attention au vocabulaire

Propositions :« Nantes est située sur le Rhône »« 2 + 2 = 5 »« 2+1 = 1+1+1 »

Prédicats :! x . x : NAT & x > 10# x . x : NAT & x > 10

« Logique combinatoire »

« Logique séquentielle »

Un vocabulaire propre aux « automaticiens »

Et « l’illogique c’est l’autre » !

Page 54: «  Aux lecteurs bénévoles

H. Habrias 2006 54

1e, 2e ordre

1e ordre « avoir un chemin de longueur 3 reliant toute paire de nœuds »

s ’exprime par

« pour toute paire de nœuds x et y, il existe deux nœuds u et v, telsque le nœud x est lié au nœud u et que le nœud u est lié au nœud vet que le nœud v est lié au nœud y. »

Page 55: «  Aux lecteurs bénévoles

H. Habrias 2006 55

Carré d’Aristote

Auniverselle affirmative

Euniverselle négative

Iparticulière affirmative O

Particulière négative

contraires

subcontraires

contradictoiressubalternes subalternes

Tout les A sont B

Quelques A sont B

Aucun A n’est B

Quelques A ne sont pas B

Page 56: «  Aux lecteurs bénévoles

H. Habrias 2006 56

En langage ensembliste

SETS TCONSTANTS A; BPROPERTIES A <: T & B <: T

Tous les A sont BA <: B

Quelques A sont BA /\ B /= { }

Aucun A n’est BA /\ B = { }

Quelques A ne sont pas BA – B /= { }

Page 57: «  Aux lecteurs bénévoles

H. Habrias 2006 57

En langage des prédicats

Tous les A sont BA <: B

Quelques A sont BA /\ B /= { }

Aucun A n’est BA /\ B = { }

Quelques A ne sont pas BA – B /= { }

forall X . X : A => x : B

exists x . X : A & x : B exists x . (x : A & not x : B)

not (exists x . X : A & x : B)ouforall x . (x : A => (x : B))

Page 58: «  Aux lecteurs bénévoles

H. Habrias 2006 58

2e ordre

2e ordre :

« être d ’un seul tenant » n ’est pas une propriété du premier ordre.

« pour tous les nœuds x et y, il existe des nœuds z1, z2,…,zn tels quele nœud x est lié au nœud z1 et le nœud z1 est lié au nœud z2 et …lenœud zn est lié au nœud y. »

Les … ne font pas partie du langage du 1e ordre

Page 59: «  Aux lecteurs bénévoles

H. Habrias 2006 59

Logique et Ensembles

Langage deLa logique

Langage des ensembles

Un ensemble A est inclusdans un ensemble Bsi pour tout élément appartenantà A , cet élément appartient à B

Page 60: «  Aux lecteurs bénévoles

H. Habrias 2006 60

Prédicat d’appartenance

Dudule

promo

Dudule : promo

Prédicat d’appartenance

Page 61: «  Aux lecteurs bénévoles

H. Habrias 2006 61

Inclusion

Un ensemble est inclusdans un autre ensemble.

Un ensemble peut appartenirà un autre ensemble (qui est alors un ensemble d’ensembles)

{1, 2, 4, 8} <: {1, 2, 3, 4, 5, 6, 7, 8, 9}

{1, 2} : {{2}, {}, {1, 2}}

Page 62: «  Aux lecteurs bénévoles

H. Habrias 2006 62

Relation

a

b

c

d

e 12

3

4

5

Relation quelconque

Ensemble de départ Ensemble d ’arrivéeou cible (target)

domaine

Codomaine ourange

Page 63: «  Aux lecteurs bénévoles

H. Habrias 2006 63

Fonction partielle

a

b

c

d

e 12

3

4

5

Fonction partielle

Page 64: «  Aux lecteurs bénévoles

H. Habrias 2006 64

Fonction totale

a

b

c

d

e 12

3

4

5

Fonction totale

Page 65: «  Aux lecteurs bénévoles

H. Habrias 2006 65

Fonction partielle

a

b

c

d

e

2

5

Fonction partielle surjective

Page 66: «  Aux lecteurs bénévoles

H. Habrias 2006 66

Totaliser les fonctions

On peut rendre une fonction totale en utilisant la « valeur nulle »

Mais si on suppose qu’on a une valeur nulle dans chaque ensemble de base, toutes les fonctions sont totales et toutesles relations ont leur domaine qui est égale à l’ensemble deDépart.

Alors que reste-t-il comme contrainte ? la contrainte de fonctionnalité, dite aussi « unicité »

Page 67: «  Aux lecteurs bénévoles

H. Habrias 2006 67

Totalisation d’une fonction

a

b

c

d

e 12

3

4

5

Fonction partielletotalisée !

nulle

Page 68: «  Aux lecteurs bénévoles

H. Habrias 2006 68

Bijection

a

b

c

d

e

2

5

Fonction totale surjectiveBijection

1

3

4

Page 69: «  Aux lecteurs bénévoles

H. Habrias 2006 69

Image relationnelle

a

b

c

d

e 12

3

4

5

R1 [{a, b, c}] = {2, 4}

Image relationnelle

R1

Page 70: «  Aux lecteurs bénévoles

H. Habrias 2006 70

Restriction de domaine

a

b

c

d

e 12

3

4

5

R1

R1 |> {2, 5} = {(a, 2), (b, 2), (d, 5)}

Restriction de codomaine

Page 71: «  Aux lecteurs bénévoles

H. Habrias 2006 71

Restriction de domaine

a

b

c

d

e 12

3

4

5

R1

{a, b} <| R1 = {(b, 2), (c, 4)}

Restriction de domaine

Page 72: «  Aux lecteurs bénévoles

H. Habrias 2006 72

Antirestriction de domaine

a

b

c

d

e 12

3

4

5

R1

{b, c} <<| R1= {(a, 2), (a, 4), (d, 5)}

Antirestriction de domaine

Page 73: «  Aux lecteurs bénévoles

H. Habrias 2006 73

Sac, multi-ensemble

SETSVALEURS_FACIALE

VARIABLES monPorteMonnaie

INVARIANTmonPorteMonnaie :

VALEURS_FACIALE +-> NAT

Bag (Multiset)

Page 74: «  Aux lecteurs bénévoles

H. Habrias 2006 74

Composition de relations

a

b

c

d

e

2

5

1

3

4w

x

z

y

r1 r2

r1 ; r2 == r2 o r1

Page 75: «  Aux lecteurs bénévoles

H. Habrias 2006 75

Variable, ensemble

Ne pas confondre un ensemble et une variable

Promo est une variable qui a comme invariant d’être un ensembled’étudiantsPromo <: ETUDIANT

La valeur de Promo peut changer.On peut faire :Promo := Promo \/ {dudule}

{dudule, duchnock, dutif} n’est pas une variable ! Un ensemblene peut être modifié, une variable est modifiable.

Page 76: «  Aux lecteurs bénévoles

H. Habrias 2006 76

Qui comprend ?

Page 77: «  Aux lecteurs bénévoles

H. Habrias 2006 77

Alors, un attribut, c’est quoi ?

C’est :- soit la valeur d’une fonction f(x)- soit l’image relationnelle d’une relation r [{x}]

f

f(a) = 7

a 7

r

a 7

b 8

r ({a,b}] = {7, 8}

b

c

Application de fonction Image relationnelle

Page 78: «  Aux lecteurs bénévoles

H. Habrias 2006 78

Attribut

Pour une relation vue sous forme d’un tableau (lignes et colonnes)Attention de ne pas tout mélanger !

- nom d’une colonne - valeur d’une « case »- valeur de plusieurs cases (ex : valeur des numéros produits commandés sur une commande donnée)

Page 79: «  Aux lecteurs bénévoles

H. Habrias 2006 79

Valeur 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

Page 80: «  Aux lecteurs bénévoles

H. Habrias 2006 80

Différence entre prédicat et expression

Un prédicat se prouve. On peut prouver qu’il est faux.

Nantes est sur la LoireDudule est l’amant d’Huguette5 = 8{1, 2, 3} <: {1, 2, 3, 4, 5}2 : {1, 2, 3}

Ce n’a pas de sens de vouloir prouver une expression

{1, 2, 3}8DuduleSophia-Antipolis

vraifaux

{(1, b), (4, b), (7, c)}

Page 81: «  Aux lecteurs bénévoles

H. Habrias 2006 81

Valeurs

On peut appeler les expressions des valeurs.

En B, on passe d’un prédicat à une expression, ainsi :

bool (5 = 9) = faux

L’Atelier B différencie bfalse qui représente le prédicat toujoursfaux (par exemple, 6=5) et FALSE qui est une expression.

Pourquoi distinguer valeur et objet ?

Page 82: «  Aux lecteurs bénévoles

H. Habrias 2006 82

« 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 dansla deuxièmequi appartientau troisième...Vous obtenez un événement sur lequelon n'a pas fini de jaser ! » R. Devos

Page 83: «  Aux lecteurs bénévoles

H. Habrias 2006 83

Un nom peut devenir valeur !

N°étudiant sexe Bac

23 masc C

45 masc B

78 fem C

93 masc C

Page 84: «  Aux lecteurs bénévoles

H. Habrias 2006 84

Attribut 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

Page 85: «  Aux lecteurs bénévoles

H. Habrias 2006 85

Triplets objet, attribut, valeur

Attribut : relation binaire d ’un ensemble d ’objets vers un ensemble de valeurs

voiturevestevélo

chapeau

bleurougevert

jaunenoir

Objets ValeursAttribut : couleur

aPourCouleur

Page 86: «  Aux lecteurs bénévoles

H. Habrias 2006 86

Triplets O-A-V

Objet Valeur

PrédicatSujet Objet

Attribut

PropriétéRessource Objet

Page 87: «  Aux lecteurs bénévoles

H. Habrias 2006 87

Le langage LEAP (Feldman, Rover, 1969)

A.O = V fils.Jean Melle = Henri Melle l ’assoc. Si dans la baseA.O = x fils.Jean Melle = x fils de Jean MelleA.x = V fils.x = Henri Melle père de Henri Mellex.O = V x.Jean Melle = Henri Melle nom de la relation entre

Jean Melle et Henri MelleA.x = z fils.x = z tous les couples père-fils

de la basex.Z = V x.z = Henri Melle Toutes les associations

ayant Henri Melle comme3e composant

x.O = z x.Jean Melle = z Toutes les associationsayant Jean Melle comme2e composant

x.y = z x.y = z Toutes les assoc de la base

Page 88: «  Aux lecteurs bénévoles

H. Habrias 2006 88

Langage et métalangage

Huguette, mange ta soupe !Oui maman !Huguette, range la table !Oui, maman !Huguette, arrête de dire « Oui maman » !Oui maman !

Page 89: «  Aux lecteurs bénévoles

H. Habrias 2006 89

Langage et métalangage

C’est complètement fou

Le mot court est plus long que le mot long !

C’est complètement fou « Le mot court est plus long que lemot long » !

C’est complètement fou « Le mot ‘court’ est plus long que le

mot ‘long’ »

Page 90: «  Aux lecteurs bénévoles

H. Habrias 2006 90

Combien ?

Page 91: «  Aux lecteurs bénévoles

H. Habrias 2006 91

Objet, où es-tu ?

" Revenons à une situation décrite par Spade : j’ai devant moi deux stylos à bille noirs. Le point crucial est : combien de couleurs vois-je ? Deux réponses s’offrent. 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 qu’inhé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.

Page 92: «  Aux lecteurs bénévoles

H. Habrias 2006 92

2 crayons, et pourquoi pas 2 couleurs ?

A l’opposé, é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 qu’elles ne sont pas et n’en 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 qu’il y a en chacune la même " entité universelle ". Alain de Libera in La querelle des universaux, Seuil, 1996, p. 18-19

Page 93: «  Aux lecteurs bénévoles

H. Habrias 2006 93

Roméo et Juliette

“ Ce que nous nommons Rose

Sous un tout autre nom sentirait aussi bon.

Et ainsi, Roméo, s’il ne s’appelait pas

Roméo, garderait cette chère perfection

Qu’il possède sans titre. Oh ! retire ton nom

Et pour ton nom qui n’est aucune partie de toi

Prends-moi toute entière ! ”

(La Pléiade, 1950, cité par J. Arsac )

Page 94: «  Aux lecteurs bénévoles

H. Habrias 2006 94

Sémiologie

Stoïciens

signifiéSemainomenon : ce qui est exprimé,ou contenu, qui ne représente pas uneentité physique

référent

Tynchanon :Objet auquel on seréfère, entité physiqueou événement ouaction

signifiant

Seimainon :expression perçuecomme entitéphysique

Page 95: «  Aux lecteurs bénévoles

H. Habrias 2006 95

Le nom

« Socrate Il n’appartient donc pas à tout homme, Hermogène, d’établir des noms, mais à un faiseur de noms ; et celui-là, c’est semble-t-il, le législateur, de tous les artisans le plus rare parmi les hommes. (…)Et celui qui sait interroger et répondre, l’appelles-tu autrement que dialecticien ?Ainsi (…) le travail du législateur, (consiste), semble-t-il, à établirle nom sous la direction du dialecticien, s’il veut établir les noms con-venablement (…)Il y a donc des chances, Hermogène, pour que l’institution des noms nesoit pas une petite affaire »

Platon, Cratyle

Page 96: «  Aux lecteurs bénévoles

H. Habrias 2006 96

Sémiologie

Stoïciens

signifiéIdée, concept de cheval« cheval »

référentsignifiant

/cheval/Tous les chevauxexistant, ayant existé,qui existeront

Page 97: «  Aux lecteurs bénévoles

H. Habrias 2006 97

Les stoïciens

Platon --> Aristote --> Théophraste -->les Mégarites et les Stoïciens

Page 98: «  Aux lecteurs bénévoles

H. Habrias 2006 98

SémiologieExistant, ayant existé, qui existeront ? !

signifié

référentsignifiant

/licorne/

« licorne »

Ensemble vide !« le référent licornen ’a jamais eu d ’existence réelle »

Page 99: «  Aux lecteurs bénévoles

H. Habrias 2006 99

SémiologieExister ?

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

Page 100: «  Aux lecteurs bénévoles

H. Habrias 2006 100

SémiologieExister ?

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

Page 101: «  Aux lecteurs bénévoles

H. Habrias 2006 101

Marco Polo et la licorne

" Marco Polo , arrivant à Sumatra, voit (mais c'est à présent que nous le comprenons) des rhinocéros. Il s'agit d'animaux qu'il n'a jamais vus. Par analogie avec d'autres animaux connus, il en distingue le corps, les quatre pattes et la corne. Or, sa culture mettait également à sa disposition la notion de licorne, laquelle était justement définie comme un quadrupède avec une corne sur la tête. Marco Polo désigne donc ces animaux du nom de licornes.

Partie de la tapisserie de laDame à la licorne, Musée deCluny, Paris

Page 102: «  Aux lecteurs bénévoles

H. Habrias 2006 102

La licorne de Davis et Hersh

Vous pensez donc je suis

Page 103: «  Aux lecteurs bénévoles

H. Habrias 2006 103

Marco Polo et la licorne

Puis il s'empresse, chroniqueur honnête et pointilleux, de nous dire que ces licornes sont néanmoins fort étranges, c'est-à-dire bien peu spécifiques, puisqu'elles ne sont pas blanches et élancées mais ont "le même poil que le buffle, les pieds comme les éléphants", la corne est noire et disgracieuse, la langue épineuse et la tête semblable à celle d'un sanglier.

Marco Polo semble prendre une décision : plutôt que de segmenter encore le contenu en ajoutant un nouvel animal à l'univers des vivants, il corrige la description en vigueur des licornes, qui, si elles existent, sont donc telles qu'il les a vues et non telles que la légende le raconte.

Il modifie l'intention et laisse l'extension en suspens. "

Umberto Eco, Kant et l'ornithorynque" (Grasset, 1997)

Page 104: «  Aux lecteurs bénévoles

H. Habrias 2006 104

Etre ?

« Sur la question de savoir si l’on peut accepter les morts commemembres des académies ? »

Lichtenberg

Page 105: «  Aux lecteurs bénévoles

H. Habrias 2006 105

SémiologieSignifié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érentsignifiant

Page 106: «  Aux lecteurs bénévoles

H. Habrias 2006 106

Sémiologie

signifié

Référentobjet (Pierce)denotatum (Morris)Bedeutung (Frege)dénotation (Russell)extension (Carnap)

signifiant

Qu ’est ce que le signe ? Ce qui est à gauche ?

Page 107: «  Aux lecteurs bénévoles

H. Habrias 2006 107

Sémiologie

signifié

référentSignifiant (Saussure)signe (Pierce)symbole (Ogden(Richards)véhicule du signe (Morris)expression (Hjelmslev)representamen (Pierce)sème (Buyssens)

Page 108: «  Aux lecteurs bénévoles

H. Habrias 2006 108

De Saussure : le signe linguistique

Unité à deux faces :Le signifiant et le signifié

Extrait du Cours de LinguistiqueGénérale

Page 109: «  Aux lecteurs bénévoles

H. Habrias 2006 109

Sémiologie

signifié

référentsignifiant

Linguistique

Page 110: «  Aux lecteurs bénévoles

H. Habrias 2006 110

Sémiologie

Signifiant :

« aliquid stat pro aliquo »

« Something which stands to somebody for something in some respect or capacity »

« Quelque chose qui tient lieu pour quelqu ’un de quelque chose sous quelque rapport ou à quelque titre »

Pierce

Page 111: «  Aux lecteurs bénévoles

H. Habrias 2006 111

Sé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

Page 112: «  Aux lecteurs bénévoles

H. Habrias 2006 112

Page 113: «  Aux lecteurs bénévoles

H. Habrias 2006 113

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

Page 114: «  Aux lecteurs bénévoles

H. Habrias 2006 114

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

Page 115: «  Aux lecteurs bénévoles

H. Habrias 2006 115

Modè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

Page 116: «  Aux lecteurs bénévoles

H. Habrias 2006 116

Abstraction comme idéalisationPhysique (réel) Mathématique (idéal)

IdéalisationConstructionde modèle

Objetréel

Objetidéal

Vérification dans lemonde réel

Déductionmathématique

Implicationpour le monderéel

Page 117: «  Aux lecteurs bénévoles

H. Habrias 2006 117

Abstraction comme extraction

Qu’ont en commun ces deux figures ?

Page 118: «  Aux lecteurs bénévoles

H. Habrias 2006 118

Abstraction comme extraction

O

AB C

DE F

GH I

JS

La porte A conduit à deuxcouloirs B et C etc.

Davis et Hersh, L’univers mathématique, Gauthier-villars, 1985

O

A

B

C

D

E

F

G

H

I

JS

Page 119: «  Aux lecteurs bénévoles

H. Habrias 2006 119

Abstraction comme extraction

A BC D

E F

De A à B, un seul couloir, de B à C, deux couloirs…

R = {((A, B), 1), ((B, C), 2), ((C, D), 2), ((D, E), 2), (E, F), 1)}

Cette relation R : POINT * POINT +-> NAT1 peut être représentéepar une matrice oùR |>> ran (R) = ((POINT * POINT) - dom (R)) --> {0}appelée matrice d’incidence

Page 120: «  Aux lecteurs bénévoles

H. Habrias 2006 120

Spécifier

Attention ! Spécifier n’est pas dessiner des boîtes et des flèches (boxologie)

Il faut :1) Une syntaxe formelle2) Une sémantique formelle (qui peut être dénotationnelle ouopérationnelle

Spécifier n’est pas écrire un algorithme. Mais on passe de laSpéc au programme en prouvant le raffinage.

Page 121: «  Aux lecteurs bénévoles

H. Habrias 2006 121

Boxologie

Page 122: «  Aux lecteurs bénévoles

H. Habrias 2006 122

Complication

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 ?

Page 123: «  Aux lecteurs bénévoles

H. Habrias 2006 123

Théorie des ensembles

Prédicat d’appartenanceEnsembles de baseProduit cartésienEnsemble des sous-ensembles

Rappel : À gauche du signe d’appartenance, si on a un ensemble, à droite on a un ensemble d’ensembles.A gauche du signe d’appartenance, si on a un ensemble d’ensemblesà droite, on a un ensemble d’ensemble d’ensembles

Page 124: «  Aux lecteurs bénévoles

H. Habrias 2006 124

Axiome de fondation

Partant d’un ensemble, si on prend un de ses éléments (une boîte)Et qu’on prend un élément dedans (une boîte),Et qu’on prend un élément dedans cette boîte, etc.On est obligé de s’arrêter.On arrive à un niveau où l’on ne peut plus décomposer.

Cet axiome interdit qu’un ensemble puisse se retrouver à l’intérieurde lui-même.X : X

Page 125: «  Aux lecteurs bénévoles

H. Habrias 2006 125

Typage

« Dans un village d’Andalousie, le barbier rase toutes les personnesQui ne se rasent pas elles-mêmes »

Qui rase le barbier ?

Page 126: «  Aux lecteurs bénévoles

H. Habrias 2006 126

B. Russell

Page 127: «  Aux lecteurs bénévoles

H. Habrias 2006 127

Ceci n’est pas une pipe (Magritte)

Page 128: «  Aux lecteurs bénévoles

H. Habrias 2006 128

Invariant

MACHINEMDBS

SETSETUDIANT; GROUPE = {g1, g2, g3}

VARIABLESpromo , estMembreDe

INVARIANT promo <: ETUDIANT &estMembreDe : promo +-> GROUPE

INITIALISATIONpromo := {} || estMembreDe := {}

Page 129: «  Aux lecteurs bénévoles

H. Habrias 2006 129

Ensembles 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

S’écrit en B

SETSA; B

Ensembles donc constantes !Incommensurables.

On n’a pas le droit d’écrire :A /\ B ou encore A \/ B

Page 130: «  Aux lecteurs bénévoles

H. Habrias 2006 130

Produit cartésien et POW

On construit des ensembles à l’aide du produit cartésien (*)et de l’ensemble des sous-ensembles (ens. des parties) POW

Attention ! Ne pas confondre un élément d’un ensemble de baseet un ensemble.

Page 131: «  Aux lecteurs bénévoles

H. Habrias 2006 131

Eléments des ensembles de base

SETS DEPARTEMENT; COMMUNEVARIABLES communes, départements, estDansINVARIANT communes <: COMMUNE & départements <: DEPARTEMENT & estDans : communes -->> départements

Page 132: «  Aux lecteurs bénévoles

H. Habrias 2006 132

SETS

SETS COMMUNEVARIABLES communes, départementsINVARIANT communes <: COMMUNE & départements <: POW (COMMUNE)

Un département est un ensemble de communes. On ne déciderde créer deux nouveaux départements sans, en même temps,décider de communes qui le constitueront. Rien ne distingue unensemble vide de communes d’un autre !

Page 133: «  Aux lecteurs bénévoles

H. Habrias 2006 133

1ière forme normale de Codd

Qu’est-ce qu’une relation n-aire (à la Codd) en Première forme normale ?

Une relation dont les constituants prennent pour valeur deséléments d’ensembles de base

Page 134: «  Aux lecteurs bénévoles

H. Habrias 2006 134

Et 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 <: NAT * NOM * VILLE * VILLE

Page 135: «  Aux lecteurs bénévoles

H. Habrias 2006 135

Regroupement de fonctions binaires

aPourN° : PERSONNE+-> NAT /* N°personne == ran (aPourN°) */

aPourNom : PERSONNE +-> NOM /* Nom de Personne == ran (aPourNom) */

estNéA : PERSONNE +-> VILLE /* ville de naissance == ran (estNéA) */

faitSesEtudesA : PERSONNE +-> VILLE /* ville d'études == ran (faitSesEtudesA) */

Page 136: «  Aux lecteurs bénévoles

H. Habrias 2006 136

La méthode B

Son auteur : Jean-Raymond Abrial

C’est lui qui a conçu la notation Z,

Puis B

Qui est la méthode qui a fait l’objet du plus grand nombre decommunications à 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.

Page 137: «  Aux lecteurs bénévoles

H. Habrias 2006 137

Une machine abstraite

Variablesavec un invariant

Constantesavec propriétés

op1 op3

op4op2

Un état encapsulé

Une interface : des « boutons », des noms d’opération avec paramètresd’entrée, de sortie

Initialisation Corps des opérations

Page 138: «  Aux lecteurs bénévoles

H. Habrias 2006 138

Machine abstraite

MACHINE (paramètres)CONSTRAINTS

prédicat sur les paramètresSETS

ensembles de baseCONSTANTS

liste des constantesPROPERTIES

prédicat sur les constantesVARIABLES

liste des variables

INVARIANTprédicat sur les variables

INITIALISATIONpour s’assurer que

notre spec a un modèleOPERATIONS

préconditionnéesougardées

END

Page 139: «  Aux lecteurs bénévoles

H. Habrias 2006 139

Autres types de machines

En B, on a aussi :des REFINEMENTdes IMPLEMENTATIONS

Tout le développement est assisté par la preuve.

Page 140: «  Aux lecteurs bénévoles

H. Habrias 2006 140

2 variables

promo

ETUDIANTg1

g2

g3

GROUPEestMembreDe

VARIABLES estMembreDe, promo

INVARIANT promo <: ETUDIANT & estMembreDe : promo +-> GROUPE

Page 141: «  Aux lecteurs bénévoles

H. Habrias 2006 141

Pré-condition (PRE)

MACHINEMDBS

SETSETUDIANT; GROUPE = {g1, g2, g3}

VARIABLESpromo ,estMembreDe

INVARIANT promo <: ETUDIANT &estMembreDe : promo +-> GROUPE

INITIALISATIONpromo := {} || estMembreDe := {}

OPERATIONS ajoutMembre (ee, gg) = PRE ee : promo & gg : GROUPE & ee /: dom (estMembreDe) THEN

estMembreDe := estMembreDe \/ {ee |-> gg}END;

Page 142: «  Aux lecteurs bénévoles

H. Habrias 2006 142

Précondition (La porte)

MACHINE MaPorteSETS ETAT = {ouverte, fermée}VARIABLES étatMaPorte INVARIANT étatMaPorte : ETATINITIALISATIOn étatMaPorte :: ETAT

OPERATIONS ouverture == étatMaPorte := ouverte; fermeture == étatMaPorte := fermée;Rep <-- quelEtat == Rep := étatMaPorteEND

Ici la précondition est toujours vraie

Voir différence avec la garde

Page 143: «  Aux lecteurs bénévoles

H. Habrias 2006 143

On peut ne pas respecter la pré-condition

Une pré-condition est une pré-condition d’emploi.

Rien ne vous empêche de ne pas respecter la pré-condition. Maisvous êtes prévenus. Si vous voulez que l’opé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 n’aurez pas une fonction division.

Page 144: «  Aux lecteurs bénévoles

H. Habrias 2006 144

Crash !

La pré-condition d’une opération n’est pas dans le code de cetteopération.

Ce n’est pas alors que vous avez sauté par la fenêtre qu’il fautexécuter « si fenêtre à plus de 5 mètres, ne pas sauter »…

Trop tard…C’est le crash !

Comme pour Ariane 5. Qui est sorti dudomaine du vol. (voir notion de domaine d’une relation)

Page 145: «  Aux lecteurs bénévoles

H. Habrias 2006 145

Le crash d’Ariane 5

Accélération : min4..max4

x : min4..max4

Fonction de conversion de A4

y

Ariane 4

Page 146: «  Aux lecteurs bénévoles

H. Habrias 2006 146

Ariane 5

Accélération : min5..max5

x : min4..max4

Fonction de conversion de A4

y

Non respecté car max5 > max4

Levée d’une exception

Commutation sur un autre calculateur et exécution de la même fonction

Page 147: «  Aux lecteurs bénévoles

H. Habrias 2006 147

La chute…après la faute !

y := code erreur

ComposantB

Braquage tuyères

Copie du composant B

Page 148: «  Aux lecteurs bénévoles

H. Habrias 2006 148

La garde (SELECT)

La garde empêche d’effectuer l’opération.

Quand on raffine on renforce la garde, on étire le temps.

Si nous avons le temps, nous parlerons du « B événementiel »

OuvrirPorte == SELECT etatPorte = fermeeTHEN etatPorte := ouverte

END;

Page 149: «  Aux lecteurs bénévoles

H. Habrias 2006 149

Un événement

Est spécificié en B événementiel comme une opération gardée

OuvrirPorte == SELECT etatMaPorte = fermeeTHEN etatMaPorte := ouverte

END;

Ouverture == PRE etatMaPorte = fermee THEN etatMaPorte := ouverte

END;

Précondition plus forte que ce qu’imposel’invariant !

Page 150: «  Aux lecteurs bénévoles

H. Habrias 2006 150

Calcul de la WPC

[x:= x + 1] (x < 100)= x + 1 < 100 <=> x < 99

[x := y ||z := k] (x > k)= y > k

[x, b := b, a] (a <= b)= a<= a

Plus faible pré-condition (Dijkstra)

Page 151: «  Aux lecteurs bénévoles

H. Habrias 2006 151

IndéterminismeMACHINE

MDBSSETS

ETUDIANT; GROUPE = {g1, g2, g3}VARIABLES

promo ,estMembreDeINVARIANT

promo <: ETUDIANT &estMembreDe : promo +-> GROUPE

INITIALISATIONpromo := {} || estMembreDe := {}

ajoutEtudiant = PRE ETUDIANT – promo /= {}

THEN ANY ee WHERE ee : ETUDIANT – promo THEN

promo := promo \/ {ee}END;

Page 152: «  Aux lecteurs bénévoles

H. Habrias 2006 152

Définitions

MACHINEMDBS

SETSETUDIANT; GROUPE = {g1, g2, g3}

VARIABLESpromo ,estMembreDe

INVARIANT promo <: ETUDIANT &estMembreDe : promo +-> GROUPE

INITIALISATIONpromo := {} || estMembreDe := {}

DEFINITIONS groupesAffectés = =ran (estMembreDe)

Une définition n’est pasune variable !

Page 153: «  Aux lecteurs bénévoles

H. Habrias 2006 153

Ce qu’est une spéc abstraite

Une spécification abstraite :

- n’est pas exécutable- peut être indéterministe- les opérations peuvent être pré-conditionnées- pas de séquencement

Intérêt ?

Page 154: «  Aux lecteurs bénévoles

H. Habrias 2006 154

Pré-condition

La pré-condition permet :

- d’expliciter l’opération par ses conditions d’exécution- de prouver que, si l’on appelle l’opération sous sa

pré-condition, l’invariant est respecté

Bien sûr, la preuve est relative aux « propriétés » exprimées dansl’invariant. Si invariant « léger », on ne prouvera pas grand chose !

Page 155: «  Aux lecteurs bénévoles

H. Habrias 2006 155

Conjecture

Salle des IllustresCapitole, Toulouse

Page 156: «  Aux lecteurs bénévoles

H. Habrias 2006 156

Démonstration de 2 = 1

Axiome a = b Multiplions chaque terme par a :

a2 = ab

Ajoutons à chaque terme, a2 - 2 ab

a2 + a2 -2ab = ab + a2 - 2ab

Ce qui se simplifie :2 (a2 - ab) = a2 - ab

Divisons pour finir les deux termes par a2 - ab

2 = 1

Page 157: «  Aux lecteurs bénévoles

H. Habrias 2006 157

La preuve

Andrew Wiles et la preuve dela conjecture de Fermat

La preuve du théorème dePythagore

Il n’y a pas de solution en nombresentiers pour xn + yn = zn quandn > 2

Page 158: «  Aux lecteurs bénévoles

H. Habrias 2006 158

La méthode Shadok

Page 159: «  Aux lecteurs bénévoles

H. Habrias 2006 159

Combien de chemins ?

Page 160: «  Aux lecteurs bénévoles

H. Habrias 2006 160

Nombre de chemins = 1014

220 + 519+…+51

Où 5 est le nombre de chemins dans le corps de la boucle.

10 000 000 000 000 0 chemins !

Et tester les chemins n’est qu’une des stratégies de test ! Et une stratégie ne couvre pas tous les cas !

G.J. Myers, The Art of Software Testing

Page 161: «  Aux lecteurs bénévoles

H. Habrias 2006 161

Obligation de preuve

Pré-condition & Invariant => [Substitution] Invariant

INVARIANT x < 100

OPERATIONSincrémentation =

PRE x < 100

THENx := x + 1

END;

Calcul de pré-condition

[x:= x + 1] (x < 100)= x + 1 < 100 <=> x < 99

Page 162: «  Aux lecteurs bénévoles

H. Habrias 2006 162

Ex-falso quodlibet

P or Q not P => QP Q (P => Q) & (Q => P)

btrue or Q btrueD’après la définition du or, on a :

btrue or Q not (btrue) => Q bfalse => Q

Donc il faut considérer que bfalse => Q est toujours vrai.

Page 163: «  Aux lecteurs bénévoles

H. Habrias 2006 163

To be or not to be !

Idem non esse et non probari

Ne pas être ou ne pas être prouvé, c'est tout un.

Page 164: «  Aux lecteurs bénévoles

H. Habrias 2006 164

De la logique à l’informatique

Les axiomes des substitutions généralisées

[x := E] P P [E/x][x, y := E, F] P P[E, F/x, y][skip] P P[PRE P THEN S]I P & I => [S] I Préconditionnée[SELECT P THEN S] I P => [S] I Gardée[CHOICE S OR T] I [S] I & [T] I Choix indéterministe[IF E THEN S ELSE T]I (E & [S]I) or (not E & [T] I)

[x := x + 1] (x < 10) se lit : « la substitution de x + 1 à x dans (x<10)établit que (x < 10). C’est la plus faible précondition.

Page 165: «  Aux lecteurs bénévoles

H. Habrias 2006 165

Le raffinage

1) On réduit l’indéterminisme

2) On affaiblit les pré-conditions

3) On renforce les gardes

4) On s’approche 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

Page 166: «  Aux lecteurs bénévoles

H. Habrias 2006 166

Raffinage

Page 167: «  Aux lecteurs bénévoles

H. Habrias 2006 167

Raffinage

Avant Après

Abstrait

Concret

Opération S

Opération T

II

J J

Réduction indéterminisme

I & J & P => Q & [T] not [S] not J

Page 168: «  Aux lecteurs bénévoles

H. Habrias 2006 168

Laurent Ruquier

« L’administration aura désormais deux mois pour répondre au courrier des usagers : les

fonctionnaires ont choisi juin et novembre ! »

Laurent Ruquier, Le Mois par moi, débloque notes II, Michel Laffon, 1997

Formalisation en B i.e. avec logique et notation ensembliste

Page 169: «  Aux lecteurs bénévoles

H. Habrias 2006 169

Laurent Ruquier

SETSMOIS

VARIABLESmoisDeRéponse

INVARIANTmoisDeRéponse <: MOIS &card (moisDeRéponse) = 2

instanciation :moisDeRéponse = {juin, novembre}

Page 170: «  Aux lecteurs bénévoles

H. Habrias 2006 170

Laurent Ruquier

SETSMOIS; COURRIER

VARIABLESdateReception, dateReponse, courriersReçus

INVARIANTcourriersReçus <: COURRIER &dateReception : courriersReçus --> NAT &dateReponse : courriersReçus +-> NAT &! (d1|-> d2) . (d1|-> d2) : dateReception~ ; dateReponse => (d2 - 60) < 60

Page 171: «  Aux lecteurs bénévoles

H. Habrias 2006 171

La notation UML…

… utilisons le concept d’ensemble (une relationest un ensemble)

… et évitons les problèmes connus pendant 20 siècles !

Page 172: «  Aux lecteurs bénévoles

H. Habrias 2006 172

Une mauvaise notation (OMT)

Rappel : une information réduit le champs des possible. C’estune contrainte.

A B A B

A B A B

A B

A >->> B A >--> B

A --> B A >+-> B

A <--> B

Page 173: «  Aux lecteurs bénévoles

H. Habrias 2006 173

Une mauvaise notation

Avec cette notation, plus il y a de contrainte, moins on a designifiants !

Imaginez la même chose pour le code de la route ou pour unun code de droit !

Page 174: «  Aux lecteurs bénévoles

H. Habrias 2006 174

Le 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

Page 175: «  Aux lecteurs bénévoles

H. Habrias 2006 175

Notation UML

A B

A >->> B

1 1 R ( A, B)

A B

A B

A >--> B

A >+-> B

0..1 1R1(A, B)

R2 (B)

0..1 0..1 R1 (A, B)

R2 (A) R3 (B)

Page 176: «  Aux lecteurs bénévoles

H. Habrias 2006 176

Au secours !

Voici ce que l’on trouve dans un livre plusieurs fois réédité relatif à UML (P-A Muller, N. Gaertner, Modélisation avec UML, Eyrolles). Le texte suivant est même assez souvent cité tel quel! «Qualification des associations La qualification des associations, aussi dénommée restriction d’une association, consiste à sélectionner un sous-ensemble d’objets parmi l’ensemble des objets qui participent à une association. La restriction est réalisée au moyen d’un tuple d’attributs particuliers, appelé qualificatif ou clé, qui est utilisé conjointement avec un objet de la classe source.Le qualificatif est placé sur l’extrémité d’association au niveau de la classe source, dans un compartiment rectangulaire. Le qualificatif appartient pleinement à l’association et non aux classes associées.L’instanciation d’une association qualifiée définit le nom des objets source et destination, et la valeur du qualificatif. Ainsi, chaque instance de la classe A, accompagnée de la valeur du qualificatif, identifie un sous-ensemble des instances de B qui participent à l’association. La qualification partitionne l’ensemble d’arrivée et réduit ainsi la multiplicité de l’association. La paire (instance de A, valeur du qualificatif) identifie un sous-ensemble des instances de B.La restriction d’une association peut être opérée en combinant les valeurs des différents attributs qui forment le qualificatif.» 

Page 177: «  Aux lecteurs bénévoles

H. Habrias 2006 177

« association qualifiée » ?!

salle

NAT

Bât

U

estDans

aPourN°

estDans : salle --> Bât

aPourN° : salle --> NAT

estDans >< aPourN° : salle >--> Bât * NAT

Salle (n°)

salle bâtiment

Page 178: «  Aux lecteurs bénévoles

H. Habrias 2006 178

Bottle

Size : Number product(Date)

SETS BOUTEILLE; FABRICANT; DATEINVARIANT fabricants <: FABRICANT & bouteilles <: BOUTEILLE & aEtéProduitePar : bouteilles -->> fabricants & aEtéProduiteLe : bouteilles -->> DATE & aPourTaille : bouteilles +-> NAT &

aEtéProduitePar >< aEtéProduiteLe : bouteilles >--> fabricants

Manufacturer

Page 179: «  Aux lecteurs bénévoles

H. Habrias 2006 179

« satecharts » en B

Deux solutions :

1) avec étati <: mesObjetsétati étant l’ensemble des objets dans l’état iautant de variable Etati que l’états types i

2) aPourEtat : mesObjets --> ETATS

Et pour chaque solution, - soit B classique- soit B événementiel

Page 180: «  Aux lecteurs bénévoles

H. Habrias 2006 180

« satecharts » en B, solution 1

ETAT1 ETAT2Trans1(p)[garde]/actions

Trans1 (o, p) =PRE garde & o : ETAT1 & p : T

THENétat1 := état1 – {o} ||état2 := état2 \/ {o} ||actions

END

état1 est une variabledont la valeur est l’ensemble des objets quisont dans l’Etat1

Page 181: «  Aux lecteurs bénévoles

H. Habrias 2006 181

« statecharts » en B, sol 1Objets dans

l’état 1= état1

Objets dans

l’état 2 = état2

transition

ETAT1 ETAT2Trans1(p)[garde]/actions

Page 182: «  Aux lecteurs bénévoles

H. Habrias 2006 182

« statecharts » en B, sol 2

ETAT1 ETAT2Trans1(p)[garde]/actions

aPourEtat :mesObjets --> ETATSObjets dans

l’état 1

== aPourEtat~ [{ETAT1}

Page 183: «  Aux lecteurs bénévoles

H. Habrias 2006 183

1e solution, B événementiel

ETAT1 ETAT2Trans1(p)[garde]/actions

La transition ne peut avoir lieu si l’objet o n’est pas dans le bon étatet que la garde n’est pas satisfaite.

Page 184: «  Aux lecteurs bénévoles

H. Habrias 2006 184

En B événementiel

Trans1 =

ANY o, p WHERE o : mesObjets & p : T

THEN

SELECT garde & o : état1

THEN

état1 := état1 – {o} ||

état2 := état2 \/ {o} ||

actions

END

END

Page 185: «  Aux lecteurs bénévoles

H. Habrias 2006 185

« satecharts » en B, solution 2

ETAT1 ETAT2Trans1(p)[garde]/actions

aPourEtat : mesObjets --> ENS_D_ETATSETAT1 : ENS_D_ETATSETAT2 : ENS_D_ETATS

état1 de la solution 1 est défini comme :état1 == aPourEtat ~ [{ETAT1}]

Page 186: «  Aux lecteurs bénévoles

H. Habrias 2006 186

« satecharts » en B, solution 2

ETAT1 ETAT2Trans1(p)[garde]/actions

aPourEtat : mesObjets --> ENS_D_ETATS

Trans1 = ANY o, p WHERE o : mesObjets & aPourEtat (o) = ETAT1 & p : T SELECT garde

THENaPourEtat (o) := ETAT2 ||actions

END

Page 187: «  Aux lecteurs bénévoles

H. Habrias 2006 187

Automates de Harel en B

Dans ce qui suit nous utiliserons une présentation avecB classique.i.e. avec des préconditions et non des gardes

Page 188: «  Aux lecteurs bénévoles

H. Habrias 2006 188

Automates de Harel en B

S1 Sn…

SETSSS = {S1, …, Sn}

VARIABLESss

INVARIANTss : SS

INITIALISATIONss := S1

Page 189: «  Aux lecteurs bénévoles

H. Habrias 2006 189

Initialisation indéterministe

S1

Sn

Initialisationindéterministe

ss :: SS

Page 190: «  Aux lecteurs bénévoles

H. Habrias 2006 190

Transition

S1 S2E

E =IF ss = S1

THENss := S2

END;

Page 191: «  Aux lecteurs bénévoles

H. Habrias 2006 191

Plusieurs transitions, même évt

S1 S2E

Si S`E

OPERATIONE =

CASE ss OF EITHER S1 THEN ss := S2…OR Si THEN ss := ss` END;

Page 192: «  Aux lecteurs bénévoles

H. Habrias 2006 192

Action sur événement

S1 S2E/act

OPERATIONSE =

IF ss = S1 THEN ss := S2 ||act

END

Page 193: «  Aux lecteurs bénévoles

H. Habrias 2006 193

Action sur initialisation

S1/act

INITIALISATIONss := S1 ||act

Page 194: «  Aux lecteurs bénévoles

H. Habrias 2006 194

Condition sur transition

S1 S2E [cond]/act

OPERATIONSE =

IF ss = S1 & cond THEN

ss := S2 ||act

END;

Page 195: «  Aux lecteurs bénévoles

H. Habrias 2006 195

Conditions sur plusieurs trans.

S1

S1’E[cond1]/act1

S1’E[condi]/acti

OPERATIONSE = SELECT ss = S1 & cond1 THEN ss := S1’ || act1…WHEN ss = S1 & condi THEN ss := Si’ || actiELSE skipEND;

Page 196: «  Aux lecteurs bénévoles

H. Habrias 2006 196

Transition avec paramètre

S1 S2E(para) [cond]/act

OPERATIONSE (para) =

IF ss = S1 & cond THENss := S2 ||act

END;

Page 197: «  Aux lecteurs bénévoles

H. Habrias 2006 197

Transitions simultanées

S1

S3

S2

E(para) [cond1]/act1

[cond2]/act2

E(para) =IF ss = S1 & cond1 &cond2 THEN

ss := S3 ||act1 ||act2

END;

Page 198: «  Aux lecteurs bénévoles

H. Habrias 2006 198

Entrée dans super état

S1 R1 R2…E

S2

SETSSS = {S1, S2}; RR = {R1, R2}

VARIABLESss, rr

INVARIANTss : SS & rr : RR

OPERATIONSE = IF ss = S1 THEN ss := S2 || rr := R1 END;

Page 199: «  Aux lecteurs bénévoles

H. Habrias 2006 199

Etats indépendants simultanés

Q1

Qn Rm

R1

… …

Q RS1

SETSSS = {S1,…, Sn};QQ = {Q1,.., Qn};RR = {R1,…, Rm}

VARIABLESss, qq, rr

INVARIANTss : SS & qq : QQ & rr : SS

Page 200: «  Aux lecteurs bénévoles

H. Habrias 2006 200

Transition vers deux sous-états

Q1

R1 Rm

Qn

S1

S1

OPERATIONSE = IF ss = S1 THEN ss := S2 || qq := Q1 || rr := R1 END;

Page 201: «  Aux lecteurs bénévoles

H. Habrias 2006 201

2 transitions dans 2 états conc.

Q1

R1 R2

Q2

S1

OPERATIONSE = BEGIN IF qq = Q1 THEN

qq := Q2 END || IF rr = R1 THEN

rr := R2 ENDEND;

E

E

Page 202: «  Aux lecteurs bénévoles

H. Habrias 2006 202

Communication

Communication entre états concurrents :

1) Les états concurrents peuvent communiquer par variables globales.Les var. globales peuvent être mises à jour dans les actions et luesdans les actions et les conditions2) La condition ou l’action d’une transaction peut dépendre du sous-état concurrent d’un état concurrent3) Les états concurrents peuvent communiquer par diffusion des événements. Sur la diffusion d’un événement, tous les étatsconcurrents réagissent simultanément.

Page 203: «  Aux lecteurs bénévoles

H. Habrias 2006 203

Gé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 l’environnement

-En B, la diffusion d’un événement, est exprimée par l’appel de l’opé-ration pour cet événement

S1 S2E1/E2

OPERATIONSE = IF ss = S1 THEN ss := S2 || E2 END;

Page 204: «  Aux lecteurs bénévoles

H. Habrias 2006 204

Q

R

T

V

U

X Y

W

P

S

E H E

F/G

G/H

E

(Q, T, X) -E--> (R, U, X)

(R, U, X) - E --> (Q, V, Y)

MACHINEM

SETS P={Q, R}; S = {T, U, V}; W = {X, Y}VARIABLES p, s, wINVARIANT p:P & s:S & w:WINITIALISATION p := Q || s := T || w := XDEFINITIONS

HH = IF p=R THEN p:= Q END;GG = IF w = X THEN w:= Y END;

Page 205: «  Aux lecteurs bénévoles

H. Habrias 2006 205

OPERATIONSE = 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 = HHEND;

Page 206: «  Aux lecteurs bénévoles

H. Habrias 2006 206

Réutiliser des composants

- La réutilisation nécessite l’abstraction : on ne doit pasavoir à lire le code de l’opération - de disposer des Pré-conditions d’emploi des opérations- d ’être sûr que si on respecte la pré-condition l’opération faitce qui est annoncé (choisir un nom qui est convenable.)

On ne fera pas l’économie de l’attention au choix des mots.

Page 207: «  Aux lecteurs bénévoles

H. Habrias 2006 207

Composant

Comme « objet », le terme recouvre tout et n’importe quoi pourvuque ça fasse vendre !

D’après Clemens Szyperski :

« Component Software, Beyond Object-Oriented Programming »Second edition, Addison-Wesley, 2002, Pearson Publications

Page 208: «  Aux lecteurs bénévoles

H. Habrias 2006 208

Caractéristiques essentielles

- unité indépendante de déploiement

Donc séparé de son environnement et des autres composants Encapsule ses services N’est 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

Page 209: «  Aux lecteurs bénévoles

H. Habrias 2006 209

Caracté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 n’est des choses comme son numéro de série pour le comptable) Un état d’un composant sert pour des raison de performances (comme un cache) Un composant est chargé et activé dans un système. Ca n’a aucun sens d’avoir plusieurs copies d’un composantdans un système

Page 210: «  Aux lecteurs bénévoles

H. Habrias 2006 210

Composant vs Module

Exemples :

- un serveur de base de données

-Attention : ce n’est pas parce qu’il y a peut-être une seule basede données maintenue par ce serveur qu’il faut confondre l’instance avec le concept

L’ensemble {base de données , serveur} peut être vu commeun module avec un état observable.

Page 211: «  Aux lecteurs bénévoles

H. Habrias 2006 211

Le plan vs les objets

- Séparation entre

- le plan que l’on ne peut modifier (« immutable »)

- les instances que l’on peut modifier (« mutable »)

(donc ce sont des variables et non des expressions)

Page 212: «  Aux lecteurs bénévoles

H. Habrias 2006 212

Confusion !

Le concept de composant n’a pas trait au niveau de l’objet !

N ’est donc pas relié à la vie des objets

Ne traite pas de l’état de l’objet.

Page 213: «  Aux lecteurs bénévoles

H. Habrias 2006 213

Objet es-tu là ?

Caractéristiques de l’objet (chez les informaticiens) :

- « unité d’instanciation » (c’est un élément d’un ensemble, élément obtenu par demande d’instanciation à la classe dontl’objet est un représentant). Il a une « identité unique »(curieuse expression. Qu’est-ce qu’une identité non unique ?)

Ne peut être instancié qu’en partie.

On peut avoir aussi des objets « prototypes » dont on fait des clones.

Page 214: «  Aux lecteurs bénévoles

H. Habrias 2006 214

Objet es-tu là ?

- Doit avoir un état qui peut être observable extérieurement

- Encapsule son état et son comportement

Page 215: «  Aux lecteurs bénévoles

H. Habrias 2006 215

Vers le génie logicielNous n’avons pas parlé du paradigme des processusséquentiels communicants (CCS de Milner, CSP de Hoare)…de « model-checking », de « logique temporelle », de Zénond’Elée (sud de l’Italie), 490 av. J.-C, élève de Parménide et deses paradoxes (Achille et la tortue, la flèche, la course d’Achille)

Ce sera pour une autre fois… mais vous pouvez fréquentervotre bibliothèque et le web.

On n’a pas attendu UML pour utiliser automates, expressionsrégulières, cardinalités (pardon multiplicités !!!) de relations. Lisez lesFondamentaux !Bon voyage dans le monde du génie logiciel à construire.

Page 216: «  Aux lecteurs bénévoles

H. Habrias 2006 216

Modélisation de processus

CCS (Calculus of Communicating System) de MilnerCSP (Communicating Sequential Process) de Hoare

- CCS pur : pas de variable

Qu’est-ce qu’un état ?

Un état : comportement possible

Page 217: «  Aux lecteurs bénévoles

H. Habrias 2006 217

Composition parallèle |

C1 C2in

Out’m’ m

C1 = in. m’. C1C2 = m . out’ . C2

System1 = (C1 | C2) \ {m}

\ {m} est la restriction

Page 218: «  Aux lecteurs bénévoles

H. Habrias 2006 218

Etat : comportement possible

C1 = in. m’. C1C2 = m . out’ . C2

System1 = (C1 | C2) \ {m}

System1

in

m’.C1 |C2)\{m}

C1 |out’.C2)\{m}

in

m’.C1 |out’.C2)\{m}

out’

out’

L’action invisible

Page 219: «  Aux lecteurs bénévoles

H. Habrias 2006 219

Diagramme de transition

System1

in

m’.C1 |C2)\{m}

C1 |out’.C2)\{m}

in

m’.C1 |out’.C2)\{m}

out’

out’

S0

S1

S2

in

out’in

out’

Page 220: «  Aux lecteurs bénévoles

H. Habrias 2006 220

Projet COLOSS

Composants et LOgicielS Sûrs

Travaux en coursau LINA

Page 221: «  Aux lecteurs bénévoles

H. Habrias 2006 221

Caractérisation du composant

Un composant est caractérisé par :- son nom (l’identifie)- son état : informations détenues et contraintes sur ces infos- son interface d’entrée : services offerts par le composant- son interface de sortie : services requis par le composant- son comportement : description des services et des conditions d’utilisation et d’enchaînement de ces services- ses propriétés : les conditions requises pour une utilisation et unfonctionnement correct du composant

Page 222: «  Aux lecteurs bénévoles

H. Habrias 2006 222

Services

-interface du service :- la signature- la précondition d’appel- la postcondition du déroulement du service

- le déroulement d’un service, échange reposant sur des servicesrequis et offerts, donnés dans l’interface :

- un ensemble de noms de services offerts non visibles rendusaccessibles au sein du service

- un ensemble de noms de services requis

Page 223: «  Aux lecteurs bénévoles

H. Habrias 2006 223

Comportement d’un service offert

Spécification d’un service : - une signature - la précondition - la postcondition - un ensemble de déclarations de variables locales - un système de transitions étiquetées par des noms de services ou d’actions

Page 224: «  Aux lecteurs bénévoles

H. Habrias 2006 224

Page 225: «  Aux lecteurs bénévoles

H. Habrias 2006 225

J’avais oublié…

Ces pensées de Georg Christoph Lichtenberg (1742-1799):

« S’il n’y avait au monde que des patates et des raves, quelqu’undirait peut-être un jour : « Comme il est triste que les plantes et lesarbres soient à l’envers. » »

Page 226: «  Aux lecteurs bénévoles

H. Habrias 2006 226

Ne partez pas sans avoir lu…

« Tout apprendre, non point pour l’afficher, mais s’en servir »

Alors, servez-vous !

« Lorsque nous demandons l’heure qu’il est, nous ne voulons pas connaîtrele mécanisme de la montre de poche. De nos jours, la connaissance des moyens est devenue une sciencecélèbre dont nul n’a besoin pour son bonheur propre ou pour la félicitéde l’univers. La connaissance des moyens sans application véritable,sans même le talent de les appliquer ou seulement la volonté de le faire,est à présent, ce que l’on nomme de façon commune érudition. »

« Lire c’est emprunter ; en tirer profit est rembourser sa dette »