You are on page 1of 66

M.

Papa Baba FALL, Web Master SOONSA- Doctorant LTI

Historique : dbut des annes 90 existait une cinquantaine de mthodes danalyse et de conception objet. Il se manifesta une volont de convergence vers une mthode unifie. Ainsi trois des tnors se sont mis ensemble savoir OMT (Object Modeling Technique) de James Rumbaugh, BOOCH de Grady Booch et OOSE de Ivar Jacobson pour donner UML (Unified Methode Language) UML est donc une norme du langage de modlisation objet qui a t publie, dans sa premire version, en novembre 1997 par lOMG (Object Management Group), instance de normalisation internationale du domaine de lobjet. De nouvelles mthodes sont ajoutes au langage au fur et mesure quapparaissent les versions. Actuellement la dernire version publie par lOMG est la 2.4.1 depuis aot 2011 comptant 12 diagrammes..

Lapproche objet occupe une place prpondrante dans le gnie logiciel avec lapparition de langages objets et la sortie de version objet de ceux qui existaient. Il est important de connatre les notions cls de la conception objet pour bien comprendre UML. Les concepts qui nous semblent importants bien matriser sont les suivants :
o objet et classe, o message : communication de lobjet, o association et agrgation de classes, o gnralisation et spcialisation de classes.

Un objet reprsente une entit du monde rel(ou du monde virtuel pour les objets immatriels) qui se caractrise par un ensemble de proprits (attributs), des tats significatifs et un comportement. Exemple : Considrons ltudiant Dieng, matricule 1245, inscrit en master 1 tlinformatique.
o Cet objet est caractris par la liste de ses attributs et son tat est

reprsent par les valeurs de ses attributs :


matricule : 1245, nom : Dieng, niveau : m1 filire : tlinformatique

o Son comportement est caractris par les oprations quil peut excuter.

Dans notre cas nous pouvons avoir les oprations suivantes :


sinscrire dans une filire, suivre un cours, subir une valuation.

Une classe est labstraction dun ensemble dobjets qui possdent une structure identique (liste des attributs) et un mme comportement (liste des oprations). Un objet est une instance dune et une seule classe.

Exemple : Considrons la classe Etudiant qui reprsente lensemble des tudiants dune cole. La description de la classe Etudiant comportera les lments suivants :
o Nom de classe : Etudiant. o Attributs :

matricule, nom, niveau, filire.

o Oprations :

sinscrire dans une filire, suivre un cours, subir une valuation.


6

Les objets peuvent tre dynamique ou statique dans leur environnement. Mais ils communiquent par messages. Un message est lappel dune mthode par un objet de la classe dinstance. Lexcution dune mthode correspond une volont de changement dtat de lobjet. Exemple : e::Etudiant ev::Evaluation
subir valuation

Lassociation reprsente une relation entre plusieurs classes. Elle correspond labstraction des liens qui existent entre les objets dans le monde rel. Elle est dcrite par :
o les cardinalits, o et les rles des objets participant aux relations entre objets.

Les exemples dassociations sont donns directement dans les diagrammes de classe dUML.

Lagrgation est une forme particulire dassociation entre plusieurs classes. Elle exprime le fait quune classe est compose dune ou plusieurs autres classes. La relation composant-compos ou la relation structurelle reprsentant lorganigramme dune entreprise sont des exemples types de la relation dagrgation. Exemple : Une voiture est une classe compose de :
o classe moteur, o classe carrosserie, o classe roue, o etc.
9

La gnralisation de classes consiste factoriser dans une classe, appele super-classe, les attributs et/ou oprations des classes considres. Applique lensemble des classes, elle permet de raliser une hirarchie des classes. La spcialisation reprsente la dmarche inverse de la gnralisation puisquelle consiste crer partir dune classe, plusieurs classes spcialises. Chaque nouvelle classe cre est dite spcialise puisquelle comporte en plus des attributs ou oprations de la super-classe (disponibles par hritage) des attributs ou oprations qui lui sont propres.
10

