bonjour ! henri habrias professeur à luniversité de nantes nantes ! le centre du monde ! en poste...

135

Upload: leopold-arnoux

Post on 03-Apr-2015

113 views

Category:

Documents


8 download

TRANSCRIPT

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

Bonjour !

Henri HabriasProfesseur à l’université de Nantes

Nantes ! Le centre du monde !

En poste à l’IUTResponsable du DESS Génie logiciel, économie, droit et normesEnseignant en DEA et Formation doctorale

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

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)

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

Bibliographie

J’ai écrit pour vous des livres :

Henri Habrias, Le modèle relationnel binaire, méthode I.A. (NIAM), Paris, Eyrolles, 1988, ISBN : 2-12-08169

Henri Habrias, Introduction à la spécification, préface de Hervé Gallaire, présentation par Michael Jackson, Masson, 1993, ISBN : 2-225-82768-0

Henri Habrias, La mesure du logiciel, 2ième édition, corrigée et augmentée, Teknea, 1994, ISBN : 2-87717-045-4

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

Bibliographie

David Lightfoot, La spécification formelle avec Z, traduit par H. Habrias, Teknea, 1994, ISBN : 2-87717-038-1

Henri Habrias, Dictionnaire encyclopédique du génie logiciel, Préface de Jean-Pierre Finance, Masson, 1997, ISBN : 2-225-85328-2

Henri Habrias, Les paradigmes des méthodes d’analyse et de conception in Génie logiciel: principes, méthodes et techniques A. Strohmeier, D. Buchs (Publié sous la direction de), 1996, Presses Polytechniques et universitaires romandes, ISBN:2-88074-296-X

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

RDV sur la toile…

M. Frappier, H. Habrias - Software Specification Methods, An Overview Using a Case Study, FACIT, Springer, 2000, ISBN : 1-85233-353-7, Site web associé

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

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

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

Notre but…

Vous fournir des éléments pour aller, au-delà des mots souvent franglais, aux concepts essentiels cachés derrière les « nouveautés de l’informatique »

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

Et d’UML

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

Notre parcours…

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

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

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

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

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

Concepts de base

Pour éviter de compliquer

Le complexe suffit à la tâche !

Différence entre compliqué et complexe

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

Attribut, propriété, Attention !

" Des cinq approches discutées dans ce chapitre, l'approche ER est clairement la gagnante en termes de manque de définitions précises, manque de niveaux clairs d'abstraction, et manque de discipline mentale. La popularité de ER réside sans doute dans sa multitude d'interprétations, aussi bien que dans son utilisation de modes de pensée familiers mais obsolètes.  »

Ted Codd, The Relational Model for Database Management, Version 2, Addison-Wesley, 1990, ISBN : 020114192 2

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

Rasoir d’Occam

Ou principe d'économie

Si un concept est inutile, il faut prendre le rasoir et le couper.  

" Entia non sunt multiplicanda praeter necessitatem"

Il ne faut pas multiplier les entités au delà du nécessaire

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

Rasoir d’Occam

Ce principe portant le nom du logicien anglais nominaliste du XIV e siècle Guillaume d'Occam (illustré dans le roman Le nom de la rose d'U. Eco par Guillaume de Baskerville) qui a donné aussi son nom à un langage de programmation, " est illustré au siècle précédent par Thomas d'Aquin, puis Duns Scot, qui l'empruntent tous deux à un adage scolaire tiré d'Aristote (Physique), qui prétend s'inspirer d'Empédocle (!) :  

Frustra fit per plura quod potest fieri per pauciora.

Il vaut mieux prendre des principes moins nombreux et de nombre limité, comme fait Empédocle.

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

La phrase d’Aristote

L'homme est mortel.Socrate est mortel.

mortel est l'attribut de l'homme mortel est l'attribut de Socrate

Le logicien pensait atteindre l'essence des choses à travers ces attributs.

Un jour l'un d'eux ayant entendu que l'homme est un animal sans plume, a collé des plumes à un homme pour montrer que la définition n'avait pas atteint l'essence de l'homme.

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

Complication

Dudule copie sur Huguette

Dudule est copiant sur Huguette

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

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

Naissance des relations

La pensée scientifique a reconnu l'impossibilité d'atteindre l'essence des choses et la logique des relations

est née.

On ne se demande pas ce qu'est un attribut, on a des ensembles, des relations, un point c'est tout.

Et en ce qui concerne l'essence des choses…laissons ça auxmétaphysiciens

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

