La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

H. Habrias 20061. 2 « Aux lecteurs bénévoles Buveurs infatigables, & vous, vérolés très précieux, pendant quêtes de loisir, & que nai autre plus urgente.

Présentations similaires


Présentation au sujet: "H. Habrias 20061. 2 « Aux lecteurs bénévoles Buveurs infatigables, & vous, vérolés très précieux, pendant quêtes de loisir, & que nai autre plus urgente."— Transcription de la présentation:

1 H. Habrias 20061

2 2 « Aux lecteurs bénévoles Buveurs infatigables, & vous, vérolés très précieux, pendant quêtes de loisir, & que nai autre plus urgente affaire en main, je vous demande en demandant : « Pourquoi est-ce quon dit maintenant en commun proverbe : le monde nest plus fat? » Fat est un vocable de Languedoc & signifie non salé, sans sel, insipide, fade ; par métaphore, signifie fol, niais, dépourvu de sens, éventé de cerveau. (…) Vous lavez ouï, lavez-vous entendu ? » François Rabelais, Prologue pour le cinquième livre des faicts & dicts Heroïques de Pantagruel.

3 H. Habrias Présentation du 24 février 2005 MDBS Nice, Sophia Antipolis Henri Habrias

4 H. Habrias Bonjour ! Henri Habrias Professeur à luniversité de Nantes, Labo LINA Nantes ! Le centre du monde ! Nantes, où est né Jules Verne (mort en 1905, 2005, Année Jules Verne) En poste à lIUT, département informatique Enseigne les spécifications, informatique et droit Ex Responsable du DESS Génie logiciel, économie, droit et normes Enseignant en master (Nantes, Limoges) et Formation doctorale

5 H. Habrias 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 du monde….

6 H. Habrias No apologies !

7 H. Habrias La France den haut et la France den bas

8 H. Habrias Nantes, en Bretagne La Cour des Comptes de Bretagne Le Château des ducs de Bretagne sont situés à Nantes Spectacle de Royal de Luxe

9 H. Habrias Bibliographie Jai écrit pour vous des livres : Henri Habrias, Le modèle relationnel binaire, méthode I.A. (NIAM), Paris, Eyrolles, 1988, ISBN : Henri Habrias, Introduction à la spécification, préface de Hervé Gallaire, présentation par Michael Jackson, Masson, 1993, ISBN : Henri Habrias, La mesure du logiciel, 2ième édition, corrigée et augmentée, Teknea, 1994, ISBN :

10 H. Habrias Bibliographie David Lightfoot, La spécification formelle avec Z, traduit par H. Habrias, Teknea, 1994, ISBN : Henri Habrias, Dictionnaire encyclopédique du génie logiciel, Préface de Jean-Pierre Finance, Masson, 1997, ISBN : 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, ISBN: X

11 H. Habrias RDV sur la toile… M. Frappier, H. Habrias - Software Specification Methods, An Overview Using a Case Study, FACIT, Springer, 2000, ISBN : , 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)

12 H. Habrias RDV à la bibliothèque… Henri Habrias, Spécification formelle avec B, Hermes/Lavoisier, octobre 2001, ISBN : , 416 pages Jean Jolivet, Henri Habrias, Pierre Abélard, à laube des universités, PUR, 2003 Et un Petit Dictionnaire pour le lecteur novice de P. Abélard RDV sur mon site web :

13 H. Habrias 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 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

14 H. Habrias Spécifications en résumé, nous parlerons … de spécifications Attention ! On verra que si lon est purement formel, « on ne sait pas de quoi lon parle et si ce que lon dit est vrai » (B. Russell au sujet des mathématiques) Nous voulons « modéliser » (on va traiter de ce quest un modèle). Il nous faudra donc, à la fois un texte formel et un texte informel pour que lon puisse exprimer ce dont on parle… Mais E. Borel a tout aussi bien dit : « Les mathématiques sont la seule science où lon sait de quoi on parle et où on est certain que ce que l on dit est vrai. »

15 H. Habrias Lexpression 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étique Chant I, v ;

16 H. Habrias Notre 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.

17 H. Habrias Concepts de base Pour éviter de compliquer Le complexe suffit à la tâche ! Différence entre compliqué et complexe

18 H. Habrias 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 :

19 H. Habrias Rasoir 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

20 H. Habrias Rasoir 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.

21 H. Habrias Lavoisier et le rasoir dOccam « il est des principes dune bonne logique de ne pas multiplier les êtres sans nécessité » Lavoisier

22 H. Habrias Aristote, lorganon

23 H. Habrias La 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.

24 H. Habrias Complication Dudule copie sur Huguette Dudule est copiant sur Huguette « copiant sur Huguette » attribut ou propriété de Dudule

25 H. Habrias 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 aux métaphysiciens

26 H. Habrias Et 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

27 H. Habrias 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

28 H. Habrias Occam et le singulier Il ny a que le singulier. Cet arbre, cette pierre, Protagoras… « On dit singulier la chose hors de lesprit qui est une et non pas plusieurs et nest pas signe dune autre. » (Summa logicae) La chose singulière subsiste en elle-même, sans rien devoir aux signes, elle demeure hors de lesprit. Distinction entre ontologie et sémiologie Homme, concept singulier, regroupe tous les hommes en une seule unité, mais ne les ramène pas à un seul.

