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 à l’université de Nantes

Présentations similaires


Présentation au sujet: "Bonjour ! Henri Habrias Professeur à l’université de Nantes"— Transcription de la présentation:

1

2 Bonjour ! Henri Habrias Professeur à l’université de Nantes
Nantes ! Le centre du monde ! En poste à l’IUT 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 J’ai é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 d’analyse et de conception in Génie logiciel: principes, méthodes et techniques A. Strohmeier, D. Buchs (Publié sous la direction de), 1996, Presses Polytechniques et universitaires romandes, ISBN: 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 l’informatique » On parlera de mathématiques élémentaires, de variables, constantes, de substitution, de prédicat, d’expression, de substitution, de machine abstraite, de pré-condition, de garde, d’invariant, de composant logiciel, de méta-modélisation Et d’UML

8 Notre parcours… On remontera à Aristote, avec les entités et les propriétés… Et on vous proposera de profiter de l’invention des ensembles et des relations On vous proposera d’abandonner la métaphysique, de vous méfier des objets. Et on montrera ce que l’on peut prouver sur une spécification.

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 d’Occam Ou principe d'économie
Si un concept est inutile, il faut prendre le rasoir et le couper.   " Entia non sunt multiplicanda praeter necessitatem" Il ne faut pas multiplier les entités au delà du nécessaire

12 Rasoir d’Occam Ce principe portant le nom du logicien anglais nominaliste du XIV e siècle Guillaume d'Occam (illustré dans le roman Le nom de la rose d'U. Eco par Guillaume de Baskerville) qui a donné aussi son nom à un langage de programmation, " est illustré au siècle précédent par Thomas d'Aquin, puis Duns Scot, qui l'empruntent tous deux à un adage scolaire tiré d'Aristote (Physique), qui prétend s'inspirer d'Empédocle (!) :   Frustra fit per plura quod potest fieri per pauciora. Il vaut mieux prendre des principes moins nombreux et de nombre limité, comme fait Empédocle.

13 La phrase d’Aristote L'homme est mortel. Socrate est mortel.
mortel est l'attribut de l'homme mortel est l'attribut de Socrate Le logicien pensait atteindre l'essence des choses à travers ces attributs. Un jour l'un d'eux ayant entendu que l'homme est un animal sans plume, a collé des plumes à un homme pour montrer que la définition n'avait pas atteint l'essence de l'homme.

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 l’ontologie ? C’est la « science de l’être en tant qu’être. »
C’est de la métaphysique. De nos jours, des informaticiens pensent qu’ils vont mettre l’essence de l’être dans les ordinateurs ! S.V.P. Lisez Jacques Arsac

17 Les 4 sens du verbe « être »
G. Frege Existence : « Dieu est » Appartenance : « Socrate est mortel » Inclusion : « le Niçois est français » Dénotation : « l’étoile du matin est l’étoile du soir » « Etoile du matin, étoile du soir dénotent Vénus » G. Fre

18 Prédicat d’appartenance
Dudule : promo Dudule promo Prédicat d’appartenance

19 Inclusion Un ensemble est inclus dans un autre ensemble.
{1, 2, 4, 8} <: {1, 2, 3, 4, 5, 6, 7, 8, 9} Un ensemble peut appartenir à un autre ensemble (qui est alors un ensemble d’ensembles) {1, 2} : {{2}, {}, {1, 2}}

20 Relation Ensemble de départ Ensemble d ’arrivée ou cible (target) e 1
2 b 3 c 4 Codomaine ou range d 5 domaine Relation quelconque

21 Fonction partielle e 1 a 2 b 3 c 4 d 5 Fonction partielle

22 Fonction totale e 1 a 2 b 3 c 4 d 5 Fonction totale

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

24 Totaliser les fonctions
On peut rendre une fonction totale en utilisant la « valeur nulle » Mais si on suppose qu’on a une valeur nulle dans chaque Ensemble de base, toutes les fonctions sont totales et toutes Les relations ont leur domaine qui est égale à l’ensemble de Départ. Alors que reste-t-il comme contrainte ? La contrainte de fonctionnalité, dite aussi « unicité »

25 Totalisation d’une fonction
1 a 2 b 3 c 4 d 5 nulle Fonction partielle totalisée !

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

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

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

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

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

31 Composition de relations
1 x a 2 y b 3 z c 4 w d 5 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} n’est pas une variable ! Un ensemble ne peut être modifié, une variable est modifiable.