Et l’ontologie ?

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

C’est de la métaphysique.

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

S.V.P. Lisez Jacques Arsac

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

Les 4 sens du verbe « être »

1) Existence : « Dieu est »

2) Appartenance : « Socrate est mortel »

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

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

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

G. Fre

G. Frege

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

Prédicat d’appartenance

Dudule

promo

Dudule : promo

Prédicat d’appartenance

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

Inclusion

Un ensemble est inclusdans un autre ensemble.

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

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

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

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

Relation

a

b

c

d

e 12

3

4

5

Relation quelconque

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

domaine

Codomaine ourange

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

Fonction partielle

a

b

c

d

e 12

3

4

5

Fonction partielle

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

Fonction totale

a

b

c

d

e 12

3

4

5

Fonction totale

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

Fonction partielle

a

b

c

d

e

2

5

Fonction partielle surjective

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

Totaliser les fonctions

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

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

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

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

Totalisation d’une fonction

a

b

c

d

e 12

3

4

5

Fonction partielletotalisée !

nulle

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

Bijection

a

b

c

d

e

2

5

Fonction totale surjectiveBijection

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

Image relationnelle

a

b

c

d

e 12

3

4

5

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

Image relationnelle

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

Restriction de domaine

a

b

c

d

e 12

3

4

5

r1

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

Restriction de codomaine

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

Restriction de domaine

a

b

c

d

e 12

3

4

5

r1

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

Restriction de domaine

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

Antirestriction de domaine

a

b

c

d

e 12

3

4

5

r1

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

Antirestriction de domaine

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

Composition de relations

a

b

c

d

e

2

5

1

3

4w

x

z

y

r1 r2

r1 ; r2 == r2 o r1

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

Variable, ensemble

Ne pas confondre un ensemble et une variable

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

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

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

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

Alors, un attribut, c’est quoi ?

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

f

f(a) = 7

a 7

r

a 7

b 8

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

b

c

Application de fonction Image relationnelle

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

Attribut

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

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

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

Valeur vs objet

Encore complication !

Un peu de théorie élémentaire. Essentiel si on ne veut pas compliquer

Différence entre prédicat et expression

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

Différence entre prédicat et expression

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

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

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

{1, 2, 3}8DuduleSophia-Antipolis

vraifaux

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

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

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 ?

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

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

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

Un nom peut devenir valeur !

N°étudiant sexe Bac

23 masc C

45 masc B

78 fem C

93 masc C

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

Attribut devenant valeur !

N° étudiant Attribut Valeur

23 sexe masc

23 bac C

45 sexe masc

45 bac B

78 sexe fem

78 bac C

43 sexe fem

43 bac C

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

Triplets objet, attribut, valeur

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

voiturevestevélo

chapeau

bleurougevert

jaunenoir

Objets ValeursAttribut : couleur

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

Triplets O-A-V

Objet Valeur

PrédicatSujet Objet

Attribut

PropriétéRessource Objet

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

Le langage LEAP (Feldman, Rover, 1969)

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

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

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

ayant Henri Melle comme3e composant

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

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

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

Langage et métalangage

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

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

Langage et métalangage

C’est complètement fou

Le mot court est plus long que le mot long !

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

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

mot ‘long’ »

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

Objet, où es-tu ?

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

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

2 crayons, et pourquoi pas 2 couleurs ?

A l’opposé, évidemment, le nominalisme est caractérisé comme celui qui voit deux noirceurs, autant de noirceurs que de stylos. Deux noirceurs qui sont " semblables ", certes, mais qu’ " il suffit de regarder pour voir qu’elles ne sont pas et n’en restent pas moins deux noirceurs ".

Ainsi illustré, le problème des universaux est simple : y-a-t-il ou non deux couleurs dans les stylos de P.V. Spade ? " Le réalisme et le nominalisme sont les deux principales réponses à cette question. " (…) " le réaliste est celui, qui voyant la noirceur partout où il y a des choses noires, en conclut qu’il y a en chacune la même " entité universelle ". Alain de Libera in La querelle des universaux, Seuil, 1996, p. 18-19

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

Sémiologie

Stoïciens

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

référent

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

signifiant

Seimainon :expression perçuecomme entitéphysique

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

Sémiologie

Stoïciens

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

référentsignifiant

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

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

Les stoïciens

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

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

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

signifié

référentsignifiant

/licorne/

« licorne »

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

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

SémiologieExister ?

Etre vivant (biologie ?)

