Vous êtes sur la page 1sur 62

Introduction :

Constatations et tat du march

Approche objet
Inconvnients et remdes La gense Le cycle itratif et incrmental

Les diagrammes UML


Diagramme des cas d'utilisation Diagramme de classes, objets Diagramme de squence Diagramme de collaboration Diagramme d'tats transition Diagramme de composants Diagramme de dploiement

Historique dUML
UML 1.3
Standardisation OMG
Novembre 1997 Version finalise en dcembre 1999

UML 1.1
UML 1.0 UML 0.9 UML 0.8 Booch 93 OMT - 2 OMT - 1
Jim Rumbaugh

Janvier 1997

Juillet 1996

Octobre 1995

Booch 91
Grady Booch

OOSE
Ivar Jacobson

Quest ce que UML?


UML = Unified Modeling Language
UML est le langage standard incontournable aujourdhui ,pour visualiser, spcifier, construire, et documenter des produits dun systme dont le logiciel est prpondrant.

Il peut tre utilis avec tous les processus, travers le cycle de vie de dveloppement, et avec diffrentes technologies dimplmentation.

Quest ce que UML?


UML possde plusieurs facettes: Cest une norme (OMG) Cest un langage de modlisation objet Cest un support de communication Cest un cadre mthodologique Mais ce nest pas une mthode car il ne dfinit pas le processus dlaboration des modles

UML
Bien qu UML nimpose pas de processus , ses auteurs prconisent nanmoins lutilisation dune dmarche
Guide par les besoins des utilisateurs du systme Centre sur larchitecture logicielle Itrative et incrmentale (en opposition au cycle fonctionnel en cascade )

Cycle en cascade
Schma directeur Etude pralable Etude dtaille Etude technique Ralisation logicielle Application informatique installe dans la nouvelle organisation Rectification des anomalies Amliorations Evolutions Plan de dveloppement moyen terme des systmes dinformations Dossier de choix avec proposition et valuation de n solutions

Spcifications fonctionnelles compltes futur S.I.O. (vue utilisateur) Spcifications techniques compltes du futur S.I.I. (vue info.) pour la ralisation Bases de donnes gnres Programmes raliss et tests

Mise en service

Maintenance

Modliser avec UML


UML est utilis pour modliser visuellement :
Les interactions entre le systme et le monde extrieur Le comportement du systme La structure du systme Les composants du systme

Les diagrammes
Modlisation des vues statiques dun systme
Le diagramme des cas dutilisation Le diagramme de classes Le diagramme de composants Le diagramme de dploiement

Les diagrammes UML


Modliser les vues dynamiques dun systme
Le diagramme de squence Le diagramme de collaboration Le diagramme dtats/transition

Diagramme de cas d'utilisation


Les diagrammes de cas d'utilisation (use case models) sont crs pour :
visualiser linteraction du systme avec le monde extrieur, modliser trs tt les processus mtiers et lorganisation de lentreprise.

Ils se basent sur des diagrammes o des acteurs interagissent avec le systme de l'extrieur ou de l'intrieur

Diagramme de cas d'utilisation Use case


Les cas dutilisations (use-case) sont des squences dactions menes par le systme qui doit donn un rsultat observable pour un acteur.

Ils sont reprsents par le symbole :

Diagramme de cas d'utilisation Acteurs


Un acteur reprsente une entit qui interagit avec le systme tudi.
Il est reprsent par le symbole

Types dacteur :
Les acteurs principaux : personnes qui utilisent les fonctions du systme. Les acteurs secondaires : personnes qui effectuent des tches administratives ou de maintenance. Les matriels extrieurs sauf la machine o se trouve lapplication (tels que distributeur de billets). Les autres systmes tels que par exemple le rseau des cartes bancaires

Diagramme de cas d'utilisation Comment trouver les acteurs ?


Qui est intress par le besoin ? Dans lentreprise, o le systme se trouve-t-il utilis ? Qui entre linformation, qui lutilise, qui la dtruit ? Qui utilise cette fonction ? Qui fait le support et la maintenance du systme tudi ? Le systme utilise-t-il une ressource extrieure ? Quels acteurs ont besoin de la fonction ? Un acteur joue-t-il plusieurs rles ? Le mme rle est-il jou par plusieurs acteurs ? ?

