Vous êtes sur la page 1sur 71

Cours de Gnie Logiciel

Introduction la mthode OMT


Laurent Henocque Matre de Confrences

Ecole Suprieure dIngnieurs de Luminy

Universit de la Mditerrane Aix-Marseille II

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

Cours de gnie logiciel Introduction la mthode OMT


ESIL / ES2I Universit de la Mditerrane

par Laurent Henocque

(henocque@esil.univ-mrs.fr) (http://www.esil.univ-mrs.fr/Staff/Prof/henocque/)

version 1.1 en date du 4 octobre 1996

Ce document peut tre librement reproduit dans son intgralit pourvu que la prsente mention de copyright ainsi que celles prsentes en tte et en pied de page y restent attaches. Toute autre forme de copie est interdite. Auteur Laurent Henocque, matre de confrences. Ce document est un cours de l Ecole Suprieure dIngnieurs de Luminy, dpartement Etudes Suprieures en Ingnierie Informatique, 163 Avenue de Luminy, case 925, 13288 Marseille Cedex 9 (http://www.esil.univ-mrs.fr)

1. Prsentation gnrale de la mthode OMT


1.1. esprit de la mthode
modlisation d'objets du monde rel utilisation de ces objets pour concevoir un systme indpendamment des langages d'implantation

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

1.2. avantages
meilleure comprhension des besoins spcification et conception plus prcise meilleure maintenabilit des systmes raliss

1.3. les outils


un jeu de concepts orients objet une notation graphique indpendante du langage de programmation, OMT, utilisable pour : analyser les besoins spcifier et concevoir implanter la solution

1.4. avantages
la mme mthode (concepts + notations) peut tre utilise tout au long du cycle de dveloppement il n'est donc pas ncessaire de traduire une formulation en une autre chaque tape, comme le ncessitent d'autres approches

1.5. le cycle de vie logiciel (abr g)


dfinition des besoins spcification des besoins spcification de conception programmation

1.6. gnralit de la mthode


OMT n'est pas une mthode ddie explicitement la programmation oriente objet on montre l'intrt de la mthode pour spcifier des applications dont le langage cible n'est pas orient objet : bases de donnes relationnelles langages classiques OMT est une mthode de pense organise autour d'abstractions pertinentes, qui carte les priori techniques lis aux langages de programmation OMT permet l'change clair et non ambigu des ides

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

1.7. priori fondamentaux de OMT


l'accent est mis sur l'utilisation des objets pour modliser le monde rel plutt que comme un mcanisme d'un langage particulier les relations inter objets sont leves un rang aussi lev que les classes moins d'accent est mis sur l'hritage et les mthodes les mcanismes subtils lis l'hritage sont laisss de ct un accent particulier est mis sur le typage, les classes, la modlisation la terminologie utilise est celle qui domine quand elle existe

1.8. contenu du cours


Ce cours s'appuie pour l'essentiel sur l'ouvrage en anglais : Object oriented Modelling and Design, par James Rumbaugh, Michael Blaha, William Premerlan, Frederick Eddy, William Lorensen, publi chez Prentice Hall International Editions, 1991 partie 1 : les concepts d'orientation objet indpendants de tout langage la notation graphique est prsente dans cette partie partie 2 : mthodologie, processus de mise en oeuvre le processus est suivi tape par tape jusqu' la conception dtaille partie 3 : la programmation on montre la projection d'OMT sur divers langages cible, les choix techniques associs partie 4 : tudes de cas

2. Introduction
la modlisation et la spcification oriente objet est mthode pour penser et dcrire des problmes organise autour de concepts du monde rel la construction fondamentale y est l'objet, qui combine donnes et comportement les modles objets sont utiles pour : comprendre des problmes communiquer avec des experts modliser des organisations prparer de la documentation concevoir des programmes et des bases de donnes le processus comporte les tapes suivantes :
Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille 3

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

on ralise un modle analytique des aspects essentiels de l'application, sans aucun a priori d'implmentation. Ce modle comporte les objets essentiels du domaine applicatif avec leurs relations ensuite on prend des dcisions de conception et on affine le modle initial pour prciser et optimiser l'implmentation les objets applicatifs ainsi dcrits forment le cadre de la programmation venir enfin, on traduit le modle dans un langage de programmation quelconque le mme modle sert tout au long du cycle de dveloppement

2.1. Qu'est ce que l'orientation objet


on dclare orient objet un logiciel organis autour d'entits groupant des donnes arbitraires (comme les struct C, et les record Pascal) et des procdures. on appelle encapsulation le processus d'agrgation de ces donnes et procdures d'autres caractristiques sont habituellement requises des objets au sens propre : l'identit la classification le polymorphisme l'hritage

2.1.1. l'identit
les objets sont des entits qui peuvent tre distingues. Notamment, deux objets distincts peuvent avoir exactement les mmes donnes membres

2.2. Qu'est ce que l'orientation objet 2.2.1. la classification


les objets ayant des attributs (donnes et comportements) similaires sont groups dans une classe. la classe dcrit toutes les caractristiques des objets de son type une classe qui abstrait un objet du monde rel intgre les donnes qui semblent pertinentes en fonction du degr de dtail voulu. (les classes vlo, ou polygone)

2.2.2. le polymorphisme
la mme fonction peut avoir des effets diffrents sur des objets de classes distinctes

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

2.2.3. l'hritage
des caractristiques partages par diffrentes classes peuvent tre dcrites dans une classe intermdiaire dont les autres hritent, ce qui permet de les dcrire par les seules modifications qu'elles apportent au schma de base l'hritage apporte un grande puissance d'expression et d'abstraction au modle objet

2.3. Qu'est ce que le dveloppement orient objet?


le dveloppement orient objet est une nouvelle approche du logiciel base sur des abstractions qui existent dans le monde rel dans ce contexte, le terme dveloppement renvoie aux tapes amont du cycle de vie logiciel : analyse et spcification conception programmation l'approche objet consiste se concentrer sur les concepts inhrents un domaine applicatif plutt que sur les conditions de mise en oeuvre dans un langage cible, qu'il soit orient objet ou non la complexit de ralisation d'un logiciel est plus due la difficult de manipuler ces concepts qu'aux alas de la mise en oeuvre, toujours facilement contourns

2.3.1. modlisation de concepts plutt que de programmes


les progrs des langages de programmation ont le dfaut d'encourager centrer la rflexion sur la programmation plus que sur la modlisation initiale les gains les plus importants proviennent pourtant de l'effort amont d'analyse les dfauts de spcification et de conceptions sont plus difficiles corriger que ceux d'implmentation concentrer sa rflexion sur les aspects techniques conduit souvent un produit moins bon le dveloppement orient objet encourage prcisment l'effort d'analyse des concepts, qui une fois termin sert de base prcis la dfinition des structures de donnes et des traitements e le dveloppement orient objet est fondamentalement une nouvelle faon de penser, non pas une technique de programmation

2.3.2. mthodologie oriente objet


OMT (Object Modelling Technique) apporte deux choses : une mthodologie pour le dveloppement orient objet une notation graphique pour la communication de concepts orients objet la mthodologie consiste en la ralisation d'un modle du domaine applicatif, complt par des dtails d'implmentation au cours de la phase de spcification et conception du systme le processus comporte les tapes suivantes : analyse, modlisation du systme, modlisation des objets, programmation

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

analyse partir d'un nonc du besoin, l'analyste construit (avec le demandeur) un modle du monde rel qui fasse apparatre ses proprits pertinentes le modle issu de l'analyse est une description prcise, concise, de ce que le client demande, non de comment on peut le faire les objets du modle sont des objets du domaine, jamais des objets issu de l'informatique une bonne analyse peut tre comprise et critique par des experts du domaine qui ne sont pas informaticiens une bonne analyse ne comporte aucune dcision d'implantation exemple : des fentres sont dcrites par leur fonctionnalits accessibles l'utilisateur final modlisation du systme l'ingnieur (system designer en anglais) prend des dcisions de haut niveau sur l'architecture du systme pendant cette phase, le systme cible est organis en sous systmes pertinents relativement au modle initial et aux choix d'architecture. l'ingnieur dcide des caractristiques optimiser, dfinit une stratgie pour aborder le problme, et fait une premire valuation des besoins en ressources humaines exemple : le concepteur pet dcider que le rafrachissement cran soit rapide, et dcider en consquence du protocole de communication utiliser, et d'une stratgie de bufferisation modlisation des objets l'ingnieur dcrit un modle dtaill bas sur l'analyse et le modle du systme, qui respecte les choix stratgiques l'accent est ici port sur les structures de donnes et les algorithmes ncessaires pour raliser chaque classe les classes initiales restent pertinentes, mais elles sont compltes par les classes d'implmentation, choisies en fonction de besoins concrets en performance exprims pour le systme final les objets initiaux et les objets informatiques sont dcrits dans le mme langage, bien qu'ils figurent dans des plans conceptuels distincts exemple : les actions de la classe fentre sont maintenant dcrites en fonction du systme graphique sous jacent, peut tre mme du hardware et de l'OS programmation dans cette phase bien connue, les classes et relations dcrites prcdemment sont traduites dans un langage de programmation, sgbd, ou hardware la programmation devrait tre une part mineure de l'ensemble du processus, les dcisions importantes ayant dj t prises le langage cible influence toujours la conception dans une certaine mesure, mais celle ci ne devrait jamais dpendre de dtails trop pointus d'un langage donn la programmation doit obir des rgles de contrle qualit suffisantes pour : garantir la traabilit des programmes para rapport la spcification (vrification)

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

aboutir un rsultat suffisamment rutilisable, maintenable, extensible, portable

2.3.3. les trois mod les de OMT


OMT utilise trois modles pour dcrire un systme : objet, dynamique et fonctionnel QUOI : le modle objet dfinit la structure statique des objets et leurs interrelations classes liens hritage QUAND : le modle dynamique dcrit les interactions entre les objets diagrammes de transition d'tats contrle (conditions de dclenchement d'une opration) vnements, messages COMMENT : le modle fonctionnel dcrit les transformations appliques aux donnes diagrammes de flots de donnes processus ces trois modles sont orthogonaux et complmentaires et interrelis le modle objet est fondamental et pralable aux deux autres

2.3.4. diffrences avec l'approche fonctionnelle


l'approche classique d'un problme par la fonctionnalit est naturelle mais conduit des systmes peut robustes et peu flexibles notamment, des systmes ainsi conus peuvent mal rsister des modifications des besoins bien que moins immdiate, l'approche objet rsiste mieux des changements dans l'expression des besoins, notamment parce que de tels changements affectent rarement le modle du domaine, dont les objets fondamentaux demeurent, mme si ils sont lgrement modifis

2.4. Concepts sous jacents aux objets


2.4.1. abstraction
penser le quoi avant le comment montrer le quoi sans le comment

2.4.2. encapsulation
sparer les aspects externes et utiles au client des aspects internes utiles aux seuls mcanismes

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

2.4.3. combinaison de donn et de comportement es


en permettant le polymorphisme, cela autorise l'appel d'une fonctionnalit sans devoir chercher quelle est la fonction qui implante l'algorithme voulu on conomise ainsi de nombreux tests la maintenance est galement plus facile, car l'ajout d'une classe ne ncessite pas de modifier les programmes existants

2.5. Concepts sous jacents aux objets


2.5.1. le partage
l'objet permet le partage diffrents niveaux via l'hritage : on partage des donnes et des traitements, en faisant l'conomie de rptitions on gagne en comprhension des concepts, car on peut unifier certains traitements en un seul traitement conceptuel : cela rduit le nombre de cas envisager entre programmes : la rusabilit n'est pas spontane, mais elle est possible la programmation objet permet la ralisation de bibliothques de composants rutilisables

2.6. Concepts sous jacents aux objets


2.6.1. l'accent porte sur la structure des donn es, non sur celle des traitements
on insiste sur ce qu' un objet, avant de dcrire ce qu'il fait est lorsque les besoins changent, on observe que la structure des objets est bien plus stable que les fonctionnalits qui les intressent de ce point de vue, l'approche objet est plus proche de celles en usage dans le domaine des bases de donnes que des approches par dcomposition fonctionnelle

2.6.2. synergie
la puissance de l'approche objet vient de ce que les caractristiques nonces plus haut sont disponibles ensemble l'hritage est en fait une facilit, alors que l'encapsulation est fondamentale

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

2.7. Preuves de l'utilit de ces concepts en programmation


OMT a t utilise avec succs dans de trs nombreux projets industriels et scientifiques: dveloppement de compilateurs applications graphiques interfaces utilisateur bases de donnes des langages objet avancs CAO simulation systmes de contrle de process documentation de programmes existants mal structurs communication avec des experts les langages cibles sont soit objet (Smalltalk, C++) soit classiques (C) soit relationnels

2.8. Organisation du cours


une premire partie explique les concepts et prsente la notation graphique OMT chapitre 2 : la notation OMT chapitre 3 et 4 : le modle objet chapitre 5 : le modle dynamique chapitre 6 : le modle fonctionnel la partie 2 montre le processus de ralisation d'un modle objet chapitre 7 : un aperu de la mthodologie chapitre 8 : l'analyse chapitre 9 : la spcification de haut niveau (modle du systme) chapitre 10 : la spcification dtaille et la conception chapitre 11 : rsum de l'approche

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

chapitre 12 : comparaison de OMT avec d'autres approches populaires

2.9. Organisation du cours


la partie 3 explore des considrations lies aux langages cibles chapitre 13 : un aperu de la programmation chapitre 14 : conseils pour accrotre la rutilisabilit et la maintenabilit chapitre 15 : le langage cible est objet chapitre 16 : le langage cible est classique (C, Ada) chapitre 17 : le langage cible est un langage SGBD la partie 4 prsente plusieurs tudes de cas chapitre 18 un compilateur de diagrammes objet chapitre 19 :un systme d'animation 3D chapitre 20 : un outil d'aide la conception de rseaux de distribution lectrique

2.10. concepts fondamentaux du chapitre


abstraction analyse classification modle dynamique encapsulation modle fonctionnel identit implantation hritage modle objet conception des objets orient objet OMT polymorphisme conception de systme

2.11. exercice
quels problmes majeurs avez vous rencontr lors de vos projets passs quel pourcentage du temps a t consacr aux diffrentes phases quelle approche avez vous pour valuer l'effort ncessaire sur un projet
Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille 10

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

2.12. exercice
rappelez vous un systme que vous avez ralis; dcrivez le brivement quels obstacles avez vous rencontr lors de sa conception quelle mthodologie avez vous utilis quelles raisons aviez vous pou la choisir, ou ne pas en choisir tes vous satisfaits du systme tel qu'il existe est il maintenable est-ce difficile de lui ajouter des fonctionnalits

2.13. exercice
dcrire un grand systme qui s'est trouv hors dlais, hors budget, ou bien a chou atteindre l'ensemble des besoins quels facteurs sont en cause comment l'chec aurait pu tre vit

2.14. exercice
tous les objets ont une identit et sont identifiables. D'un point de vue informatique, il n'est pas toujours vident de prvoir tout ce qui permet de les distinguer. Pour chacun de ces collections d'objets, dcrire de quelle faon on pourrait les distinguer : tous les humains, dans l'ide de leur envoyer du courrier tous les humains, pour des enqutes criminelles tous les clients qui possdent un coffre dans une banque tous les tlphones du monde tous les clients d'une compagnie de tlphone, pour la facturation toutes les adresses lectroniques tous les employs d'une compagnie pour limiter les accs pour des raisons de scurit

2.15. exercice
d'un point de vue utilisateur, critiquer un systme qui possde des dfauts qui vous ennuient particulirement dcrire le systme, le dfaut, pourquoi il est apparu, et comment il aurait pu tre vit avec un peu plus de rflexion au dpart

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

11

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

2.16. exercice
tudier ce que les objets suivants ont en commun. On peut ajouter de nouvelles classes chaque liste microscope lectronique, lunettes, tlescope, jumelles tuyau, soupape, robinet, filtre, manomtre de pression vlo, bateau, voiture, camion, planeur, avion, moto, cheval clou, vis, boulon, rivet tente, cave, hangar, garage, table, maison, immeuble racine carre, exponentielle, sinus, cosinus

2.17. exercice
imaginer une liste des objets que l'on peut attendre voir surgir dans les systmes suivants : un programme pour raliser un journal un programme pour calculer et stocker des scores de bowling un rpondeur tlphonique une tlcommande de vido un systme de saisie de commandes partir d'un catalogue de magasin

2.18. exercice
on donne une liste de classes, et une liste d'oprations. Pour chaque classe, slectionner les oprations pertinentes. Etudier le comportement de chaque fonction de chaque classes classes: tableau taille variable : collection ordonne d'objets, indexe par un entier table des symboles : une table qui fait correspondre des mots clef et leur description ensemble : non ordonn, sans doublons oprations ajoute : un objet la fin d'une collection copie : copie une collection

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

12

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

compte : les objets d'une collection dtruit : supprime un lment d'une collection index : retrouve un lment une position donne intersecte : dtermine les lments communs deux collections insre : place un objet dans une collection une position donne modifie : crit un objet dans une collection, par dessus ce qui existe ventuellement dj

3. La modlisation comme technique de conception


un modle est l'abstraction d'une ralit devant servir la comprendre, et ensuite ventuellement la construire en oubliant des dtails non pertinents, un modle facilite cette comprhension l'abstraction est une capacit humaine fondamentale nous permettant d'aborder la complexit aprs une discussion gnrale, ce chapitre prsente les trois modles : le modle objet le modle dynamique le modle fonctionnel

3.1. modlisation
dans tous les domaines les concepteurs utilisent des modles : maquette architecturale maquette davions pour les essais arodynamiques en tunnels croquis crayonn avant de peindre storyboard de dessin anim ou de publicit rsum de livre plan d'une machine ces modles servent diffrents objectifs : tester une entit avant de la construire (maquette de cathdrale, d'avion, simulation informatique) communiquer avec des clients (architectes)

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

