PPOOGL Mod´ elisation objet UML Intro historico-s´ emantique Le vocabulaire de
PPOOGL Mod´ elisation objet UML Intro historico-s´ emantique Le vocabulaire de l’orient´ e-objet Quelques exemples de mod´ elisation rat´ ees et r´ eussies Conclusion Introduction O` u les ´ etudiants apprennent avec consternation qu’ils vont devoir faire de la mod´ elisation avant de se jeter sur leurs clavier. PPOOGL 1 Un peu d’histoire (1) : la pr´ ehistoire Avant mon arriv´ ee sur Terre, programmer c’´ etait craignos : Fortran Basic plein d’assembleur et Lisp pour embˆ eter les ´ etudiants PPOOGL 2 Un peu d’histoire (2) : l’antiquit´ e Quand j’´ etais petit, la mode c’´ etait Pascal : Programme = structures de donn´ ees + algorithmes (Wirth) Typage fort et types structur´ es Code aussi structur´ e : Goto considered harmful (Dijkstra) Et donc s´ emantique compositionnelle Et si on voulait des programmes efficaces malgr´ e tous ces progr` es, on avait C qui permettait de programmer proprement, ou bien cochonnement. Selon le besoin. C’est l` a aussi que les langages fonctionnels sont devenus civilis´ es, mais pas au point que les gens s’en servent, (` a part pour programmer des ´ editeurs de texte ` a 10Mo). PPOOGL 3 Un peu d’histoire (3) : les temps modernes Quand j’avais votre ˆ age, tout-` a-coup, la mode est pass´ e aux langages orient´ es-objets : encapsulation : on ne voit d’un objet ce qu’on a besoin de voir h´ eritage : permet l’abstraction et la r´ eutilisation polymorphisme : permet malgr´ e tout du code simple/lisible tout cela compatible avec les progr` es pr´ ec´ edents. Pascal imposait la s´ eparation donn´ ees/algorithmes, les langages 00 imposent en plus la s´ eparation fonctionnalit´ e/impl´ ementation. Et si on veut des programmes efficaces malgr´ e tous ces progr` es, on a C++ qui permet de programmer proprement, ou bien cochonnement. Selon le besoin. Mˆ eme Caml est devenu orient´ e objet ! ? ! ? ? ! ! ! PPOOGL 4 Fini les langages, bonjour les m´ ethodologies de programmation On dit souvent conception orient´ ee objet au lieu de programmation : Depuis toujours, avant de se jeter sur leur clavier, les gens s´ erieux r´ efl´ echissent et font des petits dessins (mod´ elisation) Assembleur/Basic/Fortran : organigramme pour s’y retrouver dans les gotos. Pascal : en plus, d´ efinition des structures de donn´ ees, repr´ esentations graphiques des pointeurs... Mod` eles de programmation exotiques : graphes de flots de donn´ ees, automates, ... En principe, cette ´ etape de mod´ elisation est ind´ ependante du langage. La suite de l’histoire fut de concr´ etiser ce “en principe”. PPOOGL 5 Un peu de d´ etente Thus, an object-oriented analysis can be regarded as a form of syllogism moving from the Particular (classes) through the Individual (instances) to the Universal (control). Ceci pour montrer que des bouquins entiers de philosophie ont ´ et´ e ´ ecrits sur la mod´ elisation orient´ ee objet, ind´ ependamment de tout langage. PPOOGL 6 Un peu d’histoire (4) : les Balkans Petite histoire de l’orient´ e objet : Dans les ann´ ees 80, OO = UI (parfois AI) Fin des ann´ ees 80 : Smalltalk (OO int´ egriste) Fin des ann´ ees 80 : Booch ´ ecrit Object Oriented Design qui parle de ADA Explosion (effet de mode) au d´ ebut des ann´ ees 90. Langage ` a la mode : C++, dont la sp´ ecification est alors pleine de bugs. Plein d’outils de mod´ elisation (OOSE, OMT, OBA, BON, MOSES, SOMA, ...) souvent accroch´ es ` a un langage. In 1994 there were over 72 methods or fragments of methods. The OO community soon realized that this situation was untenable if the technology was to be used commercially on any significant scale. They also realized that most of the methods overlapped considerably. Therefore, various initiatives were launched aimed at merging and standardizing methods. Petit jeu : trouvez des significations cr´ edibles de ces acronymes. PPOOGL 7 Un peu d’histoire (5) : le nouvel ordre mondial Et c’est ainsi que naquit UML, l’Unified Modelling Language. PPOOGL 8 Les bonnes f´ ees se penchent sur le berceau d’UML OPEN Graham et al., 1997 Process, notation OMT Rumbaugh et al., 1991 Objectory Jacobson et al., 1992 A process for object− oriented design Real Time OOM Selic et al., 1994 Object Management Group co− ordinator Catalysis D’Souza and Wills, 1999 Entity− Relational Modelling Codd et al., 1980 Multiple views of static relationships; design based on users’ concepts Formal specification Larch, Z &VDM c.1980 UML 1997 C++ Smalltalk CRC Beck et al. Eiffel Meyer, 1988 Database design Syntropy Cook & Daniels, 1994 Fusion Coleman et al., 1994 SOMA Graham, 1991 Rulesets, OO RAD, business modelling Coad, 1990 Odell , 1991 Activity diagrams Booch, 1991 Managing object designs and interdependencies Ada Large system modular real− time programming PPOOGL 9 Un peu d’histoire (5) : l’´ epoque contemporaine Apr` es il y a eu d’autres langages objets, par exemple Java. Mais ils n’inventent plus rien. Ils font juste tout un peu mieux... Je ne vais donc pas vous apprendre Java (ni C++, ni SmallTalk, ni rien). Je vais donc vous expliquer les Grands Principes de l’Orient´ e Objet. Ensuite vous vous d´ ebrouillerez pour apprendre les langages que vous voudrez vous-mˆ emes, sur le tas. PPOOGL 10 Conclusion de l’intro : c´ ekoi UML ? un pr´ etexte facile pour rester dans les id´ ees g´ en´ erales sans me plonger dans un langage particulier. Un langage graphique tout con pour repr´ esenter les notions OO Un standard pour communiquer des concepts 00 : sp´ ecification (chef vers MIM) travail collaboratif (MIM vers MIM) documentation (MIM vers chef) qui n’y connait rien ` a Java++) Assez bien sp´ ecifi´ e pour qu’on puisse en faire des outils pour dessiner de l’UML (exemple sous Linux : dia) ... qui exportent des squelettes de programmes (exemple : dia2code). grˆ ace ` a quoi vous ´ economisez du boulot, car n’est-ce pas, vous devez toujours produire code + doc. La vraie doc d’UML est (entre autres) sur www.omg.org (site du consortium Object Management Group) o` u vous constaterez que je vous ai bien simplifi´ e les choses... PPOOGL 11 Le vocabulaire de l’orient´ e objet vocabulaire en fran¸ cais vocabulaire en anglais vocabulaire en UML PPOOGL 12 Objet Un objet est compos´ e de des attributs (parfois appel´ ees champs, variables, donn´ ees membres) ≈les champs d’une structure de donn´ ee des langages classiques et aussi des m´ ethodes (parfois appel´ ees op´ erations, fonctions membres) ≈fonctions/proc´ edures qui d´ ependent s´ emantiquement de l’objet. Si vous n’avez pas compris le mot “s´ emantiquement”, la derni` ere phrase veut dire : dont le bon sens dit qu’elles d´ ependent de l’objet. Si vous n’avez pas de bon sens, je vous en donne dans la suite. PPOOGL 13 Encapsulation (1) Pour chaque objet, il y a ceux qui le programment, et ceux qui l’utilisent (dans d’autres programmes). Ce ne sont pas toujours les mˆ emes. PPOOGL 14 Encapsulation (2) Pour chaque objet, il y a des attributs et des m´ ethodes internes, utilis´ es pour le programmer des attributs et des m´ ethodes externes, utilis´ es pour l’interfacer Ce ne sont pas toujours les mˆ emes. PPOOGL 15 Encapsulation (3) Un objet a une interface par laquelle on le manipule, et que tout le monde connait. Cette interface fait partie de sa sp´ ecification. Elle est tout ce dont ont besoin les utilisateurs de l’objet. On a tout int´ erˆ et ` a cacher les sordides d´ etails de l’impl´ ementation d’un objet ` a ses utilisateurs : ils en ont ainsi une vue plus simple, plus lisible ; leur code ne risque pas d’interf´ erer avec le code interne ` a l’objet ; on peut changer l’impl´ ementation d’un objet de mani` ere indolore/transparente pour ses utilisateurs ; PPOOGL 16 Encapsulation (4) Techniquement, l’encapsulation c’est tr` es simple : un attribut ou une m´ ethode sont soit publics, visibles par tout le monde, et moralement destin´ es ` a ˆ etre acc´ ed´ es par tous les utilisateurs de l’objet ; soit priv´ es, relatif au fonctionnement interne de l’objet, et cela ne regarde pas les utilisateurs. Il y a en g´ en´ eral au moins un niveau d’acc` es interm´ ediaire, appel´ e prot´ eg´ e. Il permet l’acc` es par du code “ami” : typiquement, les autres objets d’une mˆ eme biblioth` eque. Remarque : On peut implementer cette philosophie dans n’importe quel langage, mais les langages OO apportent une garantie m´ ecanique qu’elle est respect´ ee. Enfin sauf Python. PPOOGL 17 Encapsulation (5) Pour r´ ecap´ epeter, qui fait quoi : Le Chef donne la sp´ ecification de chaque objet, en d´ ecrivant sa syntaxe publique (en UML par exemple) sa s´ emantique (en langue naturelle jusqu’` a nouvel ordre) Le programmeur responsable de l’objet bricole comme il veut ce qui est priv´ e, tant qu’il respecte la sp´ ecification. L’utilisateur de l’objet (qui est aussi un programmeur) ne voit uploads/Geographie/ 1-objet.pdf
Documents similaires
-
27
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mar 25, 2022
- Catégorie Geography / Geogra...
- Langue French
- Taille du fichier 0.2490MB