29 H. Habrias Occam et les termes discrets Certains signes, dans leur singularité, ne désignent quun étant singulier (« signe propre à un seul étant qui est appelé terme discret »)

30 H. Habrias Occam contre Platon Les termes généraux sont des symboles qui représentent une « intention » de lesprit visant à regrouper une pluralité dobjets ordinaires. Il ny a pas besoin de faire appel à un objet supplémentaire qui serait « lessence du chêne » auquel le mot se référerait. Donc une telle essence nexiste pas (utilisation du rasoir dOccam) Nominalisme

31 H. Habrias Un couteau

32 H. Habrias Un couteau sans lame auquel il manque le manche »

33 H. Habrias « Un couteau sans lame auquel il manque le manche » Lichtenberg - létat du couteau que je vais vous fabriquer - létat du couteau que lon vient de détruire - le concept de couteau ?

34 H. Habrias 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 lhomme de dormir) et inséparables (par ex., pour lEthiopien, dêtre noir : caractère constant, mais quon peut concevoir comme venant à disparaître sans que le sujet auquel il sapplique soit détruit). André Lalande, Vocabulaire technique et critique de la philosophie, Quadrige, PUF

35 H. Habrias Platonisme, formalisme, constructivisme (1) Platon : les objets mathématiques sont réels. Leur existence est un fait objectif 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 courage de leurs convictions les plus profondes et par suite affirmer que les formes mathématiques ont vraiment une existence indépendante de lesprit que les considère. (…) cependant à un moment donné, les mathématiciens ont cependant une vision incomplète et fragmentaire de ce monde didées. » Platonisme (ou réalisme des idées)

36 H. Habrias Platonisme, formalisme, constructivisme (2) Formalisme : il ny a pas dobjets mathématiques. Les mathématiques consistent seulement en axiomes, définitions et théorèmes, en dautres mots, des formules sans signification. Quand on donne à une formule une interprétation physique, elle acquiert une signification, et elle peut être vraie ou fausse Formalisme

37 H. Habrias Platonisme, formalisme, constructivisme (3) Constructivisme : ne considèrent comme mathématiques véritables que celles que lon 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 formaliste quand les circonstances lexigent. » Davis, Hersh, p. 312 Et les informaticiens…? constructivisme

38 H. Habrias L Aubergiste et les philosophes Lun des philosophes, disciple de Hume et voyageur plein dexpérience, fit venir notre hôte et lui dit : Ce nest pas du bœuf, cest du cheval. laubergiste 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, cest bel et bien ; mais je trouve le mot bœuf plus profitable.

39 H. Habrias L Aubergiste et les philosophes A cette réplique, tous les philosophes se mirent immédiatement à discuter. Laubergiste a raison, dit un disciple de Roscelin, bœuf et cheval ne sont que des sons proférés par le souffle de lhomme, et aucun deux ne peut désigner cet abominable et très coriace morceau de viande. – Absurdité, répliqua un platonicien, ce rôti vient dun animal qui, lorsquil était vivant, était une copie du cheval éternel qui se tient au ciel, et non dun bœuf éternel.

40 H. Habrias L Aubergiste et les philosophes Un Augustinien fit remarquer : Bœuf et cheval sont des idées dans lesprit de Dieu, et je suis certain que lidée divine du bœuf est quelque chose de très différent. Le sens de cette parabole est que la question des universaux nest pas simplement une question de mots, mais quelle se pose lorsque lon 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

41 H. Habrias La querelle des universaux, la position dAbélard le retranchement ne confère substantiellement à ce qui reste ou a été supprimé rien quil nait eu dabord, parce que, après lablation dune main, ce qui est maintenant reste un homme, et, avant lablation, restait une certaine partie cachée dans lhomme qui était intacte. Pierre Abélard (XIIe) Créateur du Quartier Latin Né au Pallet, à côté de Nantes

42 H. Habrias Et Frege vint… Wismar 1848/ Mecklembourg 1925

43 H. Habrias 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. FreG. Fre G. Frege

44 H. Habrias Et Nicolas Bourbaki… 1939…

45 H. Habrias Cantor La théorie des ensembles Saint-Petersbourg, 1845/Halle 1918

46 H. Habrias Aristote en diagramme d Euler S P S P SP S P Affirmative universelle Tout homme est blanc Sujet Prédicat Négative universelle Aucun homme n est blanc Affirmative particulière Quelque homme est blanc Négative particulière Quelque homme n est pas blanc

47 H. Habrias 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 Euler ne 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)

48 H. Habrias Aristote vs les stoïciens Aristote : logique des termes Stoïciens : logique des propositions

49 H. Habrias Aristote vs les stoïciens Aristote Tous les hommes sont mortels Donc 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 clair Donc 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

