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

Bonjour ! Henri Habrias Professeur à luniversité de Nantes Nantes ! Le centre du monde ! En poste à lIUT Responsable du DESS Génie logiciel, économie,

Présentations similaires


Présentation au sujet: "Bonjour ! Henri Habrias Professeur à luniversité de Nantes Nantes ! Le centre du monde ! En poste à lIUT Responsable du DESS Génie logiciel, économie,"— Transcription de la présentation:

1

2 Bonjour ! Henri Habrias Professeur à luniversité de Nantes Nantes ! Le centre du monde ! En poste à lIUT Responsable du DESS Génie logiciel, économie, droit et normes Enseignant en DEA et Formation doctorale

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

4 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 :

5 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

6 RDV sur la toile… M. Frappier, H. Habrias - Software Specification Methods, An Overview Using a Case Study, FACIT, Springer, 2000, ISBN : , Site web associé Henri Habrias, Spécification formelle avec B, Hermes/Lavoisier, octobre 2001, ISBN : , 416 pages RDV sur mon site web :

7 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

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

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

10 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 :

11 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

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

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

14 Complication Dudule copie sur Huguette Dudule est copiant sur Huguette « copiant sur Huguette » attribut ou propriété de Dudule

15 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

16 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

17 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

18 Prédicat dappartenance Dudule promo Dudule : promo Prédicat dappartenance

19 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}}

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

21 Fonction partielle a b c d e

22 Fonction totale a b c d e

23 Fonction partielle a b c d e 2 5 Fonction partielle surjective

24 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é »

25 Totalisation dune fonction a b c d e Fonction partielle totalisée ! nulle

26 Bijection a b c d e 2 5 Fonction totale surjective Bijection

27 Image relationnelle a b c d e R1 [{a, b, c}] = {2, 4} Image relationnelle

28 Restriction de domaine a b c d e r1 R1 |> {2, 5} = {(a, 2), (b, 2), (d, 5)} Restriction de codomaine

29 Restriction de domaine a b c d e r1 {a, b} <| r1 = {(b, 2), (c, 4)} Restriction de domaine

30 Antirestriction de domaine a b c d e r1 {b, c} <<| r1= {(a, 2), (a, 4), (d, 5)} Antirestriction de domaine

31 Composition de relations a b c d e w x z y r1 r2 r1 ; r2 == r2 o r1

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

33 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

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

35 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

36 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)}

37 Valeurs On peut appeler les expressions des valeurs. En B, on passe dun prédicat à une expression, ainsi : Bool (5 = 9) = faux Pourquoi distinguer valeur et objet ?

38 « Vous savez pourquoi ça n'intéresse pas les gens ? Parce que ce ne sont pas des événements. Ce sont des anecdotes! Première anecdote : La main de ma soeur. Deuxième anecdote : Une culotte. Troisième anecdote : Un zouave. Seulement, si vous prenez la première... que vous la glissiez dans la deuxième qui appartient au troisième... Vous obtenez un événement sur lequel on n'a pas fini de jaser ! » R. Devos

39 Un nom peut devenir valeur ! N°étudiantsexeBac 23mascC 45mascB 78femC 93mascC

40 Attribut devenant valeur ! N° étudiantAttributValeur 23sexemasc 23bacC 45sexemasc 45bacB 78sexefem 78bacC 43sexefem 43bacC

41 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

42 Triplets O-A-V ObjetValeur Prédicat Sujet Objet Attribut Propriété Ressource Objet

43 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

44 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 !

45 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 »

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

47 2 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

48 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

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

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

51 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 »

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

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

54 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

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

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

57 Sémiologie signifié référentsignifiant Linguistique

58 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

59 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

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

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

62 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

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

64 Boxologie

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

66 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

67 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

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

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

70 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

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

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

73 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 !

74 1iè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

75 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

76 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) */

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

78 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

79 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

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

81 2 variables promo ETUDIANT g1 g2 g3 GROUPE estMembreDe VARIABLES estMembreDe, promo INVARIANT promo <: ETUDIANT & estMembreDe : promo +-> GROUPE

82 Pré-condition 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;

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

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

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

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

87 La chute…après la faute ! Y := code erreur Composant B Braquage tuyères Copie du composant B

88 La garde La garde empêche deffectuer lopération. Quand on raffine on renforce la garde, on étire le temps. Si nous avons le temps, nous parlerons du « B événementiel »

89 Calcul de la WPC [x:= x + 1] (x < 100) = x + 1 < 100 x < 99 [a := y ||z := k] (x > k) = y > k [x, b := b, a] (a <= b) = a<= b Plus faible pré-condition (Dijkstra)

90 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;

91 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 !

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

93 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 !

94 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

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

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

97 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] I [SELECT P THEN S] IP => [S] IGarde [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)

98 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

99 Raffinage

100 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

101 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

102 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

103 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

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

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

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

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

108 -doit avoir un état qui peut être observable extérieurement -Encapsule son état et son comportement

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

110 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

111 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 !

112 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

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

114 « 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

115 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

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

117 Initialisation indéterministe S1 Sn … Initialisation indéterministe ss :: SS

118 Transition S1S2 E E = IF ss = S1 THEN ss := S2 END;

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

120 Action sur événement S1S2 E/act OPERATIONS E = IF ss = S1 THEN ss := S2 || act END

121 Action sur initialisation S1 /act INITIALISATION ss := S1 || act

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

123 Conditions sur plusieurs trans. S1 E[cond1]/act 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;

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

125 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;

126 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;

127 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

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

129 2 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

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

131 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;

132 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;

133 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;

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

135 Vers le génie logiciel Nous navons pas parlé du paradigme des processus Séquentiels communicants (CCS de Milner, CSP de Hoare) Ce sera pour une autre fois… mais vous pouvez fréquenter votre bibliothèque et le web. On na pas attendu UML pour utiliser automates, expressions régulières, cardinalités (pardon multiplicité !!!) de relations. Bon voyage dans le monde du génie logiciel à construire.


Télécharger ppt "Bonjour ! Henri Habrias Professeur à luniversité de Nantes Nantes ! Le centre du monde ! En poste à lIUT Responsable du DESS Génie logiciel, économie,"

Présentations similaires


Annonces Google