Le langage de modlisation UML respecte un certain nombre de rgles sur les concepts manipuls ainsi que sur la syntaxe dcriture et le formalisme de reprsentation graphique. Lensemble de ces rgles constitue en soi un langage de modlisation qui a fait lobjet dun mta-modle UML. Lintrt de disposer dun mta-modle UML permet de bien matriser la structure dUML et de faciliter son volution. Cette approche a t gnralise par lOMG en normalisant la reprsentation des mta-modles par la dfinition en 1997 dun mta mta-modle dfini dans le MOF (Meta-Object Facility).

11

Plus globalement, le MOF se retrouve au sommet dune architecture de description quatre niveaux :
o M3, niveau du MOF ; o M2, niveau des mta-modles (UML est un des mta-modles) ; o M1, constitu par les modles (les diagrammes dUML sont des instances

de ce niveau); o M0, constitu par les instances (les ralisations de diagrammes pour une situation donne sont des instances de ce niveau).

Nous parlerons du formalisme dUML au fur et mesure que nous aurons traiter des diagrammes dUML. Un diagramme est un point de vue sur le systme qui utilise un certain nombre de reprsentation pour dcrire la situation.
12

UML dans sa version 2 propose treize diagrammes qui peuvent tre utiliss dans la description dun systme. Ces diagrammes sont regroups dans deux grands ensembles.
o Les diagrammes structurels : ils sont au nombre de six :

Diagramme de classe : porte la description statique du systme; Diagramme dobjet : permet la reprsentation dinstances des classes et des liens entre instances; Diagramme de composant : reprsente les diffrents constituants du logiciel au niveau de limplmentation dun systme; Diagramme de dploiement : dcrit larchitecture technique dun systme avec une vue centre sur la rpartition des composants dans la configuration dexploitation; Diagramme de paquetage (nouveau dans UML 2) : donne une vue densemble du systme structur en paquetage.
13

o Les diagrammes structurels (suite) :

Diagramme de structure composite (nouveau dans UML 2) : permet de dcrire la structure interne dun ensemble complexe compos par exemple de classes ou dobjets et de composants techniques. Il met aussi laccent sur les liens entre les sous-ensembles qui collaborent.
o Les diagrammes de comportement : ils sont au nombre de sept

Diagramme des cas dutilisation : est destin reprsenter les besoins des utilisateurs par rapport au systme; Diagramme dtat-transition (machine dtat) : montre les diffrents tats des objets en raction aux vnements; Diagramme dactivits : donne une vision des enchanements des activits propres une opration ou un cas dutilisation; Diagramme de squence : permet de dcrire les scnarios de chaque cas dutilisation en mettant laccent sur la chronologie des oprations en interaction avec les objets;
14

o Les diagrammes de comportement (suite) :

Diagramme de communication (anciennement appel collaboration) : est une autre reprsentation des scnarios des cas dutilisation qui met plus laccent sur les objets et les messages changs; Diagramme global dinteraction (nouveau dans UML 2) : fournit une vue gnrale des interactions dcrites dans le diagramme de squence et des flots de contrle dcrits dans le diagramme dactivits; Diagramme de temps (nouveau dans UML 2) : permet de reprsenter les tats et les interactions dobjets dans un contexte o le temps a une forte influence sur le comportement du systme grer.

UML 2 dcrit les concepts et le formalisme de ces treize diagrammes mais ne propose pas de dmarche de construction couvrant lanalyse et la conception dun systme. Ce qui a pour consquence par exemple de ne pas disposer dune vision des interactions entre les diagrammes.
15

Considrons une nouvelle socit de formation qui souhaite dvelopper un premier niveau de site web dans lequel elle prsente succinctement les formations proposes et enregistre en ligne les demandes de catalogue.

fig. 1 : diagramme de cas dutilisation

16

Le diagramme de classe va nous permettre de dcrire les concepts manipuls, savoir : Client, Catalogue et Formation.

fig. 2 : diagramme de classe

17

Le diagramme de squence va nous permettre de dcrire les scnarios des cas dutilisation du diagramme des cas dutilisation. Montrons le scnario consultation du catalogue.
fig. 3 : diagramme de squence
18