13

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

visualiser (artistes, dessins anims) rduire la complexit, la principale raison pour modliser

3.1.1. abstraction
c'est l'examen slectif des diffrents aspects d'un problme

3.2. OMT
OMT permet de modliser un systme selon trois points de vue complmentaires, chacun capturant des aspects essentiels du systme, tous requis pour une description complte le modle objet est le point de vue des donnes le modle dynamique est le point de vue du contrle, des comportements le modle fonctionnel est le point de vue des transformations apportes aux donnes un logiciel combine normalement ces trois aspects : il transforme (modle 3) des donnes (modle 1) d'une faon ordonne dans le temps (modle 2) exemple : les fonctions sont attaches aux objets dans le modle objet, mais ne sont compltement dfinies que par les deux autres modles

3.3. OMT
chaque modle comporte des rfrences aux deux autres ; ces liens sont limits et explicites chaque modle peut tre examin d'un faon relativement indpendante des deux autres chaque modle volue durant le cycle de dveloppement : pendant l'analyse un modle du domaine applicatif est ralis sans ide d'implantation pendant la conception, ce modle est complt par des lments relatifs au domaine de la solution pendant l'implantation, ces deux aspects sont raliss ATTENTION : le terme modle recouvre deux ralits distinctes, gnralement claires par le contexte : la vue du systme : modle objet, dynamique, fonctionnel. On devrait dire modle sous une tape dans le dveloppement : analyse, conception, implantation

3.3.1. le modle objet


ce modle dcrit la structure des objets d'un systme : leur identit

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

14

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

leurs relations leurs attributs leurs oprations les objets sont les lments sur lesquels les autres modles s'appuient les objets sont les atomes (au sens grec : inscable) de nos modles a l'issue de l'analyse le modle objet comporte des termes familiers aux personnes du domaine, et normalement aucune rfrence informatique le modle de conception comporte lui des rfrences informatiques bien videment le modle objet est reprsent par des diagrammes dcrivant les diffrentes classes, hirarchises, et comportant les attributs et les oprations utiles

3.3.2. le modle dynamique


il dcrit les aspects d'un systme o interviennent : le temps les squences les vnements squences d'vnements les tats qui dfinissent le contexte pour des vnements l'organisation des vnements et des tats le modle dynamique dcrit le contrle : les squences d'oprations qui ont lieu, sans gard pour: ce qu'elles font ce sur quoi elles oprent comment elles sont programmes diagrammes d'tat le modle dynamique est reprsent graphiquement l'aide de diagrammes d'tats chaque diagramme dcrit les tats et squences d'vnements permises pour une classe d'objets ces diagrammes comportent des rfrences aux autres modles : les actions correspondent aux fonctions du modle fonctionnel les vnements deviennent des oprations des objets du modle objet

3.3.3. le modle fonctionnel


ce modle dcrit les aspects d'un systme concerns par des changements de valeurs :

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

15

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

fonctions applications contraintes dpendances fonctionnelles ce modle dcrit ce que fait un systme, sans considration pour quand ou comment il le fait le modle fonctionnel est reprsent par des diagrammes de flots de donnes (DFD) les DFD montrent : les dpendances entre valeurs le calcul de donnes de sortie en fonction de donnes en entre et de traitements sans considrer quand, ni si, les fonctions correspondantes sont excutes exemple : la feuille de calcul informatique est un pur modle fonctionnel les fonctions sont vues comme : des actions dans le modle dynamique des oprations dans le modle dynamique

3.3.4. relations entre les mod les


on a vu que chaque modle dcrit un aspect d'une ralit, avec des rfrences aux deux autres modles le modle objet dcrit les structures de donnes utilises par les modles dynamique et fonctionnel les oprations du modle objet correspondent des vnements du modle dynamique et des fonctions du modle fonctionnel le modle dynamique dcrit la structure de contrle des objets il montre les dcisions qui dpendent de valeurs dans l'objet et qui provoquent des actions qui changent cet tat et appellent des fonctions le modle fonctionnel dcrit les fonctions invoques par des oprations du modle objet et des actions du modle dynamique les fonctions oprent sur des donnes dcrites dans le modle objet le modle fonctionnel dcrit aussi des contraintes sur les valeurs des objets

