Vous êtes sur la page 1sur 62

U.M.L.

Lapproche Objet

dabord

Une
mthodologie de
conception

Page : 1

U.M.L.

Lapproche Objet

Problmatique
Taille et complexit des logiciels:
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.
Evolutions technologiques permanentes
Complexit architecturale: Client/serveur,
Intranet, Corba (Common Object Request Broker
Architecture), Systmes distribus

Solutions:
Dcoupage du processus de dveloppement:
phase analyse: aspects;
phase ralisation: aspects technologiques et
architecturaux.
Dcoupage du systme en sous systmes:
diminution de la complexit; rpartition du travail et
rutilisation .
Utilisation dune technologie de haut niveau:
dcoupage naturel du systme .
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
diplme
VrifierNom
MajUV
ChangerDiplme
OBJET Etudiant

Page : 3

Notion de classe et dinstance


U.M.L.

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

est la cration dun

objet dune classe.


Nom : Dupont
Capital UV : capital1
Diplme : matise de
Sciences Eco.
VrifierNom
MajUV
ChangerDiplme

Nom : Durant
Capital UV : capital2
Diplme : licence de
Socio.
VrifierNom
MajUV
ChangerDiplme

Deux instances dune mme classe peuvent


avoir des attributs avec des valeurs
diffrentes et mais partagent les mmes
mthodes.

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.
Page : 5

U.M.L. LEncapsulation
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).
Page : 6

U.M.L.

Labstraction

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.

Page : 7

U.M.L.

Labstraction

Exemple:
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.

Page : 8

U.M.L.

LHritage

la classe Etudiant :
nom
capital UV
diplme

la classe Etudiant-Elu :
nom
capital UV
diplme
Mandat
Syndicat

VrifierNom
MajUV
ChangerDiplme

VrifierNom
MajUV
ChangerDiplme
DmissionnerMandat
ChangerSyndicat

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 EtudiantElu pourra, si cela est ncessaire pour ses
besoins, redfinir une mthode hrite.

Page : 9

U.M.L.

LHritage

Chaque sous classe peut avoir une ou


plusieurs sous classes formant ainsi une
hirarchie dobjet. On parle de classe

anctre (ou mre) et


descendant (ou fille).

de classes

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.

Page : 10

Les classes abstraites


U.M.L.
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


Graduation
Adresse
tlphone
Service Militaire
RdigerCV
AfficherCV
Et :
La classe Etudiant :

La classe Etudiant-Elu:

nom
capital UV
diplme

nom
capital UV
diplme
Mandat
Syndicat

VrifierNom
MajUV
ChangerDiplme

VrifierNom
MajUV
ChangerDiplme
DmissionnerMandat
ChangerSyndicat

La Classe JeuneAdulte a des proprits communes


aux classes Etudiant et Etudiant-Elu. Mais on ne
peut linstancier.
Page : 11

U.M.L.LHritage 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?
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.

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

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:

Axe fonctionnel: savoir-faire de lobjet.


Axe statique: structure de lobjet.
Axe dynamique: cycle de vie de lobjet au
cours
de
messages de

lapplication
lobjet).