50 H. Habrias Aristote vs les stoïciens Forme commune aux deux raisonnements : une permutation et un changement de signe Tous les hommes sont mortels Donc tous les non mortels sont non hommes S il fait jour, il fait clair Donc 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 les symboles logiques sont des symboles inter propositionnels (connecteurs binaires, négation)

51 H. Habrias Les stoïciens, Schémas d inférence (suite) Non P et Q Or P Donc non Q P ou Q (mais pas les deux) Or P Donc non Q P ou Q (mais pas les deux) Or non Q Donc P

52 H. Habrias Logique Bien différencier Prédicat (et proposition) et Expression Ca a du sens de vouloir prouver un prédicat, ça na pas de sens de vouloir prouver une expression. x := x + 1 nest pas un prédicat « Lève toi et marche », nest pas une proposition Vrai, {1, 4, 9}, {(Alcofibras Nasier, François Rabelais), (Romain Gary, Emile Ajar)}, 5 sont des expressions

53 H. Habrias Logique, attention au vocabulaire Propositions : « Nantes est située sur le Rhône » « = 5 » « 2+1 = » Prédicats : ! x. x : NAT & x > 10 # x. x : NAT & x > 10 « Logique combinatoire » « Logique séquentielle » Un vocabulaire propre aux « automaticiens » Et « lillogique cest lautre » !

54 H. Habrias e, 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, tels que le nœud x est lié au nœud u et que le nœud u est lié au nœud v et que le nœud v est lié au nœud y. »

55 H. Habrias Carré dAristote A universelle affirmative E universelle négative I particulière affirmative O Particulière négative contraires subcontraires contradictoires subalternes Tout les A sont B Quelques A sont B Aucun A nest B Quelques A ne sont pas B

56 H. Habrias En langage ensembliste SETS T CONSTANTS A; B PROPERTIES A <: T & B <: T Tous les A sont B A <: B Quelques A sont B A /\ B /= { } Aucun A nest B A /\ B = { } Quelques A ne sont pas B A – B /= { }

57 H. Habrias En langage des prédicats Tous les A sont B A <: B Quelques A sont B A /\ B /= { } Aucun A nest B A /\ B = { } Quelques A ne sont pas B A – 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) ou forall x. (x : A => (x : B))

58 H. Habrias e 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 que le nœud x est lié au nœud z1 et le nœud z1 est lié au nœud z2 et …le nœud zn est lié au nœud y. » Les … ne font pas partie du langage du 1e ordre

59 H. Habrias Logique et Ensembles Langage de La logique Langage des ensembles Un ensemble A est inclus dans un ensemble B si pour tout élément appartenant à A, cet élément appartient à B

60 H. Habrias Prédicat dappartenance Dudule promo Dudule : promo Prédicat dappartenance

61 H. Habrias Inclusion Un ensemble est inclus dans un autre ensemble. Un ensemble peut appartenir à un autre ensemble (qui est alors un ensemble densembles) {1, 2, 4, 8} <: {1, 2, 3, 4, 5, 6, 7, 8, 9} {1, 2} : {{2}, {}, {1, 2}}

62 H. Habrias Relation a b c d e Relation quelconque Ensemble de départEnsemble d arrivée ou cible (target) domaine Codomaine ou range

63 H. Habrias Fonction partielle a b c d e

64 H. Habrias Fonction totale a b c d e

65 H. Habrias Fonction partielle a b c d e 2 5 Fonction partielle surjective

66 H. Habrias Totaliser 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é »

67 H. Habrias Totalisation dune fonction a b c d e Fonction partielle totalisée ! nulle

68 H. Habrias Bijection a b c d e 2 5 Fonction totale surjective Bijection 1 3 4

69 H. Habrias Image relationnelle a b c d e R1 [{a, b, c}] = {2, 4} Image relationnelle R1

70 H. Habrias Restriction de domaine a b c d e R1 R1 |> {2, 5} = {(a, 2), (b, 2), (d, 5)} Restriction de codomaine

71 H. Habrias Restriction de domaine a b c d e R1 {a, b} <| R1 = {(b, 2), (c, 4)} Restriction de domaine

72 H. Habrias Antirestriction de domaine a b c d e R1 {b, c} <<| R1= {(a, 2), (a, 4), (d, 5)} Antirestriction de domaine

73 H. Habrias Sac, multi-ensemble SETS VALEURS_FACIALE VARIABLES monPorteMonnaie INVARIANT monPorteMonnaie : VALEURS_FACIALE +-> NAT Bag (Multiset)

74 H. Habrias Composition de relations a b c d e w x z y r1 r2 r1 ; r2 == r2 o r1

75 H. Habrias Variable, ensemble Ne pas confondre un ensemble et une variable Promo est une variable qui a comme invariant dêtre un ensemble détudiants Promo <: 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.

76 H. Habrias Qui comprend ?

77 H. Habrias Alors, un attribut, cest quoi ? Cest : - soit la valeur dune fonction f(x) - soit limage relationnelle dune relation r [{x}] f f(a) = 7 a7 r a7 b 8 r ({a,b}] = {7, 8} b c Application de fonction Image relationnelle

78 H. Habrias Attribut 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)

