Vous êtes sur la page 1sur 62

U.M.L.

L approche Objet

d abord

Une mthodologie de conception

O. BOUSSAID

Page : 1

U.M.L.
Problmatique

L approche Objet

Taille et complexit des logiciels : y Complexit fonctionnelle : Exemples : 1/Le S.I.A. : mmoriser et stocker linformation : mais en plus traiter de faon sophistique pour laide la dcision (Entrept de donnes). 2/ Logiciels dvelopps sparment et avec des dmarches diffrentes et appels tre interfacs pour les besoins de lEntreprise. y Evolutions technologiques permanentes y Complexit architecturale : Client/serveur, Intranet, Corba (Common Object Request Broker Architecture), Systmes distribus

Solutions :
yDcoupage du processus de dveloppement : phase analyse : aspects ; phase ralisation : aspects technologiques et architecturaux. yDcoupage du systme en sous systmes : diminution de la complexit ; rpartition du travail et rutilisation . yUtilisation dune technologie de haut niveau : dcoupage naturel du systme .
O. BOUSSAID

Page : 2

U.M.L.

Notion de classe et dinstance

Lapproche objet Notion dobjet Un objet est dfini la fois par des informations : donnes ou attributs ou variables dinstances ; et des comportements : traitements ou mthodes ou oprations. Exemple :
nom capital UV d ip lm e VrifierNom MajUV ChangerDip lm e OBJET Etudiant

O. BOUSSAID

Page : 3

U.M.L. Notion de classe et dinstance

Lorsque des objets ont les mmes attributs et comportements : ils sont regroups dans une famille appele : Classe. Les objets appartenant celle-ci sont les instances de cette classe.

Linstanciation
dune classe.

est la cration dun objet

Nom : Dupo nt Capital UV : cap ital1 Diplme : matise d e Scie nce s Eco. VrifierNom MajUV ChangerDiplme

Nom : Durant Capital UV : cap ital2 Diplme : licence de So cio . VrifierNom MajUV ChangerDiplme

Deux instances dune mme classe peuvent avoir des attributs avec des valeurs diffrentes et mais partagent les mmes mthodes.

O. BOUSSAID

Page : 4

U.M.L.

Les messages

La manipulation des objets passe par des envois de messages. Lorsquun objet reoit un message :  Soit le message correspond un traitement dfini dans la classe de lobjet auquel cas la mthode correspondante est excute. Lobjet rpond ainsi au message.  Soit le message ne correspond pas, lobjet refuse le message et signale une erreur. Un message quivaut un appel dune mthode. Un objet gre lui mme son comportement. Ce qui lui permet soit de traiter des messages en excutant les mthodes correspondantes soit de rejeter des messages en signalant des erreurs. Un objet est parfaitement identifi. Comme sil possdait un attribut (inaccessible directement) qui identifie la classe laquelle il appartient.
O. BOUSSAID

Page : 5

U.M.L.

L Encapsulation

Lencapsulation est le fait quun objet renferme ses propres attributs et ses mthodes. Une classe encapsule les proprits (attributs et mthodes) des objets quelle regroupe. La modularit est souvent laisse la charge du dveloppeur. Dans lapproche Objet : celle-ci est prise en compte par lencapsulation. Lunit de modularit est la classe. Les classes peuvent tre regroupes en packages ou en sous systmes (granularit suprieure).

O. BOUSSAID

Page : 6

U.M.L.

L abstraction

Labstraction est la caractrisation dun objet par


une partie publique, une partie prive et une partie implmentation. Laccs public : Tout ce qui est accessible par les autres objets. Les mthodes publiques reprsentent linterface de lobjet. Les donnes quand elles sont publiques nimposent aucun contrle ni sur leur structure ni sur la nature des valeurs quelles peuvent recevoir. Il est prfrable de mettre les donnes en accs priv. Laccs priv : Les donnes prives ne sont modifiables qu travers les mthodes publiques qui peuvent les contrler ainsi. La partie implmentation : Elle est dfinie par un ensemble de mthodes accessibles que par les autres mthodes de la mme classe.

O. BOUSSAID

Page : 7

U.M.L.
Exemple :

L abstraction

La donne Capital UV nest modifiable que par la mthode MajUV.

Ce concept dabstraction engendre deux catgories dacteurs : les concepteurs des classes les utilisateurs des objets Ces derniers peuvent utiliser les mthodes dune classe indpendamment de leurs structures internes. Ils nutilisent que les signatures des mthodes (interface de lobjet) . Ce qui permet aux concepteurs des classes dobjets de modifier la structure interne des mthodes des classes.