3.3.5. difficult s
on ne sait pas toujours dcider si une information doit ou non figurer dans un modle c'est normal car un modle dcrit ses frontires de faon toujours brutale au dbut, et certaines limites doivent tre dplaces certaines proprits d'un systme peuvent parfois tre mal reprsentes par OMT c'est galement normal, aucun mthode ne peut tre complte dans ce cas, le recours tout autre langage ou mthode (graphique ou non, spcifique au domaine ou non) est souhaitable ou mme ncessaire

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

16

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

3.4. rsum
les modles sont des abstractions construites pour comprendre un problme avant d'implanter une solution informatique les abstractions sont des sous ensembles de la ralit isols dans un but prcis OMT consiste en trois sortes de modles : le modle objet dcrit la structure statique d'un systme en terme d'objets et de relations le modle dynamique dcrit la structure de contrle d'un systme en termes d'tats et d'vnements le modle fonctionnel dcrit la structure fonctionnelle d'un systme en termes de valeurs et de fonctions chaque systme placera une emphase particulire sur l'un des sous modles, mais les trois sont gnralement ncessaires et sont interrelis

3.5. concepts cl du chapitre 2


abstraction modle dynamique modle fonctionnel modlisation modle objet relations entre modles

3.6. exercice
parmi les caractristiques d'un pneu on trouve sa taille, son composant, sa construction interne (carcasse radiale), dessin, prix, poids, dure de vie. quels facteurs sont importants pour celui qui : achte un pneu pour sa voiture ralise un systme de simulation de performance d'un systme anti-glissement pour voitures construit une balanoire

3.7. exercice
on utilise du fil dans diffrentes situations pour chaque application, prparer une liste de caractristiques pertinentes et expliquer pourquoi elles sont importantes cble transatlantique

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

17

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

fil pour faire de l'artisanat color systme lectrique d'un avion suspendre une mangeoire oiseaux sous un arbre construire un piano raliser le filament d'un ampoule lectrique

3.8. exercice
votre baignoire est bouche. Vous voulez la dboucher avec un fil lectrique. Vous en avez de plusieurs types (isols ou non). quelles caractristiques considrez vous pour en choisir un. Expliquez : insensibilit au bruit lectrique couleur de l'isolant rsistance de l'isolant au sel rsistance de l'isolant au feu cot rigidit facilit enlever l'isolant poids disponibilit rsistance l'effort rsistance de hautes tempratures rsistance l'tirement

3.9. exercice
vous ralisez un protocole de transfert de fichiers sur des lignes tlphoniques quels aspects sont pertinents : bruit lectrique

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

18

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

la vitesse de transmission (300 9600 bits par seconde par ex) disponibilit d'une base de donnes relationnelle disponibilit d'un bon diteur plein cran bufferisation et contrle de flot tel que le protocole Xon Xoff pour rguler un flux de donnes arrivant nombre de pistes et secteurs sur un disque dur ou un floppy interprtation de caractres tels que les caractres de contrle organisation des fichiers (flot de bits linaire, ou orient enregistrement) co processeur

3.10. exercice
on possde diffrents modles pour spcifier et concevoir les moteurs lectriques : un modle lectrique dcrit des voltages, courants, champs, inductance et rsistance un modle mcanique dcrit la rigidit, densit, mouvement, force, couple un modle thermique dcrit les transferts, production, dissipation de chaleur un modle fluide dcrit le flux d'air de refroidissement quels modles sont pertinents pour rpondre aux questions suivantes : combien d'nergie est requise pour animer un moteur ; combien est perdue en chaleur combien pse un moteur quelle temprature un moteur peut atteindre combien de vibrations un moteur peut engendrer combien de temps faudra il pour que les roulements soient uss

3.11. exercice
dcider quels modles (objet, dynamique, fonctionnel) sont pertinents pour les aspects suivants d'un programme de jeu aux checs le jeu et les pices sont visualiss sur un cran les coups de l'humain sont dcrits par un curseur et une souris l'interface utilisateur qui dcrit les coups

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

19

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

reprsentation d'une configuration de pices sur le plateau de jeu reprsentation d'une squence de coups possibles validation d'un coup jou par l'humain

4. Modlisation Objet
Un modle objet capte les caractristiques statiques d'un systme en isolant : les objets du systme : lments inscables, ou atomes les relations entre les diffrents objets et ensembles d'objets les caractristiques des attributs et des comportements des objets ce modle est le plus important, les autres s'appuyant sur lui le modle objet utilise une reprsentation graphique intuitive et est utile pour communiquer entre les diffrents contractants d'un projet les concepts fondamentaux prsents dans ce chapitre sont : la classe le lien l'association la gnralisation l'hritage

4.1. objets et classes


4.1.1. objets
on dfinit un objet comme une entit identifiable, ayant des limites connues et prcises, et une pertinence particulire pour le problme considr. les objets ont deux vertus : ils permettent la communication ils servent de base pratique la programmation il n'existe pas pour un problme de dcoupage en objets meilleur que tous les autres ; c'est une affaire de jugement

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

20

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

4.1.2. classes
une classe dsigne un ensemble d'objets ayant en commun : les attributs le comportement les liens avec d'autres classes la signification ou smantique deux objets distincts d'une mme classe peuvent avoir des attributs identiques deux classes distinctes peuvent dcrire les mmes schmas d'attributs et de comportement sans pour autant avoir des smantiques comparables chaque objet connat sa classe : la classe est une proprit implicite de l'objet c'est l'utilisation des classes qui permet d'abstraire un problme ce qui peut tre dcrit au niveau de la classe n'a pas tre rpt au niveau des objets instances

4.1.3. diagrammes objets


les diagrammes objets fournissent une notation graphique pour les concepts de classes et d'objets on dispose de deux types de diagrammes : les diagrammes de classes les diagrammes d'instances les diagrammes de classes dcrivent des ensembles d'objets, leurs caractristiques et les liens inter classes

Individu
les diagrammes d'instances dcrivent des objets effectifs avec leurs liens ils sont utiles pour documenter des jeux de tests (scnarios), et pour discuter des exemples

(Individu) James Bond

(Individu) Bruce Willis

(Individu) Schwarzie

on utilise principalement les diagrammes de classe les diagrammes d'instances servent documenter des diagrammes de classe complexes

4.1.4. attributs
un attribut est une donne maintenue par les instances d'une classe exemple : nom,ge, poids, marque d'un vhicule un attribut reoit une valeur pour chaque instance un attribut est une valeur d'un type fondamental, pas un objet

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

21

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

contrairement aux objets, les attributs n'ont pas d'identit notation pour les attributs dans les classes :

Individu nom : string age : integer


le nom d'un attribut peut tre suivi par diffrents descripteurs ( volont), principalement : le type de la donne la valeur par dfaut

4.1.5. attributs
OMT proscrit l'utilisation d'attributs d'identification

Individu nom : string age : integer ID individu : ID


d'une manire gnrale, on ne doit pas confondre les attributs usage interne et ceux qui possdent une signification dans le domaine que l'on modlise notation des attributs pour les instances :

(Individu) James Bond canonique

(Individu) Bruce Willis 38

(Individu) Schwarzie 2024

4.1.6. oprations et mthodes


une opration est une transformation qui peut tre applique ou par des objets d'une classe une opration possde comme paramtre implicite l'objet pour lequel elle est invoque une opration utilise et/ou modifie des attributs de l'objet une opration peut tre dfinie pour plusieurs classes (polymorphisme) l'implantation effective d'une opration pour une classe s'appelle une mthode (ou encore fonction membre) toutes les mthodes qui implantent une opration doivent avoir : le mme rle symbolique la mme signature le mme type de valeur de retour

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

22

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

Individu nom : string age : integer dmnage change de job

Fichier nom : string taille : integer imprime dite

Objet Gomtrique position couleur bouge(delta:vecteur) slectionne (p:point):bool

4.1.7. caractristiques
caractristique est un terme gnral qui dsigne indiffremment un attribut ou une mthode d'un classe il est utile de distinguer parmi les mthodes : celles qui modifient leur objet celles qui laissent leur objet inchang (accesseurs, requtes) quand elles ne prennent pas d'argument, celles du deuxime type peuvent tre vues comme des attributs drivs un bon modle choisit une politique parmi : soit clairement distinguer les attributs de base et les attributs drivs soit unifier leur notation de faon rendre le modle insensible des changements ultrieurs Rumbaugh conseille de les distinguer

4.1.8. rsum de la notation pour les classes Nom de la Classe attribut1 : type1 = valeur par dfaut 1 attribut i : type i = valeur par dfaut i opration 1 (args 1) : type retour 1 opration j (args j) : type retour j
les attributs et oprations peuvent tre ou non tous mentionns suivant le niveau de dtail vis

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

23

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

4.2. liens et associations


4.2.1. concepts gnraux
les liens les liens et associations permettent de dfinir des relations entre objets un lien est une connexion physique entre instances d'objets exemple : James Bondtravaille pour l'intelligence service mathmatiquement, un lien est un n-uple : une liste ordonne d'objets un lien est une instance d'association les associations une association est un groupe de liens avec une structure commune et une smantique identique exemple : un agent secrettravaille pour un service secret mathmatiquement, une association est une relation une association est bi directionnelle la direction induite par le nom est dite direction normale l'autre direction est dite direction inverse l'association inverse possde parfois un nom, mais ce n'est pas ncessaire exemple : un service secret emploie un agent secret liens et associations vs pointeurs les liens sont souvent implants via des pointeurs ils ne peuvent tre modliss ainsi les pointeurs masquent le caractre bidirectionnel des liens c'est encore plus criant quand l'association est plus que binaire les associations ne sont pas seulement des notions utiles en bases de donnes : toutes les connexions entre classes devraient tre modlises par des associations utilisation des directions un lien est fait pour tre parcouru lorsque toutes les possibilits de parcours ne sont pas utiles, l'implantation du lien peut se faire plus simplement notation pour une association binaire 1-1

Ville nom

est capitale de

Pays nom

le mme diagramme est obtenu pour des instances et non des classes le nom d'association est en italique il peut tre omis si c'est vident par le contexte (rare)

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

24

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

il est prfrable de permettre une lecture gauche droite si possible notation pour une association plus complexe diagramme de classes

Ligne nom
le cas concret

intersecte en 2+ L2 nom

Point

L3 L5 L1
diagramme d'instances

P1

P2 L4

(Ligne) L1 (Ligne) L2 (Ligne) L3 (Ligne) L4 (Ligne) L5


associations ternaires et plus une association peut tre d'arit quelconque en pratique on dpasse rarement trois la trs grande majorit des associations est binaire, ou binaire qualifie les associations d'arit dpassant trois sont difficiles dessiner, penser, expliquer exemple : tout programmeur utilise un langage de programmation sur un projet

(Point) P1 (Point) P2

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

25

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

Projet

Langage