79 H. Habrias 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

80 H. Habrias Diffé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} <: {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 vrai faux {(1, b), (4, b), (7, c)}

81 H. Habrias Valeurs On peut appeler les expressions des valeurs. En B, on passe dun prédicat à une expression, ainsi : bool (5 = 9) = faux LAtelier B différencie bfalse qui représente le prédicat toujours faux (par exemple, 6=5) et FALSE qui est une expression. Pourquoi distinguer valeur et objet ?

82 H. Habrias « 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

83 H. Habrias Un nom peut devenir valeur ! N°étudiantsexeBac 23mascC 45mascB 78femC 93mascC

84 H. Habrias Attribut devenant valeur ! N° étudiantAttributValeur 23sexemasc 23bacC 45sexemasc 45bacB 78sexefem 78bacC 43sexefem 43bacC

85 H. Habrias Triplets objet, attribut, valeur Attribut : relation binaire d un ensemble d objets vers un ensemble de valeurs voiture veste vélo chapeau bleu rouge vert jaune noir Objets Valeurs Attribut : couleur aPourCouleur

86 H. Habrias Triplets O-A-V ObjetValeur Prédicat Sujet Objet Attribut Propriété Ressource Objet

87 H. Habrias Le langage LEAP (Feldman, Rover, 1969) A.O = Vfils.Jean Melle = Henri Mellel assoc. Si dans la base A.O = xfils.Jean Melle = xfils de Jean Melle A.x = Vfils.x = Henri Mellepère de Henri Melle x.O = Vx.Jean Melle = Henri Mellenom de la relation entre Jean Melle et Henri Melle A.x = zfils.x = ztous les couples père-fils de la base x.Z = Vx.z = Henri MelleToutes les associations ayant Henri Melle comme 3e composant x.O = zx.Jean Melle = zToutes les associations ayant Jean Melle comme 2e composant x.y = zx.y = zToutes les assoc de la base

88 H. Habrias 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 !

89 H. Habrias Langage 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 »

90 H. Habrias Combien ?

91 H. Habrias Objet, 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.

92 H. Habrias 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

93 H. Habrias Roméo et Juliette Ce que nous nommons Rose Sous un tout autre nom sentirait aussi bon. Et ainsi, Roméo, sil ne sappelait pas Roméo, garderait cette chère perfection Quil possède sans titre. Oh ! retire ton nom Et pour ton nom qui nest aucune partie de toi Prends-moi toute entière ! (La Pléiade, 1950, cité par J. Arsac )

94 H. Habrias Sémiologie Stoïciens signifié Semainomenon : ce qui est exprimé, ou contenu, qui ne représente pas une entité physique référent Tynchanon : Objet auquel on se réfère, entité physique ou événement ou action signifiant Seimainon : expression perçue comme entité physique

95 H. Habrias Le nom « Socrate Il nappartient donc pas à tout homme, Hermogène, détablir des noms, mais à un faiseur de noms ; et celui-là, cest semble-t-il, le législateur, de tous les artisans le plus rare parmi les hommes. (…) Et celui qui sait interroger et répondre, lappelles-tu autrement que dialecticien ? Ainsi (…) le travail du législateur, (consiste), semble-t-il, à établir le nom sous la direction du dialecticien, sil veut établir les noms con- venablement (…) Il y a donc des chances, Hermogène, pour que linstitution des noms ne soit pas une petite affaire » Platon, Cratyle

96 H. Habrias Sémiologie Stoïciens signifié Idée, concept de cheval « cheval » référentsignifiant /cheval/ Tous les chevaux existant, ayant existé, qui existeront

97 H. Habrias Les stoïciens Platon --> Aristote --> Théophraste --> les Mégarites et les Stoïciens

98 H. Habrias Sémiologie Existant, ayant existé, qui existeront ? ! signifié référentsignifiant /licorne/ « licorne » Ensemble vide ! « le référent licorne n a jamais eu d existence réelle »

99 H. Habrias Sé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é.

100 H. Habrias Sé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é.

101 H. Habrias 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 la Dame à la licorne, Musée de Cluny, Paris

102 H. Habrias La licorne de Davis et Hersh Vous pensez donc je suis

103 H. Habrias 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)

104 H. Habrias Etre ? « Sur la question de savoir si lon peut accepter les morts comme membres des académies ? » Lichtenberg

105 H. Habrias Sé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érentsignifiant

106 H. Habrias Sé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 ?