O. BOUSSAID

Page : 8

U.M.L.

L Hritage
la classe Etudiant-Elu : no m capital UV d ip l m e Mandat Syndicat VrifierNo m MajUV ChangerDipl m e DmissionnerMandat ChangerSyndicat

la classe Etudiant : no m capital UV d ip l m e

VrifierNo m MajUV ChangerDip l m e

Lobjet Etudiant-Elu a les proprits (attributs et mthodes) de lobjet Etudiant mais en plus possde dautres proprits. La classe Etudiant-Elu est une spcialisation de la classe Etudiant. Cest une sous classe de la classe Etudiant. Les objets de la sous classe Etudiant-Elu hritent des attributs et des mthodes de la classe Etudiant. La sous classe Etudiant-Elu pourra, si cela est ncessaire pour ses besoins, redfinir une mthode hrite.

O. BOUSSAID

Page : 9

U.M.L.

L Hritage

Chaque sous classe peut avoir une ou plusieurs

sous classes formant ainsi une hirarchie dobjet. On parle de classe anctre (ou mre) et de classes descendant (ou fille). Lhritage est un mcanisme qui permet dassurer une grande variabilit dans la rutilisation des objets. Il existe deux techniques lies lhritage : les classes abstraites et

lhritage multiple.

O. BOUSSAID

Page : 10

U.M.L. Les classes abstraites


Cest un type de classe ayant des proprits qui ne permettent pas de prciser des instances. Ces classes mettent en commun un certain nombre de proprits des objets.
Exemple :

Soit la classe JeuneAdulte Grad uation Ad re sse tl pho ne Service Militaire Rd igerCV Affiche rCV Et : La classe Etudiant : nom cap ital UV d ipl me La classe Etudiant-Elu: nom cap ital UV d ipl me Mandat Syndicat V rifie rNo m MajUV ChangerDip l me DmissionnerMandat ChangerSyndicat

V rifie rNo m MajUV ChangerDip l me

La Classe JeuneAdulte a des proprits communes aux classes Etudiant et Etudiant-Elu. Mais on ne peut linstancier.
O. BOUSSAID

Page : 11

U.M.L. L Hritage multiple


Lhritage multiple permet une classe davoir plusieurs classes antcdents et dhriter ainsi de tous les attributs et mthodes de ces anctres.

Exemple Classe C1 : At1 At2 Mt1 Mt2 Classe C2 : At1 ; At21 At2 ; At22 At23 Mt1 ; Mt21 Mt2 ; Mt22 Classe C3 : At1 ; At31 At2 ; At32 At33 Mt1 ; Mt31 Mt2 ; Mt32 Mt33

Soit la classe C50 : At1 ; At2 ; At21 ;At22 At23 ; At31 ; At32, At33;At51 Mt1 ; Mt21 Mt2 ; Mt22 Mt31; Mt32 . Mt33 Mt51
La classe C50 hrite des classes C1, C2 et C3.

Problme : La classe C50 hritera-t-elle 2 fois des attributs At1 et At2 ? Si la mthode Mt2 a t modifie dans C2 et C3 alors laquelle des deux hritera la classe C50 ?

O. BOUSSAID

Page : 12

U.M.L.

Le polymorphisme

Cest un mcanisme qui permet une sous classe de redfinir une mthode dont elle a hrit tout en gardant la mme signature de la mthode hrite. Ainsi on peut avoir une mthode avec la mme tte (mme signature) et des corps diffrents (codes diffrents) : polymorphisme. Un mme message peut ainsi dclencher des traitements diffrents selon lobjet auquel il fait appel. Un message polymorphe poserait un problme la compilation statique car on ne saurait identifier prcisment la mthode quil vise. On ne pourra le savoir quau moment de lexcution du programme. Cest la compilation dynamique qui permettra de rsoudre ce problme.

O. BOUSSAID

Page : 13

Dmarche mthodologique U.M.L. de construction dune application


les diffrentes tapes : mthode : guide de description dune forme de
modle une autre.

formalisme : langage de reprsentation graphique.

Expression des besoins Spcification Analyse Conception Implmentation Tests de vrification Validation Maintenance et volution

O. BOUSSAID

Page : 14

U.M.L. Les diffrentes tapes (1)


 Expression des besoins :
...

 Spcification :