Diagramme de cas d'utilisation Acteurs


Un utilisateur peut jouer plusieurs rles donc peut tre plusieurs acteurs.
On a des instances dacteurs : M.Dupont et Mme Martin sont des instances de lacteur client .

Il est impratif de bien dfinir les frontires du systme pour dfinir correctement les acteurs.

Diagramme de cas d'utilisation Comment trouver les use case ?


?

Quelles sont les tches de lacteur ? Quel acteur cre, sauvegarde, modifie, efface ou simplement consulte cette information ? Quel use case cre, modifie, efface cette information ? Lacteur devra-t-il informer le systme des changements venant de lextrieur ? Lacteur doit-il tre inform sur certain tat du systme ? Tous les besoins fonctionnels sont-ils pris en compte ? ?

Diagramme de cas d'utilisation les relations entre cas dutilisation ? La relation de communication :
Elle est reprsente par une flche entre linitiateur de Communique linteraction et celui qui la reoit changement
adresse

La relation dutilisation :

Client

Grer Client

Une instance du cas source comprend le comportement dcrit <<utilise>> dans le cas destination
Editer facture Calcul remise

La relation dextension :
Le cas source tend le comportement dcrit dans le cas destination <<tend>>
Grer Client Grer personne

Diagramme de cas d'utilisation Exemple


Adhre

Association

Adhrent Inscrit au concours

Envoie info concours

Dlivre rsultats Juge

Organisation concours

Juge preuves

Diagramme de cas d'utilisation documentation


Pour chaque acteur : une description rapide de quelques lignes Pour chaque cas dutilisation : Une description rapide

Le dtail des vnements (avec les informations) :


Comment et quand commence et se termine le cas dutilisation Quand il y a interaction entre cas dutilisation et acteur Quelles informations constituent un change entre lacteur et le cas dutilisation Le flux nominal Les n flots alternatifs

Diagramme de cas d'utilisation Scnario


Cest une instance de cas dutilisation. Cest un chemin que peut suivre le systme.
Quand tout ce passe bien, cest un scnario (happy day scnario). Puis on a un scnario chaque point de dcision et chaque exception. On crira les diffrents scnarii possibles : ils constitueront la bases des jeux de tests.

Diagramme de cas d'utilisation Intrts


Il permet de communiquer avec les clients/utilisateurs et lexpert du domaine.
Assurance de comprhension mutuelle

Il permet didentifier qui intervient sur le systme


Que doit faire le systme? Qui interagit avec le systme ? Quelle interfaces doit possder le systme ?

Il permet de vrifier que les dveloppeurs ont bien compris le besoin.

Classes et objets
Un objet est un membre dun systme orient objet.
Cest une entit atomique qui possde :
une identit qui le caractrise de faon non ambigu, un tat reprsent par le contenu de ses attributs et les liens quil a avec les autres objets, un comportement qui regroupe les comptences dun objet et dcrit ses actions et ses ractions (messages reus , messages envoys).

Les objets communiquent entre eux par des messages. La persistance des objets est la capacit pour un objet de sauvegarder son tat dans un systme de stockage de linformation.

Classes et objets
Une classe est un regroupement dobjets ayant les mmes proprits ou attributs, les mmes comportements, les mmes relations avec les autres objets.
Un objet est une instance dune classe.

Une classe nous permet de mieux grer la complexit car cest une dfinition abstraite mettant en lumire les points communs entre les objets quelle regroupe.
Le nom dune classe provient directement du domaine. Il commence par une lettre majuscule : Commandes, Clients, LigneCommandes

Classes et objets

Combien de classes voyez-vous ?

Classes et objets
Une classe est reprsente par :
Stagiaires
idStagiaire strNomStagiaire nStage strAdresse .

Nom de la classe

Attributs

creation() modification() suppression() .

Comportements