107 H. Habrias Sémiologie signifié référent Signifiant (Saussure) signe (Pierce) symbole (Ogden(Richards) véhicule du signe (Morris) expression (Hjelmslev) representamen (Pierce) sème (Buyssens)

108 H. Habrias De Saussure : le signe linguistique Unité à deux faces : Le signifiant et le signifié Extrait du Cours de Linguistique Générale

109 H. Habrias Sémiologie signifié référentsignifiant Linguistique

110 H. Habrias 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

111 H. Habrias 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

112 H. Habrias

113 H. Habrias 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.

114 H. Habrias 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.

115 H. Habrias 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

116 H. Habrias Abstraction comme idéalisation Physique (réel)Mathématique (idéal) Idéalisation Construction de modèle Objet réel Objet idéal Vérification dans le monde réel Déduction mathématique Implication pour le monde réel

117 H. Habrias Abstraction comme extraction Quont en commun ces deux figures ?

118 H. Habrias Abstraction comme extraction O A B C D EF G H I J S La porte A conduit à deux couloirs B et C etc. Davis et Hersh, Lunivers mathématique, Gauthier-villars, 1985 O A B C D E F G H I J S

119 H. Habrias Abstraction comme extraction AB CD EF 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ée par une matrice où R |>> ran (R) = ((POINT * POINT) - dom (R)) --> {0} appelée matrice dincidence

120 H. Habrias Spécifier Attention ! Spécifier nest pas dessiner des boîtes et des flèches (boxologie) Il faut : 1)Une syntaxe formelle 2)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.

121 H. Habrias Boxologie

122 H. Habrias 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 ?

123 H. Habrias Thé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

124 H. Habrias Axiome 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

125 H. Habrias Typage « Dans un village dAndalousie, le barbier rase toutes les personnes Qui ne se rasent pas elles-mêmes » Qui rase le barbier ?

126 H. Habrias B. Russell

127 H. Habrias Ceci nest pas une pipe (Magritte)

128 H. Habrias Invariant MACHINE MDBS SETS ETUDIANT; GROUPE = {g1, g2, g3} VARIABLES promo, estMembreDe INVARIANT promo <: ETUDIANT & estMembreDe : promo +-> GROUPE INITIALISATION promo := {} || estMembreDe := {}

129 H. Habrias 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 SETS A; B Ensembles donc constantes ! Incommensurables. On na pas le droit décrire : A /\ B ou encore A \/ B

130 H. Habrias Produit 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.

131 H. Habrias Eléments des ensembles de base SETS DEPARTEMENT; COMMUNE VARIABLES communes, départements, estDans INVARIANT communes <: COMMUNE & départements <: DEPARTEMENT & estDans : communes -->> départements

132 H. Habrias SETS COMMUNE VARIABLES communes, départements INVARIANT communes <: COMMUNE & départements <: 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 !

133 H. Habrias iè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

134 H. Habrias 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

135 H. Habrias 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) */

136 H. Habrias La 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.

137 H. Habrias Une machine abstraite Variables avec un invariant Constantes avec propriétés op1 op3 op4 op2 Un état encapsulé Une interface : des « boutons », des noms dopération avec paramètres dentrée, de sortie Initialisation Corps des opérations

138 H. Habrias Machine abstraite MACHINE (paramètres) CONSTRAINTS prédicat sur les paramètres SETS ensembles de base CONSTANTS liste des constantes PROPERTIES prédicat sur les constantes VARIABLES liste des variables INVARIANT prédicat sur les variables INITIALISATION pour sassurer que notre spec a un modèle OPERATIONS préconditionnées ou gardées END

139 H. Habrias Autres types de machines En B, on a aussi : des REFINEMENT des IMPLEMENTATIONS Tout le développement est assisté par la preuve.

140 H. Habrias variables promo ETUDIANT g1 g2 g3 GROUPE estMembreDe VARIABLES estMembreDe, promo INVARIANT promo <: ETUDIANT & estMembreDe : promo +-> GROUPE

141 H. Habrias Pré-condition (PRE) MACHINE MDBS SETS ETUDIANT; GROUPE = {g1, g2, g3} VARIABLES promo,estMembreDe INVARIANT promo <: ETUDIANT & estMembreDe : promo +-> GROUPE INITIALISATION promo := {} || estMembreDe := {} OPERATIONS ajoutMembre (ee, gg) = PRE ee : promo & gg : GROUPE & ee /: dom (estMembreDe) THEN estMembreDe := estMembreDe \/ {ee |-> gg} END;

142 H. Habrias Précondition (La porte) MACHINE MaPorte SETS ETAT = {ouverte, fermée} VARIABLES étatMaPorte INVARIANT étatMaPorte : ETAT INITIALISATIOn étatMaPorte :: ETAT OPERATIONS ouverture == étatMaPorte := ouverte; fermeture == étatMaPorte := fermée; Rep <-- quelEtat == Rep := étatMaPorte END Ici la précondition est toujours vraie Voir différence avec la garde

143 H. Habrias On 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.

144 H. Habrias Crash ! 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)

145 H. Habrias Le crash dAriane 5 Accélération : min4..max4 x : min4..max4 Fonction de conversion de A4 y Ariane 4

146 H. Habrias Ariane 5 Accélération : min5..max5 x : min4..max4 Fonction de conversion de A4 y Non respecté car max5 > max4 Levée dune exception Commutation sur un autre calculateur et exécution de la même fonction

147 H. Habrias La chute…après la faute ! y := code erreur Composant B Braquage tuyères Copie du composant B

148 H. Habrias La garde (SELECT) 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 » OuvrirPorte == SELECT etatPorte = fermee THEN etatPorte := ouverte END;