Personne
cette relation est atomique elle ne peut pas tre rduite des associations binaires sans perdre d'informations le nom (optionnel) d'une telle association est crit ct du losange diagramme d'instances pour un lien ternaire :

(Projet) rseau (Personne) Steve

(Langage) C++

(Projet) systme 4.2.2. multiplicit

(Langage) Perl

la multiplicit dsigne le nombre d'instances d'une classe qui peuvent tre lies une instance d'une classe associe la multiplicit est souvent d'ordre "1", ou d'ordre "plusieurs", mais en fait toutes les situations sont possibles un rond noir signifie "zro ou plus" un rond blanc signifie "zro ou un" la multiplicit peut toujours tre prcise : 2+ cot d'un rond noir signifie "2 ou plus" la multiplicit est crite du ct de la classe qui porte la multiplicit, c'est dire dont les instances sont comptes exemple : il faut au moins deux lignes pour un point d'intersection exemple : une station de travail affiche zro ou une fentre "console"

Station
choix des multiplicits

console

Fentre

la dtermination prcise des multiplicits se fait en gnral lorsque le modle est assez avanc et bien compris le choix des multiplicits dpend souvent de conditions importantes sur le domaine exemple : est ce que la relation "travaille pour" est 1-1? la distinction la plus importante est entre 1 et plusieurs

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

26

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

sous estimer la multiplicit peut conduire une mauvaise flexibilit de l'application exemple : une personne a t'elle un ou plusieurs numro de tlphone? sur estimer la multiplicit conduit des cots inutiles note : la notation utilisant les ronds blancs et noirs est ambigu pour les associations n-aires

4.2.3. l'importance des associations