(Etats

et

Ces descriptions ne tiennent pas compte de


contraintes techniques (informatique).
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.

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
Page : 17

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


Maintenance et volution
Deux sortes
considrer:

de

maintenances

sont

Une maintenance corrective,


consiste traiter les buggs.

qui

Une maintenance volutive, qui


permet au systme dintgrer de nouveaux
besoins
ou
des
changements
technologiques.

Page : 18

Les diffrents cycles de


U.M.L.
vie
Il existe 2 cycles de vieutilises dans les
approches traditionnelles : le modle
linaire et le modle en V.
Le modle linaire
Expression des
besoins

Spcification

Implmentation

Tests
de
vrification

Analyse

Conception

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.

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:

Une phase descendante: de spcifications et de


conception.

Une phase ascendante: de tests et de validation.


Comme

pour le modle linaire, linconvnient est que la

validation et les tests interviennent tardivement.


Page : 20

Les diffrents cycles de


U.M.L.
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
Page : 21
avec dautres concepts.

U.M.L.

Le cycle de vie Objet

Un cycle itratif:

Validation des besoins

Tests de
vrification

Expression des
besoins

Spcifications
fonctionnelles

Implmentation

Conception

Analyse

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.

Page : 23

U.M.L.

Les USE CASES

Ide :

use cases

Les
(cas dutilisation) sont
un concept de la mthode OOSE de Ivar
Jacobson.

dlimitation du
systme et de dcrire son comportement.

Ils permettent deffectuer une

Ils constituent une reprsentation oriente


fonctionnalits du systme.

Dans la modlisation par les use cases :


2 concepts fondamentaux interviennent :
Les acteurs : utilisateurs du systme.
Les uses cases : utilisation du systme

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 :
lesacteursprimaires : ceux sont les utilisateurs
du systme ;
lesacteurssecondaires : ceux qui administrent
le systme.

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

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 :
Le guichetier saisit le n de compte du client.
Lapplication valide le compte auprs du systme
central.
Lapplication demande le type dopration au
guichetier.
Le guichetier slectionne un retrait despces de
200F.
Le systme guichetier interroge le systme
central pour sassurer que le compte est
suffisamment approvisionn.
Le systme central effectue le dbit du compte.
Le systme notifie au guichetier quil peut dlivrer le
montant demand.

Page : 27

U.M.L.

Autres Descriptions

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

Autorisation dlivrance
t

Guichetier

Systme central

Systme guichet

Exemple de diagramme de collaboration


(6) Dbit compte

Guichetier

(3) Demande
type
dopration

(1) Saisie compte

(4) Retrait
.
espces (200F)

(7) Autorisation
dlivrance

Systme Central

(5) vrification
solde compte

(2) Validation compte


Systme guichetier

Page : 28

U.M.L. Diagramme des Use Cases

Application bancaire (systme)

Responsable
Devises

Guichetier
Retrait francs

Saisie cours
devises
Retrait devises

emprunt
Directeur

bilan

Systme central

Lintgration dans lUse Case Applicationbancaire des


use cases de chaque opration permet davoir une vision
globale du systme. Elle permet galement de
comprendre le rle de chaque acteur.
.

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

Systme central

Extends

Retrait devises

Les UsesCasesfils 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 UsesCasepre.

Page : 30

U.M.L.

Relation uses

La relation uses
Soit luse case Saisie n compte

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 devises

Retrait
francs

uses

uses

Emprunt

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.
Page : 31

U.M.L.

Le Modle Objet

Exprime

Comprend
Analyste

Utilisateur

cas d'utilisation
Ralise
Conoit
vrifie

Programmeur
Architecte

Testeur

Les cas d'utilisation servent de fil conducteur


pour l'ensemble du proie

Page : 32

U.M.L.

Le Modle Objet

DMARCHE D'APPLICATION D'UML


Nous proposons de suivre une dmarche structure en sept tapes.

tape 1 : 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 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 : description

et reprsentation des scnarios

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 : identification

des objets et classes : une

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

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.

tape 6 : laboration

du diagramme tat-transition:

tape 7 : consolidation

et vrification des modles :

pour chaque classe importante c'est dire prsentant un


intrt pour le systme modliser, un diagramme tattransition est labor.

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.

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.

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

Emprunter

0..3

Ouvrag
e
Objet prt

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.

Page : 36

U.M.L.

Les diffrents concepts

Le nombre dattributs et de mthodes quon


dfinira dpend du niveau de granularit quon
veut obtenir.
Exemple:
0..1

Emprunter

0..3

Ouvrag
e
Objet prt

Lecteur
Emprunteur

Dupont : Lecteur
0..1 Emprunter
Nom : Dupont
Prnom : olivier
Adresse : Inconnue

0..3

Les B.D.R.
Ouvrage

Exemple de classes et dobjet

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 :
Un nom
Deux noms de rle facultatifs
Un sens de lecture
Deux 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

Emprunter

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 .
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.
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.
Le parallle avec le modle E/A est intressant faire lors de
la phase danalyse.

Page : 39

U.M.L. Gnralisation ; Spcialisation

Classe mre

Gnralisation

Spcialisation

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.

Page : 40

U.M.L. Gnralisation et Spcialisation


Exemple :
uvre
dure
1
Diffuser
*
Support
MatrielNcessaire

Livre

CDAudio

CasetteVid
o

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 .

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.

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
Page : 43

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

Compte Bancaire
Montant

Compte
Bancaire
Montant

Compte Chque
Rmunr

CompteChqueRmu
nr
1
1

1
1

CompteEpargne

CompteCh
que

1
CompteEparg
ne

Hritage Simple : 2 solutions

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.
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
gre

Facults

Dparteme
nts

*
Etudian
ts

Agrgation

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 :

Lassociation

a une smantique de style


composede... ou estunepartiede ... .

est

Il existe une forte diffrence de granularit entre une


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

Page : 46

U.M.L.

Association unaire et
Agrgation rcursives

Une classe peut avoir des instances qui sont en association


entre elles.

Elment

Electeur
*

Etudian
t
Dlgu
1

Reprsente

Association unaire
(rflexive)

Collecti
on

ObjetSim
ple

Agrgation rcursive

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

Enseignem
ent

UV

objet(s) qualifi(s).

Enseignan
t

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

Comparabl
e
>
<
=

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.

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.

Facturation

Client

Comptabilit

Organisation par packages

Page : 50

U.M.L.

Packages (2)

Client
Facturation :: Facture
*

Socit

Client
Concerner

1
Acheter

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
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.

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

Diplm
e

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;

Page : 54

U.M.L.

La notion d Etat

tat

dun objet est dfini la fois par la valeurs de ses


attributs et de ses liens avec les autres objets.
Un

Il reprsente ainsi un intervalle de temps.


Lobjet est dans un tat initial et peut alors changer dtat.
Exemple

:
Etudiant
InscritEn

Nom
Prnom
ge
Statut

*
Diplme

Pratiquer

0..*

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

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.

Page : 56

U.M.L.

Transition

Une transition est le passage dun objet dun tat


un autre d un vnement.

Rinscription
autre diplme

Etudiant

Fin dtudes

Diplm

Changer statut
Suivre paralllement

Changer carrire

Sportif

Page : 57

U.M.L.

Diagramme d tats

Cest un graphe compos de nuds 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.


Page : 58

U.M.L.

Concepts lis aux


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

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 :
soit en entre dtat (elle sera prfixe par entry/) ;
soit en sortie dtat (elle sera prfixe par exit/) ;
soit en rponse un vnement dclencheur (elle sera
prfixe par le nom dvnement vnement1/) ;
soit enfin au cours dune transition (elle est prfixe

par /).
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

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.

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

Assurer Fonctions
ET
En cong

- Sous diagramme dtat en synchronisation.


Page : 62