Classes et objets
Une classe a au moins un strotype :
Classe "Boundary" ou classe la frontire du domaine Classe entit Classe de contrle Classe utilitaire Meta classe Classe d'exception

Classes et objets Classe "frontire"

Une classe "boundary" modlise : la communication entre les intervenants autour du systme et ses propres tches.
Classes "boundary" typiques :

Interface utilisateur
Protocole de communication (interface systme) Interface d'impression Capteurs

l'interface avec un autre systme (facturation client).


Les caractristiques d'une telle classe sont : Les informations passes l'autre systme,

Le protocole utilis pour "parler" l'autre systme.

Classes et objets Classe "frontire"

Comment les dcouvrir ? En examinant chaque couple "acteur physique et scnario". On dcouvre une classe interface.

Durant le maquettage, ces classes peuvent tre redfinies en fonction des mcanismes de l'interface utilisateur.
Des prototypes et des maquettes de fentres peuvent tre crs pour communiquer le "look and feel" de la classe boundary l'utilisateur.

Classes et objets Classe "entit""

Une classe "entity" modlise les informations et les comportement associs (gnralement persistante).
Les caractristiques d'une telle classe sont : Elle reflte une ralit, Elle a besoin des tches internes du systme, La valeur de ses attributs est souvent fournie par un acteur, Son comportement est indpendant des intervenants.

Classes et objets
Une classe "contrle" supervise d'autres classes, assure la coordination entre classes
Elle cre, initialise et dtruit les objets contrls,

Elle contrle le squencement, ou coordonne l'excution des objets contrls. Elle n'a pas de "responsabilits" ceci est l'apanage des classes entity et boundary
Elle contrle la concurrence entre classes contrles, Elle est l'implantation d'un objet intangible, Au dpart , on cre une classe "contrle" pour chaque use-case; cette classe gre le flot d'vnements dans le use-case, Au fur et mesure de l'avancement de l'analyse, les classes "contrles" peuvent tre supprimes, dcoupes ou regroupes.

Classes et objets
Diagrammes de classes

Diagramme principal qui est la vue de plus haut niveau avec l'ensemble des classes de l'application Mais on peut avoir des vues logiques plus spcialises si ncessaire : Vue des classes participant un scnario Vue des classes "prives" dans un package Vue d'une classe avec ses attributs et ses oprations Vue d'une hirarchie d'hritage

Classes et objets
Les relations

Pourquoi ? Tout systme comporte de nombreuses classes et objets,

Les objets contribuent au comportement du systme en collaborant avec d'autres objets; cette collaboration est reprsente par des relations. Il existe deux grands types de relations
L'association L'agrgation

Classes et objets
Les relations : l'association
Socits travaille pour Personnes

Association binaire non porteuse d'attributs

Classe association : Association porteuse d'attributs


Concours s'inscrire Adhrents

Inscriptions dateInscription

Classes et objets
Arit des associations

Agences Voyages

Sites touritiques

<<association ternaire>> Visites

Touristes

<<Association ternaire>> est un strotype

Classes et objets
Les relations : l'agrgation
L'agrgation est une relation de type compos composant, matre esclave.
FrameSaisie

Une forme d'agrgation est la composition.

ComboPays

PanelRgion

PanelPays

Ne pas utiliser l'agrgat pour une association : se poser la question quand je dtruis le "compos" est ce que je dtruis le "composant" . Si oui, c'est un agrgat, sinon c'est une association Exemple : quand je dtruis la voiture, est ce que je dtruis la carrosserie ? Ne mettre en agrgation que si c'est vraiment utile.

Classes et objets
Les relations : la gnralisation

La gnralisation est une relation entre un lment gnral (la super classe) et un lment plus spcifique.
Personnes strNom strPrenom datNaissance strAdresse

Dans cet exemple de gnralisation, les attributs de Client sont ceux de Personnes plus ceux de Client.
Dans Personnes, on retrouve les attributs qui sont communs aux classes Clients, Fournisseurs, Salaris.

Clients nCaAnnuel strFamille

Fournisseurs strSecteur

Salaris nQualif dSalaire

