Professional Documents
Culture Documents
Plan du cours
Le Langage UML
Introduction Description du processus du dveloppement : Le processus Unifi Les diagrammes de UML
Riadh HADJ MTIR 2012/2013
Chapitre I
Introduction
Introduction
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
Introduction
Introduction
CVL : Spcifications
Les spcifications ne sont jamais compltes et dfinitives : volution du domaine, besoins supplmentaire
Riadh HADJ MTIR 2012/2013
Introduction
10
Introduction
11
Introduction
CVL : Conception
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
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
14
Chapitre II
Le paradigme objet
15
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
16
17
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
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
19
Lapproche Objet
Riadh HADJ MTIR 2012/2013
20
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
21
22
Lapproche Objet
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
COO
Utiliss dans
Objets
POO
24
Lapproche Objet
rcapitulatif
25
26
Objets
Identit tat Comportement
27
Concepts Objets
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
28
Concepts Objets
29
Concepts Objets
Objet : Identit
30
Concepts Objets
Objet : Etat
31
Concepts Objets
Objet : Etat
32
Concepts Objets
Objet : Comportement
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
34
Concepts Objets
Objet : Comportement
modifieur
ChangeItalique
35
Concepts Objets
Relations entre objets : messages
36
Concepts Objets
Relations entre objets : interface
Partie prive
37
Concepts Objets
Relations entre objets : exemple BD Une personne
nom = Ali age = 35 mtier = Mdecin
Mthodes dimplmentation
VerifMajuscule, VerifSupZero
38
Concepts Objets
Relations entre objets : exemple BD
(2) VerifSupZero(-36)
(3) Message(ERREUR)
39
Concepts Objets
Relations entre objets : exemple Access
40
Concepts Objets
Classe
Personne
nom age
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
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)
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
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
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
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
49
Concepts Objets
Classe : Hritage (Classe abstraite)
Utilit
Reprsentation de concepts centraux pour lapplication
50
Concepts Objets
Classe : Hritage
Difficult de la classification
analyse/ conception
Vivant age Faune
aliment
Animal espce
Fleur espce
51
Concepts Objets
Classe : Hritage Elment Vivant age Faune aliment Humain nom mtier Animal espce Fleur espce Objet
1re solution
52
Concepts Objets
Classe : Hritage
2me solution
Elment
Anim
Inanim
Humain
Animal
Fleur
Objet
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
55
Chapitre III
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...
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
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
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
60
Le langage UML
Introduction
61
Le langage UML
Quest ce que UML ?
Mcanismes dextension et de spcialisation en vue dtendre les concepts de base Indpendant des langages de programmation
62
Le langage UML
Objectifs
63
Le langage UML
A quoi sert UML ?
Le mtamodle d'UML permet de classer les concepts du langage (selon leur niveau d'abstraction ou domaine d'application) et expose sa structure.
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 ?
66
Le langage UML
RUP : Guid par les besoins des utilisateurs
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.
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
70
Le langage UML
RUP : Itratif et incrmental
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).
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.
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.
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
76
Le langage UML
RUP : Cycle de vie (Les activits)
77
Le langage UML
RUP : Cycle de vie (Les activits)
78
Le langage UML
RUP : Cycle de vie (Les activits)
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
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.
81
Le langage UML
Diagrammes
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
Diagrammes
Vues dynamiques
Le langage UML
Liens entre les diagrammes
Diagramme de composants
Diagramme de classes
Diagramme de dploiement
Cas dutilisation
84
Le langage UML
Relation entre diagrammes et tapes du processus
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
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
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( )
Use-Case 3
UI
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
8: fillFile ( )
Diagramme de paquetage
Document
- .EXE
Solaris
GraphicFile File
IBM Mainf rame
FileList
-
7: readFile ( ) 5: readDoc ( )
Diagramme de Collaboration
mainWnd user fileMgr : FileMgr document : Document gFile repository
- . 1: Doc view request ( ) 2: fetchDoc( ) 3: create ( ) 4: create ( )
Diagramme de composant
5: readDoc ( )
- - .
6: fillDocument ( )
7: readFile ( )
8: fillFile ( )
- - .
9: sortByName ( )
Diagramme de squence
Programme excutable
Riadh HADJ MTIR 2012/2013
87
88
89
90
Un outil de communication
utilisateur / expert du domaine concepteur dveloppeur /
91
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
92
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
93
94
Guichetier
95
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
Dpartement
97
Client
Gestionnaire
"Ali"
Riadh HADJ MTIR 2012/2013
Vendeur
Internet
98
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
Bibliothque
100
Utilisateur extrieur Chercheur Payer la cotisation Consulter catalogue Bibliotcaire Enregistrer nouvel utilisateur Rserver un livre
Emprunter un livre
101
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
102
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
la gnralisation/spcialisation (hritage)
104
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
105
Retirer de largent
<<Include>> Sidentifier
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
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
107
Ajouter le document
<<Extends>>
Exemple 1
Retirer le document
<<Extends>>
Dposer en numraire
Exemple 2
Riadh HADJ MTIR 2012/2013
108
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
109
110
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
111
Exemple
112
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
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
114
115
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
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
Poste de travail
Age()
Dpartement
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.
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
120
Diagramme de classes
Opration ou Mthode dune classe
Une opration dfinit une fonction applique des objets dune classe :
Nom de classe
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
122
Diagramme de classes
Proprits des attributs et des oprations
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 :
124
Diagramme de classes
Association
Une association reprsente une classe dassociations structurelles entre classes dobjets
Classe A Classe B
Socit
Personne
Voiture
Personne
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
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
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
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
Personne
Voiture
Personne
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
131
Diagramme de classes
Association rflexive
Personne Enfants * 2
Parents
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
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
0..* employ
Personne
employeur
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
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
137
Diagramme de classes
Association particulire : Agrgation (2)
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
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
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
142
Diagramme de classes
Gnralisation Spcialisation
Chat
Souris
lphant
143
Diagramme de classes
Hritage multiple Vhicule Tapis
Terrestre
Marin
Arien
Tapis volant
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
Milieu Marin
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
Pied bleu
Blet de loup
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
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
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 ?
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
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
:Moteur
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
152
Diagramme dObjets
Liens entre Objets
:Salle Professeur
Salle
tudiant
153
Diagramme dObjets
Liens entre Objets (2)
154
Diagrammes de squence
155
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
157
Cas dutilisation
158
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
159
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
160
DAB
Client
Code Code? Code Menu action Action retrait Argent + Somme Compte solvable
161
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).
162
163
Usager extrieur
Chercher mdia Produire les rappels Bibliotcaire Maintenir catalogue des mdias
Grer emprunteurs
164
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
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
167
Diagramme de squence
Envoi de messages dun objet sur lui mme
:ObjetComposite
:composant A
:composant B
168
Diagramme de squence
Cration et destruction dun objet par message
:A cration :B
dtruire
X = Destruction de lobjet
169
Diagramme de squence
Priode dactivit des objets
activation
:A
:A Msg synchrone
:B
Retour explicite
Riadh HADJ MTIR 2012/2013
170
Diagramme de squence
Envoi conditionnel de messages
:A
:B
:C
[condition] Message
171
Diagramme de squence
Contraintes temporelles
appelant:Client dcroche
:ligne tlphonique
appel:Client
tonalit
172
Diagramme de squence
Traitement conditionnel dun message reu
:Livre
[mauvais tat]
173
Diagrammes de collaboration
174
Diagramme de collaboration
Introduction
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)
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
Envois ventuellement numrots : ordre des envois de message au cours dune opration
Num : nom_opration Objet1:C1 Objet2:C2
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.
178
Diagramme de collaboration
Reprsentation des interactions (3): Exemple
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
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}
182
Diagramme de collaboration
Cration et destruction dynamiques dobjets (3)
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
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
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
Diagramme de collaboration
Itrations : exemple
* lve
:lve
188
Diagramme de collaboration
Conditions sur les envois de messages
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
:Gobelet
190
Diagrammes dtats-transitions
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
192
Diagramme dtats-transitions
Notion dtat
chaque objet possde un instant donn un tat particulier chaque tat est identifi par un nom un tat est stable et durable
193
Diagramme dtats-transitions
Notion dtat (2)
Personne
En activit
A la retraite
Au chmage
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
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
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
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
198
Diagramme dtats-transitions
Notion dvnement (2)
199
Diagramme dtats-transitions
Notion dvnement (3)
En activit
Plus de 60 ans
Embauche
Perte demploi
A la retraite
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)
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]
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
206
Diagramme dtats-transitions
Actions dans un tat (2)
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
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
209
Diagramme dtats-transitions
Oprations, actions et activits (3)
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
Diagramme dtats-transitions
Point dexcution des oprations
A
Entry : op2 do : op3 on evt : op5 exit : op4 /op6
212
Diagramme dtats-transitions
Exemple : Distributeur Automatique de Boissons
Test darticle
[montant = prix article]
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
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
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
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
217
Diagramme dtats-transitions
Agrgation dtats (2)
218
Diagrammes dactivits
219
Diagramme dactivits
Introduction
Variante des diagrammes dtats-transitions : ce diagramme met laccent sur les activits, leurs relations et leurs impacts sur les objets
E2
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
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
222
Diagramme dactivits
Synchronisations
Les diagrammes dactivits reprsentent les synchronisations dactivits au moyen de barres de synchronisation
Refroidir
Arrter le chauffage
Arer
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
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
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
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
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.
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
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).
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.
232
Diagramme de composants
Reprsentation dun composant
233
Diagramme de composants
Reprsentation des composants et des interfaces
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.
235
Diagramme de composants
Reprsentation dun composant avec ses ports
236
Diagramme de composants
Implmentation dun composant complexe
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
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
239
Diagramme de dploiement
Reprsentation des nuds
Nud
Instance de nud
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.
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.
242
Diagramme de dploiement
Notion dartfact (artifact) (3)
243
Diagramme de dploiement
Notion dartfact (artifact) (4)
244
Diagramme de dploiement
Notion dartfact (artifact) (5)
245
Diagramme de dploiement
Associations
246