H. Habrias 2006.

Slides:



Advertisements
Présentations similaires
L’infinitif Principes généraux.
Advertisements

La programmation orientée objet avec Java L3-MIAGE Plan
Les présentateurs doivent souvent transmettre des informations techniques à des auditeurs qui connaissent moins bien le sujet et le vocabulaire spécifique.
« 1.5. Les fonctions logiques »
Introduction: Concepts de la programmation
Classification et prédiction
Classification et prédiction
Spécification et qualité du logiciel
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Modélisation II.
XML - Henry Boccon-Gibod 1 XML, Langage de description La question du choix de formalismes Les entités et leur représentations modalités de modèles et.
Régine Laleau Centre d'Étude et de Recherche en Informatique du CNAM
Yann Chevaleyre et Jean-Daniel Zucker
Termes préfixés et N-uplets
Logique et raisonnement scientifique
Calcul propositionnel
3. Logique et mathématiques De Frege à Gödel. Frege (1848 – 1925) Après que la mathématique se fut pour un temps écartée de la rigueur euclidienne, elle.
Système formel Nous avons introduit : signes de variables (x, y, z, …), de constantes (0, 1), d’opérations (+, ), de relations (=, ) Axiomes : ce sont.
Chap 1 Grammaires et dérivations.
Quoi ? Un tampon.
Attribut " 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.
Une galante introduction à la notion de machine abstraite en B «Le baron Warseberg, malgré quil entretenait la demoiselle Laforest voyait encore les filles.
Bonjour ! Henri Habrias Professeur à l’université de Nantes
Henri HABRIAS I.U.T. de Nantes Département informatique
INTRODUCTION.
Système de gestion de bases de données. Modélisation des traitements
Leçon 3 : Héritage IUP 2 Génie Informatique
Introduction à la POO: Les classes vs les objets
Année Pré- rentrée Temps de prière
On parle souvent des règles selon le point de vue des femmes. Voici les règles selon lhomme.
1- Accueil et introduction Cours MGP Accueil et introduction Gilles Corriveau Maîtrise en Gestion de Projet UQTR Automne 1998.
18/10/2004 P. Van Roy, InfoT4, S5 1 Informatique T4 Solutions au Test du 18 octobre Peter Van Roy Département dIngénierie Informatique, UCL
Les sophistes ORDRE DU JOUR - Qui sont les sophistes?
Principes de la technologie orientée objets
Concepts de base : la Classe Pour faire une comparaison simple, une classe serait a priori, une structure C avec des variables et des fonctions.
Algorithmique et Programmation
Module n°3 : Initiation au raisonnement déductif
Initiation à la conception de systèmes d'information
Chapitre 2: Les régularités et les relations
Algorithmique et Programmation
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
Etude globale de système.
Espaces vectoriels Montage préparé par : S André Ross
FICHIERS : Définition : Algorithme général:
Structures de données IFT-2000
Symbolisme vs Connexionnisme
IFT Complexité et NP-complétude
CSI3525: Concepts des Languages de Programmation
Emprunter sans demander Prendre sans comprendre Un raccourci qui coûte cher Le Plagiat.
Cours de Base de Données & Langage SQL
Partie II Sémantique.
Programmation non procédurale Le projet ECOLE 2000
Sensibilisation a la modelisation
Modélisation des opérations Spécifier les transformations détat que lon attend des services de la machine Létat dune machine entièrement déterminée par.
INTRODUCTION.
Algorithmique et programmation (1)‏
Créer des packages.
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
Tutorat en bio-informatique Le 14 novembre Au programme… Les objets –Propriétés (attributs) –Constructeurs –Méthodes.
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Nouvelles Technologies Internet & Mobile
8PRO107 Éléments de programmation Les adresses et les pointeurs.
Introduction à la Programmation Orientée Objet
TP D’UML Groupe N° 3.
Lire, c’est traduire Séance 1
développeur informatique
Relation de conséquence logique Nous avons vu une relation entre formules: l’équivalence tautologique (  ) Nous allons définir une nouvelle relation,
Élaboration d’un référentiel de compétences
Transcription de la présentation:

H. Habrias 2006

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

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

Bonjour ! Henri Habrias Professeur à l’université de Nantes, Labo LINA henri.habrias@univ-nantes.fr Nantes ! Le centre du monde ! Nantes, où est né Jules Verne (mort en 1905, 2005, Année Jules Verne) En poste à l’IUT, département informatique Enseigne les spécifications, informatique et droit Ex Responsable du DESS Génie logiciel, économie, droit et normes Enseignant en master (Nantes, Limoges) et Formation doctorale H. Habrias 2006