Afin de donner quelques points de repres sur le positionnement et les liens entre tous les diagrammes dUML, nous donnons ici un exemple de regroupement des diagrammes en quatre ensembles suivant leur finalit :
o description du systme : huit diagrammes ; o architecture technique : deux diagrammes ; o vues globales ou spcialises : deux diagrammes ; o partition dlments de la modlisation : un diagramme.

Voir schma suivant.

19

20

Prsentation gnrale et concepts de base :


o Les cas dutilisation ont t dfinis initialement par Ivar Jacobson en 1992

dans sa mthode OOSE. Les cas dutilisation constituent un moyen de recueillir et de dcrire les besoins des acteurs du systme. o Ils peuvent tre aussi utiliss ensuite comme moyen dorganisation du dveloppement du logiciel, notamment pour la structuration et le droulement des tests du logiciel.

La reprsentation dun cas dutilisation met en jeu trois concepts :


lacteur, o le cas dutilisation, o et linteraction entre lacteur et le cas dutilisation.
o

21

Acteur : est un utilisateur type qui a toujours le mme comportement vis--vis dun cas dutilisation. Ainsi les utilisateurs dun systme appartiennent une ou plusieurs classes dacteurs selon les rles quils tiennent par rapport au systme.
o Formalisme et schma :

fig. 4 : reprsentation dun acteur

22

Cas dutilisation et interaction : Un cas dutilisation se reprsente par un ovale dans lequel figure son intitul.
o Linteraction entre un acteur et un cas dutilisation se reprsente comme

une association. o Formalisme et schma :

fig. 5 : Formalisme de base de reprsentation dun cas dutilisation

23

24

Relations entre cas dutilisation - en ayant recours notamment la rutilisation de cas dutilisation, trois relations peuvent tre dcrites entre cas dutilisation :
o Relation dinclusion : une relation dinclusion dun cas dutilisation A

par rapport un cas dutilisation B signifie quune instance de A contient le comportement dcrit dans B. o Exemple :

25

Relations entre cas dutilisation (suite) :


o Relation dextension : une relation dextension dun cas dutilisation A

par un cas dutilisation B signifie quune instance de A peut tre tendue par le comportement dcrit dans B. Deux caractristiques sont noter :
le caractre optionnel de lextension dans le droulement du cas dutilisation standard (A) ; la mention explicite du point dextension dans le cas dutilisation standard.
o Exemple : page suivante

26

27

Relations entre cas dutilisation (suite) :


o Relation de gnralisation : une relation de gnralisation de cas

dutilisation peut tre dfinie conformment au principe de la spcialisation-gnralisation. o Exemple :

28

Description textuelle dun cas dutilisation : chaque CU doit tre associe une description textuelle des interactions en vue de produire les rsultats attendus par les acteurs.
o La description textuelle dun CU est articule en six points :

Objectif Dcrire succinctement le contexte et les rsultats attendus du CU. Acteurs concerns Le ou les acteurs concerns par le cas doivent tre identifis en prcisant globalement leur rle. Pr conditions Si certaines conditions particulires sont requises avant lexcution du cas, elles sont exprimer ce niveau. Post conditions Par symtrie, si certaines conditions particulires doivent tre runies aprs lexcution du cas, elles sont exprimer ce niveau. Scnario nominal Il sagit l du scnario principal qui doit se drouler sans incident et qui permet daboutir au rsultat souhait. Scnarios alternatifs Les autres scnarios, secondaires ou correspondant la rsolution danomalies, sont dcrire ce niveau. Le lien avec le scnario principal se fait laide dune numrotation hirarchise (1.1a, 1.1b) rappelant 29 le numro de laction concerne.

Le diagramme de classe constitue lun des pivots essentiels de la modlisation avec UML. En effet, ce diagramme permet de donner la reprsentation statique du systme dvelopper. Chaque classe se dcrit par les donnes et les traitements dont elle est responsable pour elle-mme et vis--vis des autres classes. Formalisme gnral dune classe :

30

Attribut : Formalisme dattributs de classe et exemple

Caractristiques :
o Visibilit/Nom attribut : type [= valeur initiale {proprits}]

