You are on page 1of 246

Cours de

Mthodologies de conception oriente objet


Institut Suprieur dInformatique de Mahdia AU : 2012-2013

Propos par : Riadh HADJ MTIR Riadh.hadjmtir@riadi.rnu.tn Classe : LAI 2

Objectifs du cours Vos comptences actuelles


Programmation individuelle sur de petits problmes Algorithmiques, langages de programmation et structures de donnes

Vous devez savoir (au cours dun projet)


Travail en quipes sur des projets longs et complexes Spcifications de dpart peu prcises Dialogue avec le client/utilisateur (parler mtier ou non info) Organisation, planification, gestion du risque

Dmarche Ingnierique : Gnie Logiciel


Riadh HADJ MTIR 2012/2013

Plan du cours

Introduction Le paradigme objet


De lapproche fonctionnelle vers lapproche objet Concepts principaux de lapproche objet Objets et relations entre les objets

Le Langage UML
Introduction Description du processus du dveloppement : Le processus Unifi Les diagrammes de UML
Riadh HADJ MTIR 2012/2013

Chapitre I

Introduction

Riadh HADJ MTIR 2012/2013

Introduction

Cycle de vie dun logiciel

Quest-ce quun cycle de vie logiciel ?


Enchanement des activits de dveloppement logiciel Dfinition des Pr et Post conditions pour chaque phase Procdures de gestion et dencadrement Procdures de mesures Cycle de vie logiciel : synonyme de mthodologie logiciel

Riadh HADJ MTIR 2012/2013

Introduction Processus logiciel CVL :

Cycle de vie dun logiciel

Dmarre par la dcision de dveloppement dun logiciel Se termine par la mise hors service du logiciel

Processus de dveloppement
Une certaine modlisation, dcomposition du processus globale de la production du logiciels afin de mieux matriser la complexit

3 Q?
POURQUOI le faire Etude pralable QUOI faire spcification COMMENT le faire Conception
Riadh HADJ MTIR 2012/2013

Introduction

Cycle de vie dun logiciel

Etapes dun cycle de vie


Analyse : opportunit fonctionnelle et faisabilit technique, spcification des besoins Conception : choix tactiques de ralisation et darchitecture Codage / implmentation: ralisation informatique du dtail des oprations Test / validation: tests unitaires et dintgration

Riadh HADJ MTIR 2012/2013

Introduction

CVL : Analyse des besoins

Etape pralable si le client na quune ide peu prcise du systme raliser


Etude informelle des fonctionnalits (externe) du systme sans considration technique : point de vue mtier / utilisateur Dialogue fournisseur/Client en terme intelligibles pour ce dernier : laider formaliser le problme rsoudre Produit un document textuel avec des schmas Conduit gnralement un cahier des charges
Riadh HADJ MTIR 2012/2013

Introduction

CVL : Spcifications

Ce que doit faire le systme (cot client)


Document prcis spcifiant les fonctionnalits attendues Base du contrat commercial avec le client Document facile comprendre par le client Exemple : dfinition de la frontire du systme, description des fonctionnalit du systme avec scnarios, interactions

Les spcifications ne sont jamais compltes et dfinitives : volution du domaine, besoins supplmentaire
Riadh HADJ MTIR 2012/2013

Introduction

CVL : Analyse du systme

QUOI FAIRE? comprendre et modliser


Rflexion hors de toute considration technique Reste un support de discussion avec le client Premier modle du systme Identifier les lments intervenants hors (acteur) et dans le systme : fonctionnalits, structures et relations, tats par lesquels ils passent suivant certains vnements.

Lanalyse nest jamais complte mais doit tre juste


Riadh HADJ MTIR 2012/2013

10

Introduction

CVL : Exemple le DAB

Raliser lanalyse des besoins et la spcification dun distributeur automatique de billets

Riadh HADJ MTIR 2012/2013

11

Introduction

CVL : Conception

Comment faire le systme : choix techniques


Choix dune architecture technique (matriel, logiciel) suivant certaines priorits (facteurs qualits : robustesse, efficacit, portabilit,) Expertise informatique : hors comprhension du client Modle de larchitecture logicielle du systme
Dcomposition en sous systmes : application (interfaces) domaines (mtier), infrastructure (implmentation). Permet la dfinition des phases de limplmentation, de validation et de maintenance
Riadh HADJ MTIR 2012/2013

12

Introduction

CVL : Implmentation

Souvent trop de temps consacr au codage au dtriment des phases danalyse et de conception : mauvaise pratique parfois trs coteuse Savoir user de la rutilisation de composant voire doutils de gnration de code (mise en place automatique du squelette du code partir du modle systmes ) lactivit de dveloppement sera de plus en plus tourne vers la rutilisation des composants existants
Riadh HADJ MTIR 2012/2013

13

Introduction Test de vrification

CVL : Validation

Vrification de la robustesse et cohrence du systme en particulier dans les cas dexceptions Testeurs concepteur ou programmeur Logiciels de test : toute ligne de code doit tre teste

Recette :
Validation client : accord avec les besoins Une fois les tests de vrification satisfaisants Planification des spcifications : cahier des recettes

Activit souvent sous estime

Riadh HADJ MTIR 2012/2013

14

Chapitre II

Le paradigme objet

Riadh HADJ MTIR 2012/2013

15

De lapproche fonctionnelle vers lapproche objet Lapproche fonctionnelle

Les approches fonctionnelles (mthodes structures) trouvent leur origine dans les langages procduraux Elles mettent en vidence les fonctions assurer et proposent une approche hirarchique descendante et modulaire Dcomposition fonctionnelle descendante
raffinements successifs pour produire des spcifications

Riadh HADJ MTIR 2012/2013

16

De lapproche fonctionnelle vers lapproche objet Lapproche fonctionnelle (2)

Raisonnement en terme de fonctions du systme


laccent est mis sur les fonctions et non sur les donnes

Sparation des donnes et du code de traitement


dissocier le problme de la reprsentation des donnes, du problme du traitement de ces donnes

Diffusion des responsabilits


Intgrit des donnes non garantie Ajout possible de nouvelles oprations tout moment

Riadh HADJ MTIR 2012/2013

17

De lapproche fonctionnelle vers lapproche objet Lapproche fonctionnelle (3)

Hros

Marcher

Courir

Sauter

Tomber

Coucher

Application MonJeu
struct Hros { char* nom; int Taille; int rapidite; }; Marcher (Hros,); Coucher (Hros,);
Riadh HADJ MTIR 2012/2013

18

De lapproche fonctionnelle vers lapproche objet Lapproche fonctionnelle (3)

Limites
Un programme est conu comme un ensemble de modules fonctionnels (procdures ou fonctions) qui manipulent des donnes Communication entre fonctions :
par passage de paramtres par variables globales

Accs libre aux donnes par nimporte quelle fonction Difficult de rutiliser du code dj crit et test
une modification des donnes entrane gnralement une modification dun nombre important de fonctions parpilles et difficiles identifier dans une hirarchie de dcomposition

Riadh HADJ MTIR 2012/2013

19

De lapproche fonctionnelle vers lapproche objet Lapproche fonctionnelle (4)

La solution ces limites et problmes ?

Lapproche Objet
Riadh HADJ MTIR 2012/2013

20

De lapproche fonctionnelle vers lapproche objet Lapproche Objet

Regroupement donnes-traitements Lapproche objet est une approche oriente donne


les fonctions se dduisent dun regroupement de champs de donnes formant une entit cohrente, logique, tangible et surtout stable quant au problme trait

Diminution de lcart entre le monde rel et sa reprsentation informatique (approche naturelle) Localisation des responsabilits : encapsulation Suite la modification dune donne, seul lobjet encapsulant cette donne sera modifi
les fonctions modifier sont bien identifies : elles se trouvent dans ce mme objet : ce sont ses mthodes

Dcomposition par identification des relations entre objets :


Association, composition, gnralisation/spcialisation
Riadh HADJ MTIR 2012/2013

21

De lapproche fonctionnelle vers lapproche objet Lapproche Objet (2)

Les donnes ne sont manipulables que par lobjet lui-mme


Hros
Application MonJeu Tomber Marcher Heros.coucher() nom, taille, rapidite Coucher Courir

Riadh HADJ MTIR 2012/2013

22

Lapproche Objet

POO, COO et AOO

Programmation Oriente-Objet (POO) - une mthode d'implantation dans laquelle les programmes sont organiss comme une collection d'objets, chacun tant une instance d'une classe, lesquels font partie d'une hirarchie de classes unifies via des relations d'hritage Conception Oriente Objet (COO) - une mthode de conception contenant le processus de dcomposition en objets et une notation dcrivant les modles logique et physique aussi bien que les modles statiques et dynamiques du systme concevoir Analyse Oriente Objet (AOO) - une mthode d'analyse qui examine les besoins d'un point de vue de classes et d'objets trouvs dans le domaine du problme
Riadh HADJ MTIR 2012/2013

23

Lapproche Objet
relations entre POO, COO et AOO

AOO
Est suivi par Est suivi par

Construit

Objets

Utiliss dans Construit

COO
Utiliss dans

Objets

POO

Riadh HADJ MTIR 2012/2013

24

Lapproche Objet

rcapitulatif

Spare spcification et implantation Organise le dveloppement en units


plusieurs programmeurs plusieurs niveaux de programmation

Exploite des composants crits par dautres


encapsulation, confidentialit du code hritage ...

Rduit le code produit


hritage (le retour) liaison dynamique, gnricit
Riadh HADJ MTIR 2012/2013

25

Concepts de base lapproche Objet

Analyse dun sujet


Reprer des donnes, des traitements

Spcification (rdaction dun cahier des charges) Conception


Organiser donnes et traitements en objets Organiser les objets en types dobjets Relier ces types entre eux Dclaration de chaque type (interface)

Implantation (choix dun langage objet)


Programmation des mthodes de chaque type
Riadh HADJ MTIR 2012/2013

26

Concepts de base lapproche Objet

Objets
Identit tat Comportement

Relations entre objets


Message Interface Abstraction

Classe/Interface Hirarchie Polymorphisme


Riadh HADJ MTIR 2012/2013

27

Concepts Objets

Quest ce quun objet?

Un objet dfinit une reprsentation dune entit atomique relle ou virtuelle, dans le but de le piloter ou de le simuler. Les objets encapsulent une partie des connaissances du monde dans lequel ils voluent. Un objet associe donnes et traitements en ne laissant visible que linterface de lobjet, cest dire les traitements que lon peut faire dessus

Riadh HADJ MTIR 2012/2013

28

Concepts Objets

Quest ce quun objet?

Objet = Identit + Etat + Comportement


LIdentit : caractrise de manire univoque lexistence propre de lobjet. Ltat : dcrit les proprits dun objet un moment donn Le comportement : dfinit les proprits dynamiques de lobjet : comment il agit et comment il ragit aux informations qui lui parviennent de son environnement.

Riadh HADJ MTIR 2012/2013

29

Concepts Objets

Objet : Identit

Existence propre dun objet