Ce que le systme doit tre et comment il peut tre utilis.

 Analyse :
Lobjectif est de dterminer les lments intervenant dans le systme construire, ainsi que leur structure et leurs relations . Elle doit dcrire chaque objet selon 3 axes :

y Axe fonctionnel : savoir-faire de lobjet. y Axe statique : structure de lobjet. y Axe dynamique : cycle de vie de lobjet au cours de
lapplication (Etats et messages de lobjet). Ces descriptions ne tiennent pas compte de contraintes techniques (informatique).
O. BOUSSAID

Page : 15

U.M.L. Les diffrentes tapes (2)


 La conception :
Elle consiste apporter des solutions techniques aux descriptions dfinies lors de lanalyse : architecture technique ; performances et optimisation ; stratgie de programmation. On y dfinit les structures et les algorithmes. Cette phase sera valide lors des tests.

 Limplmentation :
Cest la ralisation de la programmation.

O. BOUSSAID

Page : 16

U.M.L. Les diffrentes tapes (3)


 Les tests de vrification :
Ils permettent de raliser des contrles pour la qualit technique du systme. Il sagit de relever les ventuels dfauts de conception et de programmation (revue de code, tests des composants,...). Il faut instaurer ces tests tout au long du cycle de dveloppement et non la fin pour viter des reprises consquentes du travail (programmes de tests robustes ; Logiciels de tests).

 Validation :
 Le dveloppement dune application doit tre li un contrat ayant une forme de cahier de charges, o doivent se trouver tous les besoins de lutilisateur. Ce cahier de charge doit tre rdig avec la collaboration de lutilisateur et peut tre par ailleurs complt par la suite.  Tout au long des ces tapes, il doit y avoir des validations en collaboration galement avec lutilisateur.  Une autre validation doit aussi tre envisage lors de lachvement du travail de dveloppement, une fois que la qualit technique du systme est dmontre. Elle permettra de garantir la logique et la compltude du systme.
O. BOUSSAID

Page : 17

U.M.L. Les diffrentes tapes (4)


 Maintenance et volution
Deux sortes de maintenances sont considrer : Une maintenance traiter les buggs .

corrective, qui consiste

Une maintenance volutive, qui permet au systme dintgrer de nouveaux besoins ou des changements technologiques.

O. BOUSSAID

Page : 18

U.M.L. Les diffrents cycles de vie


Il existe 2 cycles de vie utilises dans les approches traditionnelles : le modle linaire et le modle en V . Le modle linaire
Expression des besoins Spcification Analyse Conception

Implmentation

Tests de vrification

Validation

Maintenance et volution

Le principe de cette dmarche est que chaque phase est traite compltement avant que la suivante ne soit entame. Ce qui renvoie les tests de vrification et la validation en fin du processus de dveloppement. Sil y a des erreurs, les retours seront compliqus et coteraient chers.

O. BOUSSAID

Page : 19

U.M.L. Les diffrents cycles de vie Le modle en V


Expression des besoins Validation des besoins

Spcifications fonctionnelles

Validation fonctionnelle

Conception du

systme

Tests du systme

Conception des composants

Tests des composants

Implmentation

Le modle en V permet une organisation modulaire. A chaque tape de lanalyse et de la conception correspond une tape de tests ou de validation. A chaque tape fonctionnelle correspond ainsi une tape technique.
Le processus saccomplit en deux phases :

yUne phase descendante : de spcifications et de conception. yUne phase ascendante : de tests et de validation.
Comme pour le modle linaire, linconvnient est que la validation et les tests interviennent tardivement.

O. BOUSSAID

Page : 20

U.M.L. Les diffrents cycles de vie


Le cycle de vie Objet Dans un projet Objet, le cycle de vie rpond 3 caractristiques essentielles : La traabilit entre les tapes Un cycle itratif Un cycle incrmental La traabilit entre les tapes : Les concepts utiliss au cours des diffrentes tapes sont quasiment identiques (Classes, Objets, Attributs, Mthodes, Hritage, Polymorphisme, ...). Ceci permet de conserver le mme discours lors de toutes les tapes : Analyse - Conception - Implmentation . Ce qui nest pas le cas dans les approches traditionnelles, o lon utilise une mthode danalyse et de conception avec des concepts et un langage de programmation avec dautres concepts.
O. BOUSSAID

Page : 21

U.M.L.

Le cycle de vie Objet

Un cycle itratif :

Validation des besoins

Tests de vrification

Expression des besoins

Implmentation