Je viens du centre du monde ! " Le constat est vieux d'un siècle, mais il a curieusement été passé sous silence. Si l'on représente le globe selon une projection polaire en tenant compte, non pas du pôle Nord, mais de la surface des terres émergées, Nantes apparaît au centre du monde." Ce constat a été fait par August Penck à la fin du XIXe siècle. (voir Sciences & Vie, Hors série, n° 203, juin 1998, Dossier France, p. 10) Il vous reste à spécifier ce concept de centre du monde…. H. Habrias 2006

No apologies ! H. Habrias 2006

La France d’en haut et la France d’en bas H. Habrias 2006

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

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

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

RDV sur la toile… M. Frappier, H. Habrias - Software Specification Methods, An Overview Using a Case Study, FACIT, Springer, 2000, ISBN : 1-85233-353-7, Site web associé H. Habrias, M. Frappier - Software Specification Methods, An Overview Using a Case Study, Hermes Publishing, April 2006 (avec TLA+ (L. Lamport), ASM (E. Börger), Event B (D. Méry, D. Cansell) H. Habrias 2006

RDV à la bibliothèque… Henri Habrias, Spécification formelle avec B , Hermes/Lavoisier, octobre 2001, ISBN : 2-7462-0302-2, 416 pages Jean Jolivet, Henri Habrias, Pierre Abélard, à l’aube des universités, PUR, 2003 Et un Petit Dictionnaire pour le lecteur novice de P. Abélard RDV sur mon site web : http://www.iut-nantes.univ-nantes.fr/~habrias/portailHabrias H. Habrias 2006

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

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

L’expression en français, ce que nous dit Boileau Avant donc que d'écrire apprenez à penser. Selon que notre idée est plus ou moins obscure, L'expression la suit, ou moins nette, ou plus pure. Ce que l'on conçoit bien s'énonce clairement, Hâtez-vous lentement, et, sans perdre courage, Vingt fois sur le métier remettez votre ouvrage : Polissez-le sans cesse et le repolissez ; Ajoutez quelquefois, et souvent effacez.. Boileau, L'art poétique Chant I, v. 27-48; 147-174. H. Habrias 2006

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

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

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

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

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

Lavoisier et le rasoir d’Occam « il est des principes d’une bonne logique de ne pas multiplier les êtres sans nécessité » Lavoisier H. Habrias 2006

Aristote, l’organon H. Habrias 2006

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

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

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

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

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

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

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

Occam contre Platon Les termes généraux sont des symboles qui représentent une « intention » de l’esprit visant à regrouper une pluralité d’objets ordinaires. Il n’y a pas besoin de faire appel à un objet supplémentaire qui serait « l’essence du chêne » auquel le mot se référerait. Donc une telle essence n’existe pas (utilisation du rasoir d’Occam) Nominalisme H. Habrias 2006

Un couteau H. Habrias 2006

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

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

Objet et accident Objet :“ Ce qui peut avoir lieu ou disparaître, sans destruction du sujet ” Porphyre (Isagore) divise les accidents en : séparables (par ex., pour l’homme de dormir) et inséparables (par ex., pour l’Ethiopien, d’être noir : caractère constant, mais qu’on peut concevoir comme venant à disparaître sans que le sujet auquel il s’applique soit détruit). André Lalande, Vocabulaire technique et critique de la philosophie, Quadrige, PUF H. Habrias 2006

Platonisme, formalisme, constructivisme (1) Platon : les objets mathématiques sont réels. Leur existence est un fait objectif totalement indépendant de la connaissance que nous en avons. Immuables, non créés. Le mathématicien découvre les objets mathématiques. Thom : « Tout bien considéré, les mathématiciens devraient avoir le courage de leurs convictions les plus profondes et par suite affirmer que les formes mathématiques ont vraiment une existence indépendante de l’esprit que les considère. (…) cependant à un moment donné, les mathématiciens ont cependant une vision incomplète et fragmentaire de ce monde d’idées. » Platonisme (ou réalisme des idées) H. Habrias 2006

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

Platonisme, formalisme, constructivisme (3) Constructivisme : ne considèrent comme mathématiques véritables que celles que l’on peut obtenir par une construction finie « Le mathématicien type est à la fois platonicien et formaliste – Platonicien dans son for intérieur mettant un masque formaliste quand les circonstances l’exigent. » Davis, Hersh, p. 312 Et les informaticiens…? H. Habrias 2006

L ’Aubergiste et les philosophes “ L’un des philosophes, disciple de Hume et voyageur plein d’expérience, fit venir notre hôte et lui dit : “ Ce n’est pas du bœuf, c’est du cheval. ” l’aubergiste lui répondit : “ Monsieur, je suis surpris de vous entendre dire quelque chose que vous croyez dépourvu de sens. “ Bœuf ” et “ cheval ”, selon vous, ne sont que des mots, et ne désignent rien dans le monde du non-langage. La discussion ne concerne donc que des mots. Si vous préférez le mot “ cheval ”, c’est bel et bien ; mais je trouve le mot “ bœuf ” plus profitable. ” H. Habrias 2006

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

L ’Aubergiste et les philosophes Un Augustinien fit remarquer : “ Bœuf ” et “ cheval ” sont des idées dans l’esprit de Dieu, et je suis certain que l’idée divine du bœuf est quelque chose de très différent. ” Le sens de cette parabole est que la question des “ universaux ” n’est pas simplement une question de mots, mais qu’elle se pose lorsque l’on veut énoncer des énoncés de faits. ” Bertrand Russell, in Histoire de mes idées philosophiques, chap. XIV, Les universaux, les particuliers et les noms, p. 194-95 H. Habrias 2006

La querelle des universaux, la position d’Abélard “ le retranchement ne confère substantiellement à ce qui reste ou a été supprimé rien qu’il n’ait eu d’abord, parce que, après l’ablation d’une main, ce qui est maintenant reste un homme, et, avant l’ablation, restait une certaine partie cachée dans l’homme qui était intacte ”. Pierre Abélard (XIIe) Créateur du Quartier Latin Né au Pallet, à côté de Nantes H. Habrias 2006

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

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

Et Nicolas Bourbaki… 1939… H. Habrias 2006

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

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

Diagrammes de Venn Dans l ’interprétation aristotélicienne, on présuppose l ’existence (Il existe au moins un) laquelle est liée de manière indissoluble à l ’universalité (tous) Si on sépare les deux (interprétation moderne), les diagrammes d ’Euler ne suffisent plus. Il faut distinguer entre : - le cas où l ’on sait que la classe est vide (avec Venn, hachures) le cas où l ’on sait que la classe est non vide (avec Venn, on met ne X) - le cas où l ’on ne sait rien sur la classe (avec Venn, on laisse à blanc) H. Habrias 2006

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

Aristote vs les stoïciens Tous les hommes sont mortels Donc tous les non mortels sont non hommes Tous les A sont B Donc tous les non B sont non A Termes ou expressions Stoïciens S ’il fait jour, il fait clair Donc s ’il ne fait pas clair, il ne fait pas jour. Si p alors q. Donc si non q alors non p. Propositions H. Habrias 2006

Aristote vs les stoïciens Forme commune aux deux raisonnements : une permutation et un changement de signe Tous les hommes sont mortels Donc tous les non mortels sont non hommes S ’il fait jour, il fait clair Donc s ’il ne fait pas clair, il ne fait pas jour. Chez Aristote, les unités les plus petites sont des termes et les symboles logiques sont des symboles intra propositionnels Chez les stoïciens, les plus petites sont des propositions et les symboles logiques sont des symboles inter propositionnels (connecteurs binaires, négation) H. Habrias 2006

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

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

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

1e, 2e ordre 1e ordre « avoir un chemin de longueur 3 reliant toute paire de nœuds » s ’exprime par « pour toute paire de nœuds x et y, il existe deux nœuds u et v, tels que le nœud x est lié au nœud u et que le nœud u est lié au nœud v et que le nœud v est lié au nœud y. » H. Habrias 2006

Carré d’Aristote Tout les A sont B Aucun A n’est B E universelle négative A universelle affirmative contraires subalternes subalternes contradictoires Quelques A sont B Quelques A ne sont pas B I particulière affirmative subcontraires O Particulière négative H. Habrias 2006

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

En langage des prédicats Aucun A n’est B A /\ B = { } Tous les A sont B A <: B not (exists x . X : A & x : B) ou forall x . (x : A => (x : B)) forall X . X : A => x : B Quelques A ne sont pas B A – B /= { } Quelques A sont B A /\ B /= { } exists x . X : A & x : B exists x . (x : A & not x : B) H. Habrias 2006

2e ordre 2e ordre : « être d ’un seul tenant » n ’est pas une propriété du premier ordre. « pour tous les nœuds x et y, il existe des nœuds z1, z2,…,zn tels que le nœud x est lié au nœud z1 et le nœud z1 est lié au nœud z2 et …le nœud zn est lié au nœud y. » Les … ne font pas partie du langage du 1e ordre H. Habrias 2006

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

Prédicat d’appartenance Dudule : promo Dudule promo Prédicat d’appartenance H. Habrias 2006

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}} H. Habrias 2006

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