N ’y a-t-il pas un objet qui existe bien et qui est la licorne ?

Allez voir la tapisserie de la Dame à la licorne au Muséedu Moyen Age à Paris !

Pourquoi toutes les licornes peintes, sculptées, tissées ne seraient-elles pas des référents ?

Les licornes n ’existeront plus le jour où on aura détruit toutes les licornes, qu ’il n ’y aura plus aucune trace de

licornes dans les livres, musées, etc. Quand la licorne aura disparu de la mémoire de l ’humanité.

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

SémiologieExister ?

Etre vivant (biologie ?)

N ’y a-t-il pas un objet qui existe bien et qui est la licorne ?

Allez voir la tapisserie de la Dame à la licorne au Muséedu Moyen Age à Paris !

Pourquoi toutes les licornes peintes, sculptées, tissées ne seraient-elles pas des référents ?

Les licornes n ’existeront plus le jour où on aura détruit toutes les licornes, qu ’il n ’y aura plus aucune trace de

licornes dans les livres, musées, etc. Quand la licorne aura disparu de la mémoire de l ’humanité.

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

SémiologieSignifiéinterprétant (Pierce)sens (Frege)intension (Carnap)designatum (Morris, 1938)signficatum (Morris, 1946)concept (Saussure)connotation (Stuart Mill)image mentale (Saussure, Pierce)contenu (Hjelmslev)état de conscience (Buyssens)

référentsignifiant

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

Sémiologie

signifié

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

signifiant

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

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

Sémiologiesignifié

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

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

Sémiologie

signifié

référentsignifiant

Linguistique

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

Sémiologie

Signifiant :

« aliquid stat pro aliquo »

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

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

Pierce

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

Sémiologique

Sémantique : le signe dans sa relation à ce qu ’il signifie

syntaxe

pragmatique : le signe est perçu en fonction de ses origines,et des effets qu ’il a sur ses destinataires

Rhétorique

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

Modèle

Deux sens :

Premier sens

-interprétation : attribution d'un sens à des énoncés formels de sorte qu'ils soient vérifiés

La géométrie devient un modèle d'un langage formel, plutôt que la formalisation de propriétés idéalisées à partir d'observation de l'espace sensible.

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

Modèle

Etude des relations entre ensembles d'énoncés et ensembles de modèles de ces énoncés.

Un modèle d'un énoncé fait dans un langage formel est une interprétation (association d'un sens aux symboles du langage formel) où cet énoncé est vrai.

Deuxième sens :

-associer à une "réalité empirique" un énoncé formel.

Minsky : Un objet O est un modèle d'une réalité R si O permet des répondre aux questions que l'on se pose sur R.

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

Modèle et interprétation

" les deux sens du concept de modèle ne sont que les deux faces complémentaires d'une même activité : interpréter

Interpréter est inéluctable, qu'il s'agisse

- d'interpréter un formalisme, ou, inversement- d'interpréter mathématiquement un ensemble de données.

D'une part, parce qu'un langage qui n'aurait pas de modèle n'a aucun intérêt, d'autre part et réciproquement, parce que l'expression n'est pas le miroir de l'expérience."

Hourya Sinaceur

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

Spécifier

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

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

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

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

Boxologie

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

Complication

Jules est à côté de Paul.

« à côté de Paul" serait l'attribut de Jules ?!

Et pourquoi pas "à côté de Jules" l'attribut de Paul ?

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

Théorie des ensembles

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

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

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

Axiome de fondation

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

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

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

Typage

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

Qui rase le barbier ?

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

Invariant

MACHINEMDBS

SETSETUDIANT; GROUPE = {g1, g2, g3}

VARIABLESpromo ,estMembreDe

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

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

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

Ensembles de base

On construit tout ensemble en partant des ensembles de base

Vous êtes habitués par vos profs de maths à écrire :Soient les ensembles A, B, C

S’écrit en B

SETSA; B

Ensembles donc constantes !Incommensurables.

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

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

Produit cartésien et POW

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

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

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

Eléments des ensembles de base

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

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

SETS

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

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

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

1ière forme normale de Codd

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

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

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

Et une relation n-aire ?schéma d'une relation:

Personne (N° personne, Nom de Personne, ville de naissance, ville d'études)

attributs de la relation :

N° personne, Nom, ville de naissance, ville d'études

ville de naissance et ville d'études ont le même domaine VILLE

Personne <: NAT * NOM * VILLE * VILLE

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

Regroupement de fonctions binaires

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

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

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

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

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

La méthode B

Son auteur : Jean-Raymond Abrial

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

Puis B

Qui est la méthode qui a fait l’objet du plus grand nombre decommunications à la conf mondiale sur les méthodes formelles

Un succès : le logiciel sécuritaire du métro automatique Meteore.

De la spec au code avec preuve mathématique.

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

Une machine abstraite

Variablesavec un invariant

Constantesavec propriétés

op1 op3

op4op2

Un état encapsulé

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

Initialisation Corps des opérations

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

Machine abstraite

MACHINE (paramètres)CONSTRAINTS

prédicat sur les paramètresSETS

ensembles de baseCONSTANTS

liste des constantesPROPERTIES

prédicat sur les constantesVARIABLES

liste des variables

INVARIANTprédicat sur les variables

INITIALISATIONpour s’assurer que

notre spec a un modèleOPERATIONS

préconditionnéesougardées

END

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

Autres types de machines

En B, on a aussi :des REFINEMENTdes IMPLEMENTATIONS

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

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

2 variables

promo

ETUDIANTg1

g2

g3

GROUPEestMembreDe

VARIABLES estMembreDe, promo

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

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

Pré-condition

MACHINEMDBS

SETSETUDIANT; GROUPE = {g1, g2, g3}

VARIABLESpromo ,estMembreDe

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

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

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

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

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

On peut ne pas respecter la pré-condition

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

Rien ne vous empêche de ne pas respecter la pré-condition. MaisVous êtes prévenus. Si vous voulez que l’opération fasse ce Que dit son nom, il faut respecter la pré-condition.

Ex.

Si vous ne respectez pas la pré-condition de la division, (ne pas donner un diviseur = 0) vous n’aurez pas une fonction division.

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

Crash !

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

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

Trop tard…C’est le crash !

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

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

Le crash d’Ariane 5

Accélération : min4..max4

x : min4..max4

Fonction de conversion de A4

y

Ariane 4

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

Ariane 5

Accélération : min5..max5

x : min4..max4

Fonction de conversion de A4

y

Non respecté car mas5 > max4

Levée d’une exception

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

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

La chute…après la faute !

Y := code erreur

ComposantB

Braquage tuyères

Copie du composant B

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

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 »

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

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)

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

IndéterminismeMACHINE

MDBSSETS

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

promo ,estMembreDeINVARIANT

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

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

ajoutEtudiant = PRE ETUDIANT – promo /= {}

THEN ANY ee WHERE ee : ETUDIANT – promo THEN

promo := promo \/ {ee}END;

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

Définitions

MACHINEMDBS

SETSETUDIANT; GROUPE = {g1, g2, g3}

VARIABLESpromo ,estMembreDe

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

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

DEFINITIONS groupesAffectés = ran (estMembreDe)

Une définition n’est pasune variable !

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

Ce qu’est une spéc abstraite

Une spécification abstraite :

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

Intérêt ?

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

Pré-condition

La pré-condition permet :

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

pré-condition, l’invariant est respecté

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

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

Obligation de preuve

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

INVARIANT x < 100

OPERATIONSincrémentation =

PRE x < 100

THENx := x + 1

END;

Calcul de pré-condition

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

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

Ex-falso quodlibet

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

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

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

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

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

To be or not to be !

Idem non esse et non probari

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

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

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)

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

Le raffinage

1) On réduit l’indéterminisme

2) On affaiblit les pré-conditions

3) On renforce les gardes

4) On s’approche de la machine concrète

Avec introduction de :- du séquencement et donc de la boucle

Et on prouve que le raffinage se fait en respectant les fonctionnalités

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

Raffinage

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

Raffinage

Avant Après

Abstrait

Concret

Opération S

Opération T

II

J J

Réduction indéterminisme

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

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

Composant

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

D’après Clemens Szyperski :« Component Software, Beyond Object-Oriented Programming »Second edition, Addison-Wesley, 2002, Pearson Publications

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

Caractéristiques essentielles

-unité indépendante de déploiement

Donc séparé de son environnement et des autres composantsEncapsule ses servicesN’est jamais déployé partiellement

-un tiers ne peut avoir accès aux détails de construction du Composant

Donc a une spécification claire. Il encapsule son implantation.Interagit avec son environnement par une interface bien définie

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

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

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

Composant vs Module

Exemples :

-un serveur de base de données

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

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

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

Le plan vs les objets

-Séparation entre

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

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

(donc ce sont des variables et non des expressions)

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