149 H. Habrias Un événement Est spécificié en B événementiel comme une opération gardée OuvrirPorte == SELECT etatMaPorte = fermee THEN etatMaPorte := ouverte END; Ouverture == PRE etatMaPorte = fermee THEN etatMaPorte := ouverte END; Précondition plus forte que ce quimpose linvariant !

150 H. Habrias 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)

151 H. Habrias Indéterminisme MACHINE MDBS SETS ETUDIANT; GROUPE = {g1, g2, g3} VARIABLES promo,estMembreDe INVARIANT promo <: ETUDIANT & estMembreDe : promo +-> GROUPE INITIALISATION promo := {} || estMembreDe := {} ajoutEtudiant = PRE ETUDIANT – promo /= {} THEN ANY ee WHERE ee : ETUDIANT – promo THEN promo := promo \/ {ee} END;

152 H. Habrias Définitions MACHINE MDBS SETS ETUDIANT; GROUPE = {g1, g2, g3} VARIABLES promo,estMembreDe INVARIANT promo <: ETUDIANT & estMembreDe : promo +-> GROUPE INITIALISATION promo := {} || estMembreDe := {} DEFINITIONS groupesAffectés = =ran (estMembreDe) Une définition nest pas une variable !

153 H. Habrias Ce 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 ?

154 H. Habrias Pré-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 !

155 H. Habrias Conjecture Salle des Illustres Capitole, Toulouse

156 H. Habrias Démonstration de 2 = 1 Axiome a = b Multiplions chaque terme par a : a 2 = ab Ajoutons à chaque terme, a ab a 2 + a 2 -2ab = ab + a 2 - 2ab Ce qui se simplifie : 2 (a 2 - ab) = a 2 - ab Divisons pour finir les deux termes par a 2 - ab 2 = 1

157 H. Habrias La preuve Andrew Wiles et la preuve de la conjecture de Fermat La preuve du théorème de Pythagore Il ny a pas de solution en nombres entiers pour x n + y n = z n quand n > 2

158 H. Habrias La méthode Shadok

159 H. Habrias Combien de chemins ?

160 H. Habrias Nombre de chemins = …+5 1 Où 5 est le nombre de chemins dans le corps de la boucle chemins ! Et tester les chemins nest quune des stratégies de test ! Et une stratégie ne couvre pas tous les cas ! G.J. Myers, The Art of Software Testing

161 H. Habrias Obligation de preuve Pré-condition & Invariant => [Substitution] Invariant INVARIANT x < 100 OPERATIONS incrémentation = PRE x < 100 THEN x := x + 1 END; Calcul de pré-condition [x:= x + 1] (x < 100) = x + 1 < 100 x < 99

162 H. Habrias Ex-falso quodlibet P or Q not P => Q P Q (P => Q) & (Q => P) btrue or Q btrue Daprè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.

163 H. Habrias To be or not to be ! Idem non esse et non probari Ne pas être ou ne pas être prouvé, c'est tout un.

164 H. Habrias De la logique à linformatique Les axiomes des substitutions généralisées [x := E] PP [E/x] [x, y := E, F] PP[E, F/x, y] [skip] PP [PRE P THEN S]IP & I => [S] IPréconditionnée [SELECT P THEN S] IP => [S] IGardée [CHOICE S OR T] I[S] I & [T] IChoix 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). Cest la plus faible précondition.

165 H. Habrias Le raffinage 1)On réduit lindéterminisme 2)On affaiblit les pré-conditions 3)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

166 H. Habrias Raffinage

167 H. Habrias Raffinage Avant Après Abstrait Concret Opération S Opération T I I J J Réduction indéterminisme I & J & P => Q & [T] not [S] not J

168 H. Habrias Laurent Ruquier « Ladministration 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

169 H. Habrias Laurent Ruquier SETS MOIS VARIABLES moisDeRéponse INVARIANT moisDeRéponse <: MOIS & card (moisDeRéponse) = 2 instanciation : moisDeRéponse = {juin, novembre}

170 H. Habrias Laurent Ruquier SETS MOIS; COURRIER VARIABLES dateReception, dateReponse, courriersReçus INVARIANT courriersReçus <: COURRIER & dateReception : courriersReçus --> NAT & dateReponse : courriersReçus +-> NAT & ! (d1|-> d2). (d1|-> d2) : dateReception~ ; dateReponse => (d2 - 60) < 60

171 H. Habrias La notation UML… … utilisons le concept densemble (une relation est un ensemble) … et évitons les problèmes connus pendant 20 siècles !

172 H. Habrias Une mauvaise notation (OMT) Rappel : une information réduit le champs des possible. Cest une contrainte. ABAB ABAB AB A >->> BA >--> B A --> B A >+-> B A B

173 H. Habrias Une 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 !

174 H. Habrias 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

175 H. Habrias Notation UML AB A >->> B 11 R ( A, B) AB AB A >--> B A >+-> B R1(A, B) R2 (B) 0..1 R1 (A, B) R2 (A) R3 (B)