Spcifications fonctionnelles

Conception

Analyse

O. BOUSSAID

Page : 22

U.M.L.

Le cycle de vie Objet

Un cycle incrmental : Lors du dveloppement, une maquette doit tre ralise pour valider lergonomie de lapplication et lenchanement des crans. Plusieurs versions peuvent tre dveloppes. Lors de chacune delle, chaque fonctionnalit est amliore jusqu optimisation rendant ainsi le systme progressivement robuste.

O. BOUSSAID

Page : 23

U.M.L.
Ide :

Les USE CASES

Les (cas dutilisation) sont un concept de la mthode OOSE de Ivar Jacobson. Ils permettent deffectuer une dlimitation du systme et de dcrire son comportement. Ils constituent une reprsentation oriente fonctionnalits du systme.

use cases

Dans la modlisation par les use cases : 2 concepts fondamentaux interviennent : $Les acteurs : utilisateurs du systme. $Les uses cases : utilisation du systme

O. BOUSSAID

Page : 24

U.M.L.

Les acteurs

Ceux sont les utilisateurs du systme Ils ont une bonne connaissance des fonctionnalits du systme. Ils constituent les lments extrieurs du systme. Ils peuvent tre : soit des humains ; soit des logiciels ; soit des automates. On distingue : les acteurs primaires : ceux sont les utilisateurs du systme ; les acteurs secondaires : ceux qui administrent le systme.

O. BOUSSAID

Page : 25

U.M.L.

Les uses cases

Ceux sont les utilisations du systme Il sagit de dterminer les lments constitutifs dun point de vue fonctionnel.
On pourra trouver des use cases pour dcrire :
chaque tche de lutilisateur ; les fonctionnalits mal dcrites lors des spcifications ; les E/S des donnes ; les cas danomalies.

Reprsentation des acteurs dans un modle Use Cases :

?
Exemple de Use case

O. BOUSSAID

Page : 26

U.M.L. Description dun Use Case


Il existe plusieurs faons de dcrire un use case.  Description textuelle (informelle) : Exemple : Use case : Retrait en espce :
y Le guichetier saisit le n de compte du client. y Lapplication valide le compte auprs du systme central. y Lapplication demande le type dopration au guichetier. y Le guichetier slectionne un retrait despces de 200F. y Le systme guichetier interroge le systme central pour sassurer que le compte est suffisamment approvisionn. y Le systme central effectue le dbit du compte. y Le systme notifie au guichetier quil peut dlivrer le montant demand.

O. BOUSSAID

Page : 27

U.M.L.

Autres Descriptions

 Exemple de scnario
Saisie compte Validation compte Demande type dopration Retrait liquide (220F) Vrification solde compte Autorisation dlivrance
t Dbit compte

Guichetier

Systme guichet

Systme central

 Exemple de diagramme de collaboration


(6) Dbit compte (4) Retrait espces . (200F)

Guichetier

Systme Central

(3) Demande type dopration

(7) Autorisation dlivrance

(5) vrification solde compte

(2) Validation compte (1) Saisie compte Systme guichetier

O. BOUSSAID

Page : 28

U.M.L. Diagramme des Use Cases

Application bancaire (systme)


Guichetier Retrait francs

Responsable Devises

Saisie cours devises


Retrait devises

emprunt
Directeur Systme central

bilan

Lintgration dans lUse Case Application bancaire des use cases de chaque opration permet davoir une vision globale du systme. Elle permet galement de comprendre le rle de chaque acteur. .

O. BOUSSAID

Page : 29

U.M.L.

Relation extends

La relation extends Un ou plusieurs use cases peuvent hriter des caractristiques dun autre use case.
Application bancaire (systme)

Guichetier

Retrait francs

Extends

Retrait
Extends

Systme central

Retrait devises

Les Uses Cases fils ont les mmes liens avec les acteurs et les autres use cases que le use case dont ils hritent. Ceux sont de cas particuliers du Uses Case pre.

O. BOUSSAID

Page : 30

U.M.L.

Relation uses

La relation uses Soit luse case Saisie n compte


y y y y y y Le guichetier saisit le code de la banque du compte. Il saisit le numro du compte. Il saisit la cl du compte. Le systme calcule la cl du compte et vrifie quelle est bonne. Le systme interroge le compte sur le systme central. Le systme affiche le compte ainsi que son dtenteur.
Application bancaire (systme)

Retrait francs

Retrait devises

Emprunt

uses uses

uses