Fonction partielle e 1 a 2 b 3 c 4 d 5 Fonction partielle H. Habrias 2006

Fonction totale e 1 a 2 b 3 c 4 d 5 Fonction totale H. Habrias 2006

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

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

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

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

Image relationnelle e R1 1 a 2 b 3 c 4 d 5 R1 [{a, b, c}] = {2, 4} H. Habrias 2006

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

Restriction de domaine 1 a 2 b 3 c 4 d 5 {a, b} <| R1 = {(b, 2), (c, 4)} Restriction de domaine H. Habrias 2006

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

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

Composition de relations 1 x a 2 y b 3 z c 4 w d 5 r1 ; r2 == r2 o r1 H. Habrias 2006

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

Qui comprend ? H. Habrias 2006

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 H. Habrias 2006 f(a) = 7 r ({a,b}] = {7, 8}

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

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

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

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

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

Un nom peut devenir valeur ! N°étudiant sexe Bac 23 masc C 45 B 78 fem 93 H. Habrias 2006

Attribut devenant valeur ! N° étudiant Attribut Valeur 23 sexe masc bac C 45 B 78 fem 43 H. Habrias 2006

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 aPourCouleur H. Habrias 2006

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

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

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

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’ » H. Habrias 2006

Combien ? H. Habrias 2006

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

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

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

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

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

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

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

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

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

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

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

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