33 Alors, un attribut, c’est quoi ?
- soit la valeur d’une fonction f(x) - soit l’image relationnelle d’une relation r [{x}] Application de fonction Image relationnelle f r a 7 a 7 b 8 b c f(a) = 7 R ({a,b}] = {7, 8}

34 Attribut Pour une relation vue sous forme d’un tableau (lignes et colonnes) Attention de ne pas tout mélanger ! nom d’une colonne valeur d’une « case » valeur de plusieurs cases (ex : valeur des numéros produits commandés sur une commande donnée)

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 Différence entre prédicat et expression
Un prédicat se prouve. On peut prouver qu’il est faux. Nantes est sur la Loire Dudule est l’amant d’Huguette 5 = 8 {1, 2, 3} <: {1, 2, 3, 4, 5} 2 : {1, 2, 3} Ce n’a pas de sens de vouloir prouver une expression {1, 2, 3} 8 Dudule Sophia-Antipolis {(1, b), (4, b), (7, c)} vrai faux

37 En B, on passe d’un prédicat à une expression, ainsi :
Valeurs On peut appeler les expressions des valeurs. En B, on passe d’un 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°étudiant sexe Bac 23 masc C 45 B 78 fem 93

40 Attribut devenant valeur !
N° étudiant Attribut Valeur 23 sexe masc bac C 45 B 78 fem 43

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

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

43 Le langage LEAP (Feldman, Rover, 1969)
A.O = V fils.Jean Melle = Henri Melle l ’assoc. Si dans la base A.O = x fils.Jean Melle = x fils de Jean Melle A.x = V fils.x = Henri Melle père de Henri Melle x.O = V x.Jean Melle = Henri Melle nom de la relation entre Jean Melle et Henri Melle A.x = z fils.x = z tous les couples père-fils de la base x.Z = V x.z = Henri Melle Toutes les associations ayant Henri Melle comme 3e composant x.O = z x.Jean Melle = z Toutes les associations ayant Jean Melle comme 2e composant x.y = z x.y = z Toutes les assoc de la base

44 Langage et métalangage
Huguette, mange ta soupe ! Oui maman ! Huguette, range la table ! Oui, maman ! Huguette, arrête de dire « Oui maman » !

45 Langage et métalangage
C’est complètement fou Le mot court est plus long que le mot long ! C’est complètement fou « Le mot court est plus long que le mot long » ! C’est 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 : j’ai devant moi deux stylos à bille noirs. Le point crucial est : combien de couleurs vois-je ? Deux réponses s’offrent. La première : je vois une seule couleur – la noirceur (blackness) qui est " simultanément partagée par les deux stylos ou commune aux deux " -, une seule et même couleur donc, bien qu’inhérente à deux choses distinctes et présente en même temps en deux endroits différents. Cette position, ce que Spade appelle " croire aux universaux ", est le réalisme : admettre que des " entités universelles " comme la noirceur sont partagées par toutes les choses qui présentent une même propriété (ici, être noires) et qu’à ce titre elles leur sont communes.

47 2 crayons, et pourquoi pas 2 couleurs ?
A l’opposé, évidemment, le nominalisme est caractérisé comme celui qui voit deux noirceurs, autant de noirceurs que de stylos. Deux noirceurs qui sont " semblables ", certes, mais qu’ " il suffit de regarder pour voir qu’elles ne sont pas et n’en restent pas moins deux noirceurs ". Ainsi illustré, le problème des universaux est simple : y-a-t-il ou non deux couleurs dans les stylos de P.V. Spade ? " Le réalisme et le nominalisme sont les deux principales réponses à cette question. " (…) " le réaliste est celui, qui voyant la noirceur partout où il y a des choses noires, en conclut qu’il y a en chacune la même " entité universelle ". Alain de Libera in La querelle des universaux, Seuil, 1996, p

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

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

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

51 Sémiologie Existant, ayant existé, qui existeront ? ! « licorne »
signifié signifiant référent /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) signifiant référent