Distinguer des objets ayant le mme tat Si on le souhaite, on peut cependant rajouter un identifiant dans ltat de lobjet (cl naturelle)
Numro ISIMA Numro tudiant Numro

Notion de cl primaire en base de donnes

Riadh HADJ MTIR 2012/2013

30

Concepts Objets

Objet : Etat

Etat = Ensemble dattributs


Chaque attribut caractrise une proprit prcise Les attributs peuvent prendre un moment donn toutes les valeurs dun domaine de dfinition donn

Exemple : Base de Donnes


Une personne
nom = Ali age = 35 mtier = Mdecin

Riadh HADJ MTIR 2012/2013

31

Concepts Objets

Objet : Etat

Exemple : OLE dans MicrosoftTM Access

Attributs de lobjet graphique

Riadh HADJ MTIR 2012/2013

32

Concepts Objets

Objet : Comportement

Comportement = Ensemble de mthodes


Mthode = opration atomique quun objet ralise soit de son propre chef, soit en raction une stimulation de lenvironnement (envoi de message dun autre objet) Laction ralise dpend de ltat de lobjet

Exemple : Base de Donnes


Une personne
nom = Ali age = 35 mtier = Mdecin ChangerAge
Riadh HADJ MTIR 2012/2013

33

Concepts Objets

Objet : Comportement

Types de mthodes
constructeur : cre et initialise lobjet CreerPersonne modificateur : modifie ltat de lobjet ChangerAge observateur : donne une information sur ltat DonnerAge destructeur : dtruit lobjet OterPersonne

Cycle de vie dun objet


Tout objet est cr, volue, et est dtruit
Riadh HADJ MTIR 2012/2013

34

Concepts Objets

Objet : Comportement

Exemple : OLE dans MicrosoftTM Access

modifieur

ChangeItalique

Riadh HADJ MTIR 2012/2013

35

Concepts Objets
Relations entre objets : messages

Systme : socit dobjet en relation


Dynamique du systme : collaborations entre objets Interaction non structure par passage de message

Interface : contrle de la modularit


Interface = mthode invocable par lextrieur Ltat dun objet ne peut tre modifi par lextrieur quen invoquant une mthode de linterface Lobjet peut refuser de rpondre une invocation de lextrieur Lobjet garde toujours la matrise de son tat
Riadh HADJ MTIR 2012/2013

36

Concepts Objets
Relations entre objets : interface

Abstraction des donnes


Un objet est compltement dfini par son interface Les autres objets nont pas connatre limplmentation interne de lobjet pour communiquer avec lui
Mthodes dimplmentation Autres objets interface attributs Partie publique
Riadh HADJ MTIR 2012/2013

Partie prive

37

Concepts Objets
Relations entre objets : exemple BD Une personne
nom = Ali age = 35 mtier = Mdecin

Mthodes publiques : interfaces


ChangerNom, ChangerAge, ChangerMetier DonnerNom, DonnerAge, DonnerMetier

Mthodes dimplmentation
VerifMajuscule, VerifSupZero

Riadh HADJ MTIR 2012/2013

38

Concepts Objets
Relations entre objets : exemple BD

(1) Message(ChangerAge(-36)) objet IHM saisie ge

(2) VerifSupZero(-36)

(3) Message(ERREUR)

objet personne : Ali

Riadh HADJ MTIR 2012/2013

39

Concepts Objets
Relations entre objets : exemple Access

objet graphique (1) Clic(ItaliqueArea)

objet contrle souris

(2) Message(On(Italique)) (3) Message(ChangeItalique(1))

objet IHM italique

Riadh HADJ MTIR 2012/2013

40

Concepts Objets

Classe

La classe : une nouvelle tape dans labstraction


Rechercher les similitudes et ignorer les diffrences

Personne
nom age

Abstraction pour rduire la complexit


Riadh HADJ MTIR 2012/2013

41

Concepts Objets

Classe (2)

Classe = objet prototypique dcrivant lensemble des proprits (structure dattribut, comportements) communs aux lments de la classe Classe = ensemble dobjets runis Classe et objet
Toute classe est un objet : identit + tat + comportement

Riadh HADJ MTIR 2012/2013

42

Concepts Objets

Classe (3)

Description dune famille dobjets ayant mme structure et mme comportement : abstraction Chaque classe possde :
une composante statique : attributs ou champs possdant une valeur une composante dynamique : mthodes qui reprsentent le comportement commun des objets de la classe
Riadh HADJ MTIR 2012/2013

43

Concepts Objets

Classe (4)

Exemple de dfinition de classe dobjets

CLASSE Article
ATTRIBUTS
rfrence dsignation prixHT quantit

METHODES
prixTTC() : // retourner (1.206 * prixHT) prixTransport() : // retourner (0.05 * prixHT) retirer(q) : // quantit = quantit - q ajouter(q) : // quantit = quantit + q
Riadh HADJ MTIR 2012/2013

44

Concepts Objets
Classe : Instanciation

Instance
Tout objet dune classe est appel instance de la classe La classe dcrit la structure des ses instances : elles auront les mme attributs et mthodes que la classe

Cycle de vie dune instance


Cration dinstance : constructeur mthode de classe qui ne sera pas dans le comportement de linstance Ltat courant dune instance est dfini en contexte et en toute indpendance par lobjet cr

Riadh HADJ MTIR 2012/2013

45

Concepts Objets
Classe : Instanciation (exemple) Personne1
Nom = Salah Age = 1 ChangerAge Instance de Instance de

Personne2
Nom = Hamza Age = 1 ChangerAge

Personne
nom age ChangerAge CreerPers Classe

Personne3
Instance de Nom = Anis Age = 5 ChangerAge

Riadh HADJ MTIR 2012/2013

46

Concepts Objets
Classe : Hirarchie des classes La super-classe, ou labstraction rcursive Puisque une classe est un objet, elle peut tre elle aussi comme linstance dune classe suprieure
est_un est_un Faune est_un Humain Animal Instance_de Fleur Instance_de classes est_un Vivant Super-classes

instances

Riadh HADJ MTIR 2012/2013

47

Concepts Objets
Classe : Hritage

Hritage
Mcanisme de transmission des proprits (attributs, comportement) dune classe vers ses sous classes Ce qui est gnrique est dfini au niveau de la superclasse, ce qui est spcifique est dfini au niveau de la sous-classe

Gnralisation/spcialisation
Gnralisation : mise en commun des proprits communes entre diffrentes classes dans une superclasse. Spcialisation : cration dune sous-classe par mise en avant de proprits spcifiques non communes toutes les (classes) instances de la super-classe
Riadh HADJ MTIR 2012/2013

48

Concepts Objets
Classe : Hritage (exemple)
Vivant age hrite_de Faune aliment hrite_de Spcialisation hrite_de Fleur espce Instance_de Gnralisation

hrite_de

Humain
nom mtier Instance_de

Animal espce

Riadh HADJ MTIR 2012/2013

49

Concepts Objets
Classe : Hritage (Classe abstraite)

Classe ne permettant pas dinstancier dobjets Exemple


Classe Vivant Classe Faune
Vivant age Faune
age aliment

Utilit
Reprsentation de concepts centraux pour lapplication

Riadh HADJ MTIR 2012/2013

50

Concepts Objets
Classe : Hritage

Difficult de la classification

analyse/ conception
Vivant age Faune
aliment

Humain nom mtier

Animal espce

Fleur espce

Riadh HADJ MTIR 2012/2013

51

Concepts Objets
Classe : Hritage Elment Vivant age Faune aliment Humain nom mtier Animal espce Fleur espce Objet

1re solution

Riadh HADJ MTIR 2012/2013

52

Concepts Objets
Classe : Hritage

2me solution
Elment

Anim

Inanim

Humain

Animal

Fleur

Objet

Riadh HADJ MTIR 2012/2013

53

Concepts Objets
Classe : Hritage multiple

Dfinition lorsque une classe hrite des proprits de plusieurs super-classes Exemple : Base de donnes
personne

personnel

tudiant

Administratif

Enseignant

Doctorant
Riadh HADJ MTIR 2012/2013

54

Concepts Objets
Classe : Hritage multiple

Conflits entre proprits hrites


Exemple : filire dinscription et denseignement Solution : interdiction de conflits de noms dattributs, prfixage de la proprit, proprits entre classes

Hritage multiple inconnu de certains L.O.O

Riadh HADJ MTIR 2012/2013

55

Chapitre III

Le langage UML Unified Modeling Language


Langage unifi pour la modlisation objet

Riadh HADJ MTIR 2012/2013

56

Introduction UML
La Modlisation

Pourquoi modliser? Un modle est une abstraction de la ralit Modliser = identifier les caractristiques intressantes et pertinentes dun systme Avant de construire un avion, on conoit des plans, des tests, des essais de moteurs, dailes en soufflerie etc...

Riadh HADJ MTIR 2012/2013

57

Introduction UML
La Modlisation

La modlisation permet de mieux visualiser et contrler la construction du systme Cest aussi un outil pour communiquer entre les membres de lquipe La comprhension du systme est facilite par celle du modle

Riadh HADJ MTIR 2012/2013

58

Introduction UML
Caractristiques essentielles dun bon modle

1. il doit faciliter la comprhension du phnomne tudi, il rduit la complexit 2. il doit permettre de simuler le phnomne tudi, il reproduit ses comportements Le logiciel nchappe pas la rgle cest-dire obtenir des logiciels de bonne qualit

Riadh HADJ MTIR 2012/2013

59

Introduction UML
Modle dun systme Informatique

Il doit aider :
mieux comprendre, percevoir les relations et les interactions lintrieur du systme visualiser les consquences de modifications apportes au systme visualiser galement les raisons du comportement du systme par rapport une situation donne

Cest donc un guide pour construire un systme stable et fiable Le modle doit galement aider documenter le systme construit

Riadh HADJ MTIR 2012/2013

60

Le langage UML
Introduction

Fondations issues de diverses mthodes Orientes Objet


Rumbaugh (OMT) Booch (OOD) Jacobson (OOSE)

Il sagit dun langage de modlisation

Riadh HADJ MTIR 2012/2013

61

Le langage UML
Quest ce que UML ?

UML est un langage pour la modlisation Langage visuel de modlisation


Adapt toutes les phases du dveloppement Compatible avec toutes les techniques de ralisation

Mcanismes dextension et de spcialisation en vue dtendre les concepts de base Indpendant des langages de programmation

Riadh HADJ MTIR 2012/2013

62

Le langage UML
Objectifs

UML cadre l'analyse objet, en offrant :


diffrentes vues (perspectives) complmentaires d'un systme, qui guident l'utilisation des concept objets, plusieurs niveaux d'abstraction, qui permettent de mieux contrler la complexit dans l'expression des solutions objets.

UML est un support de communication


Sa notation graphique permet d'exprimer visuellement une solution objet. L'aspect formel de sa notation limite les ambiguts et les incomprhensions. Son aspect visuel facilite la comparaison et l'valuation de solutions. Son indpendance (par rapport aux langages d'implmentation, domaine d'application, processus...) en font un langage universel.
Riadh HADJ MTIR 2012/2013