Saisie n compte

Lorsque une ou plusieurs tches sont utilises rgulirement, on peut les factoriser dans un mme use case et faire de telle sorte que dautres use cases lutilisent en le pointant par une flche. Cet use case est en fait une sous partie de chaque use case qui lutilise. Ce qui permet de dcomposer un use case complexe en plusieurs uses cases.

O. BOUSSAID

Page : 31

U.M.L.

Le Modle Objet

Exprime Utilisateur

Comprend Analyste

cas d'utilisation
Ralise Conoit Programmeur Architecte vrifie Testeur

Les cas d'utilisation servent de fil conducteur pour l'ensemble du proie

O. BOUSSAID

Page : 32

U.M.L.

Le Modle Objet

DMARCHE D'APPLICATION D'UML Nous proposons de suivre une dmarche structure en sept tapes.

laboration d'un diagramme de contexte du systme tudier: comme nous l'avons dj dit
dans la prsentation d'OMT, il est important de dmarrer une analyse par le positionnement le plus prcis possible du champ du systme tudier. No recommandons donc d'laborer un diagramme de contexte du systme tudier.

tape 1 :

tape 2 :

identification et reprsentation des cas d'utilisation : les fonctions du systme sont identifies

en recherchant les cas d'utilisation du systme qui seront mis en oeuvre par les diffrents acteurs. Le diagramme des cas d'utilisation est labor.
tape 3 :

chaque cas d'utilisation se traduit par un certain nombre de scnarios. Chaque scnario fait l'objet d'une description te ruelle. Chaque scnario est ensuite dcrit sous forme graphique l'aide du diagramme de squence et/ou diagramme de collaboration.
tape 4 :

description et reprsentation des scnarios

premire identification des objets classes est fournie par la synthse des diagrammes de squence et/ou de collaboration Ainsi une liste de tous les objets et toutes les classes manipuls peut tre dresse.
Page : 33

identification des objets et classes : une

O. BOUSSAID

U.M.L.
tape 5 : laboration

Le Modle Objet
du diagramme de classe :

partir des classes identifies, une premire version du modle objet est labore. Les classes du modle objet corresponde soit des proccupations mtier soit des ncessits techniques.

pour chaque classe importante c'est dire prsentant un intrt pour le systme modliser, un diagramme tattransition est labor.

tape 6 :

laboration du diagramme tat-transition:

le concepteur doit ensuite it les tapes 3, 4, 5 et 6 jusqu'au moment o il considrera qu'il atteint le niveau de d suffisant pour la description du systme.

tape 7 :

consolidation et vrification des modles :

O. BOUSSAID

Page : 34

U.M.L.

Le Modle Objet

Cela consiste dfinir les objets qui vont modliser les besoins qui ont t exprim en termes de fonctionnalits. Le passage de cet aspect fonctionnel un aspect objet nest certes pas vident.
La description des objets est structurelle. Par ailleurs, on dterminera les liens entre les diffrents objets. Les Objets et leurs liens reprsentent ainsi le

modle statique
Les objets dtermins serviront lors des phases analyse, conception et plus tard limplmentation.

O. BOUSSAID

Page : 35

U.M.L.

Les diffrents concepts

Concept de classe et d objet Les objets du modle statique sont une reprsentation (modlisation) des objets (monde rel), qui seront en gnral ceux quon retrouve lors de limplmentation sous la mme forme ou sous une forme diffrente. Ils sont munis de donnes encapsules dans les objets, reprsentant leurs attributs et leurs oprations (mthodes).
0..1 Lecteur
Emprunteur

Emprunte r

Ouvrag e Objet prt

0..3

Exemple de classes

Chaque objet dune classe a une identit propre et na donc pas besoin dun identificateur, sauf si celui-ci est un identificateur mtier prexistant comme un n INSEE.

O. BOUSSAID

Page : 36

U.M.L.

Les diffrents concepts

y Le nombre dattributs et de mthodes quon dfinira dpend du niveau de granularit quon veut obtenir. xemple :
0..1 Lecteur Emprunteur Emprunte r 0..3 Ouvrag e Objet prt

Dupont : Lecteur 0..1 Nom : Dupont Prnom : olivier Adresse : Inconnue Emprunte r 0..3 Les B.D.R. Ouvrage

Exemple de classes et dobjet

O. BOUSSAID

Page : 37

U.M.L.

Association et Classe d associations