les associations sont utilises dans le monde des bases de donnes peu de langages les offrent de faon explicite pendant la modlisation, on doit refuser de reprsenter une relation via un pointeur ou une rfrence noy(e) dans les attributs d'un classe on doit au contraire utiliser une association, qui a le mrite de signaler que l'association dpend de deux ou plus classes, et n'est pas "contrle" par une seule certains auteurs clament que les associations violent le principe d'encapsulation Rumbaugh dit que les associations constituent une information qui est fondamentalement extrieure aux classes (je suis d'accord avec ce point de vue)

4.3. notions avances de liens et associations


4.3.1. attributs de liens
un attribut de lien est une proprit des liens d'une association exemple : "droit d'accs" est une proprit du lien "accessible par" entre un utilisateur et un fichier

Fichier

accessible par droit d'accs

Utilisateur

/etc/termcap /etc/termcap /usr/henocque/.login

(read) (read write) (read write)

Steven PMM Henocque

un tel attribut est sans conteste une proprit du lien, qui ne peut tre attache aucun des deux objets lis

4.3.2. attributs de liens


exemple : des personnes travaillent pour exactement une socit ; l'une d'elle est le patron qui note ses employs

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

27

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

patron

Personne nom adresse n SSociale


employ

travaille pour

Socit nom adresse n Siret

salaire fonction dirige

valuation
modliser le salaire et la fonction par un attribut de lien est plus flexible que par un attribut de personne le modle ci dessus survit mme si l'on dcide qu'un salari peut travailler pour plusieurs entreprises ce choix n'existe que dans le cas d'associations n-1 attributs d'associations ternaires

Equipe de Base Ball Lanceur Anne

matches gagns matches perdus


(un lanceur peut jouer pour plusieurs quipes la mme anne)

4.3.3. modliser une association comme une classe


il est parfois utile de modliser une association comme une classe : quand un lien peut participer des associations avec d'autres classes quand un lien peut comporter des oprations dans ce cas, chaque lien devient une instance de la classe

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

28

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

Utilisateur

autoris sur Autorisation priorit privilges session

Station

home directory

Rpertoire 4.3.4. noms de rles


un rle est une extrmit d'association une association binaire a deux rles, et chacun peut recevoir un nom un rle permet de voir une association comme un moyen de naviguer d'un objet un ensemble d'objets lis le nom de rle est le nom que l'on donnerait au champ de la classe oppose qui pourrait implanter le lien un nom de rle est un attribut driv de la classe oppose dont la valeur est un ensemble d'objets lis (et donc accessibles) parfois le nom de la classe est suffisant et permet l'omission des noms de rles, notamment lorsque deux classes ne participent ensemble qu' une seule association

Individu

travaille pour
employ employeur

Socit

4.3.5. noms de rles


les noms de rles sont ncessaires pour des associations liant des objet d'une mme classe les noms de rles au bout des associations attaches une classe doivent tre uniques ils ne peuvent non plus tre en conflit avec des noms d'attributs propritaire

User
utilisateur authoris

Rpertoire
contenu

conteneur

une association n-aire a un nom de rle chaque extrmit toutefois, cela ne reprsente plus une possibilit de parcours simple comme auparavant

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

29

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

4.3.6. ordre
habituellement, les objets du ct "plusieurs" ne sont pas ordonns, et sont vus comme appartenant un ensemble dans certaines situations, l'ordre est souhait l'ordre est un cas particulier de contrainte {ordered}

Fentre 4.3.7. qualification

visible sur

Ecran

une association qualifie fait intervenir deux classes et un qualifieur le qualifieur est un attribut particulier qui permet de rduire la multiplicit d'une association les associations 1-n et m-n peuvent tre qualifies le qualifieur distingue parmi les objets d'un ct "n" une association qualifie peut tre vue comme une forme d'association ternaire exemple : un rpertoire contient de nombreux fichiers, distingus par leur nom

Rpertoire

nom de fichier

Fichier

la qualification ne rduit pas toujours l'unit souvent, la qualification rduit l'unit, c'est dire que le qualifieur identifie exactement un objet ce n'est pas toujours le cas

Socit

fonction

Individu

une mme personne peut tre directeur de plusieurs socits une socit peut avoir plusieurs directeurs en connaissant la fonction dans la socit, on rduit cependant le nombre des individus ligibles pour le lien le qualifieur peut parfois tre vu comme un attribut on peut parfois modliser un qualifieur par un attribut exemple : les socits sont identifies sur chaque place boursire par une abrviation tlex, toujours la mme

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

30

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

Bourse

Bourse abbrviation

Socit abbrviation Non Qualifie

Socit

Qualifie

la version qualifie est prfrable, car elle rsisterait au fait qu'une mme socit possde des abrviations tlex diffrentes sur des places boursires distinctes

4.3.8. agrgation
l'agrgation est la relation de la partie au tout, des composants l'assemblage exemples : les parties d'une automobile, les parties de la dclaration d'une fonction C sa proprit significative est la transitivit remarquable galement est son antisymtrie enfin, certaines proprits de structure se propagent aux composants l'utilisation de l'agrgation n'est pas toujours vidente ; dans le doute il faut utiliser une association habituelle une relation d'agrgation lie une classe assemblage une classe composant un assemblage avec plusieurs composants correspond plusieurs relations d'agrgation on peut dcrire la multiplicit des composants dans l'assemblage

Document

Paragraphe

Phrase

l'existence d'un composant peut dpendre de l'existence du conteneur (cas prcdent) dans d'autres cas les composants peuvent avoir une existence indpendante (pices d'une radio) agrgation une agrgation peut comporter plusieurs niveaux on attend d'un diagramme d'agrgation d'expliciter les diffrents niveaux de structure d'un assemblage si possible

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

31

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

PC
1+

Moniteur

Boitier Systme

Souris

Clavier

Chassis

CPU

RAM

Ventilateur

4.4. gnralisation et hritage


4.4.1. concepts gnraux
hritage et gnralisation sont utiles pour partager des concepts entre plusieurs classes tout en prservant les diffrences la gnralisation est la relation entre une classe et une ou plusieurs versions raffines de la mme classes la classe prcise est lasuperclasse les autres sont dessous classes exemples : quipement est une super classe de toit ouvrant et de rtroviseur les attributs et oprations dcrits pour la super classe sont hrits par les sous classes l'hritage est le mcanisme par lequel des caractristiques dcrites pour une super classe sont rendues disponibles dans une sous classe la relation de gnralisation est souvent appele relation "est un", ou bien "est une sorte de" (en anglais "is a" sa relation rciproque est appele spcialisation proprits hritage et gnralisation sont transitives on utilise les termes de (classe) anctre et de (classe) descendante pour dnoter la fermeture transitive de la gnralisation une instance de sous classe est aussi instance de toutes ses classes anctre un instance d'une sous classe comporte des donnes pour tous les champs de ses anctres toute opration anctre (non prive) peut tre applique une classe

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

32

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

notation graphique

Equipement nom poids cot Pompe pression dbit Radiateur surface pression

type quipement

Rservoir volume

type pompe

Pompe centrifuge diamtre nombre de pales

Pompe diaphragme type membranne

Pompe a pistons num cylindres

type rservoir

Rvr pressuris diamtre

Rvr sphrique diamtre hauteur

Rvr toit flottant diamtre hauteur

discriminateurs les mentions "type de" sont des discriminateurs un discriminateur est un attribut de type numr qui indique quelle proprit est abstraite par la relation de gnralisation seulement une proprit peut tre gnralise par niveau exemple : la classe vhicule peut tre discrimine de deux faons : par le mode de propulsion (humaine, cheval, charbon, diesel ) par le milieu (eau, air, terre, espace ) le discriminateur n'est qu'un nom donn la gnralisation les valeurs de discriminateurs sont dans une correspondance bijective (un-un) avec les sous classes les discriminateurs ne sont pas forcment implants dans les programmes les discriminateurs ne sont pas impratifs dans les diagrammes objet

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

33

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

hritage de mthodes

Figure couleur centre paisseur trait move select rotate display dimension 0 dimension 1 orientation resize

dimensionalit

dimension 2 orientation remplissage resize fill

Point

Ligne points display

display

Arc rayon angle arc angle dpart display

Polygone num de cts artes display

Cercle diamtre display rotate

4.4.2. utilisation de la g nralisation


la gnralisation permet de capturer ce qui est commun et ce qui diffre entre classes en gnral, on ne dpasse pas dix niveaux d'hritage dans un projet l'hritage d'oprations permet de rutiliser des programmes les langages objet offrent de bonnes possibilits d'hritage les bases de donnes pas du tout (sauf nouveaut des BDOO et du relationnel tendu) aprs la modlisation d'un systme, le concepteur analyse les classes produites, et tente de dfinir des entits abstraites groupant des caractristiques : permet de rutiliser les programmes associs l'importance premire de l'hritage vient cependant de la simplification conceptuelle

4.4.3. surdfinition (surcharge) de caractristiques


une sous classe peut surdfinir une caractristique (attribut ou opration) en en dfinissant une nouvelle de mme nom il peut y avoir plusieurs raisons pour vouloir cela :
Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille 34

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

pour dfinir un comportement qui dpend de la sous classe pour une meilleure performance pour durcir la spcification d'une caractristique on peut surcharger les valeurs par dfaut d'attributs, les mthodes des oprations on ne doit jamais modifier la signature d'une mthode on ne doit jamais modifier la smantique d'une opration restreindre le type d'un argument de mthode ou d'un attribut une sous classe du type original est une forme de restriction qui doit tre utilise avec prcautions (vue en dtail plus loin) on peut souvent profiter des caractristiques d'une sous classe pour amliorer les performances d'une opration (rotate pour la classe cercle) on doit s'en tenir strictement ce que la relation de gnralisation reprsente "une sorte de" et ne jamais hriter d'un classe sous prtexte qu'elle "ressemble" ce qu'on souhaite

4.5. structuration du modle


4.5.1. le module
le module est une unit logique qui groupe des classes, associations et gnralisations c'est une vue du problme (exemple : lectricit, plomberie ) les limites d'un module sont parfois subjectives un modle objet consiste en un ou plusieurs modules les noms de classes et d'associations doivent tre uniques dans un module il est prfrable d'avoir des conventions de nommage uniformes et cohrentes entre les modules le nom du module est habituellement mentionn en haut de chaque feuille mentionner la mme classe dans plusieurs modules est le mcanisme par lequel on lie les modules entre eux raisonnablement, les liens externes entre modules doivent tre bien moins nombreux que les liens internes

4.5.2. la feuille
la feuille permet de dcoupe le modle objet complet en une srie de pages chaque feuille consiste en une unique page un module consiste de une ou plusieurs pages jamais plusieurs modules sur une page chaque feuille possde un titre et un numro chaque association ou gnralisation apparat sur une seule feuille une classe peut apparatre sur plusieurs feuilles, crant de ce fait le lien entre les feuilles on peut (non obligatoire) mentionner dans un cercle auprs d'une classe les nom et/ou numros des feuilles qui compltent la description de la classe

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

35

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

4.6. un exemple de modle objet : feuille 1


Window x1; y1; x2; y2; display undisplay raise lower Scrolling Window x-offset y-offset scroll Canvas cx1;cy1 cx2;cy2 add elem del elem Panel

Text Window string insert delete

Scrolling Canvas

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

36

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

4.7. un exemple de modle objet : feuille 2


window

Shape line width

Canvas

elements color

Line x1 ; y1 ; x2 ; y2; draw

Closed shape fill color fill pattern

Ellipse x;y;a;b draw

Polygon draw

Point x;y; {ordered}


vertices

4.8. un exemple de modle objet : feuille 3


Panel item name

Event
notify event action

Panel Item x y label Button string depressed


current

keyboa rd event

Choice item
{member}

Text item max length current string


choices

Choice entry string value

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

37

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

4.8.1. dfauts du modle


type rectangle, pour fentres et canvas line cas particulier de polyline, auquel cas polyline et polygone hritent d'un type qui dfinit une liste ordonne de points il manque beaucoup d'attributs et d'oprations il manque des associations entre fentres (recouvrement par ex) etc. ... il est important de remarquer que l'on peut critiquer les dtails justement parce que le modle dit quelque chose de prcis

4.9. trucs pratiques


ne pas se jeter sur le modle : rflchir en premier garder le modle simple choisir les noms avec attention ne pas mettre de pointeurs dans les attributs viter les associations ternaires ou plus ne pas prciser les multiplicits trop tt ne pas placer les attributs de liens dans une classe utiliser des associations qualifies autant que possible viter les gnralisations trop profondes bien vrifier le bien fond des associations 1-1 se prparer des moutures successives du modle faire lire son travail par d'autres toujours documenter son modle : cela guide le lecteur sur la comprhension des choix faits et explique les noms utiliss ne pas ncessairement utiliser toutes les constructions d'OMT

4.10. rsum du chapitre


les modles objet dcrivent la structure statique d'objets, de classes et leurs relations liens et associations ralisent des relations entre classes un lien connecte deux ou plusieurs objets pour modliser les associations, on dispose de plus d'attributs de liens, de qualifieurs, de multiplicit, de noms de rles l'agrgation est une forme particulire d'association gnralisation et hritage sont des outils fondamentaux pour l'abstraction de concepts un modle objet est organis en modules et en feuilles ds lors qu'il existe, un modle peut tre critiqu, complt, compar au monde rel qu'il reprsente

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

38

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

4.11. concepts clef


agrgation association attribut attribut de lien caractristique classe discriminateur feuille gnralisation hritage identit instance lien mthode multiplicit objet opration ordre qualification rle signature spcialisation surcharge

4.12. exercice
suivant :

prparer un diagramme de classes pour le diagramme d'instances

(Point) 10 -10

(Point) 10 10

(Polygone) (Point) -10 -10 (Point) -10 10

expliquer les choix de multiplicit chaque point possde une coordonne x et y. Quel est le nombre minimal de points pour construire un polygone cela fait il une diffrence qu'un point soit ou non partag par plusieurs polygones comment exprimer le fait que des points soient en squence

sur la base de l'exercice prcdent, prparer un diagramme d'instances pour deux triangles ayant une arte commune dans les cas suivants : un point figure dans exactement un polygone un point peut figurer dans deux ou plus polygones

4.13. exercice

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

39

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

prparer un diagramme d'instances pour l'expression (X+Y/2)/(X/3+Y) selon le diagramme de classes suivant : premier oprande second oprande

4.14. exercice

Terme

Expression oprateur binaire

Variable nom

Constante valeur

modifier ce diagramme de classes de sorte que les termes ne soient plus partags, et afin de prendre en compte le "-" unaire

prparer un diagramme de classes pour le ner des philosophes d il y a cinq philosophes et cinq fourchettes autour d'une table chaque philosophe peut prendre les 2 fourchettes qu'il a ses cts chaque fourchette est partage par deux philosophes chaque fourchette est soit sur la table soit utilise par un philosophe un philosophe doit avoir deux fourchettes pour manger

4.15. exercice

prparer un modle objet pour dfinir des graphes non directionnels un tel graphe est constitu d'un ensemble de noeuds et d'un ensemble d'artes les artes connectent des paires de noeuds le modle ne doit s'intresser qu' la structure logique d'un tel graphe, et non aux dtails de reprsentation (positions des noeuds, longueur des artes par ex)

4.16. exercice

prparer un modle pour des graphes directionnels cette fois ci modliser la direction par un qualifieur de sorte que l'on puisse distinguer le noeud qui est connect la tte ou la queue de chaque arte

4.17. exercice

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

40

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

4.18. exercice
Individu nom age ID employeur 1 ID employeur 2 ID employeur 3 ID individu adresse

amliorer le modle esquiss ci dessous Voiture ID propritaire ID vhicule type propritaire modle anne Crdit auto ID vhicule type client ID client n compte ID banque taux solde courant Socit nom ID socit Banque nom ID banque

5.

Modlisation Objet Avance


5.1. lagrgation
lagrgation est la relation de la partie au tout un objet est un agrgat de ses composants des composants peuvent ou non avoir une existence autonome certaines proprits des objets se propagent aux composants lagrgation rcursive est courante

5.1.1. agrgation et association compares


lagrgation est une forme particulire dassociation critres de distinction : relation de la partie au tout, propagation, antisymtrie naturelle de la relation?

Socit

Division

Dpartement

Individu 5.1.2. agrgation et gnralisation compares


lagrgation lie des instances, alors que la gnralisation dcrit des classes on parle parfois dhritage structurel pour qualifier la propagation de valeurs et doprations dans les agrgats

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

41

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

Lampe

Lampe fluo

Incandesc.

Pied

Cable

baillonnette Transfo Starter Monture

5.1.3. agrgats fixes, variables et rcursifs


la lampe ci dessus est un agrgat fixe un agrgat variable a un nombre fini et dtermin de niveaux, mais le nombre des lments peut varier un agrgat rcursif est dfini par un objet du mme type; le nombre de niveaux potentiels est illimit

Programme

Block

Instruction compose 5.1.4. propagation doprations

Instruction simple

les agrgats permettent la propagation doprations : dplacement dun paragraphe dans un texte, copie de ce paragraphe, les agrgats permettent la propagation de valeurs : la couleur dun automobile aux parties de sa carrosserie

5.2. les classes abstraites


une classe abstraite ne possde pas dinstances, mais dcrit des attributs et oprations communs plusieurs sous classes une classe concrte peut avoir des sous classes abstraites

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

42

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

Objet
la classe dans un diteur graphique est typiquement abstraite toutes les oprations non dfinies, mais simplement nommes dans une classe abstraite doivent recevoir une implmentation dans les sous classes concrtes une classe abstraite dcrit (une partie de) linterface de programmation de ses sous classes concrtes sans tre capable de produire une implantation effective de la plupart des oprations

5.3. la gnralisation vue comme extension et restriction


lhritage donne a toute instance dune classe le type de ses super classes cela interdit quune classe hrite altre ou supprime un attribut ou une opration linterface dappel dune opration ne peut pas non plus changer on appelle extension lajout de caractristiques nouvelles par une sous classe on appelle restriction le fait quune sous classe contraigne ses attributs exemple : le cercle est une ellipse particulire une sous classe doit interdire des modifications de ses attributs qui la feraient sortir de son type : certaines oprations accessibles la super classe doivent tre interdites (tirement non contrl dun cercle) des attributs ayant subi une restriction doivent pouvoir tre renomms (axe -> diamtre)

5.3.1. surcharge doprations


lhritage doit tre vu conceptuellement comme implantant la relation est un. Malgr tout, il permet de partager des implantations et cela engendre des conflits ou ambiguts. On distingue : la surcharge pour extension : lopration est la mme que dans la classe dorigine, mais elle affecte des donnes membres nouvelles la surcharge pour restriction : la nouvelle opration restreint linterface, notamment en donnant des types plus prcis ses arguments la surcharge pour optimisation la surcharge de confort (on hrite dune classe qui ressemble) : A EVITER OMT propose de suivre les rgles suivantes : tous les accesseurs sont hrits par toutes les sous classes tous les modifieurs sont hrits par toutes les extensions les modifieurs qui changent les attributs contraints dune restriction sont contrls ou interdits une mthode ne peut changer de smantique lors dune surcharge toutes les surcharges dune opration possdent la mme signature les oprations hrites peuvent tre redfinies pour grer les extensions de la classe

5.4. hritage multiple


lhritage multiple nest pas une coquetterie, mais dutilit vritable

5.4.1. dfinition
une classe peut incorporer des mcanismes provenant de plusieurs super classes

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

43

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

les conflits entre symboles hrits doivent tre levs par le programme

Vhicule

V. Terrestre

V. Aquat

Auto

Amphibie

Bateau

la classe Amphibie hrite de faon multiple de vhicule terrestre et aquatique ce deux classes hritent de faon virtuelle de Vhicule, ce qui est figur par un triangle noir : cela signifie que si les caractristiques sont hrites plusieurs fois, elles ne seront pas dupliques OMT dcourage fortement, voire interdit lhritage multiple non virtuel dune mme classe de base

5.4.2. hritage multiple accidentel


une instance dune sous classe est automatiquement instance de toutes ses super classes. Il est ainsi possible de dire quun assistant duniversit est la fois enseignant et tudiant mais comment permettre quun professeur attitr, non plus un assistant, soit aussi tudiant dans une (autre) universit lapproche habituelle est de traiter une personne comme un agrgat de ses multiples statuts universitaires possibles :

Individu

Universitaire

Enseignant

Etudiant

Assistant 5.4.3. que faire en son absence?


si on ne dispose pas dhritage multiple, le plus simple est de le simuler en hritant de la classe la plus importante, et en construisant des instances des autres classes dites classes dlgues

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

44

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

5.5. mtadata
les mtadonnes sont des donnes qui en dcrivent dautres : cf. la dfinition dune classe les modles sont des mtadonnes les bases de donnes en comportent toujours

5.5.1. motifs
un patron dcrit des instances du patron, comme une classe dcrit ses instances OMT utilise des flches pointilles pour relier les instances leur patron

Jim Personne nom age poids

Jack

5.6. mtadata
une partie dun modle du monde rel peut galement dcrire des mta donnes. OMT permet de les reprsenter et de lier mtadonnes et donnes

Modle nom anne prix

Voiture numro de srie color options

Constructeur 5.6.1. descripteurs de classe

Individu

les classes peuvent aussi tre considres comme des objets : grer des informations propres avoir des oprations propres lopration de construction dune instance dun type est typiquement une opration de la classe

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

45

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

Objet nom $liste des objets $nom par dfaut $new-Objet() $affiche-liste()

5.7. clefs minimales - candidate keys


une clef minimale (candidate key en anglais) est un ensemble minimal dattributs qui identifie uniquement un objet ou un lien une classe ou une association peut avoir plusieurs clefs minimales lid dun objet est toujours une clef minimale

Individu possde actions Socit {candidate key : (Individu), (Socit)}


les clefs minimales sont utiles pour expliciter les associations ternaires et plus : savoir si on doit disposer de deux ou trois objets pour identifier le lien est une information trs importante

{candidate key : (Etudiant), (Universit)} Etudiant Universit

Professeur

5.8. clefs minimales - candidate keys


on dtermine les clefs minimales en tudiant des jeux dinstances

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

46

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

{candidate key : (Projet),(Individu),(Langage)} Projet Langage

Individu
pour comprendre lintrt de cette notion, il faut se rappeler que lon peut associer des informations aux liens : la clef minimale permet de dire quelles sont les lments quil faut fournir pour retrouver ces informations coup sr.

5.9. contraintes
5.9.1. dfinition
une contrainte est une condition logique qui sapplique des entits du modle : objets, classes, attributs,liens, associations une contrainte limite les valeurs que peuvent prendre certains attributs, soit tout moment (contrainte universelle), soit au cours du temps (contrainte dynamique) les contraintes sont exprimes de faon dclarative de prfrence un bon modle dcrit de nombreuses contraintes

Travailleur salaire

patron

Process priorit {priorit dcroissante ou stationnaire}

{salaire < patron.salaire} 5.9.2. contraintes sur liens

la multiplicit contraint une association la notation {ordered} est aussi une contrainte sur une association

5.9.3. contraintes g nrales


les contraintes gnrales lient plusieurs classes ou associations. Ce lien est mentionn par des flches pointilles assorties dun nonc comment de la contrainte elles doivent tre exprimes sous forme naturelle ou en quations (meilleur) lorsque trop de classes sont lies par la contrainte, il vaut mieux la dcrire part que de ruiner le modle

membre Personne {sous ensemble} prsident


Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille 47

Association

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

5.9.4. objets, liens et attributs d rivs


un objet driv est fonction dun ou plusieurs objets, peut tre drivs eux mmes un tel objet est dtermin totalement par ses arguments la notation pour ce type nouveau est une ligne diagonale voici un exemple dattribut driv :

Individu date de naissance /age

Date du jour

{age = date du jour - date de naissance} 5.9.5. objets, liens et attributs drivs
un exemple de classe drive

Tout

Ensemble

Partie

Pos. relative position

Pos. relative position

Pos. absolue position {position = tout-ensemble.pos + ensemble-partie.pos}


les modles concrets comportent toujours de nombreuses entits drives

5.9.6. homomorphismes
un homomorphisme dcrit une application entre deux associations

se projette en Entre catalogue rfrence dcrit Pice n de srie

item1 contient item2 implique item1.rfrencecontient item2.rfrence


le cas gnral est dcrit ainsi :

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

48

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

MA

r A

t MB

{u(a,b) -> t(a.r,b.s)} B

5.10. rsum du chapitre - mots clef


agrgation classe abstraite classe concrte clef minimale contrainte entit drive gnralisation hritage hritage multiple homomorphisme instantiation mta donnes propagation signature surcharge

5.11. exercices
5.11.1. exercice

dcrire la structure dune automobile

5.11.2.

exercice

prparer un diagramme objet pour un diteur graphique qui permette de grouper les objets un document est constitu de plusieurs feuilles les objets sont du texte, des formes et des groupes

6.

Modlisation dynamique

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

49

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

les aspects dun systme qui ont voir avec le temps et les changements sappellent le modle dynamique ce chapitre dcrit le flot de contrle dans un modle OMT les notions fondamentales sont les tats (accessibles dun systme) et les vnements qui permettent de produire des changements dtat

6.1. vnements et tats


les attributs dun objet un moment donn dcrivent son tat la rponse un vnement dpend de ltat, et en retour est susceptible de modifier cet tat, ou mme ltat dautres objets

6.1.1. vnements
un vnement se produit un instant donn dans le temps, et ne possde pas de dure les vnements sont squencs dans le temps deux vnements sans lie de causalit sont dits concurrents, ou parallles (sans quils doivent ncessairement se produire simultanment) chaque vnement est unique, mais on dcrit des classes dvnements, munies dune organisation hirarchique certains vnements sont de simples signaux, mais dautres portent des informations transmise dun objet un autreles informations associes un vnement sont des attributs de sa classe exemples : dcollage davion : avion, n de vol, vile appui sur la souris (n de bouton, coordonnes) on dcroche le tlphone les vnements groupent vnements normaux et conditions derreur

6.1.2. scnarios et traces


un scnario est une squence relle dvnements qui se produit pendant une excution du systme les scnarios sont comparables aux instances dans leur relation aux classes dobjets : des instances` exemple : les vnements successifs lors dune communication tlphonique ltape qui suit le listing dun scnario est lidentification des objets impliqus une trace associe les vnements et les objets source et destination des informations associes dans le cas du tlphone on aurait :

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

50

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

appelant
lappelant lve le combin tonalit compose(1) fin de tonalit compose(i) //rpt tonalit sonnerie

ligne

appel

sonnerie dcroche

fin de tonalit sonnerie connexion raccroche fin de connexion

fin de sonnerie connexion

fin de connexion tonalit fin de connexion raccroche

6.1.3. tats
un tat est une abstraction des valeurs dattributs et de liens dun objet et dcrit un ensemble de valeurs un tat est stable entre deux vnements reus par un objet et possde une dure lensemble des valeurs dun attribut correspondant un tat est souvent dcrit en intention par une condition logique ou une contrainte (exemple des tempratures) la description des vnements et tats dpend du niveau dabstraction auquel on se place : un seul vnement dans un modle peut tre dcompos en de nombreux vnements et tats dans un modle plus prcis (exemple du vol Paris New York la description des tats ignore les attributs non pertinents
Etat : l'alarme sonne

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

51

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

Description : l'alarme du rveil sonne pour indiquer que l'heure prvue est atteinte Squence qui produit l'tat : set alarm(heure) toute squence ne comportant aucun "clear alarm" heure courante = heure prvue Condition qui caractrise l'tat alarm = on, 0 heure courante - heure prvue<30 s aucun bouton n'a t pouss depuis le dbut de la sonnerie Evnements accepts dans l'tat: heure = heure prvue + 30 arrt sonnerie arrt sonnerie alarm set alarm set alarm off

bouton pouss (sauf alarm on/off) alarm on/off pouss

arrt sonnerie

6.1.4. diagrammes d tats


un diagramme d'tat associe des vnements et des tats quand un vnement est reu, l'tat suivant dpend de l'tat courant et de l'vnement un changement d'tat du fait d'un vnement est appel une transition un diagramme d'tat est un graphe dont les noeuds sont des tats et les arcs des transitions marques par leur vnement associ quand les conditions d'une transition sont runies, on dit que celle ci "dclenche" un diagramme d'tats dcrit le comportement d'une seule classe d'objets chaque instance obit au mme diagramme, mais se trouve dans un tat "personnel" un diagramme d'tats peut reprsenter une boucle, ou bien un traitement unique les diagrammes de traitement unique possdent un tat initial et un tat final de tels diagrammes peuvent tre vus comme des sous programmes pour un diagramme complet

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

52

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

raccroche

repos
dcroche

raccroche

tonalit
numro (n)

dlai dlai invalide

occup

composition message
traffic

message

numro valide

connexion occup
appel occup routage effectu

sonnerie
appel dcroche

connect
appelant raccroche

dconnect
un diagramme de traitement unique : dbut

blanc
blanc joue noir joue

mat jeu impossible

noir gagne

nul jeu impossible

noir

blanc gagne mat

6.1.5. conditions
une condition est une fonction boolenne de l'tat d'un objet, valide sur un intervalle de temps un tat peut tre dfini par une condition tre dans un tat est une condition

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

53

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

les conditions peuvent tre utilises pour garder des transitions, qui ne peuvent tre dclenches que si la condition est satisfaite

6.2. oprations
6.2.1. contrle des oprations
le diagramme d'tat comme tel est de peu d'utilit s'il ne permet pas de dcrire comment les objets ragissent aux vnement les oprations attaches aux tats et aux transitions sont effectues en rponse aux stimulations associes une activit est une opration qui "dure" un certain temps, et est associe un tat on compte comme activits les oprations continues : fonctionnement d'un moteur par exemple et les oprations non instantanes (excution d'un programme, dplacement du bras d'un robot) la notation "do:A" dans une boite d'tat traduit l'excution d'une activit A associe l'tat, ds l'instant d'entre dans l'tat une action est une opration sans dure, associe une transition, ou l'entre dans un tat traduire une activit par une action est lgitime ds lorsque l'on ne s'intresse pas la structure de contrle de l'opration. Sinon c'est impossible la notation /A est utilise pour associer un action A une transition

6.2.2. rsum de la notation Etat 1


do: A, B, C, D vt(param)[cond]/a,b,c do:

Etat 2

6.2.3. exemple
complter le diagramme d'tats pour la ligne tlphonique avec des actions et des activits

6.3. diagrammes dtats imbriqus


6.3.1. dfauts des diagrammes plats
les diagrammes dtats classiques deviennent couramment inextricables pour des problmes rels les situations relles limitent rarement les transitions possibles d'un tat un autre, et donc la taille du graphe grandit polynomialement par rapport au nombre de noeuds la solution cette difficult tient l'abstraction : via la gnralisation et l'agrgation on dcrit ainsi des tats "abstraits", qui combinent un ensemble d'tats, et permettent de rduire le nombre de transitions dans les diagrammes par la gnralisation, on permet de dcrire un certain niveau une activit, qui pourra ultrieurement tre dcrite par un diagramme d'tats spcifique

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

54

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

galement, on peut dcrire les tats et vnements dans des structures hirarchiques avec hritage de la structure partage et des comportements communs par l'agrgation, on permet un tat d'tre dcrit par une collection d'tats orthogonaux concurrents (parallles) les tats concurrents correspondent normalement des agrgats d'objets qui interagissent, et parfois au systme entier

6.3.2. imbriquer lestats


une activit (resp. un vnement) d'un diagramme peut tre dcrite par un diagramme de plus bas niveau, excution unique, qui possde donc une transitions d'entre et une ou plusieurs transitions de sortie. Un telle description est analogue celle d'un sous programme voici l'exemple d'un distributeur automatique

Attente

pice(valeur)/ajoute annulation/rendre

Entre de pices
pice(valeur)/ajoute choisit(article) [rendu < 0]

[article vide]

do : vrifie choix non vide et calcule le rendu de monnaie


[rendu == 0] [rendu > 0]

do : dlivre article

do : rend monnaie

on peut dcrire un sous diagramme pour l'activit "dlivre article" : dplacement du bras robot puis saisie puis lcher par exemple on peut aussi fournir un sous diagramme pour l'vnement "choisit article" : saisie successive des chiffres du code article

6.3.3. gnralisation dtats


l'imbrication de diagrammes est une forme de gnralisation : l'objet doit tre dans l'un exactement des tats du sous diagramme quand l'tat abstrait est actif (cf. "dlivre article" ci dessus) mais les tats du sous diagramme sont alors non sensibles aux vnements externes, ce qui n'est pas le cas gnral les tats peuvent avoir des sous tats qui hritent des transitions de leurs super-tats. Toute transition qui s'applique un super)tat s'applique chacun de ses sous tats exemple de la boite de vitesses automatique :

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

55

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

Point mort
N F acclre dclre

R N

M.Arrire

M. Avant
stop

acclre dclre

on peut aussi reprsenter les situations suivantes : transition directe vers un tat imbriqu transition directe vers un tat extrieur

6.3.4. gnralisation dvnements


on peut dcrire des classes d'vnements et dcrire des raffinements par hritage : par exemple les vnements gnrs par un systme clavier plus souris la classe la plus gnral dans ce cas est la classe event :

Event instant

Entre utilisateur device

6.4. paralllisme
6.4.1. paralllisme dagrgation
un modle dynamique dcrit les tats possibles des objets du systme chaque objet est dans un tat propre, et de ce fait volue de faon quasi indpendante du reste du monde

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

56

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

un diagramme dtats pour un assemblage est une collection de diagrammes : un pour chaque composant les transitions gardes pour un objet peuvent dpendre de ltat dun autre exemple : dans une voiture : le contact, la boite de vitesse, le frein, lacclrateur voluent de faon indpendante; le dmarreur ne fonctionne que si la voiture est au point mort : [ boite de vitesse IN point mort]

6.4.2. concurrence au sein d objet un


un objet peut avoir des sous tats concurrents on le reprsente en sparant les tats concurrents par les lignes pointilles

6.5. concepts avancs


6.5.1. actions dinit et dexit
les actions marques sur les transitions peuvent galement tre mentionnes en scripts dinit dun tat cest possible quand toutes les transitions qui conduisent ltat portent la mme action les actions dinit et dexit sont puissantes dans le cas de diagrammes imbriqus car elles vitent de nombreuses rptitions lors dune transition qui franchit le contour de plusieurs tats imbriqus, plusieurs actions dinit et dexit peuvent tre dclenches

6.5.2. actions internes


un vnement peut dclencher une action qui ne rsulte pas en un changement dtat dans ce cas, plutt que de faire une flche en boucle, la paire vnement/action est dcrite lintrieur de ltat le fait de rester dans ltat suppose que les actions dinit et dexit ne sont pas excutes on peut forcer le dclenchement de init et exit en dcrivant explicitement des transitions qui reviennent sur ltat

Etat 1 do: activit 1 entry / action2 exit / action3 evt / action4

evt1 (att1) [cond1] / action1

Etat 2

6.5.3. transitions automatiques


souvent on modlise des activits squentielles quand cette activit est termine, une transitions automatique dclenche vers un tat suivant on reprsente cette situation par une transition sans nom dvnement associ

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

57

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

si aucune activit nest associe ltat, cette transition dclenche immdiatement, mais les actions dinit et dexit sont toujours appeles de telles transitions peuvent tre gardes, ce qui permet de slectionner celle qui va tre active en fonction dune condition logique particulire si aucune condition nest satisfaite pour les transitions automatiques), lobjet reste dans ltat courant jusqu ce que cela se produise, ou quune autre transition soit dclenche par un vnement

6.5.4. envoi dvnements


un objet peut envoyer des vnements dautres objets une action appelesend le permet : send Event(attr.) tout objet ayant une transition sur lvnement le traite en parallle une notation graphique existe aussi pour le concept :

Etat 1 do: activit 1 entry / action2 exit / action3 evt / action4

evt1 (att1) [cond1] / action1

Etat 2

evt2 (att2) Classe


la flche peut tre connecte directement une transition de lobjet cible pour indiquer que celui ci dpend de lvnement si un tat accepte des vnements en provenance de plusieurs objets, on se trouve en prsence dune situation appele race condition (course). Lordre dans lequel les vnements peuvent se produire influe sur ltat final. La conception doit viter soigneusement ces situations quand elles ne sont pas dsires dans de nombreux cas, lenvoi dvnements ne peut pas tre distingu dune action (lactivit sonnerie occup est en fait un vnement entre la ligne et lappelant.

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

58

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

6.5.5. synchronisation d activits concurrentes


parfois, des activits concurrentes doivent tre termines pour permettre une transition : on doit les synchroniser le flot de contrle traduit par les transitions peut tre divis, ou combin exemple :

donne billets do :donne billets prparation prt do :rend carte ok carte ok billets fin transaction

toute transition vers un tat ayant des sous tats concurrents les active tous en labsence dinformation supplmentaire, cest ltat initial par dfaut qui est choisi dans le cas de fusion du contrle, la transition dclenche quand les deux vnements ont eu lieu, sans quils doivent pour cela tre simultans lorsquune transition dclenche la sortie dun tat composite concurrent, cela provoque la fin des activits en cours dans tous les sous tats, avec appel des actions dexit fusionner le flot de contrle permet aux transitions de sattendre, ce qui nest donc pas le cas par dfaut

6.6. relation entre les mod les objet et dynamique


un modle dynamique dcrit tout ou partie du comportement des objets dune classe donne les tats sont des classes dquivalence dattributs et de valeurs de liens pour des objets les vnements sont des oprations du modle objet chaque sous tat dun tat contraint plus les valeurs des attributs, ainsi que le fait la restriction un hirarchie dtats est quivalente une hirarchie de restriction pour la classe les modles et langages orients objet ne permettent pas habituellement de dcrire la gnralisation par restriction dan lhritage, do lintrt dun modle dynamique hritage de restriction et hritage dtats sont deux points de vue sur la mme chose : lun statique (un objet ne peut pas changer de classe), et lautre dynamique (il peut changer dtat dans sa classe) le modle objet dcrit des diffrences inhrentes aux objets le modle dynamique dcrit des diffrences temporaires

6.6.1. tats composites


un tat composite est un agrgat dun ou plusieurs sous tats il y a trois sources complmentaires de paralllisme : chaque composant dun agrgat possde son tat propre des groupes dattributs et de liens dun objet peuvent avoir des tats indpendants

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

59

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

lexcution concurrente doprations le modle dynamique dune classe est hrit par les sous classes, qui possdent les mmes transitions et les mmes tats les sous classes possdent leurs propres diagrammes dtats : comment interagissent ils? si ces diagrammes portent sur des ensembles dattributs disjoints : pas de problme sinon : le diagramme pour la sous classe doit tre un raffinement de celui de la superclasse ou encore : le diagramme de la super classe doit tre une projection de ceux des sous classes on ne peut donc pas introduire de modifications dans les diagrammes dune classe mre sans tenir compte des classes filles habituellement, le diagramme de la sous classe est une contribution orthogonale, indpendante du diagramme de la super classe

6.6.2. vnements
la hirarchie des vnements est indpendante de celle des classes en pratique les vnements sont fondamentaux, partags par plusieurs classes en gnral chaque tats sont dfinis indirectement par les objets et les vnements les transitions sont souvent implantes par des transitions sur les objets, de mme nom les vnements sont plus expressifs que les oprations, puisque leur effet dpend aussi de ltat de lobjet

6.7. trucs pratiques


ne fournir un modle dynamique que pour les classes qui le ncessitent vrifier la cohrence des vnement partags utiliser des scnarios pour mettre au point ne dfinir un tat que sur la base des attributs pertinents prendre en compte les besoins applicatifs lors du dcoupage en tats et vnements (plus ou moins prcis comme on a vu) procder de mme en ce qui concerne activits et vnements utiliser les tats composites seulement pour relater le paralllisme interne aux objets : le paralllisme dagrgat est implicite rendre les diagrammes des sous classes indpendants de ceux des super classes attention aux situations de priorit (race conditions) qui se produisent quand un objet attend des vnements en provenance de plusieurs autres

6.8. rsum
action activit agrgation condition contour contrle diagramme dtatsdiagramme imbriqu tat vnement garde gnralisation modle dynamiqueopration

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

60

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

paralllisme race condition scnario trace transition

6.9. exercices
6.9.1. exercice
faire le diagramme dtats dun robinet de douche, avec levier de slection bain douche, qui retombe automatiquement en position bain quand on ferme le robinet id pour une chelle deux pans, avec corde et cliquet id pour une montre digitale id pour un rpondeur id pour un moteur deux bobinages (dmarrage et action normale) qui fonctionne quand sa commande est on, et sarrte automatiquement en surchauffe ou sur lappui sur off id pour une installation de chauffage central avec slection de temprature dans chaque pice id pour un magntoscope

7.

Modlisation fonctionnelle

le modle fonctionnel dcrit les calculs effectus par un systme : un calcul est une transformation de donnes on dcrit les rsultats des transformations de donnes, sans dire quand ces transformations se produisent l'expos qui est fait dans cette partie ressemble aux DFD habituels

7.1. le modle fonctionnel


ce modle dcrit la signification - le rle - des oprations et des actions des modles objet et dynamique le modle fonctionnel est central pour certains systmes (compilateurs, feuilles de calcul lectronique, le code des impts)

7.2. les diagrammes de flot de donn es


un diagramme de flots de donnes (DFD) dcrit les relations fonctionnelles qui existent entre les diffrentes valeurs calcules par un systme un DFD est un graphe qui relie essentiellement des sources de donnes et des processus normalement, un tel graphe ne mentionne pas le flot de contrle les lments d'un DFD sont : des process : qui transforment des donnes des flots de donnes : qui dplacent des donnes

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

61

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

des acteurs : qui produisent et consomment des objets des mmoires : qui stockent et rendent disponibles des informations

7.2.1. un exemple Dfinitions des icones


vecteurs de base taille coupe la taille de la fentre

Fentre
vecteurs fentre position

nom dicone emplacement

transforme en vecteurs

dplace de loffset de la fentre vecteurs cran

Buffer Ecran
pixels

traduit en pixels

7.2.2. les process


un process transforme des donnes ceux de plus bas niveau correspondent tout simplement des fonctions sans effets de bord un DFD complet peut tre vu comme un process de haut niveau : par exemple, le DFD prcdent devient : nom dicone affiche icone

pixels dessiner

position le diagramme montre les diffrents chemins suivis par les donnes, sans prjuger de celui qui sera effectivement utilis un process a plusieurs entres, et souvent plusieurs sorties : dividende quotient division entire reste divisor

7.2.3. les process


un diagramme plus prcis dcrit ce qui est l'oeuvre dans un process de haut niveau

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

62

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

au bout du compte, il peut devenir ncessaire de dcrire un process de bas niveau par d'autres moyens : algorithme, quations, langage courant etc... les process sont programms par des mthodes (ou des fragments de mthodes) l'objet qui implante cette mthode est souvent une classe qui apporte les donnes d'un des flots d'entre du processus, surtout lorsque cette mme classe est aussi un flot de sortie parfois, l'objet cible est implicite : dans l'exemple de licne, il s'agit de la fentre qui reoit les pixels dessiner

7.2.4. les flots de donn es


un flot relie une sortie d'un objet ou process ou mmoire l'entre d'un autre de ces lments il reprsente une donne inchange dans son transport la mme valeur peut tre transmise plusieurs consommateurs date

une donne peut tre dcompose en lments (attributs) nom ville adresse pays

7.2.5. les acteurs


un acteur est un objet actif qui produit ou consomme des valeurs de tels objets sont lis aux entres et aux sorties d'un DFD on les appelle aussi terminateurs, du fait de leur position priphrique exemples : l'utilisateur d'un programme, un thermostat, un moteur les oprations des acteurs sont sans objet pour le DFD, mais doivent tre dcrites par les diagrammes dynamiques (recevoir une donne en "entre" est forcment traduit en un vnement) un acteur est reprsent avec la notation usuelle pour les classes : c'est un objet

7.2.6. les banques de donn es


une banque de donne (data store) est un objet passif, qui stocke des donnes ou des objets pour une utilisation future contrairement aux acteurs, elles nimplantent pas d'autres oprations que celles de stocker et rendre des informations le statut habituel d'une base de donnes est une banque de donnes dans un DFD une banque de donnes peut restituer un lment isol mmoris ou bien l'intgralit d son contenu les banques de donnes sont des objets du point de vue OMT d'un point de vue pratique, elles peuvent tre implantes par des fichiers

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

63

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

7.2.7. exemple
max

Archives mto
min

temprature

7.2.8. exemple : retrouver et stocker par le m process me Compte en banque


solde

Client

montant

retrait

7.2.9. exemple : entr es et sortie spares


rfrence prix

Liste de prix

rfrence

calcule prix

prix

7.2.10.

exemple : une banque de donnes constante Table Priodique

lment

trouve masse

masse atomique

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

64

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

7.2.11. exemple : la slection d'un objet comme rsultat de processus Banque


Slection de compte

Compte

nom requte

solde modification

Client

7.2.12.
Cration de compte

exemple : la cr ation d'un objet comme rsultat de processus


compte

Banque

nom, dpot initial

Client
numro

Compte

7.2.13.

les diagrammes imbriqus

les DFD forment naturellement une structure d'arbre, puisque chaque process peut tre dcompos en un sous DFD un diagramme imbrique peut comporter des banques de donnes non visibles au niveau suprieur un processus rcursif est reprsent par un diagramme qui s'auto rfrence le niveau terminal d'imbrication fait habituellement figurer des fonctions au sens habituel, mises en oeuvre au travers d'oprations membres des classes d'objet dfinies par ailleurs

7.2.14.

le flot de contr le

le flot de contrle est normalement dcrit par des diagrammes dynamiques en cas de besoin, il peut tre incorpor aux DFD il est compris comme une donne boolenne (en vrai/faux) qui intervient en entre et/ou en sortie de processus, et reprsent par une flche pointille

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

65

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

Compte en banque
code crypt solde ok code montant retrait

vrification

Client
billets

7.3. la spcification d'oprations


tout process de bas niveau est une opration ceux de plus haut niveau sont en gnral organiss de faon satisfaire des besoins d'optimisation les processus de bas niveau sont spcifis par des moyens appropris, dont entre autres : des fonctions mathmatiques ou de bibliothques externes des tables de donnes numres pour de petits ensembles des quations ou contraintes des descriptions axiomatiques (pr, post et delta conditions) des tables de dcision du pseudocode du langage naturel

7.4. la spcification doprations


spcifier une opration requiert de dfinir sa signature (en conformit avec ce qui est connu par le modle objet) et la transformation qu'elle opre sur ses arguments, dont l'objet cible lui mme ainsi que la donne qu'elle retourne la spcification externe d'une opration ne ncessite pas de dcrire des changements temporaires son excution la modification de donnes prives (invisibles de l'extrieur) d'un objet est considre comme ne changeant pas son tat logique (toujours distingu de l'tat physique) les oprations daccs lisent ou crivent des attributs ou des liens de lobjet elles permettent de dcrire prcisment les droits daccs aux donnes membres et sont prcises dans les phases aval de la modlisation les oprations on triviales entrent dans trois catgories : les requtes (ou accesseurs) les actions les activits

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

66

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

7.5. la spcification doprations


7.5.1. les requtes
une requte ne possde pas deffet de bord une requte sans paramtre est un attribut driv

7.5.2. les actions


une action possde des effets de bord, et na pas de dure. Elle procde par des modifications dattributs et de liens sur lobjet lui mme ou dautres une action peut tre dfinie en termes de ltat du systme avant et aprs son excution, de faon formelle ou non, mais en tout cas sans ambigut on peut aussi dcrire son algorithme, par exemple en pseudo code

7.5.3. les activits


une activit possde une dure, donc des effets de bord elles ne sont pertinentes que pour les objets de type acteur, et pas pour les mmoires ou banques de donnes les activits sont spcifies par le modle dynamique et par le modle fonctionnel dans beaucoup de situations, une activit correspond un diagramme dtats du modle dynamique

7.6. les contraintes


les contraintes portant sur des valeurs permises dattribut dobjets sont appeles des invariants les contraintes sont spcifies laide de fonctions, qui implantent toutes les possibilits de propagation rendues ncessaires par lexploitation du systme celles du modle objet spcifient que certains objets dpendent entirement ou partiellement dautres objets les contraintes dynamiques montrent les relations entre des tats et des vnements les contraintes fonctionnelles spcifient des restrictions sur les oprations

7.7. la relation entre les trois mod les


le modle fonctionnel montre ce qui doit tre fait par un systme les process de plus bas niveau y sont des oprations dobjets : implants par des mthodes des classes appropries souvent, on observe une correspondance directe chaque niveau de modlisation le modle dynamique montre dans quel ordre les oprations peuvent avoir lieu souvent, une des entres dun process est lobjet support de la mthode associe, le reste tant des paramtres lobjet support est client des autres objets mentionns dans le DFD (les fournisseurs) car il utilise leurs ressources
Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille 67

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

la distribution en clients-fournisseurs oriente la conception des classes : les classes clientes dpendent des autres (i.e. sont implantes en termes des autres)

7.7.1. rgles empiriques pour la dtermination de lobjet support dun mthode


si la mme classe est en entre et en sortie dun process, cest la classe support de la mthode id si une banque de donne est en entre ou en sortie dun process souvent, un process avec une entre vers ou une sortie dune banque de donnes est traduit par deux mthodes, dont lune est un select ou update implicite vers la banque de donnes si un acteur est en entre ou en sortie, cest le support si une entre est un objet, et une sortie est le mme objet ou un voisin dans le diagramme objet, lobjet est support si un objet est cr partir de parties indpendantes, la mthode est une mthode de la classe rsultat (construction dobjet) si aucune de ces rgles nest applicable, lobjet support est vraisemblablement implicite, et ne figure ni dans les entres ni dans les sorties du process souvent, le support dun process est celui dun sous diagramme entier

7.7.2. les acteurs


les acteurs sont des objets explicites dans le modle objet : les flots de donnes qui en partent ou y arrivent reprsentent des oprations appliques ou effectue par ces objets. Dans ce cas, les valeurs des flots sont des arguments ou des rsultats de ces oprations

7.7.3. les banques de donn es


les banques de donnes sont des objet ou des attributs du modle objet. Les flots qui les lient sont des requtes de slection ou de modification sans effet de bord

7.7.4. les flots de donn es


les flots eux mmes sont des donnes du modle objet, le plus souvent dun type de base, ou des listes ou tableaux de ces types ces valeurs peuvent tre implantes par des objets informatiques, mais du point de vue OMT ne possdent pas didentit : OMT ne distingue pas entre les deux tableaux [1,abc,5] et [1,abc,5], alors que lon a vu que deux objets distincts pouvaient tre identiques par leur contenu les flots peuvent tre des objets. en entre dun processus, ce sont souvent des objets support sur lesquels le process invoque des oprations dans dautres cas, les objets sont juste passs de process en process, et ne sont que des arguments aux oprations

7.7.5. du point de vue du mod fonctionnel le


le modle objet montre la structure des acteurs, banques de donnes et flots

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

68

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

le modle dynamique montre la squence dans laquelle les oprations sont ralises

7.7.6. du point de vue du mod objet le


le modle fonctionnel montre les oprations des classes et leurs arguments, et tmoigne de la polarit client-fournisseur le modle dynamique montre les tats des objets et les oprations dclenches quand des vnements se produisent

7.7.7. du point de vue du mod dynamique le


le modle fonctionnel dfinit les actions et activits non spcifies dans le modle dynamique le modle objet montre la structure de ce qui change dtat et de ce qui subit des oprations

7.8. mots clef


acteur action activit banque de donnes client contrainte diagramme de flots de donnes flot de contrle flot de donnes fonction invariant modle fonctionnel opration process requte signature terminateur

7.9. exercices
7.9.1. exercice
dcrire un DFD pour le calcul le volume et la surface dun cylindre

7.9.2. exercice
id pour calculer la moyenne dun squence de valeurs en entre on dispose dune entre de contrle pour faire un reset dtailler le diagramme jusquaux multiplications et additions

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

69

Cours de Gnie Logiciel

Laurent Henocque

La mthode OMT

7.9.3. exercice
reprsenter le DFD de calcul des solution dune quation du deuxime degr

7.9.4. exercice
reprsenter le DFD de cut et paste pour le diagramme objet suivant :

Boite
texte x haut gauche y haut gauche hauteur largeur cut select deselect toggle selection 2

Lien Collection
select deselect toggle selection

1,2

Segment
2

Point
x y

Slection
cut copy move

Buffer
paste

Feuille
delete

cut

Dessin
nom add sheet next sheet previous sheet save load

Fichier dessin
nom

Ecole Suprieure dIngnieurs de Luminy / dpartement ES2I, Marseille

70

Vous aimerez peut-être aussi