63

Le langage UML
A quoi sert UML ?

UML est un langage pseudo-formel


UML est fond sur un mtamodle, qui dfinit :
o les lments de modlisation (les concepts manipuls par le langage), o la smantique de ces lments (leur dfinition et le sens de leur utilisation).

Le mtamodle d'UML permet de classer les concepts du langage (selon leur niveau d'abstraction ou domaine d'application) et expose sa structure.

UML n'est pas une mthode ou un processus


Il doit tre complt par une mthode pour obtenir un processus de gnie logiciel complet
RUP (Rational Unified Process) XP (eXtreme Programming) 2TUP (Two Track Unified Process)
Riadh HADJ MTIR 2012/2013

64

Le langage UML
Processus de dveloppement ?

Un processus dfinit QUI fait QUOI, QUAND et COMMENT pour atteindre un certain objectif Construction des modles dun ou de plusieurs systmes Organisation du projet Grer le cycle de vie du projet de A Z Grer les risques Obtenir de manire rptitive des produits de qualit constante Le Processus Unifi de Rational (RUP) est un processus gnrique qui utilise UML comme langage de modlisation.
Riadh HADJ MTIR 2012/2013

65

Le langage UML
RUP : Caractristiques ?

Propose une dmarche de dveloppement


guide par les besoins des utilisateurs du systme (les cas dutilisation) centre sur l'architecture logicielle itrative et incrmentale

Riadh HADJ MTIR 2012/2013

66

Le langage UML
RUP : Guid par les besoins des utilisateurs

Le processus est centr sur lutilisateur


Que doit pouvoir faire le systme pour chaque utilisateur ?

A partir du modle des CU, les dveloppeurs crent une srie de modles de conception et dimplmentation ralisant les CU Chacun des modles successifs est ensuite rvis pour en contrler la conformit par rapport au modle des cas dutilisation Enfin, les testeurs testent limplmentation pour sassurer que les composants du modle dimplmentation mettent correctement en uvre les cas dutilisation.
Riadh HADJ MTIR 2012/2013

67

Le langage UML
RUP : Centr sur larchitecture

Larchitecture regroupe les diffrentes vues du systme qui doit tre construit. Elle doit prvoir la ralisation de tous les cas dutilisation. Dmarche suivre:
Crer une bauche grossire de larchitecture. Travailler sur les cas dutilisation reprsentant les fonctions essentielles. Adapter larchitecture pour quelle prenne en compte ces cas dutilisation. Slectionner dautres cas dutilisation et refaire de mme.

Riadh HADJ MTIR 2012/2013

68

Le langage UML
RUP : Centr sur larchitecture

Diffrentes perspectives proposes, indpendantes et complmentaires, qui permettent de dfinir un modle d'architecture (Ph. Kruchten, IEEE, 1995).
Vue logique
Analystes/ Concepteurs Structure Fonctionnalits pour lutilisateur final

Vue dimplmentation
Programmeurs Gnie logiciel

Cas dutilisation

Vue du processus
Intgrateurs systmes Performance chelles de mesure Capacit de traitement
Riadh HADJ MTIR 2012/2013

Vue de dploiement
System Engineering Topologie du systme Livraison, installation communication
69

Le langage UML
RUP : Centr sur larchitecture

Le Processus Unifi de Rational identifie 4 vues + 1 :


La vue logique concerne les exigences fonctionnelles du systme. Elle identifie la plupart des paquetages, sous-systmes et classes. La vue dimplmentation dcrit lorganisation des modules du logiciel. La vue du processus concerne les aspects concurrents du systme lexcution: tches, threads ou processus, et leur interaction. La vue de dploiement montre comment les diffrents excutables sont structurs dans la plate-forme ou les diffrents nuds. La vue des cas dutilisation contient les scnarios principaux qui sont utiliss pour faire fonctionner larchitecture et pour la valider.
Riadh HADJ MTIR 2012/2013

70

Le langage UML
RUP : Itratif et incrmental

Dcoupe un projet en mini-projets :


des ITRATIONS qui donnent lieu un INCRMENT

Chaque itration comprend un certain nombre de cas dutilisation et doit traiter en priorit les risques majeurs. Une itration reprend les livrables dans ltat o les a laiss litration prcdente et les enrichit progressivement (incrmental).

Riadh HADJ MTIR 2012/2013

71

Le langage UML
RUP : Cycle de vie

UP rpte un certain nombre de fois une srie de cycle qui s'articule autours de 4 phases : analyse des besoins laboration construction transition
Riadh HADJ MTIR 2012/2013

72

Le langage UML
RUP : Cycle de vie (Les phases) Analyse
Temps Vision

Elaboration

Construction

Transition

Analyse des besoins :Traduit une ide en vision de produit fini et prsente une tude de rentabilit pour ce produit Que va faire le systme pour les utilisateurs ? Dterminer les besoins fonctionnels et non fonctionnels Dfinir les frontires et identifier les interfaces Dvelopper les cas dutilisation A quoi peut ressembler larchitecture dun tel systme ? Identifier les risques les plus srieux Dmontrer que le systme propos est en mesure de rsoudre les problmes ou de prendre en charge les objectifs fixs Quels sont lorganisation et les cots du dveloppement de ce produit ?
Riadh HADJ MTIR 2012/2013

73

Le langage UML
RUP : Cycle de vie (Les phases) Analyse
Temps Vision Architecture

Elaboration

Construction

Transition

Elaboration : Permet de prciser la plupart des cas dutilisation et de concevoir larchitecture du systme. Formuler les cas d'utilisation pour couvrir les besoins fonctionnels et planifier la phase de construction A lissue de cette phase, le chef de projet doit tre en mesure de prvoir les activits et destimer les ressources ncessaires lachvement du projet.

Riadh HADJ MTIR 2012/2013

74

Le langage UML
RUP : Cycle de vie (Les phases) Analyse
Temps Vision Architecture Premires fonctionnalits

Elaboration

Construction

Transition

Construction : La construction est le moment o l'on construit le produit. L'architecture de rfrence se mtamorphose en produit complet. Le produit contient tous les cas d'utilisation que les chefs de projet, en accord avec les utilisateurs ont dcid de mettre au point pour cette version.

Riadh HADJ MTIR 2012/2013

75

Le langage UML
RUP : Cycle de vie (Les phases) Analyse
Temps Vision Architecture Premires fonctionnalits Livraison Produit

Elaboration

Construction

Transition

Transition : Prparation des activits Recommandations au client sur la mise jour de lenvironnement logiciel Elaboration des manuels et de la documentation concernant la version du produit Adaptation du logiciel Correction des anomalies Livraison du produit aux utilisateurs

Riadh HADJ MTIR 2012/2013

76

Le langage UML
RUP : Cycle de vie (Les activits)

Expression des besoins