Classes et objets
Les relations : les rles

L'extrmit d'une association est appele rle.


Le rle dcrit comment une classe voit l'autre classe au travers d'une association.
< Travailler pour

Socit

Employeur Employ

Personnes

Classes et objets
Les relations : les cardinalits
Chaque rle d'une association porte une indication de multiplicit indiquant combien d'objets de la classe considre peuvent tre lis un objet de l'autre classe (c'est la mme
notion que les cardinalits merise sauf que l'indication se fait l'inverse).

Un et un seul

0..1
* 0..* 1..* M..N

0 ou un
De 0 plusieurs De un plusieurs

Collaborateur
De m n occurences

Socit
< Travailler pour

0..* Personnes
Encadrer

Employeur 1

0..* Employ

0..1 Suprieur

Classes et objets
Contraintes sur les relations
Les contraintes sont reprsentes par des expressions places entre accolades.
Association
< appartenir

Personnes

0..* Membre

(Sous-ensemble)

0..* Bureau

Les contraintes sont :


Contrainte de partition (ou exclusif),
Contrainte d'exclusion (toute objet de la classe participe une et une seule des relations 0 ou n fois), Contrainte de totalit (toute objet de la classe participe une des relations)

Classes et objets
Exemple
Stagiaires datEntree datSortie cNiveauEntree affectation() iincriptionCours() 0..* creation() modification() suppression() Professeurs +enseigne 1..* 1..* Cours

+participant 0..*

participer

Personnes
strNom strPrenom datNaissance strAdresse

0..* 0..*
pr requis

Centres

Classes et objets Paquetage


Un paquetage ou package est un mcanisme servant organiser des lments en groupes.
Package IHM

Les packages peuvent tre mis en relation

Package Interface

Package Rgles mtiers

Classes et objets Paquetage


Eviter le cycle de dpendance

Package A

Package Rgles mtiers

Package X

Classes et objets Paquetage

Un package regroupant les objets techniques assurant la persistance


strotype <<infrastructure>>

pour un domaine donn (paie, comptabilit, )


strotype <<entit externe>>

un package pour les interfaces par domaine galement


strotype <<application>>

Un package pour les services d'impression


strotype <<infrastructure>>

Diagrammes d'interaction
C'est un diagramme qui donne une reprsentation graphique des interactions entre objets.
Il existe deux types de diagrammes d'interaction : Le diagramme de squence (fonction du temps), Le diagramme de collaboration( reprsente les flots de donnes). Chacun de ces deux diagrammes reprsente la mme chose vue diffremment.

Diagrammes d'interaction
Diagramme de squence
Un diagramme de squence montre les interactions entre objet dans le temps avec :
les objets participant l'interaction,
Ligne de vie de l'objet

Nom: Classe

: Classe

la squence des messages changs qui peuvent tre : o synchrone : ils sont alors symboliss par

o ou asynchrone : ils sont alors symboliss par


Il montre tape par tape ce qui se passe pour accomplir une fonctionnalit fournie par le systme
Un message synchrone bloque son metteur tant qu'il n'a pas fini de traiter.

Diagrammes d'interaction
Diagramme de squence
Nommer un objet dans un diagramme de squence :
Nom Nom: Classe : Classe

L'objet, l'individu est connu

un objet non prcis de la classe indique

Gwendal

: Stagiaires

Diagrammes d'interaction Diagramme de squence : messages


Objet A
Message1()

Objet B

Le retour est implicite

Message2(p1,p2)

Le message a des paramtres Le retour est implicite

Message3() Le retour est explicite

Message rcursif (objet composite)

Message avec dlai de transmission non ngligeable

Diagrammes d'interaction Diagramme de squence : priode d'activit


Objet A
Message1() l'objet A active l'objet B et reprendra la main quant B lui redonne la main

Objet B
Priode d'activit

Message2()

Le retour est explicite avant suicide : la ligne de vie est termine

Diagrammes d'interaction
Diagramme de squence
Objet A
Reprsentation possible de la boucle While Tant que condition Envoie de Message1 *[condition]Message1()

Objet B

Objet C