Marco Polo et la licorne Puis il s'empresse, chroniqueur honnête et pointilleux, de nous dire que ces licornes sont néanmoins fort étranges, c'est-à-dire bien peu spécifiques, puisqu'elles ne sont pas blanches et élancées mais ont "le même poil que le buffle, les pieds comme les éléphants", la corne est noire et disgracieuse, la langue épineuse et la tête semblable à celle d'un sanglier. Marco Polo semble prendre une décision : plutôt que de segmenter encore le contenu en ajoutant un nouvel animal à l'univers des vivants, il corrige la description en vigueur des licornes, qui, si elles existent, sont donc telles qu'il les a vues et non telles que la légende le raconte. Il modifie l'intention et laisse l'extension en suspens. " Umberto Eco, Kant et l'ornithorynque" (Grasset, 1997) H. Habrias 2006

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

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

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

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

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

Sémiologie Linguistique signifié signifiant référent H. Habrias 2006

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

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

H. Habrias 2006

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

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

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

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

Abstraction comme extraction Qu’ont en commun ces deux figures ? H. Habrias 2006

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

Abstraction comme extraction De A à B, un seul couloir, de B à C, deux couloirs… A B E F C D R = {((A, B), 1), ((B, C), 2), ((C, D), 2), ((D, E), 2), (E, F), 1)} Cette relation R : POINT * POINT +-> NAT1 peut être représentée par une matrice où R |>> ran (R) = ((POINT * POINT) - dom (R)) --> {0} appelée matrice d’incidence H. Habrias 2006

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

Boxologie H. Habrias 2006

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

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

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

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

B. Russell H. Habrias 2006

Ceci n’est pas une pipe (Magritte) H. Habrias 2006

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

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

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

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

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

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

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

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

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

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

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

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

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

Pré-condition (PRE) 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; H. Habrias 2006

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

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

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

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

Fonction de conversion Ariane 5 Accélération : min5..max5 Non respecté car max5 > 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 H. Habrias 2006

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

La garde (SELECT) La garde empêche d’effectuer l’opération. Quand on raffine on renforce la garde, on étire le temps. Si nous avons le temps, nous parlerons du « B événementiel » OuvrirPorte == SELECT etatPorte = fermee THEN etatPorte := ouverte END; H. Habrias 2006

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

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

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

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

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

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

Conjecture Salle des Illustres Capitole, Toulouse H. Habrias 2006

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