176 H. Habrias Au secours ! Voici ce que lon 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 dune association, consiste à sélectionner un sous-ensemble dobjets parmi lensemble des objets qui participent à une association. La restriction est réalisée au moyen dun tuple dattributs particuliers, appelé qualificatif ou clé, qui est utilisé conjointement avec un objet de la classe source. Le qualificatif est placé sur lextrémité dassociation au niveau de la classe source, dans un compartiment rectangulaire. Le qualificatif appartient pleinement à lassociation et non aux classes associées. Linstanciation dune 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 à lassociation. La qualification partitionne lensemble darrivée et réduit ainsi la multiplicité de lassociation. La paire (instance de A, valeur du qualificatif) identifie un sous-ensemble des instances de B. La restriction dune association peut être opérée en combinant les valeurs des différents attributs qui forment le qualificatif.»

177 H. Habrias « association qualifiée » ?! salle NAT Bât U estDans aPourN° estDans : salle --> Bât aPourN° : salle --> NAT estDans > --> Bât * NAT Salle (n°) salle bâtiment

178 H. Habrias Bottle Size : Number product(Date) SETS BOUTEILLE; FABRICANT; DATE INVARIANT fabricants <: FABRICANT & bouteilles <: BOUTEILLE & aEtéProduitePar : bouteilles -->> fabricants & aEtéProduiteLe : bouteilles -->> DATE & aPourTaille : bouteilles +-> NAT & aEtéProduitePar >< aEtéProduiteLe : bouteilles >--> fabricants Manufacturer

179 H. Habrias « satecharts » en B Deux solutions : 1) avec état i <: mesObjets état i étant lensemble des objets dans létat i autant de variable Etati que létats types i 2) aPourEtat : mesObjets --> ETATS Et pour chaque solution, - soit B classique - soit B événementiel

180 H. Habrias « satecharts » en B, solution 1 ETAT1 ETAT2 Trans1(p)[garde]/actions Trans1 (o, p) = PRE garde & o : ETAT1 & p : T THEN état1 := état1 – {o} || état2 := état2 \/ {o} || actions END état1 est une variable dont la valeur est l ensemble des objets qui sont dans lEtat1

181 H. Habrias « statecharts » en B, sol 1 Objets dans létat 1= état1 Objets dans létat 2 = état2 transition ETAT1 ETAT2 Trans1(p)[garde]/actions

182 H. Habrias « statecharts » en B, sol 2 ETAT1 ETAT2 Trans1(p)[garde]/actions aPourEtat :mesObjets --> ETATS Objets dans létat 1 == aPourEtat~ [{ETAT1}

183 H. Habrias e solution, B événementiel ETAT1 ETAT2 Trans1(p)[garde]/actions La transition ne peut avoir lieu si lobjet o nest pas dans le bon état et que la garde nest pas satisfaite.

184 H. Habrias 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

185 H. Habrias « satecharts » en B, solution 2 ETAT1 ETAT2 Trans1(p)[garde]/actions aPourEtat : mesObjets --> ENS_D_ETATS ETAT1 : ENS_D_ETATS ETAT2 : ENS_D_ETATS état1 de la solution 1 est défini comme : état1 == aPourEtat ~ [{ETAT1}]

186 H. Habrias « satecharts » en B, solution 2 ETAT1 ETAT2 Trans1(p)[garde]/actions aPourEtat : mesObjets --> ENS_D_ETATS Trans1 = ANY o, p WHERE o : mesObjets & aPourEtat (o) = ETAT1 & p : T SELECT garde THEN aPourEtat (o) := ETAT2 || actions END

187 H. Habrias Automates de Harel en B Dans ce qui suit nous utiliserons une présentation avec B classique. i.e. avec des préconditions et non des gardes

188 H. Habrias Automates de Harel en B S1Sn … SETS SS = {S1, …, Sn} VARIABLES ss INVARIANT ss : SS INITIALISATION ss := S1

189 H. Habrias Initialisation indéterministe S1 Sn … Initialisation indéterministe ss :: SS

190 H. Habrias Transition S1S2 E E = IF ss = S1 THEN ss := S2 END;

191 H. Habrias Plusieurs transitions, même évt S1S2 E SiS` E OPERATION E = CASE ss OF EITHER S1 THEN ss := S2 … OR Si THEN ss := ss` END; …

192 H. Habrias Action sur événement S1S2 E/act OPERATIONS E = IF ss = S1 THEN ss := S2 || act END

193 H. Habrias Action sur initialisation S1 /act INITIALISATION ss := S1 || act

194 H. Habrias Condition sur transition S1S2 E [cond]/act OPERATIONS E = IF ss = S1 & cond THEN ss := S2 || act END;

195 H. Habrias Conditions sur plusieurs trans. S1 E[cond1]/act1 S1 E[condi]/acti OPERATIONS E = SELECT ss = S1 & cond1 THEN ss := S1 || act1 … WHEN ss = S1 & condi THEN ss := Si || acti ELSE skip END;

196 H. Habrias Transition avec paramètre S1S2 E(para) [cond]/act OPERATIONS E (para) = IF ss = S1 & cond THEN ss := S2 || act END;

197 H. Habrias 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;

198 H. Habrias Entrée dans super état S1R1R2 … E 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;

199 H. Habrias Etats indépendants simultanés Q1 QnRm R1 … … Q R S1 SETS SS = {S1,…, Sn}; QQ = {Q1,.., Qn}; RR = {R1,…, Rm} VARIABLES ss, qq, rr INVARIANT ss : SS & qq : QQ & rr : SS

200 H. Habrias Transition vers deux sous-états Q1 R1Rm Qn … … S1 OPERATIONS E = IF ss = S1 THEN ss := S2 || qq := Q1 || rr := R1 END;

201 H. Habrias transitions dans 2 états conc. Q1 R1R2 Q2 S1 OPERATIONS E = BEGIN IF qq = Q1 THEN qq := Q2 END || IF rr = R1 THEN rr := R2 END END; E E

202 H. Habrias 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 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.

203 H. Habrias 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 lenvironnement -En B, la diffusion dun événement, est exprimée par lappel de lopé- ration pour cet événement S1 S2 E1/E2 OPERATIONS E = IF ss = S1 THEN ss := S2 || E2 END;

204 H. Habrias Q R T V U XY 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) MACHINE M SETS P={Q, R}; S = {T, U, V}; W = {X, Y} VARIABLES p, s, w INVARIANT p:P & s:S & w:W INITIALISATION p := Q || s := T || w := X DEFINITIONS HH = IF p=R THEN p:= Q END; GG = IF w = X THEN w:= Y END;