[condition]Message2() Reprsentation d'une alternative

[non condition]Message3()

Il est possible d'crire un script la gauche du diagramme en langage naturel ou en pseudo code

:Stagiaires

Accueil : Jframe 2: new

SaisieHeure : Jpanel

: Pointages

: Stagiaires

1: SaisieAction ( )

3: afficheMsg()

4: afficheMsg(nStage)

5: SaisieCode 6: CtlStagiaireExist(nStagiaire) 7: retour(bExiste)

8: afficheMsg(nStagiaire)

9: createMvtPointage(nStagiaire, bType, Date,Heure)

Diagramme de squence : exemple

Diagrammes d'interaction
Diagramme de collaboration

:Stagiaires 5: SaisieCode 1: SaisieAction( ) 2: new Accueil : Jframe

3: afficheMsg() 4: afficheMsg(nStage) 8: afficheMsg(nStagiaire)

6: CtlStagiaireExist(nStagiaire)

SaisieHeure : Jpanel
7: retour(bExiste)

: Stagiaires

9: createMvtPointage

C'est un diagramme qui donne une reprsentation graphique des interactions entre objets.
:Pointages

Diagramme d'tats - transition


Ce diagramme est utilis pour montrer l'historique de la vie d'une classe donne : des vnements font passer d'un tat un autre tat qui doit dclencher des actions. C'est une abstraction des comportements possibles.

Diagramme d'tats - transition


Dbut : on ne peut en avoir qu'un
tat Distingu par un changement de valeurs des attributs ou par l'existence de certains liens Transition C'est le changement d'un tat vers un autre tat suite un stimuli On peut lui associer une action (celle ci doit tre non interruptible) Fin : optionnel, mais on peut en avoir plusieurs
Ne pas confondre activit et action : Une activit dure et peut tre interrompue Une action est immdiate et ne doit pas tre interrompue

Diagramme d'tats - transition Exemple


Controle conformit Prparation temine Site amenager Site prpar Date ouverture Site ouvert

Arriv visteur Dcision d'exploitation Date ouvertue - 1 mois[ si pas de remise en tat ]

Date ouverture[ avec remise en tat ] Site dcouvert

Site visit

Dcision de non exploitation Site ferm

date fermeture

Date fermeture

Diagramme dactivits
Les diagrammes d'activits sont crs pour illustrer le flot d'vnements l'intrieur d'un cas d'utilisation.
C'est une variante du diagramme d'tats transitions. Une activit est reprsente par

Diagramme dactivits : exemple


Socit assure Intermdiaire Cotisations sige

mettre appel de cotisations Complter informations salaris Enregistrer paiement Payer cotisations Enregistrer informations salaris

Appel mis

mettre 1re relance

Appel 1 relance
mettre 2me relance Appel 2 relance Mettre en contentieux

Appel pay

Appel contentieux

Contrat suspendu

Rsiliation du contrat

Contrat rsili

Diagrammes de composants
Les diagrammes de composants illustrent lorganisation et les dpendances parmi les composants logiciels. Les symboles utiliss sont :
Accueil

Programme principal entre de l'application Composant


Composant 1

dll

Sous programme : spcification

corps

Package :

spcification

corps

Diagrammes de composants
Les symboles (suite) :

Tches : spcification

corps

(exe)

Dpendances :
pointe de l'utilisateur des service vers le fournisseur de service

Interfaces :

Diagrammes de composants
Crer groupe

Groupe Mise jour groupe Consulter groupe

Consultation groupe

Le dploiement du systme

Le diagramme de dploiement visualise la distribution des composants dans lentreprise. Les symboles utiliss sont :

Pour les processeurs

Serveur2

modem

Pour les autres ressources matrielles Pour les connexions

LaserJet

Le dploiement du systme
<<TCP/IP>> Site central

exemple
Site rgional

<<TCP/IP>> Seveur d' mpressio <<TCP/IP>> Site rgional <<TCP/IP>> Mac

<<TCP/IP>> Serveur Web

Site rgional <<internet>> PC PC

Infographie

Application1 Application 2