inventorier les besoins principaux et fournir une liste de leurs fonctions recenser les besoins fonctionnels (du point de vue de l'utilisateur) qui conduisent l'laboration des modles de cas d'utilisation Apprhender les besoins non fonctionnels (technique) et livrer une liste des exigences.
Le modle de cas d'utilisation prsente le systme du point de vue de l'utilisateur et reprsente sous forme de cas d'utilisation et d'acteur, les besoins du client.

Riadh HADJ MTIR 2012/2013

77

Le langage UML
RUP : Cycle de vie (Les activits)

Analyse : QUOI FAIRE? comprendre et modliser


Rflexion hors de toute considration technique Premier modle du systme Identifier les lments intervenants hors (acteur) et dans le systme : fonctionnalits, structures et relations, tats par lesquels ils passent suivant certains vnements. L'objectif de l'analyse est d'accder une comprhension des besoins et des exigences du client. Il s'agit de livrer des spcifications pour permettre de choisir la conception de la solution. Un modle d'analyse livre une spcification complte des besoins issus des cas d'utilisation et les structure sous une forme qui facilite la comprhension (scnarios), la prparation (dfinition de l'architecture), la modification et la maintenance du futur systme.

Riadh HADJ MTIR 2012/2013

78

Le langage UML
RUP : Cycle de vie (Les activits)

Conception : Comment faire le systme : choix techniques


Choix dune architecture technique (matriel, logiciel) Modle de larchitecture logicielle du systme
Dcomposition en sous systmes : application (interfaces) domaines (mtier), infrastructure (implmentation). Permet la dfinition des phases de limplmentation, de validation et de maintenance

Elle dtermine les principales interfaces et les transcrit l'aide d'une notation commune. Elle constitue un point de dpart l'implmentation :
elle dcompose le travail d'implmentation en sous-systme elle cre une abstraction transparente de l'implmentation

Riadh HADJ MTIR 2012/2013

79

Le langage UML
RUP : Cycle de vie (Les activits)

Implmentation L'implmentation est le rsultat de la conception pour implmenter le systme sous formes de composants, c'est--dire, de code source, de scripts, de binaires, d'excutables et d'autres lments du mme type. Les objectifs principaux de l'implmentation sont de planifier les intgrations des composants pour chaque itration, et de produire les classes et les sous-systmes sous formes de codes sources.
Riadh HADJ MTIR 2012/2013

80

Le langage UML
RUP : Cycle de vie (Les activits)

Tests et validation Les tests permettent de vrifier des rsultats de l'implmentation en testant la construction. Pour mener bien ces tests, il faut les planifier pour chaque itration, les implmenter en crant des cas de tests, effectuer ces tests et prendre en compte le rsultat de chacun.

Riadh HADJ MTIR 2012/2013

81

Le langage UML
Diagrammes

En UML : 9 principaux diagrammes


5 Diagrammes structurels (vue statique)
Cas dutilisation Classes Objets Composants Dploiement Squence Activits Etats-Transitions Collaboration

4 diagrammes comportementaux (vue dynamique)

Riadh HADJ MTIR 2012/2013

82

Le langage UML
Structure
Composants Structuraux Classe Interface Collaboration Cas dutilisation Classe active Composant Nud Interaction Machine tats Package note Dpendance Association Gnralisation Ralisation Vues statiques Diagrammes de cas dutilisation Diagrammes dobjets Diagrammes de classes Diagrammes de composants Diagrammes de dploiement Diagrammes de collaboration Diagrammes squence Diagrammes dtats-transitions Diagrammes dactivits 83

Comportementaux

Regroupement Annotation Relations

Diagrammes

Vues dynamiques

Riadh HADJ MTIR 2012/2013

Le langage UML
Liens entre les diagrammes

Diagramme de composants

Diagramme de cas dutilisation

Diagramme de classes

Diagramme de dploiement

Cas dutilisation

Diagramme de squences Diagramme de collaboration

Diagramme des tats-transitions

est utilis par


Riadh HADJ MTIR 2012/2013

84

Le langage UML
Relation entre diagrammes et tapes du processus

Dcouverte des besoins & Analyse


Diagramme de cas dutilisation : dcrit les fonctions du systme selon le point de vue de ses futurs utilisateurs (Jacobson) Diagramme de squence : reprsentation des interactions temporelles entre objets dans la ralisation dune interface Homme-Systme

Conception :
Diagramme de classes : structure des donnes du systme dfinies comme un ensemble de relations entre classes Diagramme dobjets : illustration des objets et de leur relations Diagramme de collaboration : reprsentation des interactions entre objets Diagramme dtats-transitions : reprsentation du comportement des objets dune classe en terme dtats et de transitions dtats Diagramme dactivits : structure dune opration en actions
Riadh HADJ MTIR 2012/2013

85

Le langage UML
Relation entre diagrammes et tapes du processus

Conception
Diagramme de squence : reprsentation des interactions temporelles entre objets dans la ralisation dune opration Diagramme de dploiement : description du dploiement des composants sur les dispositifs matriels Diagrammes de composants : architecture des composants physiques dune application

Riadh HADJ MTIR 2012/2013

86

Le langage UML
Relation entre diagrammes et tapes du processus
Diagramme de cas dutilisation
Use-Case 1
add( ) delete( )

Diagramme de classes
DocumentList FileMgr add( ) delete( ) Document name : int docid : int numField : int get( ) open( ) close( ) read( ) sortFileList( ) create( ) fillDocument( ) read() fill the code.. fetchDoc( ) sortByName( ) FileList fList 1

Diagramme dtat transition


add file add file [ numberOffile==MAX ] / flag OFF Writing Openning

Acteur A Use-Case 2

close file

Acteur B
close file Reading
rep Repository (from Persistence) name : char * = 0 File GrpFile

Closing

read( )

Expert du Domaine

readDoc( ) readFile( )

read( ) open( ) create( ) fillFile( )

Use-Case 3
UI

<<entity>> Customer name addr receive() withdraw() fetch() send()

MFC

Classe
Repository DocumentList

Diagramme de dploiement
- 95 : - NT: - - : - -, - - IBM : -, -

DocumentApp

RogueWave Persistence

Window95

Windows95 Windows95

9: sortByNam e ( )

global

FileManager
mainWnd : MainWnd
1: Doc view request ( )
L

- .EXE -

Windows NT

2: fetchDoc( ) 4: create ( )

gFile : GrpFile

Dfinition dune interface utilisateur

8: fillFile ( )

user : fileMgr : FileMgr


3: create ( ) 6: fillDocum ent ( )

Diagramme de paquetage

Document
- .EXE

Solaris

Alpha UNIX -.EXE Windows NT

GraphicFile File
IBM Mainf rame

FileList
-

7: readFile ( ) 5: readDoc ( )

document : Document repository : Repository

Diagramme de Collaboration
mainWnd user fileMgr : FileMgr document : Document gFile repository
- . 1: Doc view request ( ) 2: fetchDoc( ) 3: create ( ) 4: create ( )

Diagramme de composant

Forward Engineering(Code Generation) and Reverse Engineering

Codage, compilation, debugage, dition de lien

5: readDoc ( )

- - .

6: fillDocument ( )

7: readFile ( )

8: fillFile ( )

- - .

9: sortByName ( )

Diagramme de squence

Programme excutable
Riadh HADJ MTIR 2012/2013

87

Les diagrammes de UML

Diagrammes de cas dutilisation

Riadh HADJ MTIR 2012/2013

88

Diagramme de cas dutilisation (use cases)


Rsoudre le bon problme

Analyse des besoins


Dterminer les besoins - ce que devrait faire le systme Comprendre les besoins Dlimiter le systme

Analyse centre utilisateur


Dfinir les besoins du point de vue de lutilisateur Intgrer les vues (diffrentes) des utilisateurs

Riadh HADJ MTIR 2012/2013

89

Diagramme de cas dutilisation (use cases)


Reprsenter les besoins

La phase danalyse des besoins ncessite


de comprendre les besoins couvrir dexprimer et de formaliser les besoins

Moyens pour reprsenter les besoins en UML


Diagramme de cas dutilisation : organisation gnrale de lutilisation du systme par ses acteurs Diagramme de squence : pour chaque cas dutilisation : description temporelle de linteraction dun acteur sur le systme = scnario

Riadh HADJ MTIR 2012/2013

90

Diagramme de cas dutilisation (use cases)


Principes

Que devrait faire le systme (comportement dsir) comment raliser ce comportement


Pas de dtail de programmation Indpendant de limplmentation

Un outil de communication
utilisateur / expert du domaine concepteur dveloppeur /

Riadh HADJ MTIR 2012/2013

91

Diagramme de cas dutilisation (use cases)


Cas dutilisation

Constatations : Le systme existe pour servir ses utilisateurs Cas dutilisation (use cases) [Jacobson 92] = Ide : description du comportement du systme du point de vue de son utilisateur (facilite lexpression des besoins) Comportement = {Actions}+{Ractions} Les Cas dutilisation facilitent la structuration des besoins des utilisateurs reprsentation simple et expressive expriment les limites et les objectifs du systme

Riadh HADJ MTIR 2012/2013

92

Diagramme de cas dutilisation (use cases)


Cas dutilisation (2)

Un cas dutilisation correspond une manire spcifique dutiliser le systme Cest la reprsentation dune fonctionnalit, dclenche en rponse une stimulation du systme
Cas dutilisation

Acteur

Riadh HADJ MTIR 2012/2013

93

Diagramme de cas dutilisation (use cases)


Dfinitions

Acteur : entit externe qui agit sur le systme


prend les dcisions contrairement un lment logiciel possde un rle par rapport au systme une mme personne peut jouer plusieurs rles soit utilisateur soit un autre systme

Riadh HADJ MTIR 2012/2013

94

Diagramme de cas dutilisation (use cases)


Dfinitions (2)

Pour chaque acteur :


choisir un identificateur reprsentatif du rle ventuellement accompagn dune brve description textuelle
Un guichetier est un employ de la banque jouant un rle dinterface entre le systme informatique et les clients quil reoit au comptoir

Guichetier

Riadh HADJ MTIR 2012/2013

95

Diagramme de cas dutilisation (use cases)


Dfinitions

Acteurs vs Utilisateurs
Ne pas confondre acteur et personne utilisant le systme une mme personne peut jouer plusieurs rles plusieurs personnes peuvent jouer un mme rle un acteur nest pas forcment une personne physique Types dacteurs Utilisateur principaux Utilisateurs secondaires Priphriques externes Systmes externes
Riadh HADJ MTIR 2012/2013

96

Diagramme de cas dutilisation (use cases)


Dfinitions

Exemple 1: une bibliothque

Chercheur Systme bibliothque Bibliotcaire

Dpartement

Riadh HADJ MTIR 2012/2013

97

Diagramme de cas dutilisation (use cases)


Dfinitions

Exemple 2: vente par correspondance


Institution de carte de crdits Service postal

Client

Online Shopping System

Gestionnaire

"Ali"
Riadh HADJ MTIR 2012/2013

Vendeur

Internet
98

Diagramme de cas dutilisation (use cases)


Dfinitions

Cas dutilisation : ensemble des actions ralises par le systme en rponse une action dun acteur suite dinteractions entre un acteur et le systme correspond une fonction visible par lutilisateur permet datteindre un objectif aux yeux de lutilisateur doit tre utile NB : les cas dutilisation ne doivent pas se chevaucher
Riadh HADJ MTIR 2012/2013

99

Diagramme de cas dutilisation (use cases)


Lutilisateur et le systme Consulter catalogue Payer cotisation membre Enregistrer nouvel utilisateur Rserver un livre Emprunter un livre

Bibliothque

Use Case 1 Use Case 2 Utilisateur Services

Use Case 3 Systme

Riadh HADJ MTIR 2012/2013

100

Diagramme de cas dutilisation (use cases)


Exemple de la bibliothque (UC + acteurs)

Utilisateur extrieur Chercheur Payer la cotisation Consulter catalogue Bibliotcaire Enregistrer nouvel utilisateur Rserver un livre

Emprunter un livre

Riadh HADJ MTIR 2012/2013

101

Diagramme de cas dutilisation (use cases)


Exemple DAB

Retirer de largent Dposer de largent Effectuer des virements entre comptes Consulter le solde dun compte Employ de caisse Ravitailler le distributeur Rparer le distributeur Agent de maintenance

Client de la banque

Riadh HADJ MTIR 2012/2013

102

Diagramme de cas dutilisation (use cases)


Relations entre cas dutilisation

Pas de communication entre les CU dun systme, mais simplement des relations dutilisation (uses ou include) ou dextension (extends) Les communications entre les acteurs ne sont pas reprsentes
Use Case 1 Use Case 2 Utilisateur Relations entre CU Interactions acteur-systme
Riadh HADJ MTIR 2012/2013

Use Case 3 Use Case 4 Systme


103

Diagramme de cas dutilisation (use cases)


Relations entre cas dutilisation (2)

Il existe principalement deux types de relations entre cas dutilisation :


les dpendances strotypes: qui sont explicites par un strotype
lutilisation ou linclusion(uses ou include) lextension (extends)

la gnralisation/spcialisation (hritage)

Riadh HADJ MTIR 2012/2013

104

Diagramme de cas dutilisation (use cases)


Relations entre cas dutilisation: Linclusion

Dfinition: Un cas A inclut un cas B si le comportement dcrit par le cas A inclut le comportement du cas B le cas A dpend de B Lorsque A est sollicit, B lest obligatoirement, comme une partie de A Cette dpendance est symbolise par le strotype << include >>
A <<Include>> B

Riadh HADJ MTIR 2012/2013

105

Diagramme de cas dutilisation (use cases)


Exemple include Exemple 1 Utiliser le comportement dun autre use-case Dposer de largent <<Include>>

Retirer de largent

<<Include>> Sidentifier

Exemple 2 Dcomposition dun comportement complexe <<Include>> Acheter un article <<Include>>

Vrifier identit utilisateur

Valider le payement

NB: les cas dutilisation ne senchanent pas, puisquil ny a aucune reprsentation temporelle dans un diagramme de cas dutilisation
Riadh HADJ MTIR 2012/2013

106

Diagramme de cas dutilisation (use cases)


Relations entre cas dutilisation: Lextension

Dfinition: On dit quun cas dutilisation A tend un cas dutilisation B lorsque le cas dutilisation A peut tre appel au cours de lexcution du cas dutilisation B Excuter B peut ventuellement entraner lexcution de A Contrairement linclusion, lextension est optionnelle Cette dpendance est symbolise par le strotype << extends >>
A <<extends>> B

Riadh HADJ MTIR 2012/2013

107

Diagramme de cas dutilisation (use cases)


Exemples extends
Rechercher le document <<Extends>> Bibliothcaire Mettre jour un document <<Extends>>

Ajouter le document

<<Extends>>

Exemple 1

Retirer le document

<<Extends>>

Dposer en numraire

Dposer de largent Client de banque <<Extends>> Dposer des chques

Exemple 2
Riadh HADJ MTIR 2012/2013

108

Diagramme de cas dutilisation (use cases)


Relations entre cas dutilisation: Lextension

Lextension peut intervenir un point prcis du cas tendu appel point dextension
il porte un nom, qui figure dans un compartiment du cas tendu sous la rubrique point dextension ventuellement associ une contrainte indiquant le moment o lextension intervient

Une extension est souvent soumise une condition Graphiquement, la condition est exprime sous la forme dune note

Riadh HADJ MTIR 2012/2013

109

Diagramme de cas dutilisation (use cases)


Exemple extends

La vrification du solde du compte nintervient que si la demande de retrait dpasse 20 euros

Riadh HADJ MTIR 2012/2013

110

Diagramme de cas dutilisation (use cases)


Relations entre cas dutilisation: La gnralisation

Dfinition: Un cas A est une gnralisation dun cas B si B est un cas particulier de A La relation de gnralisation/spcialisation est prsente dans la plupart des diagrammes UML et se traduit par le concept dhritage dans les langages orients objet
A
Spcialisation Gnralisation

Riadh HADJ MTIR 2012/2013

111

Diagramme de cas dutilisation (use cases)


Relations entre cas dutilisation: La gnralisation

Exemple

la consultation dun compte via Internet est un cas particulier de la consultation

Riadh HADJ MTIR 2012/2013

112

Diagramme de cas dutilisation (use cases)


Relations entre acteurs

La seule relation possible entre deux acteurs est la gnralisation Un acteur A est une gnralisation dun acteur B si lacteur A peut tre substitu par lacteur B Dans ce cas, tous les cas dutilisation accessibles A le sont aussi B, mais linverse nest pas vrai

Acteur A Acteur B
Riadh HADJ MTIR 2012/2013

113

Diagramme de cas dutilisation (use cases)


Relations entre acteurs (exemple)

Le directeur des ventes est un prpos aux commandes avec un pouvoir supplmentaire : en plus de pouvoir passer et suivre une commande, il peut grer le stock Par contre, le prpos aux commandes ne peut pas grer le stock

Riadh HADJ MTIR 2012/2013

114

Les diagrammes de UML

Diagrammes de classes et dobjets

Riadh HADJ MTIR 2012/2013

115

Diagrammes de classes et dobjets


Dfinitions

Un diagramme de classes reprsente la structure du systme sous la forme de classes et de relations entre ces classes Un diagramme dobjets illustre les objets et les liens qui les unissent

Riadh HADJ MTIR 2012/2013

116

Diagramme de classes
Une classe

Une classe est une description abstraite dun ensemble dobjets ayant
des proprits similaires un comportement commun des relations communes avec dautres objets des smantiques communes

Les compartiments dune classe peuvent tre omis si leur contenu nest pas pertinent dans le contexte dun diagramme
Nom de la classe Liste des attributs Liste des mthodes
Riadh HADJ MTIR 2012/2013

117

Diagramme de classes
Classe : Exemple

Personne

Personne Nom Prnom Date de naissance

Poste de travail

Age()

Dpartement

Riadh HADJ MTIR 2012/2013

118

Diagramme de classes
Attributs dune classe

Un attribut de classe dfinit une proprit commune aux objets dune classe. Nom de classe
Nom dattribut : type = valeur initiale

Mthodes

Les noms dattributs dune classe sont uniques. Chaque objet, instance dune classe, a sa propre identit, indpendante des valeurs de ses attributs. Lidentification dun objet est donc facultative.

Riadh HADJ MTIR 2012/2013

119

Diagramme de classes
Attributs dune classe : Exemple

Personne Nom : chane Prnom : chane Date de naissance : date Age() Film Titre : chane Ralisateur : chane Date de production : date Date de sortie : date

Riadh HADJ MTIR 2012/2013

120

Diagramme de classes
Opration ou Mthode dune classe

Une opration dfinit une fonction applique des objets dune classe :
Nom de classe

Nom dopration ( liste darguments ) : type de retour

Riadh HADJ MTIR 2012/2013

121

Diagramme de classes
Opration ou Mthode dune classe : Exemple

Personne Nom : chane Prnom : chane Date de naissance : date Age() Change age()

Objet gomtrique Couleur : chane Position : entier Dplacer (deltaX : vecteur) Slectionner (p : Point) : Boolen

Riadh HADJ MTIR 2012/2013

122

Diagramme de classes
Proprits des attributs et des oprations

Accessibilit aux attributs et oprations dune classe


Trois niveaux de protection
Public (+) : accs partir de toute entit interne ou externe la classe Protg (#) : accs partir de la classe ou des sous-classes Priv (-) : accs partir des oprations de la classe
Personne -Nom : chane -Prnom : chane -Date de naissance : date +Age() +Change age()
Riadh HADJ MTIR 2012/2013

123

Diagramme de classes
Attributs drivs

Au niveau de lanalyse des besoins, des proprits redondantes peuvent tre proposes Un attribut driv permet dindiquer clairement quun attribut dcoule dautres proprits alloues Les attributs drivs (not : /nom attribut) ont des valeurs calcules partir de celles dautres proprits :

Rectangle Longueur Largeur /surface En conception

Rectangle Longueur Largeur Surface ()

Riadh HADJ MTIR 2012/2013

124

Diagramme de classes
Association

Une association reprsente une classe dassociations structurelles entre classes dobjets
Classe A Classe B

Socit

Personne

Voiture

Personne

Riadh HADJ MTIR 2012/2013

125

Diagramme de classes
Classe association

Une association peut tre rifie par une classe appele classe associative ou classe association Par exemple, lorsque lassociation possde des attributs ou des oprations :
Enseignant Classe

Cours Dure Dbut Contenu EcrireContenu()


Riadh HADJ MTIR 2012/2013

Matire

126

Diagramme de classes
Association : Classe attribue

Une association qui contient des attributs et qui ne participe pas des relations avec dautres classes est appele classe attribue.
Classe A Classe B

Classe C Attributs

Riadh HADJ MTIR 2012/2013

127

Diagramme de classes
Association n-aire

Une association ternaire entre salle, classe et enseignant est rifie comme une classe cours ayant deux attributs : dbut et fin
Salle

Enseignant

Classe

Cours Dbut Fin

Riadh HADJ MTIR 2012/2013

128

Diagramme de classes
Nommage des associations

Nom de lassociation en italique au milieu de la ligne On note en gnral les associations par une forme verbale, soit active, soit passive
Classe A Nom Classe B

Socit

< travaille pour

Personne

Voiture

Est la proprit de >

Personne

Riadh HADJ MTIR 2012/2013

129

Diagramme de classes
Nommage des rles

Toute association binaire possde 2 rles Un rle dfinit la manire dont une classe intervient dans une relation Le nommage des associations et le nommage des rles ne sont pas exclusifs lun de lautre
Socit < travaille pour employeur employ Personne

Intrt des rles dans le cas o plusieurs associations lient deux classes : distinction des concepts attachs aux associations
Riadh HADJ MTIR 2012/2013

130

Diagramme de classes
Nommage des rles (2)

Avion

Pilote Passagers

Personne

La prsence dun grand nombre dassociations entre deux classes est suspecte
Voiture < Conduire < Dmarrer < Possder < Laver < Arrter Personne

Riadh HADJ MTIR 2012/2013

131

Diagramme de classes
Association rflexive

Nommage des rles indispensable la clart du diagramme

Personne Enfants * 2

Parents

Riadh HADJ MTIR 2012/2013

132

Diagramme de classes
Multiplicit des associations

La multiplicit est une information porte par le rle, qui quantifie le nombre de fois o un objet participe une instance de relation

Riadh HADJ MTIR 2012/2013

133

Diagramme de classes
Multiplicit des associations (2)

1 : Chaque personne travaille pour une et une seule socit (toutes les personnes ont un emploi) 0 .. * : Une socit emploie de zro plusieurs personnes

Socit

< travaille pour

0..* employ

Personne

employeur

Riadh HADJ MTIR 2012/2013

134

Diagramme de classes
Contraintes sur les associations

Contrainte dassociation : porte sur une relation ou sur un groupe de relations (note {contrainte }) Par exemple, place sur un rle, la contrainte {ordonne} dfinit une relation dordre entre les objets de la collection (les comptes) qui sont lis une personne

Personne

Propritaire 1

0..n {ordonne}

Compte

Riadh HADJ MTIR 2012/2013

135

Diagramme de classes
Contraintes sur les associations (2)

La contrainte {sous-ensemble} indique quune collection est incluse dans une autre collection
Classe Parents dlve {Sous ensemble} Dlgus * * Personne

La contrainte {Ou-exclusif} prcise que, pour un objet donn, une seule association parmi un groupe dassociations est valide
Universit Enseignants {OU-exclusif} tudiants
Riadh HADJ MTIR 2012/2013

Personne

*
136

Diagramme de classes
Association particulire : Agrgation

Une agrgation est une association non symtrique : lune des extrmits joue un rle prdominant par rapport lautre Elle se justifie dans les cas suivants
Une classe B fait partie intgrante dune classe A Les valeurs dattributs de la classe B se propagent dans les valeurs dattributs de la classe A Une action sur la classa A implique une action sur la classe B Les objets de la classe B sont subordonns aux objets de la classe A
Agrgat A Agrg B

Riadh HADJ MTIR 2012/2013

137

Diagramme de classes
Association particulire : Agrgation (2)

Lagrgation peut tre multiple comme une association classique

Personne

propritaire * 1..*

Immeuble B

En tant que propritaire , une personne est un agrgat dimmeubles Les immeubles dont elle est propritaire font partie de la description dune personne
Riadh HADJ MTIR 2012/2013

138

Diagramme de classes
Agrgation particulire : Composition

La composition est une forme particulire dagrgation Le composant est physiquement contenu dans lagrgat La composition implique une contrainte sur la valeur de la multiplicit du cot de lagrgat : (0 ou 1) La valeur 0 du cot de lagrgat implique un attribut non renseign
compos 0..1 * Composant

Riadh HADJ MTIR 2012/2013

139

Diagramme de classes
Agrgation particulire : Composition (2)

La composition peut tre modlise au moyen dattributs La notation par composition doit tre retenue lorsque dun attribut participe des relations
Voiture - Moteur Voiture Moteur

Cylindre

Carburateur

Riadh HADJ MTIR 2012/2013

140

Diagramme de classes
Agrgation particulire : Composition (3) Commune

1 Mairie

1 Conseil municipal

1..* Services

Dans lexemple, la composition nous permet de dcrire la structure de gestion des communes Une composition est une association contraignante : la suppression dun objet agrgat entrane la suppression des objets agrgs La suppression dune commune supprime sa mairie, son conseil municipal et ses services
Riadh HADJ MTIR 2012/2013

141

Diagramme de classes
Association, Agrgation et Composition Association

Agrgation

Composition

Riadh HADJ MTIR 2012/2013

142

Diagramme de classes
Gnralisation Spcialisation

La relation de gnralisation signifie est de ou est une sorte de : notion dhritage


Animal Classe mre Gnralisation Spcialisation

Chat

Souris

lphant

Sous-classes = instances dune seule classe Animal (hritage simple)


Riadh HADJ MTIR 2012/2013

143

Diagramme de classes
Hritage multiple Vhicule Tapis

Terrestre

Marin

Arien

Tapis volant

Riadh HADJ MTIR 2012/2013

144

Diagramme de classes
Contraintes de gnralisation

Une classe peut tre spcialise selon plusieurs critres Certaines contraintes peuvent tre poses sur les relations de gnralisation Par dfaut, la gnralisation symbolise une dcomposition exclusive
Vhicule

Motorisation A voile A moteur terrestre

Milieu Marin

Riadh HADJ MTIR 2012/2013

145

Diagramme de classes
Contraintes de gnralisation : {disjoint} (={exclusif})

La contrainte {Disjoint} (ou {exclusif}) indique la participation exclusive dun objet lune des collections spcialises
Champignon Salari

{exclusif} Agaricus Boletus

{exclusif} Titulaire Stagiaire

Pied bleu

Blet de loup

Riadh HADJ MTIR 2012/2013

146

Diagramme de classes
Contraintes de gnralisation : {chevauchement} (={inclusif})

Vhicule

La contrainte {chevauchement} Motorisation (ou {inclusif}) {inclusif} indique la A voile A moteur terrestre participation possible dun objet plusieurs collections Mobylette spcialises

Milieu Marin

Riadh HADJ MTIR 2012/2013

147

Diagramme de classes
Contraintes de gnralisation : {Complte} {Incomplte}

La contrainte {Complte} indique la gnralisation est termine : tout ajout de sous-classe est alors impossible linverse, la contrainte {Incomplte} indique une gnralisation extensible
Cours

{Incomplte} Math Allemand Anglais

Riadh HADJ MTIR 2012/2013

148

Diagramme de classes
Rgles dlaboration

Les rgles suivantes permettent de sassurer quil est pertinent de faire apparatre une classe
Rgle 1 : les trois dfinitions complmentaires dune classe (intensive, extensive, ensembliste) sont vrifies.
Peut -on exprimer la signification de lentit informationnelle et vrifier quelle est comprise par les gestionnaires ? Peut-on trouver une liste dattributs qui dcrivent le concept global ? Peut-on instancier le concept global dinformation, cest--dire trouver un ensemble dobjets dont la structure correspond celle de la classe ?

Rgle 2 : il existe au moins un identifiant .


Peut-on trouver un attribut qui puisse jouer le rle didentifiant ou peut-on en dfinir un qui ait un sens pour les gestionnaires du domaine ?
Riadh HADJ MTIR 2012/2013

149

Diagramme dObjets
Prsentation

Reprsente les liens structurels entre instances de classes Facilite la comprhension de structures complexes Trois reprsentations possibles des instances
Nom de lobjet

Nom de lobjet:NomClasse

:NomClasse

Riadh HADJ MTIR 2012/2013

150

Diagramme dObjets
Prsentation (2)

Les valeurs des attributs sont optionnelles ainsi que les liens entre objets
:Voiture Couleur = rouge Voiture 1 1 Moteur :Voiture 1 4 Roue

:Roue Roue Roue Roue

:Moteur

Riadh HADJ MTIR 2012/2013

151

Diagramme dObjets
Prsentation (3)

Les liens instances des associations rflexives peuvent relier un objet lui mme
Salah:Personne Personne Collaborateur * 1 Patron Omar:Personne Patron Ali:Personne

Patron

Riadh HADJ MTIR 2012/2013

152

Diagramme dObjets
Liens entre Objets

Les liens darit suprieure 2 ou la multiplicit peuvent tre reprsents


:Professeur :tudiant Roue Roue Roue

:Salle Professeur

Salle

tudiant

Riadh HADJ MTIR 2012/2013

153

Diagramme dObjets
Liens entre Objets (2)

Les objets composs de sous-objets peuvent tre visualiss Objet composite:NomClasseComposite


:Partie :Partie :Partie

Les objets composites sont instances de classes composites


fentre 2 Ascenseur

1 Zone de travail :Ascenseur

:Fentre :Zone de travail :Ascenceur

Riadh HADJ MTIR 2012/2013

154

Les diagrammes de UML

Diagrammes de squence

Riadh HADJ MTIR 2012/2013

155

Diagramme de squence : les scnarios


Scnario

le systme = ensemble de cas dutilisation le systme possde les cas dutilisation mais pas les acteurs Un cas dutilisation = ensemble de chemins dexcution possibles Un scnario = un chemin particulier dexcution = une squence dvnements Un scnario = Instance de cas dutilisation Une instance dacteur crer un scnario
Riadh HADJ MTIR 2012/2013

156

Diagramme de squence : les scnarios


Scnario (2)

Dcrit le flux des vnements En langage naturel


en termes des objets du domaine ( diagrammes des objets) et des actions

Un scnario principal (vnement des scnarios alternatifs)

Riadh HADJ MTIR 2012/2013

157

Diagramme de squence : les scnarios


Scnario (3)

Cas dutilisation

Acteur Diagramme de cas dutilisations Diagramme de squence = scnario Classe Classe_Acteur

Riadh HADJ MTIR 2012/2013

158

Diagramme de squence : les scnarios


Scnario (4)

spcification exhaustive de tous les scnarios difficile, voire impossible slection des scnarii les plus intressants
scnario optimal : dcrit linteraction la plus frquente scnarios drivs : dcrit certaines alternatives importantes non dcrites dans le scnario optimal

Riadh HADJ MTIR 2012/2013

159

Diagramme de squence : les scnarios


Scnario (5)

un scnario peut tre reprsent par diagramme de squence qui dcrit un change particulier entre un ou plusieurs acteurs et le systme
nature des infos changes entre des instances dacteurs ou dobjets du systme aspect temporel : flot ordonn dvnements

un scnario peut galement tre reprsent par un diagramme de collaboration

Riadh HADJ MTIR 2012/2013

160

Diagramme de squence : les scnarios


Exemple : Scnario du DAB

DAB

Client

Code Code? Code Menu action Action retrait Argent + Somme Compte solvable

Riadh HADJ MTIR 2012/2013

161

Diagramme de squence : les scnarios


Exemple : Le systme dune mdiathque

nonc (ralit perue) Lobjectif du systme est dassister les usagers utiliser la mdiathque et la mdiathque sert grer les prts et les retours des mdias (livres, CD, logiciels, vidos).

Riadh HADJ MTIR 2012/2013

162

Diagramme de squence : les scnarios


Exemple : Le systme dune mdiathque (2)

Les fonctionnalits du systmes comprennent


maintenir un catalogue de tous les articles de mdias pour offrir une assistance pour leur recherche maintenir un journal des prts de mdias par emprunteur et par article de mdia maintenir un journal des retours de mdias par emprunteur et par article de mdia produire les rappels et les amendes pour les prts en retard

Riadh HADJ MTIR 2012/2013

163

Diagramme de squence : les scnarios


Exemple : Le systme dune mdiathque (3)

Les cas dutilisation du systme

Usager extrieur

Chercher mdia Produire les rappels Bibliotcaire Maintenir catalogue des mdias

Grer emprunteurs
164

Riadh HADJ MTIR 2012/2013

Diagramme de squence : les scnarios


Exemple : Le systme dune mdiathque (4)

Cas dutilisation chercher un mdia


Scnario principal: (Mdia trouv) Les bibliothcaires et les emprunteurs vont utiliser une fentre dordinateur pour rechercher un mdia. La recherche dun mdia peut se faire par type, titre, auteur, mots cl ou par type de mdia recherch (i.e. format de logiciel). Le rsultat de la recherche est affiche sous forme rsume. Sur demande, une description dtaille peut galement tre affiche ou imprime. Scnario alternatif: (Mdia introuvable) Le systme na pas trouv de mdia rpondant aux critres de recherche. Le chercheur est inform de ce rsultat. Le chercheur peut alors soit modifier soit abandonner sa recherche.
Riadh HADJ MTIR 2012/2013

165

Diagramme de squence
Prsentation

Diagramme de squence
Modlisation des interactions entre objets suite un vnement externe Aspect temporel : messages asynchrones ou synchrones
:NomClasse :Client :NomClasse

Riadh HADJ MTIR 2012/2013

166

Diagramme de squence
Catgories de messages

2 catgories de messages
synchrone : lmetteur est bloqu jusquau traitement effectif du message asynchrone : lmetteur nest pas bloqu, il peut poursuivre son excution
:NomClasse Message synchrone :NomClasse

Message asynchrone

Riadh HADJ MTIR 2012/2013

167

Diagramme de squence
Envoi de messages dun objet sur lui mme

Un objet peut senvoyer des messages luimme


:NomClasse Message rflexif

:ObjetComposite

:composant A

:composant B

Riadh HADJ MTIR 2012/2013

168

Diagramme de squence
Cration et destruction dun objet par message

:A cration :B

Message pointant sur lobjet cre

dtruire

X = Destruction de lobjet

Riadh HADJ MTIR 2012/2013

169

Diagramme de squence
Priode dactivit des objets

activation

:A

:A Msg synchrone

:B

Retour implicite Priode dactivit :A Msg asynchrone :B

Retour explicite
Riadh HADJ MTIR 2012/2013

170

Diagramme de squence
Envoi conditionnel de messages

:A

:B

:C

[condition] Message

[Non condition] Message

Riadh HADJ MTIR 2012/2013

171

Diagramme de squence
Contraintes temporelles

appelant:Client dcroche

:ligne tlphonique

appel:Client

x {y-x < 10s} y

tonalit

numrotation Indication sonnerie dcroche w sonnerie Z {w-z < 20s}

Riadh HADJ MTIR 2012/2013

172

Diagramme de squence
Traitement conditionnel dun message reu

:Abonn Retourner [bon tat]

:Livre

[mauvais tat]

Riadh HADJ MTIR 2012/2013

173

Les diagrammes de UML

Diagrammes de collaboration

Riadh HADJ MTIR 2012/2013

174

Diagramme de collaboration
Introduction

Diagramme de collaboration (dobjets) : extension des diagrammes dobjets : vue dynamique


dcrit le comportement collectif dun ensemble dobjets en vue de raliser une opration en dcrivant leurs interactions modlises par des envois (ventuellement numrots) de messages

Collaboration =
1) Ensemble dobjets qui interagissent ensemble pour raliser une tche commune 2) Ensemble de liens (pertinents) existant entre ces objets
Riadh HADJ MTIR 2012/2013

175

Diagramme de collaboration
Introduction (2)

lments composant une collaboration


Objets : instance dune classe
Rectangle avec tiquette de la forme nomObjet:nomClasse ou :nomClasse On reprsente uniquement les objets pertinents (interagissant dans le cas dutilisation ou le scnario quon veut dcrire)

Liens : instances de certaines associations dans le diagramme de classes. On ne reprsente que les instances dassociations pertinentes pour la collaboration dcrite Acteurs : on peut reprsenter les acteurs participant au cas dutilisation ou scnario dcrit. Lacteur initiant un cas dutilisation est appel initiateur
Riadh HADJ MTIR 2012/2013

176

Diagramme de collaboration
Reprsentation des interactions

Message = nom opration nom_opration Objet1:C1 Objet2:C2

Envois ventuellement numrots : ordre des envois de message au cours dune opration
Num : nom_opration Objet1:C1 Objet2:C2

Riadh HADJ MTIR 2012/2013

177

Diagramme de collaboration
Reprsentation des interactions (2)

Numro du message: Lorsquun objet O reoit un message (synchrone), le numro de ce message est utilis comme prfixe pour tous les messages envoys par O jusqu ce que O rponde ce message. En gnral, les messages de retour napparaissent pas explicitement dans les diagrammes de collaboration. Types de messages: simple, synchrone, asynchrone Aussi: condition, itration, etc.

Riadh HADJ MTIR 2012/2013

178

Diagramme de collaboration
Reprsentation des interactions (3): Exemple

Riadh HADJ MTIR 2012/2013

179

Diagramme de collaboration
Reprsentation des interactions (4) : Remarques

linstar du diagramme de squence, le diagramme de collaboration permet de dcouvrir de nouvelles proprits de classes peut servir complter et dvelopper le diagramme de classes
ajout dopration, dassociations, etc.

les diagrammes de classes et dinteraction (collaboration ou squence) doivent demeurer corrects et cohrents

Riadh HADJ MTIR 2012/2013

180

Diagramme de collaboration
Cration et destruction dynamiques dobjets

Les objets (et les liens) crs ou dtruits au cours dune interaction peuvent respectivement porter les contraintes :
{Nouveau} / {New} {Dtruit} / {Destroyed}
Objet1:C1 dtruit Objet1:C1 cration

Objet2:C2 {Nouveau}

Objet3:C3 {Dtruit}
Riadh HADJ MTIR 2012/2013

181

Diagramme de collaboration
Cration et destruction dynamiques dobjets (2)

Si au cours des interactions reprsentes par le diagramme, un objet est cr puis dtruit, on utilise la contrainte
{transitoire} / {transient}
Objet1:C1 MAJ

Objet4:C4 {transitoire}

Riadh HADJ MTIR 2012/2013

182

Diagramme de collaboration
Cration et destruction dynamiques dobjets (3)

Riadh HADJ MTIR 2012/2013

183

Diagramme de collaboration
Messages : envoi et retour de valeurs

Une liste de valeurs peut tre retourne suite lenvoi dun message
[condition]:nom_opration :A Valeurs retournes :B

AfficherAge :Universite Age :Etudiant

Riadh HADJ MTIR 2012/2013

184

Diagramme de collaboration
Messages : arguments

Liste des paramtres du message spars par des virgules Les arguments et le nom de laction dterminent sans ambigut laction raliser Les arguments peuvent contenir des valeurs retournes par des messages envoys prcdemment Exemples
Afficher ( x, y ) affiche les valeurs x et y Soustraire( Aujourdhui, DateDeNaissance ) calculer le nombre de jours entre deux dates
Riadh HADJ MTIR 2012/2013

185

Diagramme de collaboration
Messages : rsultat

Le rsultat est constitu dune liste de valeurs retournes par le message Ces valeurs peuvent tre utilises comme paramtres des autres messages

Riadh HADJ MTIR 2012/2013

186

Diagramme de collaboration
Itrations

Possibilit dexprimer lenvoi rptitif de messages (ventuellement en parallle) sur une collection dobjets
Itration squentielle : envoi squentiel de n instances du mme message. Syntaxe : *[clause ditration] Itration parallle : envoi parallle de n instances du mme message. Syntaxe : *||[clause ditration]
*[i:=1..n]: Message :A :B Roue Roue Roue
187

Riadh HADJ MTIR 2012/2013

Diagramme de collaboration
Itrations : exemple

Instit:instituteur instituteur Instit:instituteur * || [tous]:Debout :lve *[tous]:Debout

* lve

:lve

Riadh HADJ MTIR 2012/2013

188

Diagramme de collaboration
Conditions sur les envois de messages

Lenvoi dun message peut tre assorti dune condition


[condition]:nom_opration Objet1:C1 Objet2:C2

[poids > 300]:sonner :Cabine :Alarme

* || [age > 18]:Voter :Mairie :Personne

Riadh HADJ MTIR 2012/2013

189

Diagramme de collaboration
Exemple : Distributeur de boisson

Diagramme de collaboration demande dune boisson disponible (caf) avec introduction de la somme exacte
:Utilisateur 1: introduire 2.1: Reponse:= VrifierPrix(prix) 2: Boisson := choisir

:Pice 1.1: comptabiliser (valeur) 1.1.1: afficher Somme_verse

Caf:Boisson 2.3: finoperation 2.2:Reponse:= Disponibilit

:Gestionnaire de pices 2.2.1:gobelet

:Gobelet

Riadh HADJ MTIR 2012/2013

190

Les diagrammes de UML

Diagrammes dtats-transitions

Riadh HADJ MTIR 2012/2013

191

Diagramme dtats-transitions
Introduction

Dcrit le comportement des objets dune classe au moyen dun automate dtats associ la classe Le comportement est modlis par un graphe :
Noeuds = tats possibles des objets Arcs = transitions dtat tat

Une transition :
= excution dune action = raction de lobjet sous leffet dune occurrence dvnement

Riadh HADJ MTIR 2012/2013

192

Diagramme dtats-transitions
Notion dtat

un tat = tape dans le cycle de vie dun objet durant lequel


il satisfait certaines conditions il ralise certaines actions ou attend certains vnements

chaque objet possde un instant donn un tat particulier chaque tat est identifi par un nom un tat est stable et durable

Riadh HADJ MTIR 2012/2013

193

Diagramme dtats-transitions
Notion dtat (2)

Socit 0..1 1..*

Personne

En activit

A la retraite

Au chmage

Riadh HADJ MTIR 2012/2013

194

Diagramme dtats-transitions
Notion dtat (3)

un tat = image de la conjonction instantane des valeurs des attributs dun objet + prsence ou non de ses liens dautres objets Exemple : prsence dun lien vers socit ou ge dune personne
Ali Omar Age = 40 Tarek Age = 75 Au chmage

:Socit

En activit

A la retraite

Riadh HADJ MTIR 2012/2013

195

Diagramme dtats-transitions
Notion dtat (4)

Chaque diagramme dtats-transitions comprend un tat initial. Pour un niveau hirarchique donn, il y a un et un seul tat initial, mais plusieurs tats finaux correspondant chacun une fin de vie de lobjet diffrente. Il est possible de navoir aucun tat final : ex : un systme que ne sarrte jamais.
tat intermdiaire tat initial tat final

Riadh HADJ MTIR 2012/2013

196

Diagramme dtats-transitions
Notion de transition

Lorsque les vnements se produisent, les objets changent dtat en respectant les rgles dcrites par lautomate associ leur classe Les diagrammes dtats-transitions sont des graphes orients Les tats sont relis par des connexions unidirectionnelles appeles transitions
tat A tat B

Ex : classe Place de parking


Disponible
Riadh HADJ MTIR 2012/2013

Rserve
197

Diagramme dtats-transitions
Notion dvnement

un vnement correspond loccurrence dune situation donne dans le domaine tudi un vnement est une information instantane qui doit tre traite dans linstant o il se produit lvnement est dclencheur de la transition dtat tat. Un objet, plac dans un tat donn, attend loccurrence dun vnement pour passer dans un autre tat
vt tat A tat B

Riadh HADJ MTIR 2012/2013

198

Diagramme dtats-transitions
Notion dvnement (2)

Syntaxe dun vnement


Nom de lvnement (Nom de paramtre : Type, ) La description complte dun vnement est donne par :
nom de lvnement liste des paramtres objet expditeur objet destinataire sa description textuelle

Riadh HADJ MTIR 2012/2013

199

Diagramme dtats-transitions
Notion dvnement (3)

En activit

Plus de 60 ans

Embauche

Perte demploi

A la retraite

Au chmage Plus de 60 ans

Riadh HADJ MTIR 2012/2013

200

Diagramme dtats-transitions
Communication entre objets par vnements

La communication est de type asynchrone, atomique et unidirectionnelle. Un objet peut envoyer un vnement un autre objet qui doit toujours tre mme de linterprter
Un vt Un objet Un autre objet

Les besoins de communication par vnements synchrones ou les changes bidirectionnels peuvent se reprsenter au moyen de deux changes asynchrones de directions opposes
Une question Un objet La rponse
Riadh HADJ MTIR 2012/2013

Un autre objet

201

Diagramme dtats-transitions
Communication entre objets par vnements (2)

Lobjet metteur de la requte se met en attente de la rponse de lobjet rcepteur de la requte


A Question pose lobjet X Attente rponse Rponse reue de la part de lobjet X B

Riadh HADJ MTIR 2012/2013

202

Diagramme dtats-transitions
Communication entre objets par vnements (3)

Notion de garde
Une garde est une condition boolenne qui permet ou non le dclenchement dune transition lors de loccurrence dun vnement

Evt [condition]

Riadh HADJ MTIR 2012/2013

203

Diagramme dtats-transitions
Communication entre objets par vnements (4)

Les gardes permettent de conserver la proprit de dterminisme dun automate dtats finis. Lorsquune occurrence dvnement survient, les gardes, qui doivent tre mutuellement exclusives, sont values. Le rsultat de cette valuation permet de valider puis de dclencher une transition possible
Retour [bon tat] Emprunt Retour [mauvais tat]

Disponible
Riadh HADJ MTIR 2012/2013

En rparation
204

Diagramme dtats-transitions
Notion dopration et daction

Actions et activits = le lien entre les oprations dfinies dans la spcification dune classe et les vnements apparaissant dans le diagramme dtats-transitions Chaque transition peut avoir une action excuter lorsquelle est dclenche Laction est considre comme instantane et atomique Une action correspond lexcution dune des oprations dclares dans la classe de lobjet destinataire de lvnement.
A vnement / Action B

Laction a accs aux paramtres de lvnement ainsi quaux attributs de lobjet sur lequel elle sapplique
Riadh HADJ MTIR 2012/2013

205

Diagramme dtats-transitions
Actions dans un tat

Les tats peuvent galement contenir des actions :


elles sont excutes
lentre ou la sortie de ltat
laction dentre (entry) est excute de manire instantane et atomique laction de sortie (exit) est excute la sortie de ltat

lorsquune occurrence dvnement interne survient


laction sur un vnement interne (on) est excute lors de loccurrence dun vnement qui ne conduit pas un autre tat

Riadh HADJ MTIR 2012/2013

206

Diagramme dtats-transitions
Actions dans un tat (2)

Nom dun tat


entry : action dentre on nom_vnement : action exit : action de sortie

Riadh HADJ MTIR 2012/2013

207

Diagramme dtats-transitions
Oprations, actions et activits

un vnement interne nentrane pas lexcution des actions de sortie et dentre, contrairement au dclenchement dune transition rflexive
A
entry : action dentre on nom_vnement : action exit : action de sortie exit : action de sortie E1/ Action

B
entry : action dentre

Riadh HADJ MTIR 2012/2013

208

Diagramme dtats-transitions
Oprations, actions et activits (2)

Les actions correspondent des oprations dont la dure dexcution est ngligeable Une opration qui prend un certain temps doit tre modlise travers un tat plutt que par une action Une telle opration est appele activit Le mot cl do: indique une activit Contrairement aux actions, les activits peuvent tre interrompues tout moment, ds quune transition de sortie est dclenche

Riadh HADJ MTIR 2012/2013

209

Diagramme dtats-transitions
Oprations, actions et activits (3)

Il existe deux formes dactivits


Activit cyclique : qui ne sarrte que par le biais dune transition de sortie Activit squentielle : qui dmarre lentre de ltat. Lorsquelle parvient son terme (autoterminaison), ltat peut tre quitt si lune des transitions de sortie est franchissable. Cest une transition automatique, ventuellement protge par une garde
Riadh HADJ MTIR 2012/2013

210

Diagramme dtats-transitions
Oprations, actions et activits (4)

Lorsquune activit se termine, les transitions automatiques (sans vnement), mais ventuellement protges par des gardes, sont dclenches
A B
do : activ squentielle [X] [ not X]

A
do : activ squentielle

B C
211

Riadh HADJ MTIR 2012/2013

Diagramme dtats-transitions
Point dexcution des oprations

6 manires dassocier une opration une transition :


laction associe la transition dentre (op1) laction dentre de ltat (op2) lactivit dans ltat (op3) laction de sortie de ltat (op4) laction associe aux vnements internes (op5) laction associe la transition de la sortie de ltat (op6)
/op1

A
Entry : op2 do : op3 on evt : op5 exit : op4 /op6

Riadh HADJ MTIR 2012/2013

212

Diagramme dtats-transitions
Exemple : Distributeur Automatique de Boissons

Encaissement de largent do : augmenter le montant En attente


Article slectionn [Article vide] [montant < prix article]

Test darticle
[montant = prix article]

do : tester article et calculer la monnaie rendre


[montant > prix article]

Distribution do : distribuer article Encaissement do : rendre monnaie

Riadh HADJ MTIR 2012/2013

213

Diagramme dtats-transitions
Gnralisation dtats

Un tat peut tre dcompos en plusieurs sous-tats disjoints; les sous-tats hritent des caractristiques de leur super-tats Dcomposition disjonctive : lobjet doit tre dans un seul sous-tat la fois
A e2 C C e1 AB B e2 e2 A e1 B

Riadh HADJ MTIR 2012/2013

214

Diagramme dtats-transitions
Gnralisation dtats (2)

Les transitions dentre ne sont pas hrites par tous les tats, seul un tat peut tre cible de la transition
A

B B1 B2

Riadh HADJ MTIR 2012/2013

215

Diagramme dtats-transitions
Gnralisation dtats (3)

Il est prfrable de limiter les liens entre niveaux hirarchiques dun automate en dfinissant systmatiquement un tat initial pour chaque niveau
B

B1

B2

Riadh HADJ MTIR 2012/2013

216

Diagramme dtats-transitions
Agrgation dtats

Lagrgation dtats est la composition dun tat partir de plusieurs autres tats indpendants La composition est de type conjonctive ce qui implique que lobjet doit tre simultanment dans tous les tats composant lagrgation dtats Forme de paralllisme entre automates
S A B

B1

B2

Riadh HADJ MTIR 2012/2013

217

Diagramme dtats-transitions
Agrgation dtats (2)

Exemple : activit dmission de billets

do : Distribuer billets Prparation do : jecter carte Retour laccueil

Riadh HADJ MTIR 2012/2013

218

Les diagrammes de UML

Diagrammes dactivits

Riadh HADJ MTIR 2012/2013

219

Diagramme dactivits
Introduction

Variante des diagrammes dtats-transitions : ce diagramme met laccent sur les activits, leurs relations et leurs impacts sur les objets

E1 do: activit Activits

E2

Riadh HADJ MTIR 2012/2013

220

Diagramme dactivits
Gardes

Les transitions entre activits peuvent tre gardes par des conditions boolennes, mutuellement exclusives. Les gardes sont les labels des transitions dont elles valident le dclenchement
Mesurer Temprature

[trop froid]

[trop chaud]

Chauffer

Refroidir

Riadh HADJ MTIR 2012/2013

221

Diagramme dactivits
Gardes (2)

Une condition peut tre matrialise par un losange dont sortent plusieurs transitions :

Mesurer Temprature

[trop froid]

[trop chaud]

Chauffer

Refroidir

Riadh HADJ MTIR 2012/2013

222

Diagramme dactivits
Synchronisations

Les diagrammes dactivits reprsentent les synchronisations dactivits au moyen de barres de synchronisation

Refroidir

Arrter le chauffage

Arer

Riadh HADJ MTIR 2012/2013

223

Diagramme dactivits
Synchronisations (2)

Les diagrammes dactivits reprsentent les synchronisations dactivits au moyen de barres de synchronisation

Arrter le chauffage

Arer

Mesurer la Temprature

Riadh HADJ MTIR 2012/2013

224

Diagramme dactivits
Dcomposition

Les diagrammes dactivits peuvent tre dcoups en couloirs dactivits : rpartition des responsabilits au sein dun mcanisme logiciel :
Enseignant Enseigner Etudiant Apprendre Jury

Controler les connaissances

Composer

Evaluer
Riadh HADJ MTIR 2012/2013

225

Diagramme dactivits
Objets

Il est possible de faire apparatre des objets dans un diagramme dactivits, soit au sein dun couloir dactivit soit en dehors de ces couloirs
Objet1 Objet2 Objetn

Objetj

Objeti

Riadh HADJ MTIR 2012/2013

226

Diagramme dactivits
Objets (2)

Les diagrammes dactivits peuvent faire rfrence des tats et des vnements
Ouvrir fentre

^Termostat.DonnerUneConsigne

Arer

Consigne atteinte

Fermer la fentre
Riadh HADJ MTIR 2012/2013

227

Les diagrammes de UML

Diagrammes de composants et de dploiement

Riadh HADJ MTIR 2012/2013

228

Introduction

Ce sont les deux derniers types de vues statiques en UML. Diagrammes de composants :
modlisation du systme sous forme de composants rutilisables ; met en vidence les relations de dpendance entre composants.

Diagrammes de dploiement :
identifient les lments matriels (PC, Modem, Station de travail, Serveur, etc.) ; leurs interconnexions physiques ; la disposition des fichiers (excutables, librairies, etc.) sur ces lments matriels.

Riadh HADJ MTIR 2012/2013

229

Diagramme de composants
Pourquoi des composants ?

La rutilisabilit est un facteur important pour la qualit dun logiciel Une classe, de part sa faible granularit et ses connexions figes, ne favorise pas la rutilisabilit Pour faire face ce problme : les composants

Riadh HADJ MTIR 2012/2013

230

Diagramme de composants
Programmation par composants

Constitue une volution technologique soutenue par de nombreuses plateformes : composants EJB, CORBA, .Net, WSDL, . . . Met laccent sur la rutilisation du composant et lindpendance de son volution vis--vis des applications qui lutilisent. Sintgre trs bien dans le contexte de la programmation oriente objet : assimilable une approche objet, non pas au niveau du code, mais au niveau de larchitecture gnrale du logiciel (changement dchelle).

Riadh HADJ MTIR 2012/2013

231

Diagramme de composants
Notion de composant

Un composant doit fournir un service bien prcis. Les fonctionnalits quil encapsule doivent tre cohrentes entre elles et gnriques. Reprsent par un classeur structur, strotyp ((component)), comportant une ou plusieurs interfaces requises ou offertes. Son comportement interne est masqu. Pour pouvoir substituer un composant par un autre il suffit de respecter les interfaces requises et offertes.

Riadh HADJ MTIR 2012/2013

232

Diagramme de composants
Reprsentation dun composant

Riadh HADJ MTIR 2012/2013

233

Diagramme de composants
Reprsentation des composants et des interfaces

Riadh HADJ MTIR 2012/2013

234

Diagramme de composants
Notion de port

Dfinition dun port : Point de connexion entre un classeur et son environnement. Graphiquement, un port est reprsent par un petit carr cheval sur la bordure du contour du classeur. On peut faire figurer le nom du port proximit de sa reprsentation. Gnralement, un port est associ une interface requise ou offerte. Lutilisation des ports permet de modifier la structure interne dun classeur sans affecter les clients externes.

Riadh HADJ MTIR 2012/2013

235

Diagramme de composants
Reprsentation dun composant avec ses ports

Riadh HADJ MTIR 2012/2013

236

Diagramme de composants
Implmentation dun composant complexe

Riadh HADJ MTIR 2012/2013

237

Diagramme de composants
Relation de dpendance

Relation de dpendance : un lment de limplmentation dun composant fait appel aux services offerts par les lments de limplmentation dun autre composant

Riadh HADJ MTIR 2012/2013

238

Diagramme de dploiement
Objectifs

Dcrit la disposition physique des ressources matrielles qui composent le systme Montre la rpartition des composants sur ces matriels Chaque ressource est matrialise par un nud Prcise comment les composants sont rpartis sur les nuds Prcise les connexions entre les composants ou les nuds Existent sous deux formes : spcification et instance

Riadh HADJ MTIR 2012/2013

239

Diagramme de dploiement
Reprsentation des nuds

Nud

Instance de nud

Affectation dun composant un nud

Riadh HADJ MTIR 2012/2013

240

Diagramme de dploiement
Notion dartfact (artifact)

Artfact: Elment concret existant dans le monde rel (document, excutable, fichier, tables de bases de donnes, script, . . . ). Limplmentation des modles (classes, . . . ) se fait sous la forme de jeu dartefacts. On dit quun artefact peut manifester, cest-dire rsulter et implmenter, un ensemble dlments du modle. On appelle manifestation la relation entre un lment du modle et lartefact qui limplmente.

Riadh HADJ MTIR 2012/2013

241

Diagramme de dploiement
Notion dartfact (artifact) (2)

Dploiement Une instance dun artefact se dploie sur une instance de nud. En toute rigueur, seul des artefacts doivent tre dploys sur des nuds. Un composant doit donc tre manifest par un artefact qui, lui-mme, peut tre dploy sur un nud.

Riadh HADJ MTIR 2012/2013

242

Diagramme de dploiement
Notion dartfact (artifact) (3)

Exemple de dploiement : artefacts dans le nud (avec relation de dpendance)

Riadh HADJ MTIR 2012/2013

243

Diagramme de dploiement
Notion dartfact (artifact) (4)

Exemple de dploiement : artefacts lextrieur du nud

Riadh HADJ MTIR 2012/2013

244

Diagramme de dploiement
Notion dartfact (artifact) (5)

Exemple de dploiement : artefacts manifestant un composant

Riadh HADJ MTIR 2012/2013

245

Diagramme de dploiement
Associations

Les associations entre nuds sont des chemins de communication

Riadh HADJ MTIR 2012/2013

246

You might also like