La preuve Il n’y a pas de solution en nombres entiers pour xn + yn = zn quand n > 2 La preuve du théorème de Pythagore Andrew Wiles et la preuve de la conjecture de Fermat H. Habrias 2006

La méthode Shadok H. Habrias 2006

Combien de chemins ? H. Habrias 2006

Nombre de chemins = 1014 220 + 519+…+51 Où 5 est le nombre de chemins dans le corps de la boucle. 10 000 000 000 000 0 chemins ! Et tester les chemins n’est qu’une des stratégies de test ! Et une stratégie ne couvre pas tous les cas ! G.J. Myers, The Art of Software Testing H. Habrias 2006

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

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

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

De la logique à l’informatique [x := x + 1] (x < 10) se lit : « la substitution de x + 1 à x dans (x<10) établit que (x < 10). C’est la plus faible précondition. Les axiomes des substitutions généralisées [x := E] P P [E/x] [x, y := E, F] P P[E, F/x, y] [skip] P P [PRE P THEN S]I P & I => [S] I Préconditionnée [SELECT P THEN S] I P => [S] I Gardée [CHOICE S OR T] I [S] I & [T] I Choix indéterministe [IF E THEN S ELSE T]I (E & [S]I) or (not E & [T] I) H. Habrias 2006

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

Raffinage H. Habrias 2006

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

Laurent Ruquier Formalisation en B i.e. avec logique et notation ensembliste « L’administration aura désormais deux mois pour répondre au courrier des usagers : les fonctionnaires ont choisi juin et novembre ! » Laurent Ruquier, Le Mois par moi, débloque notes II, Michel Laffon, 1997 H. Habrias 2006

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

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

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

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 H. Habrias 2006 A <--> B

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

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

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

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

« 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°) H. Habrias 2006

BOUTEILLE; FABRICANT; DATE INVARIANT fabricants <: FABRICANT & 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 H. Habrias 2006

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

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

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

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

1e solution, B événementiel ETAT1 ETAT2 Trans1(p)[garde]/actions La transition ne peut avoir lieu si l’objet o n’est pas dans le bon état et que la garde n’est pas satisfaite. H. Habrias 2006

En B événementiel Trans1 = ANY o, p WHERE o : mesObjets & p : T THEN SELECT garde & o : état1 état1 := état1 – {o} || état2 := état2 \/ {o} || actions END H. Habrias 2006

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

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

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

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

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

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

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

Action sur événement S1 E/act S2 OPERATIONS E = IF ss = S1 THEN END H. Habrias 2006

Action sur initialisation ss := S1 || act H. Habrias 2006

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

Conditions sur plusieurs trans. E[cond1]/act1 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; H. Habrias 2006

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

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

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

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

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

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

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

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

HH = IF p=R THEN p:= Q END; GG = IF w = X THEN w:= Y END; 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; H. Habrias 2006

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

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

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

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

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

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

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

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

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

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

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

Modélisation de processus CCS (Calculus of Communicating System) de Milner CSP (Communicating Sequential Process) de Hoare - CCS pur : pas de variable Qu’est-ce qu’un état ? Un état : comportement possible H. Habrias 2006

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

Etat : comportement possible System1 out’ in C1 = in. m’. C1 C2 = m . out’ . C2 m’.C1 |C2)\{m} t System1 = (C1 | C2) \ {m} C1 |out’.C2)\{m} out’ t L’action invisible in m’.C1 |out’.C2)\{m} H. Habrias 2006

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

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

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

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

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

H. Habrias 2006

J’avais oublié… Ces pensées de Georg Christoph Lichtenberg (1742-1799): « S’il n’y avait au monde que des patates et des raves, quelqu’un dirait peut-être un jour : « Comme il est triste que les plantes et les arbres soient à l’envers. » » H. Habrias 2006

Ne partez pas sans avoir lu… « Lorsque nous demandons l’heure qu’il est, nous ne voulons pas connaître le mécanisme de la montre de poche. De nos jours, la connaissance des moyens est devenue une science célèbre dont nul n’a besoin pour son bonheur propre ou pour la félicité de l’univers. La connaissance des moyens sans application véritable, sans même le talent de les appliquer ou seulement la volonté de le faire, est à présent, ce que l’on nomme de façon commune érudition. » « Lire c’est emprunter ; en tirer profit est rembourser sa dette » « Tout apprendre, non point pour l’afficher, mais s’en servir » H. Habrias 2006 Alors, servez-vous !