55 Sémiologie signifié signifiant Référent objet (Pierce)
denotatum (Morris) Bedeutung (Frege) dénotation (Russell) extension (Carnap) 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 Linguistique signifié signifiant référent

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 n’est pas dessiner des boîtes et
des flèches (boxologie) Il faut : Une syntaxe formelle Une sémantique formelle (qui peut être dénotationnelle ou opérationnelle Spécifier n’est 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 d’appartenance Ensembles de base
Produit cartésien Ensemble des sous-ensembles Rappel : À gauche du signe d’appartenance, si on a un ensemble, à droite on a un ensemble d’ensembles. A gauche du signe d’appartenance, si on a un ensemble d’ensembles à droite, on a un ensemble d’ensemble d’ensembles

67 Axiome de fondation Partant d’un ensemble, si on prend un de ses éléments (une boîte) Et qu’on prend un élément dedans (une boîte), Et qu’on prend un élément dedans cette boîte, etc. On est obligé de s’arrêter. On arrive à un niveau où l’on ne peut plus décomposer. Cet axiome interdit qu’un ensemble puisse se retrouver à l’intérieur de lui-même. X : X

68 Typage « Dans un village d’Andalousie, 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 Ensembles donc constantes ! Incommensurables. On n’a pas le droit d’écrire : A /\ B ou encore A \/ B S’écrit en B SETS A; B

71 Produit cartésien et POW
On construit des ensembles à l’aide du produit cartésien (*) Et de l’ensemble des sous-ensembles (ens. des parties) POW Attention ! Ne pas confondre un élément d’un ensemble de 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 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 d’un autre !

74 1ière forme normale de Codd
Qu’est-ce qu’une relation n-aire (à la Codd) en Première forme normale ? Une relation dont les constituants prennent pour valeur des éléments d’ensembles de base

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
C’est lui qui a conçu la notation Z, Puis B Qui est la méthode qui a fait l’objet du plus grand nombre 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 Une interface : des « boutons », des noms d’opération avec paramètres d’entrée, de sortie Variables avec un invariant Constantes avec propriétés Un état encapsulé op3 op1 op4 op2 Initialisation Corps des opérations

79 Machine abstraite MACHINE (paramètres) CONSTRAINTS INVARIANT
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 s’assurer 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 INVARIANT promo <: ETUDIANT & VARIABLES
estMembreDe : promo +-> GROUPE VARIABLES estMembreDe, promo ETUDIANT GROUPE estMembreDe g1 promo g2 g3

82 Pré-condition OPERATIONS ajoutMembre (ee, gg) = 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;

83 On peut ne pas respecter la pré-condition
Une pré-condition est une pré-condition d’emploi. Rien ne vous empêche de ne pas respecter la pré-condition. Mais Vous êtes prévenus. Si vous voulez que l’opération fasse ce Que dit son nom, il faut respecter la pré-condition. Ex. Si vous ne respectez pas la pré-condition de la division, (ne pas donner un diviseur = 0) vous n’aurez pas une fonction division.

84 Crash ! La pré-condition d’une opération n’est pas dans le code de cette opération. Ce n’est pas alors que vous avez sauté par la fenêtre qu’il faut exécuter « si fenêtre à plus de 5 mètres, ne pas sauter »… Trop tard… C’est le crash ! Comme pour Ariane 5. Qui est sorti du domaine du vol. (voir notion de domaine d’une relation)

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

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

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

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

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

90 Indéterminisme ajoutEtudiant = PRE ETUDIANT – promo /= {} THEN
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 Une définition n’est pas une variable ! DEFINITIONS
MACHINE MDBS SETS ETUDIANT; GROUPE = {g1, g2, g3} VARIABLES promo ,estMembreDe INVARIANT promo <: ETUDIANT & estMembreDe : promo +-> GROUPE INITIALISATION promo := {} || estMembreDe := {} Une définition n’est pas une variable ! DEFINITIONS groupesAffectés = ran (estMembreDe)

92 Ce qu’est une spéc abstraite
Une spécification abstraite : n’est pas exécutable peut être indéterministe les opérations peuvent être pré-conditionnées - pas de séquencement Intérêt ?

93 Pré-condition La pré-condition permet :
d’expliciter l’opération par ses conditions d’exécution de prouver que, si l’on appelle l’opération sous sa pré-condition, l’invariant est respecté Bien sûr, la preuve est relative aux « propriétés » exprimées dans l’invariant. 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 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 D’après la définition du or, on a : btrue or Q  not (btrue) => Q  bfalse => Q Donc il faut considérer que bfalse => Q est toujours vrai.

96 Idem non esse et non probari
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 à l’informatique
Les axiomes des substitutions généralisées [x := E] P P [E/x] [x, y := E, F] P P[E, F/x, y] [skip] P P [PRE P THEN S]I P & I => [S] I [SELECT P THEN S] I P => [S] I Garde [CHOICE S OR T] I [S] I & [T] I Choix indéterministe [IF E THEN S ELSE T]I (E & [S]I) or (not E & [T] I)

98 Le raffinage On réduit l’indéterminisme
On affaiblit les pré-conditions On renforce les gardes 4) On s’approche de la machine concrète Avec introduction de : - du séquencement et donc de la boucle Et on prouve que le raffinage se fait en respectant les fonctionnalités