205 H. Habrias OPERATIONS 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;

206 H. Habrias Ré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.

207 H. Habrias Composant 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

208 H. Habrias Caracté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

209 H. Habrias 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 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

210 H. Habrias Composant 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.

211 H. Habrias Le 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)

212 H. Habrias Confusion ! 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.

213 H. Habrias Objet 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.

214 H. Habrias Objet es-tu là ? - Doit avoir un état qui peut être observable extérieurement - Encapsule son état et son comportement

215 H. Habrias Vers le génie logiciel Nous navons pas parlé du paradigme des processus séquentiels communicants (CCS de Milner, CSP de Hoare) …de « model-checking », de « logique temporelle », de Zénon dElée (sud de lItalie), 490 av. J.-C, élève de Parménide et de ses paradoxes (Achille et la tortue, la flèche, la course dAchille) 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és !!!) de relations. Lisez les Fondamentaux ! Bon voyage dans le monde du génie logiciel à construire.

216 H. Habrias Modélisation de processus CCS (Calculus of Communicating System) de Milner CSP (Communicating Sequential Process) de Hoare - CCS pur : pas de variable Quest-ce quun état ? Un état : comportement possible

217 H. Habrias Composition parallèle | C1 C2 in Outmm C1 = in. m. C1 C2 = m. out. C2 System1 = (C1 | C2) \ {m} \ {m} est la restriction

218 H. Habrias Etat : comportement possible C1 = in. m. C1 C2 = m. out. C2 System1 = (C1 | C2) \ {m} System1 in m.C1 |C2)\{m} C1 |out.C2)\{m} in m.C1 |out.C2)\{m} out Laction invisible

219 H. Habrias Diagramme de transition System1 in m.C1 |C2)\{m} C1 |out.C2)\{m} in m.C1 |out.C2)\{m} out S0 S1 S2 in out in out

220 H. Habrias Projet COLOSS Composants et LOgicielS Sûrs Travaux en cours au LINA

221 H. Habrias Caractérisation du composant Un composant est caractérisé par : - son nom (lidentifie) - son état : informations détenues et contraintes sur ces infos - son interface dentré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 denchaînement de ces services - ses propriétés : les conditions requises pour une utilisation et un fonctionnement correct du composant

222 H. Habrias Services -interface du service : - la signature - la précondition dappel - la postcondition du déroulement du service - le déroulement dun service, échange reposant sur des services requis et offerts, donnés dans linterface : - un ensemble de noms de services offerts non visibles rendus accessibles au sein du service - un ensemble de noms de services requis

223 H. Habrias Comportement dun service offert Spécification dun 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

224 H. Habrias

225 H. Habrias Javais oublié… Ces pensées de Georg Christoph Lichtenberg ( ): « Sil ny avait au monde que des patates et des raves, quelquun dirait peut-être un jour : « Comme il est triste que les plantes et les arbres soient à lenvers. » »

226 H. Habrias Ne partez pas sans avoir lu… « Tout apprendre, non point pour lafficher, mais sen servir » Alors, servez-vous ! « Lorsque nous demandons lheure quil est, nous ne voulons pas connaître le mécanisme de la montre de poche. De nos jours, la connaissance des moyens est devenue une science célèbre dont nul na besoin pour son bonheur propre ou pour la félicité de lunivers. 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 lon nomme de façon commune érudition. » « Lire cest emprunter ; en tirer profit est rembourser sa dette »


Télécharger ppt "H. Habrias 20061. 2 « Aux lecteurs bénévoles Buveurs infatigables, & vous, vérolés très précieux, pendant quêtes de loisir, & que nai autre plus urgente."

Présentations similaires


Annonces Google