Confusion !

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

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

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

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

Objet es-tu là ?

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

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

Ne peut être instancié qu’en partie.

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

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

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

-Encapsule son état et son comportement

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

La notation UML…

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

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

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

Une mauvaise notation (OMT)

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

A B A B

A B A B

A B

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

A --> B A >+-> B

A <--> B

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

Une mauvaise notation

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

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

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

Le progrès ?

« C'est vrai, nous devons avoir quelque part, un outil à dessiner des boîtes et des flèches qui s'appelle MEGA. Autrefois il dessinait des rectangles et des ovales (MERISE) aujourd'hui c'est pire, il y a toutes sortes de boîtes et flèches (c'est de l'UML). Inutile de dire que cela n'apporte rien en terme de réflexion sur un développement informatique. Il y a des personnes qui trouvent cela bien car ils remplissent des pages de dessins et quand on leur demande d'en donner la signification précise, on entend tout et n'importe quoi. Bien sûr, le programmeur ne se sert absolument pas de ces dessins, mais il fait semblant pour que tout le monde soit satisfait ... Cela doit être le progrès. » Monsieur X, Chef de projet dans un gros service informatique

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

Notation UML

A B

A >->> B

1 1 R ( A, B)

A B

A B

A >--> B

A >+-> B

0..1 1R1(A, B)

R2 (B)

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

R2 (A) R3 (B)

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

« association qualifiée » ?!

salle

NAT

Bât

U

estDans

aPourN°

estDans : salle --> Bât

aPourN° : salle --> NAT

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

Salle (n°)

salle bâtiment

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

Bottle

Size : Number product(Date)

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

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

Manufacturer

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

Automates de Harel en B

S1 Sn…

SETSSS = {S1, …, Sn}

VARIABLESss

INVARIANTss : SS

INITIALISATIONss := S1

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

Initialisation indéterministe

S1

Sn

Initialisationindéterministe

ss :: SS

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

Transition

S1 S2E

E =IF ss = S1

THENss := S2

END;

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

Plusieurs transitions, même évt

S1 S2E

Si S`E

OPERATIONE =

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

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

Action sur événement

S1 S2E/act

OPERATIONSE =

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

END

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

Action sur initialisation

S1/act

INITIALISATIONss := S1 ||act

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

Condition sur transition

S1 S2E [cond]/act

OPERATIONSE =

IF ss = S1 & cond THEN

ss := S2 ||act

END;

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

Conditions sur plusieurs trans.

S1

S1’E[cond1]/act

S1’’E[condi]/acti

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

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

Transition avec paramètre

S1 S2E(para) [cond]/act

OPERATIONSE (para) =

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

END;

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

Transitions simultanées

S1

S3

S2

E(para) [cond1]/act1

[cond2]/act2

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

ss := S3 ||act1 ||act2

END;

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

Entrée dans super état

S1 R1 R2…E

S2

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

VARIABLESss, rr

INVARIANTss : SS & rr : RR

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

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

Etats indépendants simultanés

Q1

Qn Rm

R1

… …

Q RS1

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

VARIABLESss, qq, rr

INVARIANTss : SS & qq : QQ & rr : SS

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

Transition vers deux sous-états

Q1

R1 Rm

Qn

S1

S1

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

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

2 transitions dans 2 états conc.

Q1

R1 R2

Q2

S1

OPERATIONSE = BEGIN IF qq = Q1 THEN

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

rr := R2 ENDEND;

E

E

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

Communication

Communication entre états concurrents :

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

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

Génération des événements

Les événements sont :- soit générés de manière interne à travers une diffusion- soit générés extérieurement par l’environnement

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

S1 S2E1/E2

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

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

Q

R

T

V

U

X Y

W

P

S

E H E

F/G

G/H

E

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

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

MACHINEM

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

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

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

OPERATIONSE = BEGIN IF p = Q THEN p:= R END|| CASE s OF EITHER T THEN s := U OR V THEN s := T END END || IF w = Y THEN w := X END END;F = IF s = U THEN s := V || GG END;G = GG;H = HHEND;

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

Réutiliser des composants

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

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

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

Vers le génie logiciel

Nous n’avons pas parlé du paradigme des processusSéquentiels communicants (CCS de Milner, CSP de Hoare)

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

On n’a pas attendu UML pour utiliser automates, expressionsrégulières, cardinalités (pardon multiplicité !!!) de relations.

Bon voyage dans le monde du génie logiciel à construire.