Visibilit : se reporter aux explications donnes plus loin sur ce point. Nom dattribut : nom unique dans sa classe. Type : type primitif (entier, chane de caractres) dpendant des types disponibles dans le langage dimplmentation ou type classe matrialisant un lien avec une autre classe. Valeur initiale : valeur facultative donne linitialisation dun objet de la classe.
31

Opration - Formalisme et exemple :

Caractristiques :
o Visibilit Nom dopration (paramtres) [:[type rsultat] {proprits}]

Visibilit: se reporter aux explications donnes plus loin sur ce point. Nom dopration: utiliser un verbe reprsentant laction raliser. Paramtres: liste de paramtres (chaque paramtre peut tre dcrit, en plus de son nom, par son type et sa valeur par dfaut) Type rsultat: type de (s) valeur(s) retourn(s) dpendant des types 32 disponibles dans le langage dimplmentation.

Exemples de classes :

33

Visibilit des attributs et oprations :


o Public (+) Attribut ou opration visible par tous. o Protg (#) Attribut ou opration visible seulement lintrieur de la

classe et pour toutes les sous-classes de la classe. o Priv (-) Attribut ou opration seulement visible lintrieur de la classe. o Paquetage (~) Attribut ou opration ou classe seulement visible lintrieur du paquetage o se trouve la classe.

34

Exemple de reprsentation des symboles de visibilit :

35

Association, multiplicit, navigabilit et contraintes


o Lien et association :

36

o Rle dassociation :

o Multiplicit : La multiplicit indique un domaine de valeurs pour prciser

le nombre dinstance dune classe vis--vis dune autre classe pour une association donne. o Le domaine de valeurs est dcrit selon plusieurs formes :
Intervalle ferm Exemple : 2, 3 ..15. Valeurs exactes Exemple : 3, 5, 8. Valeur indtermine note * Exemple : 1..*.

37

Formalisme et exemple de multiplicits :

38

Navigabilit : indique si lassociation fonctionne de manire unidirectionnelle ou bidirectionnelle, elle est matrialise par une ou deux extrmits flches. La non-navigabilit se reprsente par un X .

39

Association de dimension suprieure 2 et classe-association :


o Une association de dimension suprieure 2 se reprsente en utilisant un

losange permettant de relier toutes les classes concernes. o Une classe-association permet de dcrire soit des attributs soit des oprations propres lassociation. Cette classe-association est elle-mme relie par un trait en pointill au losange de connexion. Une classeassociation peut tre relie dautres classes dun diagramme de classes.

40

Exemple dune association de dimension 3 et dune classeassociation :

41

Agrgation et composition entre classes :


o Lagrgation est une association qui permet de reprsenter un lien de

type ensemble comprenant des lments . Il sagit dune relation entre une classe reprsentant le niveau ensemble et 1 n classes de niveau lments .

42

o La composition est une relation dagrgation dans laquelle il existe une

contrainte de dure de vie entre la classe composant et la ou les classes compos . Autrement dit la suppression de la classe compos implique la suppression de la ou des classes composant .

43

Gnralisation et spcialisation :
o La gnralisation est la relation entre une super classe et deux autres

sous classes ou plus partageant un sous-ensemble commun dattributs et/ou doprations. o La spcialisation consiste crer des sous-classes partir dune super classe .

44

45

Prsentation gnrale :
o Lobjectif du diagramme de squence est de reprsenter les interactions

entre objets en indiquant la chronologie des changes. Cette reprsentation peut se raliser par cas dutilisation en considrant les diffrents scnarios associs. o Un diagramme de squence se reprsente globalement dans un grand rectangle avec indication du nom du diagramme en haut gauche

46

Concepts de base :
o Ligne de vie : reprsente lensemble des oprations excutes par un

objet. Un message reu par un objet dclenche lexcution dune opration. Le retour dinformation peut tre implicite (cas gnral) ou explicite laide dun message de retour. o Message synchrone et asynchrone : deux types de messages peuvent tre distingus :
Message synchrone Dans ce cas lmetteur reste en attente de la rponse son message avant de poursuivre ses actions. La flche avec extrmit pleine symbolise ce type de message. Le message retour peut ne pas tre reprsent car il est inclus dans la fin dexcution de lopration de lobjet destinataire du message. Message asynchrone Dans ce cas, lmetteur nattend pas la rponse son message, il poursuit lexcution de ses oprations. Cest une flche avec une extrmit non pleine qui symbolise ce type de message.
47

Formalisme du diagramme de squence :

48

o Oprations particulires :

Cration et destruction dobjet : Si un objet est cr par une opration, celui-ci napparat quau moment o il est cr. Si lobjet est dtruit par une opration, la destruction se reprsente par X

49

Contrainte temporelle : Des contraintes de chronologie entre les messages peuvent tre spcifies. De plus lorsque lmission dun message requiert une certaine dure, il se reprsente sous la forme dun trait oblique.

50

Fragment dinteraction :
o Fragment dinteraction se reprsente globalement comme un diagramme

de squence dans un rectangle avec indication dans le coin gauche du nom du fragment. o Un port dentre et un port de sortie peuvent tre indiqus pour connatre la manire dont ce fragment peut tre reli au reste du diagramme. o Un fragment dinteraction dit combin correspond un ensemble dinteraction auquel on applique un oprateur. Un fragment combin se reprsente globalement comme un diagramme de squence avec indication dans le coin gauche du nom de loprateur. o Treize oprateurs ont t dfinis dans UML : alt, opt, loop, par, strict/weak, break, ignore/consider, critical, negative, assertion et ref.

51

52

Les oprateurs :
o

alt : correspond une instruction de test avec une ou plusieurs


alternatives possibles. Il se reprsente dans un fragment possdant au moins deux parties spares par des pointills.

53

Les oprateurs :
o

opt (optional) - correspond une instruction de test sans alternative. Il se


reprsente dans un fragment possdant une seule partie.

54

Les oprateurs :
o

loop - correspond une instruction de boucle qui permet dexcuter une


squence dinteraction tant quune condition est satisfaite. Il se reprsente dans un fragment possdant une seule partie et englobant toutes les interactions faisant partie de la boucle.

55

Les oprateurs :
o

par (parallle) - permet de reprsenter deux sries dinteractions qui se


droulent en parallle. Il se reprsente dans un fragment possdant deux parties spares par une ligne en pointill. Cest un oprateur qui est notre avis plutt utilis dans linformatique temps rel

56

Les oprateurs :
o

strict et weak - permettent de reprsenter une srie dinteractions dont


certaines soprent sur des objets indpendants :
Loprateur strict est utilis quand lordre dexcution des oprations doit tre strictement respect. Loprateur weak est utilis quand lordre dexcution des oprations na pas dimportance.

57

Exemple de fragment dinteraction avec loprateur strict

58

Les oprateurs :
o break - permet de reprsenter une situation exceptionnelle correspondant

un scnario de rupture par rapport au scnario gnral. Le scnario de rupture sexcute si la condition de garde est satisfaite.

59

Les oprateurs :
o ignore et consider - sont utiliss pour des fragments dinteractions dans

lesquels on veut montrer que certains messages peuvent tre soit absents sans avoir dincidence sur le droulement des interactions (ignore), soit obligatoirement prsents (consider). o critical - permet dindiquer quune squence dinteractions ne peut tre interrompue compte tenu du caractre critique des oprations traites. On considre que le traitement des interactions comprises dans la squence critique est atomique.

60

61

62

Les oprateurs :
o neg (negative) - permet dindiquer quune squence dinteractions est

invalide.

63

Les oprateurs :
o assert (assertion) - permet dindiquer quune squence dinteractions est

lunique squence possible en considrant les messages changs dans le fragment. Toute autre configuration de message est invalide. o ref - permet dappeler une squence dinteractions dcrite par ailleurs constituant ainsi une sorte de sous-diagramme de squence.

64

Exemple de fragment dinteraction avec loprateur ref

65

NB : Le diagramme de squence peut tre aussi utilis pour documenter un cas dutilisation. Les interactions entre objets reprsentent, dans ce cas, des flux dinformations changs et non pas de vritables messages entre les oprations des objets.

66

You might also like