Entre les 2 classes Lecteur et Ouvrage , il existe un lien qui reprsente un emprunt douvrage par un lecteur. Il est matrialis par un lien entre les 2 classes et il peut tre caractris par : yUn nom yDeux noms de rle facultatifs yUn sens de lecture yDeux cardinalits.

Une cardinalit peut tre reprsente par un nombre, une * par linfini ou un intervalle. Une association peut ncessiter des donnes et aussi des oprations : il est alors tout indiqu de lui construire une classe. Exemple
Lecteur Nom Prnom Adresse 0..1 Emprunte r 0..3 Ouvrag e

Prt dure date Prolonger()

Classe dassociation
On peut choisir parfois entre rajouter une donne dans une classe ou crer une classe propre. Dautre part, il est possible de mettre la donne dans une structure classique mais ceci peut savrer lourd grer et ne peut dautre part assurer la persistance de la donne.

O. BOUSSAID

Page : 38

U.M.L.

Diagramme des Classes

Le modle objet sera reprsent par un diagramme de classes o chacune sera dcrite avec ses attributs et ses mthodes :
Nom de la classe attribut : type = valeur initiale opration(liste darguments) : rsultat renvoy

Diagramme dune classe La dtermination des classes lors de la phase danalyse nest pas vidente. Elle suit une mthode plutt intuitive, base sur lexprience de lanalyste qui a (ou na pas) lhabitude de reconnatre plus ou moins facilement les classes, les objets , les associations, les attributs et les mthodes des classes. y Lanalyste pourra se demander alors quels sont les objets de gestion dans le problme tudi et se rfrer galement aux rgles de gestion pour identifier les objets rels ainsi que leurs liens et quil va falloir modliser sous formes de classes et dassociations. y Le parallle avec le modle E/A est intressant faire lors de la phase danalyse.

O. BOUSSAID

Page : 39

U.M.L. Gnralisation ; Spcialisation

Classe mre

Spcialisation

Gnralisation

Classe fille

Concepts de Spcialisation et de Gnralisation

La modlisation de la notion dhritage dans un modle statique peut se faire par lintermdiaire de la gnralisation qui permet une organisation des classes et des regroupements smantiques de classes.

O. BOUSSAID

Page : 40

U.M.L. Gnralisation et Spcialisation


Exemple :
uvre dure 1 Diffuser * Support MatrielNcessaire

Livre

CDAudio

CasetteVido

Exemple de classe abstraite


La gnralisation permet de simplifier le diagramme des classes. La spcialisation permet dtablir une relation de type est un ou est une sorte de .

O. BOUSSAID

Page : 41

U.M.L.

Classes abstraites

Il existe des classes quon ne peut instancier, car elle sont trop gnrales. Elle servent mettre en commun des caractristiques communes certaines classes, cest le cas de la classe Support : Cest une

classe

abstraite.
Celle-ci doit toujours tre suivie de classes drives. Dans lexemple prcdent les classes drives sont Livre, CDAudio et CassetteVido. Elle permettent de reprsenter des concepts importants dans une application.

O. BOUSSAID

Page : 42

U.M.L. Hritage simple ou multiple (1)


Lhritage peut tre simple (c.a.d. une classe qui
hrite na quune seule classe mre) ou multiple (c.a.d. la classe a plusieurs classes mres). Ce dernier permet une structuration multiple du diagramme des classes, cependant il induit tout de mme une certaine complexit. Tous les langages de programmation ne grent pas lhritage multiple. On peut contourner lhritage multiple ds la phase danalyse. Exemple :
Compte Bancaire Montant

Compte Chque ChquierEm is Dbiter()

Compte Epargne Intrt Dbiter()

Compte Chque Rmunr

Hritage Multiple
O. BOUSSAID

Page : 43

U.M.L. Hritage simple ou multiple (2)

Compte Bancaire Montant

Compte Bancaire Montant

Compte Chque Rmunr 1 1 CompteEpargne 1

CompteChqueRmunr 1 1 1 CompteEpargne

CompteChqu e

Hritage Simple : 2 solutions

O. BOUSSAID

Page : 44

U.M.L.

Agrgation

Lorsquune association entre deux instances dune classe a en plus une particularit dont le sens est du style : une instance est compose dune ou plusieurs autres instances , on peut alors qualifier cette association dagrgation. dagrgation On peut dire galement quune agrgation est une association de type ComposComposant . O, linstance compos est lagrgat et les composants sont les instances

agrges.
Exemple :

Universit 1 * Etudiants gre