99 Raffinage

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

101 Composant Comme « objet », le terme recouvre tout et n’importe quoi pourvu Que ça fasse vendre ! D’aprè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 N’est jamais déployé partiellement un tiers ne peut avoir accès aux détails de construction du Composant Donc a une spécification claire. Il encapsule son implantation. Interagit avec son environnement par une interface bien définie

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

104 Composant vs Module Exemples : un serveur de base de données
Attention : ce n’est pas parce qu’il y a peut-être une seule base de données maintenue par ce serveur qu’il faut confondre l’ instance avec le concept L’ensemble { base de données , serveur} peut être vu comme un module avec un état observable.

105 Le plan vs les objets Séparation entre
le plan que l’on ne peut modifier (« immutable ») les instances que l’on peut modifier (« mutable ») (donc ce sont des variables et non des expressions)

106 Confusion ! Le concept de composant n’a pas trait au niveau de l’objet ! N ’est donc pas relié à la vie des objets Ne traite pas de l’état de l’objet.

107 Objet es-tu là ? Caractéristiques de l’objet (chez les informaticiens) : « unité d’instanciation » (c’est un élément d’un ensemble, Élément obtenu par demande d’instanciation à la classe dont l’objet est un représentant). Il a une « identité unique » (curieuse expression. Qu’est-ce qu’une identité non unique ?) Ne peut être instancié qu’en partie. On peut avoir aussi des objets « prototypes » dont on fait des clones.

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

109 La notation UML… … utilisons le concept d’ensemble (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. C’est une contrainte. A B A B A >->> B A >--> B A B A B A >+-> 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 1 1 A B R ( A, B) A >->> B R1(A, B) R2 (B) 0..1
R2 (A) R3 (B) A 0..1 0..1 B A >+-> B

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

115 Manufacturer Bottle product(Date) Size : Number 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

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

117 Initialisation indéterministe
Sn ss :: SS

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

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

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

121 Action sur initialisation
ss := S1 || act

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

123 Conditions sur plusieurs trans.
E[cond1]/act S1’ S1 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
E(para) [cond]/act S1 S2 OPERATIONS E (para) = IF ss = S1 & cond THEN ss := S2 || act END;

125 Transitions simultanées
E(para) = IF ss = S1 & cond1 & cond2 THEN ss := S3 || act1 || act2 END; E(para) [cond1]/act1 S2 [cond2]/act2 S3

126 Entrée dans super état E S1 R1 R2 … S2 SETS
SS = {S1, S2}; RR = {R1, R2} VARIABLES ss, rr INVARIANT ss : SS & rr : RR OPERATIONS E = IF ss = S1 THEN ss := S2 || rr := R1 END;

127 Etats indépendants simultanés
R Q Q1 R1 Qn Rm 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 Qn S1 R1 Rm OPERATIONS E = IF ss = S1 THEN ss := S2 || qq := Q1 || rr := R1 END;

129 2 transitions dans 2 états conc.
E Q1 Q2 OPERATIONS E = BEGIN IF qq = Q1 THEN qq := Q2 END || IF rr = R1 THEN rr := R2 END END; R1 E R2

130 Communication Communication entre états concurrents :
Les états concurrents peuvent communiquer par variables globales. Les var. globales peuvent être mises à jour dans les actions et lues Dans les actions et les conditions 2) La condition ou l’action d’une transaction peut dépendre du sous- État concurrent d’un état concurrent 3) Les états concurrents peuvent communiquer par diffusion des Événements. Sur la diffusion d’un é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 l’environnement En B, la diffusion d’un événement, est exprimée par l’appel de l’opé- ration pour cet événement E1/E2 S1 S2 OPERATIONS E = IF ss = S1 THEN ss := S2 || E2 END;

132 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 Q T S E U H E R V F/G P W G/H X Y E (Q, T, X) -E--> (R, U, X) (R, U, X) - E --> (Q, V, Y) 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 G = GG; H = HH

134 Réutiliser des composants
- La réutilisation nécessite l’abstraction : on ne doit pas avoir à lire le code de l’opération - de disposer des Pré-conditions d’emploi des opérations - d ’être sûr que si on respecte la pré-condition l’opération fait ce qui est annoncé (choisir un nom qui est convenable.) On ne fera pas l’économie de l’attention au choix des mots.

135 Vers le génie logiciel Nous n’avons 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 n’a 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 à l’université de Nantes"

Présentations similaires


Annonces Google