Académique Documents
Professionnel Documents
Culture Documents
Sommaire
1 2 3 4 5 6 7 8 9
Objectifs de ce cours de modlisation oriente objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Gnralits sur la modlisation orient objet et sur UML. . . . . . . . . . . . . . . . . . . . . . . . . . .4 Analyse, vues cas dutilisation et processus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Analyse et conception, aspects statiques de la vue logique . . . . . . . . . . . . . . . . . . . . . . . . 35 Analyse et conception, aspects dynamiques de la vue logique . . . . . . . . . . . . . . . . . . . . . 63 Conception, aspects langage et technique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Conception, vues dveloppement et physique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
2/133
Introduire la modlisation base de graphiques des systmes informatiques Introduire la modlisation oriente objet Introduire la notation UML Dirents types de diagrammes avec leurs notations Rles complmentaires des types de diagrammes Cohrence entre diagrammes de mme type ou de types dirents Prsenter des lments mthodologiques dutilisation de ces types de diagrammes dans un processus de dveloppement Prsentation dans le cours dune premire tude de cas Mise en pratique lors des bureaux dtude avec une autre tude de cas valuation de lacquisition lors dun examen sur table avec une troisime tude de cas
3/133
Principes de la modlisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Rles du modle du systme informatique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 Pourquoi et comment modliser en orient objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Unied Modelling Language (UML) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Cinq faons de voir un systme informatique : les 4+1 vues de Kruchten . . . . . . . . 11 Phases de la modlisation, cycle en V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Rle de lexpression des besoins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Rle de lanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Rle de la conception. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
4/133
Objectif principal de la modlisation = matriser la complexit Modliser = abstraire la ralit pour mieux comprendre le systme raliser / ralis Le modle doit tre reli au monde rel Par exemple : lexistant avant les travaux, le ralis, le restant raliser Un modle peut tre exprim avec dirents niveaux dabstraction / ranement Par analogie : rpartition lectrique de limmeuble, de la cage descalier, de lappartement, de la pice Une seule vue du systme nest pas susante Les intervenants multiples du projet informatique possdent des proccupations multiples Par analogie : plan de masse, vues de face et de ct, schma lectrique, plan de plomberie, plan de calculs de construction
5/133
Le 1. 2. 3.
modle permet de : Spcier le systme raliser/ralis Valider le modle vis--vis des clients Fournir un guide pour la construction du systme Organiser les structures de donnes et le comportement du systme 4. Documenter le systme et les dcisions prises
6/133
7/133
UML 0.8
OOSPLA95
Booch93
Grady Booch
UML 0.9
WWW Juin 96
UML 1.0
Propos un standard OMG fin 1997
UML 1.1
Standard OMG ADTF fin 1997
OOSE
Ivar Jacobson
Partenaires divers
Task force
UML 1.2
UML 1.3
1998
UML 1.4
2001
UML 1.5
2003
UML 2.0
2005
UML 2.3
2010
UML 2.4.1
2013
Systmes dinformations des entreprises Banques et services nanciers Tlcommunications Transports Dfense et arospatiale Calculs scientiques Applications rparties en rseau, services Web Internet
8/133
9/133
Classes
Communications
Paquetages
Squence
Composants
Dploiement
10/133
2.5 Cinq faons de voir un systme informatique : les 4+1 vues de Kruchten
Aspect dynamique : interactions (squences, communications), machines tats Aspect statique : classes, objets et paquetages Aspect statique: paquetages, et fichiers
Vue logique
Vue processus
Vue physique
Aspect fonctionnel: cas dutilisation, acteurs, liens de communication Aspect paralllisme: fils dexcution, processus, tches, activits Aspect rpartition: dploiement, noeuds, modules
11/133
Cahier des charges Saccorder sur ce qui doit tre fait dans le systme
Recette
Analyse
Tests de validation
Conception
Tests dintgration
Code excutable
12/133
Permettre une meilleure comprhension du systme Comprendre et structurer les besoins du client Clarier, ltrer et organiser les besoins, ne pas chercher lexhaustivit Une fois identis et structurs, ces besoins : Dnissent le contour du systme modliser Prcisent le but atteindre Permettent didentier les fonctionnalits principales du systme
13/133
14/133
Toutes les personnes peuvent tre organisatrices. Lorganisatrice est de facto une participante au scrutin. Seule lorganisatrice est autorise grer un scrutin. Seuls les participants enregistrs peuvent participer au scrutin et consulter les rsultats. Pour que les participants puissent voter, il faut que le scrutin soit ouvert (dateDuJour dateDebutScrutin). La dure douverture du scrutin est limite. Lorganisatrice doit indiquer la date de destruction automatique du scrutin. Toutes ces dates permettent de grer de manire automatique le cycle de vie dun scrutin. Les transitions du cycle de vie peuvent aussi tre eectues la demande de lorganisatrice.
15/133
Le but de lanalyse est de traduire dans un langage qui se rapproche doucement de celui des informaticiens les modles exprims dans lexpression des besoins Cependant, pour rester comprhensible par les clients ou utilisateurs, elle ne prend en considration que des entits du domaine (mtier) Elle sert dinterface, avec lexpression des besoins, aux dialogues avec les clients et les utilisateurs Lanalyse doit servir de support pour la conception, limplantation et la maintenance Le modle de lanalyse dcrit le problme (ce que doit faire le systme et comment il le fait tel que vu dun point de vue mtier) sans spcier la solution technique (avec les canevas logiciels)
16/133
Le but de la conception est de xer les choix techniques et de prparer limplantation Le modle de la conception dcrit la solution (comment le problme est rsolu) La conception doit servir de support pour limplantation et la maintenance Le modle de la conception nest pas destin tre comprhensible par les utilisateurs mais par les dveloppeurs
17/133
QCM
3. Un client demandant une informatisation est-il cens comprendre les diagrammes UML ?
18/133
3.1 Modle de lanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.2 Diagrammes de cas dutilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.3 Diagrammes dactivit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
19/133
Vue logique
Vue dveloppement
Aspect fonctionnel: cas dutilisation, acteurs, liens de communication Aspect paralllisme: fils dexcution, processus, tches, activits Aspect rpartition: dploiement, noeuds, modules
20/133
Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Acteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Relation de gnralisation spcialisation entre acteurs. . . . . . . . . . . . . . . . . . . . . . . . .24 Cas dutilisation, lien de communication et systme . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Autres relations entre cas dutilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Exemple de diagramme de cas dutilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 lments de mthodologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
21/133
3.2.1 Introduction
Les fonctionnalits sont modlises par des cas dutilisation Un diagramme de cas dutilisation dnit : Le systme Les acteurs Les cas dutilisation (fonctionnalits) Les liens entre acteurs et cas dutilisation Quel acteur accde quel cas dutilisation ? Un modle de cas dutilisation se dnit par : Des diagrammes de cas dutilisation Une description textuelle des scnarios dutilisation
22/133
3.2.2 Acteur
Un acteur reprsente une personne, un priphrique ou un autre systme qui joue un rle (interagit) avec le systme Lorganisatrice, cre un scrutin, renseigne les plages horaires possibles et ajoute les participants la runion. Les participants peuvent exprimer leurs prfrences en indiquant pour chaque plage horaire sils votent pour (ils sont disponibles et annoncent leur intention de participer) ou contre.
participante
le lien de gnralisation
organisatrice
24/133
Voter participante
cas dutilisation
lien de communication
Ajouter un participant
Ouvrir un scrutin
limite du systme
organisatrice
25/133
relation dinclusion
relation dhritage
Authentification M1 Voter
<<include>>
Vrifier droits
<<include>>
<<extend>>
Crer un scrutin
relation dextension
Enregistrement tentatives
27/133
Identier les acteurs qui utilisent, grent et excutent des fonctionnalits spciques Organiser les acteurs par relation de gnralisation spcialisation si cest pertinent Pour chaque acteur, rechercher les cas dutilisation du systme Si besoin, organiser ces interactions par gnralisation spcialisation et par inclusion, mais viter la relation dextension
28/133
Scnarios dun cas dutilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Actions et choix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Concurrence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32 Autres notations du diagramme dactivit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
29/133
La description dun cas dutilisation se fait par des scnarios qui dnissent la suite logique des actions qui constituent ce cas Il est possible de dnir des scnarios simples ou des scnarios plus dtaills faisant intervenir les variantes, les cas derreurs, etc. La description du scnario prcise ce que fait lacteur et ce que fait le systme En plus de descriptions textuelles, le scnario peut tre reprsent en utilisant un diagramme dactivit Le diagramme dactivit permet de : Prsenter lalgorithme , cest--dire les tapes de la fonctionnalit Visualiser laspect temporel des interactions Connatre le sens des interactions (acteur vers systme ou inverse) Distinguer le cas nominal des variantes (p.ex. avec traitement des erreurs)
30/133
arte
garde
fusion
31/133
3.3.3 Concurrence
recherche scrutin
fork
join
32/133
attente X secondes
informations transmises
33/133
QCM
1. Dans un diagramme de cas dutilisation, est-il pertinent dajouter des cas dutilisation ne faisant pas partie du systme ? 2. Quelles entits peuvent tre dessines dans un diagramme de cas dutilisation ? (a) systme (b) opration (c) acteur (d) fusion (e) gnralisation spcialisation (f) action 3. Dans une gnralisation spcialisation entre acteurs, lacteur spcialis a-t-il accs toutes les fonctionnalits de lacteur gnralis ?
34/133
Diagrammes communs lanalyse et la conception . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Diagramme de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Diagramme dobjets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Concepts avancs du diagramme de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
35/133
Vue logique
Vue cas dutilisation Vue processus
Vue physique
Vue dveloppement
Aspect fonctionnel: cas dutilisation, acteurs, liens de communication Aspect paralllisme: fils dexcution, processus, tches, activits Aspect rpartition: dploiement, noeuds, modules
36/133
37/133
4.2.2 Classe
Classe = famille dobjets ayant les mmes caractristiques et le mme comportement Attributs = caractristiques (donnes membres, informations, proprits) Oprations = comportement (mthodes, fonctions, procdures, messages, services)
Nom de la classe
Personne
nom : String prnom : String nbParticipations : Integer = 0 nbOrganisations : Integer = 0 Constructeur(String n, String p) voter(Bulletin b) consulterResultat(Scrutin s) seRetirerDUnScrutin(Scrutin s)
Personne
nom : String prnom : String nbParticipations : Integer nbOrganisations : Integer
Personne
voter(Bulletin) consulterResultat(Scrutin) seRetirerDUnScrutin(Scrutin)
Personne
39/133
Nom de la classe
Identifiant de lobjet
Personne
nom : String prnom : String nbParticipations : Integer = 0 nbOrganisations : Integer =0 Constructeur(String n,String p) voter(Bulletin b) consulterResultat(Scrutin s) seRetirerDUnScrutin(Scrutin s)
j:Personne
nom = "Dupont" prnom = "Julien" nbParticipations = 7 nbOrganisations = 3
Type de lattribut
Valeur de lattribut
40/133
Personne
nom : String prnom : String nbParticipations : Integer nbOrganisation : Integer nbTotalParticipations : Integer Constructeur(String n, String p) voter(Bulletin) consulterResultat() seRetirerDUnScrutin() getNbTotalParticipations()
j:Personne
nom = Dupont prnom = Julien nbParticipations = 7 nbOrganisation = 3 nbTotalParticipations = 12 nom = Martin prnom = Marie nbParticipations = 5 nbOrganisation = 1
Attribut de classe
Opration dinstance
Opration de classe
m:Personne
41/133
Personne
nom adresse dateNaissance /ge
Attribut driv
42/133
Association (binaire) = relation entre (deux) classes Le sens de lecture est facultatif lorsquil ny a pas dambigut
Association
Personne
Scrutin
43/133
organisateur
Personne
organise Multiplicits
Scrutin
*
1..* 6..28
44/133
Avocat
nombreAffaires adresseCabinet
Vendeur
anciennet nomDuStand
Enseignant
nombreCours specialit
Permanent
numroBureau
Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002
Vacataire
nombreVacations
45/133
Vendeur Avocat
Personne
46/133
47/133
Camion
nombreEssieux capacit charge estPlein()
Voiture
nombrePorte couleur
Tramway
nombrePassagers niveauBruit calculerAmortissement()
VoitureEssence
nombreBougies
VoitureDiesel
typeInjecteur
48/133
4.2.13 Agrgation
Agrgation = une association exprimant un couplage fort li une relation de subordination Elle est asymtrique du type ensemble / lment ou contenant / contenu Rgles permettant de choisir une agrgation : Est-ce une partie de ? Les oprations appliques lensemble sont-elles appliques llment ? Les changements dtats sont-ils lis ? Attention : Un lment agrg peut tre li dautres classes La suppression de lensemble nentrane pas celle de llment
Polygone
3..*
Point
50/133
*
organise
Scrutin
intitulScrutin texteCommentaireScrutin dateCration dateDbut dateLimite dateLimiteExistence ouvertureAvance fermetureAvance destructionAvance nbTotalScrutin /nbChoix
concerne
ScrutinPlagesHoraires
nbTotal
ScrutinPrfrences
nbTotal
concerne
* * *
Bulletin
pourOuContre
*
Prfrence
intitulPrfrence texteCommentairePrf
PlageHoraire
date heureDbut heureFin
*
Studs
concerne
Choix
/nbBulletinsPour /nbBulletinsContre
51/133
Illustration des liens entre objets dans un scnario / une conguration donne
:org
ani s
e
v2:ScrutinPlagesHoraires
:Bulletin
v3:ScrutinPrfrences
53/133
QCM
1. Quelles entits peuvent tre dessines dans un diagramme de classes ? (a) opration (b) acteur (c) gnralisation spcialisation (d) action (e) association 2. Une classe est-elle une instance dobjet ? 3. Dans un diagramme de classes, tous les attributs dune classe doivent-ils tre spcis ? 4. Sans multiplicit spcie explicitement, est-il suppos par dfaut * ? 5. La gnralisation spcialisation est-elle reprsente par une relation avec un triangle blanc une extrmit ? 6. Soit E une classe enfant de la classe parente P, tout objet de classe E peut-il tre utilis l o un objet de type P est attendu ?
Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002 54/133
Navigabilit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Classe dassociation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Composition : agrgation forte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Classe abstraite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Classe paramtre / gnrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Exemple de diagramme de classes avanc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
55/133
4.4.1 Navigabilit
Par dfaut, une association est bidirectionnelle Il est possible de rduire la porte en la rendant unidirectionnelle En gnral, ce choix se fait dans la phase de conception
Navigabilit
Personne organise
Scrutin
Personne organise
Scrutin
56/133
crivain
Paragraphe
Note
contenu date
e:crivain n:Note
p:Paragraphe
57/133
La composition est une agrgation forte qui lie les cycles de vie entre le compos (ensemble) et les composants (lments) Le choix entre composition et agrgation peut tre pris lors de la phase de conception
Voiture
Porte Habitacle
58/133
Livre
Texte
longueur
Graphique
largeur hauteur afficher()
Vido
dure afficher()
afficher()
afficher()
59/133
4.4.5 Interface
Une interface nest pas une classe, cest une liste doprations Une interface, comme une classe abstraite, ne peut pas servir crer un objet Une interface exprime un savoir-faire, un contrat respecter par les classes qui ralisent cette interface
<<interface>> Dplaable
saPlace() avancer() reculer() monter() descendre()
Polygone
sommets saPlace() avancer() reculer() monter() descendre()
Personne
nom numScu saPlace() avancer() reculer() monter() descendre()
60/133
Paramtre de type
ListeDeChoses
lment : E taille : Integer premierlment : E dernierlment : E ajouter(E) estPrsent(E) retirer(E) Attribut gnrique
Opration gnrique
61/133
*
organise
Scrutin
intitulScrutin texteCommentaireScrutin dateCration dateDbut dateLimite dateLimiteExistence ouvertureAvance fermetureAvance destructionAvance nbTotalScrutin nbChoix
ScrutinPlagesHoraires
nbTotal
ScrutinPrfrences
nbTotal
concerne
concerne
* * *
Bulletin
pourOuContre
*
Prfrence
intitulPrfrence texteCommentairePrf
PlageHoraire
date heureDbut heureFin
*
Studs
concerne
Choix
/nbBulletinsPour /nbBulletinsContre
62/133
Rappel : diagrammes communs lanalyse et la conception . . . . . . . . . . . . . . . . . . . 64 Modlisation des aspects dynamiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Diagramme de squence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Diagramme de communications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Diagramme de machine tats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
63/133
Vue logique
Vue cas dutilisation Vue processus
Vue physique
Vue dveloppement
Aspect fonctionnel: cas dutilisation, acteurs, liens de communication Aspect paralllisme: fils dexcution, processus, tches, activits Aspect rpartition: dploiement, noeuds, modules
64/133
Studs
voter(...) : ... consulterRsultatsScrutin(...) : ... seRetirerScrutin(...) : ... crerScrutin(...) : ... ajoutChoixAScrutin(...) : ... suprimerChoixAScruting(...) : ... ajouterPersonneScruting(...) : ... retirerPersonneAScrutin(...) : ... ouvrirScrutin(...) : ... fermerScrutin(...) : ... supprimerScrutin(...) : ... retirerPersonneAScrutin(...) : ...
Personne
*
organise
Scrutin
intitulScrutin texteCommentaireScrutin dateCration dateDbut dateLimite dateLimiteExistence ouvertureAvance fermetureAvance destructionAvance nbTotalScrutin ScrutinPlagesHoraires nbChoix nbTotal
ScrutinPrfrences
nbTotal
concerne
concerne
* * *
Bulletin
pourOuContre
*
Prfrence
intitulPrfrence texteCommentairePrf
PlageHoraire
date heureDbut heureFin
Modles dynamiques
diagrammes de squence diagrammes de communications diagrammes de machines tats
*
Studs
concerne
Choix
/nbBulletinsPour /nbBulletinsContre
65/133
Orientation procdurale
int get_bulletin(personne *p) {
Orientation objet
Personne
*
cration, lecture, criture, suppression cration, lecture, criture, suppression cration, lecture, criture, suppression
*
organise
Scrutin
intitulScrutin texteCommentaireScrutin dateCration dateDbut dateLimite dateLimiteExistence ouvertureAvance fermetureAvance destructionAvance nbTotalScrutin ScrutinPlagesHoraires nbChoix nbTotal
struct personne {
...
} struct scrutin {
ScrutinPrfrences
nbTotal
concerne
concerne
...
} struct bulletin {
* * *
Bulletin
pourOuContre
*
Prfrence
intitulPrfrence texteCommentairePrf
...
}
PlageHoraire
date heureDbut heureFin
}
Studs
concerne
Choix
/nbBulletinsPour /nbBulletinsContre
getBulletin(Personne p) : boolen
66/133
Modliser lordre des interactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Participant, temps et message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Exemple de diagramme de squence Ouvrir un scrutin . . . . . . . . . . . . . . . . . . . . 71 Syntaxe et types de messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Cration et suppression dobjets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Fragments de squence ref et opt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Fragment de squence loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
68/133
Le diagramme de squence capture laspect temporel des changes entre participantsa Un diagramme de squence spcie le comportement dun cas dutilisation ou dune partie de celui-ci
o1:C1
message opration()
o2:C2
Message / vnement
opration2()
Barre dactivation
Ligne de vie
70/133
:Studs
ouvrirScrutin(intitul)
Scrutin
s:Scrutin
s=chercher(intitul):Scrutin
avancerDateOuverture()
71/133
:Serveur
appelAsynchrone() appelAsynchrone() appelAsynchrone() appelSynchrone2()
:AutreServeur
72/133
:Studs
creationScrutin(p) crationScrutin()
p:Personne
s:Scrutin
<<new>>
c:Classe
create(arguments)
<<delete>>
c:Classe
<< destroy() >>
c:Classe
<<transient>>
c:Classe
73/133
:Studs
voter(p,s,c,poc) ref
p:Personne
s:Scrutin
c:Choix
Type du fragment
opt <<create(p,s, c,poc)>>
PeutVoter
[peutVoter = true]
b:Bulletin
voter(b)
Condition dentre
Contours du fragment
voter(b) voter(b,poc)
:Bulletin
av = aDejaVote(s) : boolean sb = getScrutin() av = (s == sb) pv = not av
QCM
1. Quelles entits peuvent tre dessines dans un diagramme de squence ? (a) fragment (b) instance (c) message (d) condition (e) opration 2. Un objet se distingue-t-il dune classe parce quil est soulign ? 3. Pendant un message synchrone, lexpditeur est-il bloqu en attente dune rponse ? 4. En rponse un message synchrone, lappel renvoie-t-il un seul retour dappel ? 5. Un fragment de squence est-il une partie optionnelle dune squence ? 6. Un objet se distingue-t-il dune classe parce quil est nomm ?
Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002 76/133
Modliser les liens dinteractions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Participant, lien dinteraction, message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Message conditionn, messages en squence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Messages embots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Itration de messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Collection et recherche dans une collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Messages concurrents * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Choix entre squence et communications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
77/133
Le diagramme de communications montre la structure spatiale des interactions entre participants Lattention est mise sur les liens dinteractions, qui ne sont quimplicites dans le diagramme de squence
78/133
Personne
:Studs
79/133
Personne
2:s=vrifierParticipationScrutin(intitulScrutin):Scrutin [p!=null]
:Studs
3:cb=getBulletins(): Collection(Bulletin) [p!=null]
p:Personne
s:Scrutin
80/133
Personne
2:s=vrifierParticipationScrutin(intitulScrutin):Scrutin [p!=null] 2.1:s=getScrutin(intitulScrutin)
:Studs
3:cb=getBulletins(): Collection(Bulletin) [s!=null]
Scrutin
p:Personne
s:Scrutin
81/133
Personne
2:s=vrifierParticipationScrutin(intitulScrutin):Scrutin [p!=null] 2.1:s=getScrutin(intitulScrutin)
:Studs
3:cb=getBulletins(): Collection(Bulletin) [s!=null]
Scrutin
p:Personne
s:Scrutin
4:*[i=1..cb.size()]afficherInfosBulletin()
4.i.1:afficherInfosParticipant(b) [b.personne == p]
b:Bulletin
4.i.2:afficherInfosChoix(b) [b.personne=p]
:Choix
82/133
Personne
2:*[!trouv]trouv=correspondre(intitul):boolen
:Studs
:Scrutin
83/133
op1() 1:op2()
Personne
2.a:op3() 2.a.1:op31()
:Studs
2.b:op4()
Scrutin
p:Personne
s:Scrutin
84/133
QCM
1. Quelles entits peuvent tre dessines dans un diagramme de communications ? (a) fragment (b) message (c) condition (d) ligne de vie (e) lien dinteraction (f) transition 2. Est-ce que plusieurs messages peuvent transiter sur un mme lien dinteraction ? 3. Un diagramme de squence et un diagramme de communications peuvent-ils contenir des classes ?
86/133
Modliser ltat des objets dune classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Types dtats, vnement et transition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 vnement, condition et action dune transition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Transition implicite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Exemple de diagramme de machine tats de la classe Scrutin . . . . . . . . . . . . . . . 92 Actions lies un tat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 lments de mthodologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 tat composite * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
87/133
Certaines classes sont plus complexes et inuent de manire plus importante sur le comportement gnral du systme Il est important de dcrire les vnements provoquant les changements dtats des objets de ces classes Les changements dtats sont dcrits dans des machines tats Une machine tats dcrit les tats des objets dune classe Une machine tats est spcie par classe
88/133
tat final
vnement1 vnement2
Orange
Vert
89/133
Syntaxe complte vnement[condition]/action La transition est dclenche par un vnement La transition est eectivement franchie si la condition (sur ltat de lobjet) est valide Le franchissement dclenche lexcution de laction de la transition Cette action est considre comme immdiate et atomique Si plusieurs transitions sont franchissables, alors la transition eectivement franchie est choisie alatoirement
90/133
Transition implicite
EnConstruction
entre : constructeur()
NonCapture
des
tr
ion uct
de
ar la p
tie
EnDestruction
entre : destructeur()
destruction de la partie
Capture
91/133
EnConstruction
entre : constructeur()
EnAttenteOuverture
ScrutinOuvert
EnDestruction
entre : destructeur()
ScrutinFerm
92/133
Actions excutes lentre et la sortie dun tat Action excute pendant toute la dure de prsence dans ltat Action interne dclenche par un vnement
vnement[condition]/action
Transtion rflexive
tat n
entry: action en entre de ltat do: activit pendant ltat vnement1[condition1]: action1 vnement2[condition2]: action2 ... exit: action en sortie dtat
93/133
Seuls les tats quelque peu stables sont pertinents Les attributs constants (possdant toujours la mme valeur une fois que lobjet est construit) ninterviennent pas dans la recherche des tats Les attributs qui changent de valeur aident souvent dduire les tats possibles Et particulirement les attributs boolens Il est souvent intressant dinsrer de manire systmatique un tat de cration de lobjet (initialisation des attributs) et un tat de destruction Une attention particulire est porter sur les vnements et les actions
94/133
Rgions
Soustat
vnement 1
Soustat 3
vnement 2
Soustat 2
95/133
QCM
1. Quelles entits peuvent tre dessines dans un diagramme de machine tats ? (a) fragment (b) message (c) condition (d) objet (e) tat initial (f) transition
2. Une transition rexive peut-elle provoquer la squence dactions exit , action de la transition , entry , et do ?
96/133
97/133
Cahier des charges Saccorder sur ce qui doit tre fait dans le systme
Recette
Analyse
Tests de validation
Conception
Tests dintgration
Code excutable
98/133
Collecte et dfinition des attributs Collecte et dfinition des oprations Dcisions de conception
99/133
*
organise
Scrutin
intitulScrutin texteCommentaireScrutin dateCration dateDbut dateLimite dateLimiteExistence ouvertureAvance fermetureAvance destructionAvance nbTotalScrutin nbChoix
ScrutinPlagesHoraires
nbTotal
ScrutinPrfrences
nbTotal
concerne
concerne
* * *
Bulletin
pourOuContre
*
Prfrence
intitulPrfrence texteCommentairePrf
PlageHoraire
date heureDbut heureFin
*
Studs
concerne
Choix
/nbBulletinsPour /nbBulletinsContre
100/133
Attribut du type rfrence sur un objet de la classe lautre extrmit de lassociation Rfrence note @ Autant dattributs que de classes auxquelles elle est relie Association binaire = 1 attribut Association n-aire = n 1 attributs Association unidirectionnelle = pas dattribut du ct de la che Nom de lattribut = nom du rle ou forme nominale du nom de lassociation Traduction des multiplicits 1 = @Classe = Collection @Classe 0..N = Tableau[N] Classe Multiplicit avec tri = Collection ordonne @Classe
101/133
* *
Scrutin
intitulScrutin texteCommentaireScrutin dateCration dateDbut dateLimite dateLimiteExistence ouvertureAvance fermetureAvance destructionAvance nbTotalScrutin nbChoix
concerne
*
Bulletin
pourOuContre
Traduction des associations de la classe Scrutin : organisateur : @Personne bulletins : Collection ordonne @Bulletin Pas de rfrence vers un objet Studs cause de la navigabilit
Studs
Concept de rfrence : partir dun objet Scrutin, il est possible daller vers un objet Personne et vers une collection dobjets Bulletin
Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002 102/133
Voiture
Porte Habitacle
103/133
Doit-on voir / accder tous les attributs ou toutes les mthodes dun objet ? Non La classe dnit ce qui est visible / accessible Cest le principe de lencapsulation Un objet complexe ne peut tre utilis quau travers de ce qui est accessible Analogie : Il nest possible dutiliser une voiture qu travers son volant, son frein, son acclrateur, etc. Laccs au carburateur est impossible sauf par les mthodes qui le font de manire cohrente (mthode acclrer de lacclrateur )
104/133
Les attributs sont en gnral inaccessibles (secrets). Ils sont alors qualis de : private : notation UML Lecture ou modication uniquement possibles au travers des oprations (p.ex. les accesseurs : getAdresse(), setAdresse()) Les oprations sont en gnral accessibles par toutes les classes. Elles sont alors qualies de : public : notation UML + Certains attributs doivent tre accessibles par les classes enfants et inaccessibles aux autres classes. Ils sont alors qualis de : protected : notation UML # Certaines oprations peuvent cependant tre prives (factorisation interne de traitements) et certains attributs peuvent tre publics (mme si cela est non souhaitable selon le principe dencapsulation)
105/133
Attribut priv
Attribut protg
Opration publique
Opration protge
106/133
Attribut/opration protg/e = Accessible par les classes enfants Inaccessible par les autres classes Par exemple, opration acherScrutin() de la classe Scrutin La classe ScrutinPlagesHoraires peut utiliser lopration de la classe Scrutin dans lalgorithme de son opration acherScrutin() : String afficherScrutin() { ... appela de lopration afficherScrutin() de classe parente ... }
Bulletin
pourOuContre
concerne
Choix
/nbBulletinsPour /nbBulletinsContre
108/133
numroCompte et nom sont des attributs des classes CompteBancaire et Fichier, respectivement numroCompte et nom sont les clefs de leur classe respective Le choix de lassociation qualie peut tre laiss la phase de conception
Banque
numroCompte
gre CompteBancaire
gre Rpertoire
nom
Fichier
109/133
p:Personne
[peut_voter = true]
s:Scrutin
c:Choix
b:Bulletin
voter(b) voter(b) voter(b)
Impact sur la classe Bulletin Attributs personne : @Personne scrutin : @Scrutin choix : @Choix pourOuContre : boolean
constructeur(@Personne p, @Scrutin s, @Choix c, boolean poc) { personne = p scrutin = s choix = c pourOuContre = poc p.voter(b); s.voter(b); c.voter(b) }
110/133
ScrutinOuvert
EnDestruction
entre : dtruire
ScrutinFerm
Attributs utiliss dans la machine tats dateDbut : date dateLimite : date dateLimiteExistence : date ouvert : boolean = false ouvertureAvance : boolean = false fermetureAvance : boolean = false destructionAvance : boolean = false
Valeur des attributs dans les dirents tats EnConstruction : valeurs par dfaut ScrutinOuvert : ouvert = true ScrutinFerm : ouvert = false et (dateJour > dateLimite ou fermetureA = true) EnDestruction : ouvert = false et (dateJour > dateLE ou destructionA = true)
111/133
112/133
Lappel au constructeur de la classe parente doit tre la premire instruction Dans les classes enfants, possibilit dappel des oprations de la classe parente (si publique ou protge) Par exemple, dans la classe enfant ScrutinPlageHoraire :
afficherScrutin() { // opration redfinie dans la classe enfant super.afficherScrutin() // appel lopration de classe parente Scrutin afficher lcran la valeur de lattribut nbTotal }
Rappel : toutes les oprations protges de la classe parente sont accessibles dans les classes enfants
Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002 113/133
Studs
+ constructeur(...) + destructeur(...) + voter(...) + consulterRsultatScrutin(...) + seRetirerScrutin(...) + crerScrutin(...) + ajouterUnChoix(...) + supprimerUnChoix(...) + ajouterUnParticipant(...) + retirerUnParticipant(...) + ouvrirUnScrutin(...) + fermerUnScrutin(...) + supprimerUnScrutin(...)
114/133
Voiture
Porte Habitacle
Contrle du cycle de vie des lments : // possiblement constructeur() { cration objets Roue cration objet Carroserie cration objet Moteur } // obligatoirement destructeur() { destruction objets Roue destruction objet Carosserie destruction objet Moteur }
Contrle du cycle de vie des lments : // possiblement constructeur() { cration objets Porte cration objet Habitacle } desrtucteur() { // obligatoirement destruction objets Porte destruction objet Habitacle }
115/133
Note
contenu date
crivain
Paragraphe
crivain Note
Paragraphe
116/133
117/133
QCM
1. Pour traduire une association binaire, faut-il regarder le sens de lecture de lassociation ? 2. Une multiplicit 0..1 se traduit-elle par un attribut rfrence sur la classe lautre extrmit de lassociation binaire ? 3. La notation pour un attribut priv est-elle ? 4. tant donn une classe A contenant lattribut a et une classe B contenant la mthode b, si a est priv et b est publique, b peut-elle utiliser a ? 5. Un attribut driv peut-il tre traduit par un attribut ? 6. Un message dun diagramme de squence est-il la plupart du temps traduit en une opration prive ? 7. Le mot clef super permet-il dappeler une opration de la classe parente ?
Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002 118/133
Diagrammes de la vue dveloppement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Diagramme de composants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Diagramme de paquetages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 Diagramme de la vue physique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Diagramme de dploiement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
119/133
Vue logique
Vue dveloppement
Vue cas dutilisation
Vue processus
Vue physique
Aspect fonctionnel: cas dutilisation, acteurs, liens de communication Aspect paralllisme: fils dexcution, processus, tches, activits Aspect rpartition: dploiement noeuds, modules
120/133
7.2.1 Composant, interfaces oertes et requises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 7.2.2 Composite, port, connecteurs de dlgation et dassemblage . . . . . . . . . . . . . . . . . 123
121/133
<<component>>
<<component>>
<<component>>
Component2
Component1
Component3
Interfaces requises
<<interface>> Interface1
<<component>>
<<interface>> Interface2
Component2
Relation de ralisation
Dpendance
122/133
Ports
<<component>>
Composite1
<<component>> <<component>>
Primitif1
Composite2
Connecteurs de dlgation
Connecteurs dassemblage
Connecteurs de dlgation
123/133
7.3.1 Paquetage, espace de nommage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 7.3.2 Relation entre paquetages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
124/133
paquetage1
paquetage1::Classe1 Classe2
(paquetage1)
Classe6
Classe3
(from paquetage1)
Classe4
Classe5
125/133
paquetage1 paquetage2
paquetage4 paquetage3
126/133
Aspect dynamique : interactions (squences, communications), machines tats Aspect statique : classes, objets et paquetages Aspect statique: paquetages, et fichiers
Vue logique
Vue processus
Vue physique
Aspect fonctionnel: cas dutilisation, acteurs, liens de communication Aspect paralllisme: fils dexcution, processus, tches, activits
Diagramme de dploiement
127/133
7.5.1 Nud et liaison de communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 7.5.2 Artefact et composant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 7.5.3 Dpendance entre artefacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
128/133
<<device>>
<<liaison TCP/IP>>
<<device>>
processeur distributeur
<<liaison USB>> <<device>>
<<liaison TCP/IP>>
<<device>>
<<device>>
<<device>>
imprimante
lecteur de carte
processeur banque
129/133
<<device>>
<<liaison TCP/IP>>
Serveur Stockage
<<deploy>> <<deploy>> <<component>>
<<execution environment>>
Serveur dapplication
StudsComponent
<<artefact>>
<<liaison HTTP>>
StudsBD
Studs Artefacts
130/133
<<device>>
serveurVote1:ServeurVote
<<artefact>>
StudsGUI
Studs
131/133
8 Conclusion
Modle pour apprhender la ralisation dun systme informatique Diagrammes UML qui permettent daider la rexion, la discussion (clients, architectes, dveloppeurs, etc.) Pas de solution unique mais un ensemble de solutions plus ou moins acceptables suivant les contraintes du client, et les logiciels et matriels disponibles Une solution acceptable est obtenue par itrations successives
132/133
9 Bibliographie
Livres G. Booch, J. Rumbaugh, I. Jacobson, The Unied Modeling Language User Guide , 2nd edition, Addison-Wesley, 2005 B. Charroux, A. Osmani, Y. Thierry-Mieg, UML 2, Pratique de la modlisation , 2 dition, Pearson Education, 2008 J. Gabay, D. Gabay, UML 2 : analyse et conception , Dunod, 2008 P. Roques UML 2 par la pratique , 6 dition, Eyrolles, 2008 R. Miles et K. Hamilton, Learning UML 2.0 : A pragmatic Introduction to UML , OReilly, 2006 Object Management Group, OMG Unied Modeling Language, Infrastructure, Version 2.4.1 , OMG Document Number formal/2011-08-05, August 2011 Object Management Group, OMG Unied Modeling Language, Superstructure, Version 2.4.1 , OMG Document Number formal/2011-08-06, August 2011 D. Pilone, UML 2.0 Pocket Reference , OReilly, 2006 S.W. Ambler, The Elements of UML 2.0 Style , Cambridge University Press, 2005 URL : OMG UML at http://www.omg.org/spec/UML/
Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002 133/133