Facults

Dpartements

Agrgation

O. BOUSSAID

Page : 45

U.M.L.

Agrgation (2)

Une agrgation peut tre perue comme une association. Cependant une association ne peut tre une agrgation. Si une association a les caractristiques suivantes, elle peut alors tre reprsente par une agrgation : une smantique de style compose de ... ou est une partie de ... . y Lassociation a

est

y Il existe une forte diffrence de granularit entre une classe (lagrgat) et dautres classes (les agrgs). y La suppression dun objet agrgat ferait disparatre les objets agrgs. y La modification dun attribut dun objet agrgat porte aussi sur aussi sur les attributs des objets agrgs. y La dfinition dune mthode de lobjet agrgat repose sur celles des objets agrgs et peuvent porter dailleurs le mme nom.

O. BOUSSAID

Page : 46

U.M.L.

Association unaire et Agrgation rcursives

Une classe peut avoir des instances qui sont en association entre elles.

* Electeur * 1 1

Elment

Etudiant
Dlgu Reprsente

Collectio n

ObjetSimpl e

Association unaire (rflexive)

Agrgation rcursive

O. BOUSSAID

Page : 47

U.M.L.

Qualificateurs

Le rle dun qualificateur est de rduire la cardinalit dune association et joue le rle semblable une cl primaire dans une BDR. Il permet de tenir un dictionnaire compos de :

qualificateur

objet(s) qualifi(s).

Enseignement

UV

Enseignant

O. BOUSSAID

Page : 48

U.M.L.

Interfaces

Une interface est une classe qui ne peut contenir que des oprations. Elle ne vhicule que la smantique de ses oprations et ne dit rien sur la faon de les implmenter. On dit alors quune classe qui implmente ces oprations implmente linterface.
interface

Comparable > < = {


Comparable EntierNaturel * Contenir * CollectionOrdonn e Liste de comparable

Interfaces
On peut crer plusieurs interfaces et les faire hriter entre elles. Les interfaces prsentent un caractre daptitude que dautres classes ne peuvent encapsuler. Cest ce qui permet de distinguer entre une gnralisation et une interface.

O. BOUSSAID

Page : 49

U.M.L.

Packages

Un package permet de regrouper un ensemble de classes, dassociations et ventuellement dautres packages. Il permet de dcouper une systme en plusieurs parties reprsentes chacune par un package. Les packages peuvent avoir des actions entre eux.

Client

Facturation

Comptabilit

Organisation par packages

O. BOUSSAID

Page : 50

U.M.L.
Client
Facturation :: Facture
1

Packages (2)

Client
Concerner 1 1 Acheter *

Socit

Commande

Produit

Contenu dun package


Une classe peut apparatre dans diffrents packages (avec le mme nom). On y trouve mme des classes qui nappartiennent pas au package mais qui sont rfrences par les classes propres. On dsigner une classe dun package par :

nomPackage :: nomClasse
O. BOUSSAID

Page : 51

U.M.L.

Strotypes

Cest un concept qui permet des regroupements de classes, dassociations, de mthodes, dattributs, de packages

Il permet de crer des familles dlments associs un mme strotype.

Dautre part, il permet de modifier la smantique des lments associs et cre par la mme occasion des concepts propres une application.

Linterface est un exemple de strotype.

O. BOUSSAID

Page : 52

U.M.L.

Contraintes

Elles permettent dapporter plus de prcisions un lment du modle. Exemple :

Notes

{Ordonne} * Obtenir *

Etudiant

EtreInscritEn

Etudiant *

{Sous ensemble} EtreMajorDe

Diplme *

O. BOUSSAID

Page : 53

U.M.L.

LE MODELE DYNAMIQUE

Ile vient juste aprs lanalyse statique du modle. Cette dernire dcrit la structure des lments du modle ainsi que leurs relations. Quant lanalyse dynamique , elle a pour but de dcrire les tats des objets au cours du fonctionnement du systmes :  modifications des attributs ;  excutions des mthodes ;  ractions des sollicitations externes au systme;

O. BOUSSAID

Page : 54

U.M.L.
Un

La notion d Etat

dun objet est dfini la fois par la valeurs de ses attributs et de ses liens avec les autres objets. Il reprsente ainsi un intervalle de temps. Lobjet est dans un tat initial et peut alors changer dtat. Exemple

tat

:
Etudiant
InscritEn

Nom Prnom ge Statut

Pratiquer

0..*

* Diplme

Sport

Ici lobjet Etudiant peut passer dun tat Etudiant un tat de diplm un tat de sportif, Cest lattribut Statut qui va changer de valeur.

Reprsentation d un tat :

Etudiant Diplm

Sportif

O. BOUSSAID

Page : 55

U.M.L.

Evnements et messages

Un vnement est produit par un fait et vhicule une


information qui va solliciter un ou plusieurs objets. Soit ils rpondront en activant une mthode ; soit ils ne ragiront pas du tout. Cela dpend de ltat dans lequel se trouve(nt) l (les) objet(s). Un vnement peut tre interne ou externe au systme. Lorsquun objet provoque un vnement en direction dun autre objet, ce dernier peut rpondre en dclenchant une de ses mthodes. Cest une interaction entre ces deux objets. Lvnement est qualifi alors de message entre ces deux objets.

O. BOUSSAID

Page : 56

U.M.L.

Transition

Une transition est le passage dun objet dun tat un autre d un vnement.

Rinscription autre diplme

Etudiant

Changer statut Fin dtudes Suivre paralllement

Diplm

Changer carrire

Sportif

O. BOUSSAID

Page : 57

U.M.L.

Diagramme d tats

 Cest un graphe compos de n uds reprsentant des tats dun objet dune classe et les arcs sont les transitions portant des vnements.  Un diagramme dtats est propre une classe dobjets. Un tat dun objet peut correspondre des sous tats . Cela dpend du niveau de granularit quon dsire. Exemple : ltat Sportif peut tre reprsent par trois sous tats : Athlte Haut Niveau ; Slection en E.N. et Comptition. Les sous tats sont reprsents comme des tats. Dans un diagramme dtats on peut dvelopper un tat dun objet par un sous diagramme dtats avec des points dentre et des points de sortie. De telle sorte on peut passer dun tat un sous tat et inversement.
Convocation

Athlte Haut Niveau Slection en Equipe Nationalle


Disputer Suivre paralllement

Comptition
Changer carrire

Sous diagramme dtats.


O. BOUSSAID

Page : 58

U.M.L.

Concepts lis aux Diagramme d tats


Ceux sont des paramtres ports par des vnements. Ils sont reprsents dans une liste (utilisation des ( ) ) . Une transition peut porter une liste dattributs.

Les attributs

Les gardiens
Ceux sont des fonctions boolennes qui conditionnent le dclenchement dune transition. (utilisation des [ ] ).

Les activits
Ceux sont des oprations continues dans le temps et sexcutent tardivement. Une activit est forcment associe un tat. Il est prcde du mot cl do.

Les actions
Ceux des oprations qui sexcutent instantanment. Une action peut tre associ un tat ou une transition. Elle peut intervenir : ysoit en entre dtat (elle sera prfixe par entry/) ; ysoit en sortie dtat (elle sera prfixe par exit/) ;
ysoit en rponse un vnement dclencheur (elle sera prfixe par le nom dvnement vnement1/) ; ysoit enfin au cours dune transition (elle est prfixe

par /).
O. BOUSSAID

Page : 59

U.M.L.

Concepts lis aux Diagramme d tats (2)

Les attributs Les gardiens Les activits Les actions


ETAT 1
-entry/action en entre dtat / -do :activit pendant ltat -vnemen1 / action1 -vnemen2 / action1
-

-exit / action en sortie dtat

Evnement (attributs) [gardiens] / action

Etat 2

O. BOUSSAID

Page : 60

U.M.L.
Remarque

Concepts lis aux Diagramme d tats (3)

Plusieurs sous diagrammes dtats peuvent intervenir en mme temps. Ils se droulent en concurrence ou en synchronisation. Lorsquils sont en concurrence, le premier sous diagramme dtat bloque les autres et fait quitter ltat englobant vers un autre tat. Lorsquils sont en synchronisation, la transition de ltat englobant vers un autre tat ne seffectue que lorsque tous les sous diagrammes le permettent. Aucun sous diagramme ne peut tre interrompu.

O. BOUSSAID

Page : 61

U.M.L.

Concepts lis aux Diagramme d tats (4)

Inscrit ANPE
AcceptationInsciption

Petites annonces

Allocation chmage
Proposition ANPE

OU

Proposition Entrevue

En PhaseEmbauche

- Sous diagramme dtat en concurrence.

Demander Cong ET

Assurer Fonctions

En cong

- Sous diagramme dtat en synchronisation.


O. BOUSSAID

Page : 62