Méthodologie UML - Cours Du Cycle B Du Cnam
Méthodologie UML - Cours Du Cycle B Du Cnam
Méthodologie UML - Cours Du Cycle B Du Cnam
doc
______________________________________________________________________________
Méthodologie des
systèmes d'information -
UML
Cours du Cycle Probatoire
UML
UP
___________________________________________________________________
DI GALLO Frédéric Page 1 15/10/200808
8820448.doc
______________________________________________________________________________
METHODOLOGIES
DES SYSTEMES
D'INFORMATION :
UML
___________________________________________________________________
DI GALLO Frédéric Page 2 15/10/200808
8820448.doc
______________________________________________________________________________
UP - LE PROCESSUS UNIFIÉ............................5
I. LE PROCESSUS DE DÉVELOPPEMENT : NOUVELLE APPROCHE.....................................................5
II. LE PROCESSUS UNIFIÉ : CADRE GÉNÉRAL............................................................................6
III. LE PROCESSUS UNIFIÉ EST PILOTÉ PAR LES CAS D’UTILISATION..............................................6
3.1) Présentation.......................................................................................................6
3.2) Exemple: guichet de banque..............................................................................6
IV. LE PROCESSUS UNIFIÉ EST CENTRÉ SUR L’ARCHITECTURE......................................................8
4.1) Liens entre cas d’utilisation et architecture ?....................................................8
4.2) Marche à suivre :................................................................................................8
V. LE PROCESSUS UNIFIÉ EST ITÉRATIF ET INCRÉMENTAL............................................................8
5.1) Avantages d’un processus itératif contrôlé........................................................9
VI. LE CYCLE DE VIE DU PROCESSUS UNIFIÉ............................................................................9
6.1) Présentation du cycle de vie de UP..................................................................10
6.2) Exemple sur les différents modèles...................................................................11
VII. CONCLUSION : UN PROCESSUS INTÉGRÉ.........................................................................12
___________________________________________________________________
DI GALLO Frédéric Page 3 15/10/200808
8820448.doc
______________________________________________________________________________
2.1) Les classes........................................................................................................50
2.2) Les associations................................................................................................51
III. LE DIAGRAMME DE COLLABORATION...............................................................................56
3.1) Interaction........................................................................................................56
3.2) De nouveaux stéréotypes de classe..................................................................56
3.3) Les Messages :.................................................................................................58
3.4) Exercice TVServices (parties III et IV).............................................................60
3.5) TP de synthèse: Création d'un site Web...........................................................63
___________________________________________________________________
DI GALLO Frédéric Page 4 15/10/200808
8820448.doc
______________________________________________________________________________
UP - LE PROCESSUS UNIFIÉ
UP MERISE
Cycle de vie itératif et Séquentiel
incrémental
Méthode générique
___________________________________________________________________
DI GALLO Frédéric Page 5 15/10/200808
8820448.doc
______________________________________________________________________________
Cas
d'utilisation
Acteur
Les cas d’utilisation font apparaître les besoins fonctionnels et leur ensemble constitue le
modèle des cas d’utilisation qui décrit les fonctionnalités complètes du système.
On va se demander, en premier, quels sont les utilisateurs du système (pas forcément des
utilisateurs physiques, mais plutôt des rôles). Ici, l'employé est aussi un client de la banque.
On a donc une personne physique pour deux rôles. Nous ne sommes pas dans une approche de
type fonctionnelle mais une approche pilotée par des cas d'utilisation.
___________________________________________________________________
DI GALLO Frédéric Page 6 15/10/200808
8820448.doc
______________________________________________________________________________
Les cas d’utilisation ne sont pas un simple outil de spécification des besoins du système.
Ils vont complètement guider le processus de développement à travers l’utilisation de
modèles basés sur l’utilisation du langage UML
A partir du modèle des cas d’utilisation, les développeurs créent une série de
modèles de conception et d’implémentation réalisant les cas d’utilisation.
Chacun des modèles successifs est ensuite révisé pour en contrôler la conformité
par rapport au modèle des cas d’utilisation.
Enfin, les testeurs testent l’implémentation pour s’assurer que les composants du
modèle d’implémentation mettent correctement en œuvre les cas d’utilisation.
___________________________________________________________________
DI GALLO Frédéric Page 7 15/10/200808
8820448.doc
______________________________________________________________________________
Il travaille ensuite, sur un sous ensemble des cas d’utilisations identifiés, ceux qui
représentent les fonctions essentielles du système en cours de développement.
___________________________________________________________________
DI GALLO Frédéric Page 8 15/10/200808
8820448.doc
______________________________________________________________________________
Le choix de ce qui doit être implémenté au cours d’une itération repose sur deux facteurs :
• Une itération prend en compte un certain nombre de cas d’utilisation qui ensemble,
améliorent l’utilisabilité du produit à un certain stade de développement.
• L’itération traite en priorité les risques majeurs.
Permet de limiter les coûts, en termes de risques, aux strictes dépenses liées à une
itération.
Permet de limiter les risques de retard de mise sur le marché du produit développé
(identification des problèmes dès les premiers stades de développement et non en
phase de test comme avec l’approche « classique »).
Permet de prendre en compte le fait que les besoins des utilisateurs et les exigences
correspondantes ne peuvent être intégralement définis à l’avance et se dégagent
peu à peu des itérations successives
L’architecture fournit la structure qui servira de cadre au travail effectué au cours des
itérations, tandis que les cas d’utilisation définissent les objectifs et orientent le travail de
chaque itération. Il ne faut donc pas mésestimer l’un des trois concepts.
Chaque cycle se traduit par une nouvelle version du système. Ce produit se compose d’un
corps de code source réparti sur plusieurs composants pouvant être compilés et exécutés et
s’accompagne de manuels et de produits associés. Pour mener efficacement le cycle, les
développeurs ont besoin de construire toutes les représentations du produit logiciel :
Tous ces modèles sont liés. Ensemble, ils représentent le système comme un tout. Les
éléments de chacun des modèles présentent des dépendances de traçabilité ; ce qui facilite
la compréhension et les modifications ultérieures.
___________________________________________________________________
DI GALLO Frédéric Page 10 15/10/200808
8820448.doc
______________________________________________________________________________
déposer de l'argent
virement entre comptes
client de la banque
___________________________________________________________________
DI GALLO Frédéric Page 11 15/10/200808
8820448.doc
______________________________________________________________________________
c) Diagramme de collaboration
___________________________________________________________________
DI GALLO Frédéric Page 12 15/10/200808
8820448.doc
______________________________________________________________________________
Approche du
langage UML
___________________________________________________________________
DI GALLO Frédéric Page 13 15/10/200808
8820448.doc
______________________________________________________________________________
UP - LE PROCESSUS UNIFIÉ 5
I. LE PROCESSUS DE DÉVELOPPEMENT : NOUVELLE APPROCHE 5
II. LE PROCESSUS UNIFIÉ : CADRE GÉNÉRAL 6
III. LE PROCESSUS UNIFIÉ EST PILOTÉ PAR LES CAS D’UTILISATION 6
3.1) Présentation 6
3.2) Exemple: guichet de banque 6
IV. LE PROCESSUS UNIFIÉ EST CENTRÉ SUR L’ARCHITECTURE 8
4.1) Liens entre cas d’utilisation et architecture ? 8
4.2) Marche à suivre : 8
V. LE PROCESSUS UNIFIÉ EST ITÉRATIF ET INCRÉMENTAL 8
5.1) Avantages d’un processus itératif contrôlé 9
VI. LE CYCLE DE VIE DU PROCESSUS UNIFIÉ 9
6.1) Présentation du cycle de vie de UP 10
6.2) Exemple sur les différents modèles 11
a) Diagramme de cas d'utilisation: 11
b) Modèle d'analyse: réalisation d'un cas d'utilisation 12
c) Diagramme de collaboration 12
VII. CONCLUSION : UN PROCESSUS INTÉGRÉ 12
___________________________________________________________________
DI GALLO Frédéric Page 14 15/10/200808
8820448.doc
______________________________________________________________________________
Synthèse de la démarche 29
4.3) Modélisation UML 29
Qu'est-ce qu'un modèle ? 29
La modélisation UML 29
Les cas d'utilisation 30
Modélisation des classes et objets 30
Modélisation d'une classe 33
La visibilité des attributs 33
___________________________________________________________________
DI GALLO Frédéric Page 15 15/10/200808
8820448.doc
______________________________________________________________________________
___________________________________________________________________
DI GALLO Frédéric Page 16 15/10/200808
8820448.doc
______________________________________________________________________________
___________________________________________________________________
DI GALLO Frédéric Page 17 15/10/200808
8820448.doc
______________________________________________________________________________
UML aujourd'hui : un standard incontournable
UML est le résultat d'un large consensus (industriels, méthodologistes...).
UML est le fruit d'un travail d'experts reconnus.
UML est issu du terrain.
UML est riche (il couvre toutes les phases d'un cycle de développement).
UML est ouvert (il est indépendant du domaine d'application et des langages
d'implémentation).
Après l'unification et la standardisation, bientôt l'industrialisation d'UML :
les outils qui supportent UML se multiplient (GDPro, ObjectTeam, Objecteering,
OpenTool, Rational Rose, Rhapsody, STP, Visio, Visual Modeler, WithClass...).
XMI (format d'échange standard de modèles UML).
___________________________________________________________________
DI GALLO Frédéric Page 18 15/10/200808
8820448.doc
______________________________________________________________________________
UML propose aussi une notation, qui permet de représenter graphiquement les
éléments de modélisation du métamodèle.
Cette notation graphique est le support du langage UML.
___________________________________________________________________
DI GALLO Frédéric Page 19 15/10/200808
8820448.doc
______________________________________________________________________________
Le processus (non couvert par UML) est une autre clé de la réussite d'un projet.
Or, l'intégration d'UML dans un processus n'est pas triviale et améliorer un processus est
un tâche complexe et longue. Les auteurs d'UML sont tout à fait conscients de l'importance du
processus, mais l'acceptabilité industrielle de la modélisation objet passe d'abord par la
disponibilité d'un langage d'analyse objet performant et standard.
___________________________________________________________________
DI GALLO Frédéric Page 20 15/10/200808
8820448.doc
______________________________________________________________________________
___________________________________________________________________
DI GALLO Frédéric Page 21 15/10/200808
8820448.doc
______________________________________________________________________________
(si l'application se conforme au modèle présenté au client, celui-ci peut difficilement
contester la validité du logiciel).
___________________________________________________________________
DI GALLO Frédéric Page 22 15/10/200808
8820448.doc
______________________________________________________________________________
De plus, le fait de programmer à l'aide d'un langage orienté objet ne fait pas d'un
programmer un concepteur objet. En effet il est tout à fait possible de produire un code
syntaxiquement juste sans pour autant adopter une approche objet. Ainsi la programmation
orientée objet implique en premier lieu une conception abstraite d'un modèle objet (c'est le
rôle de la méthode objet), en second plan l'implémentation à l'aide d'un langage orientée
objet (tel que C++/Java/...)
Une méthode objet est donc d'une part une méthode d'analyse du problème (afin de
couvrir toutes les facettes du problèmes), d'autre part un langage permettant une
représentation standard stricte des concepts abstraits (la modélisation) afin de constituer un
langage commun.
___________________________________________________________________
DI GALLO Frédéric Page 23 15/10/200808
8820448.doc
______________________________________________________________________________
CORBA fait partie d'une vision globale de la construction d'applications réparties, appelée
OMA (Object Management Architecture) et définie par l'OMG. Sans rentrer dans les détails,
on peut résumer cette vision par la volonté de favoriser l'essor industriel des technologies
objet, en offrant un ensemble de solutions technologiques non propriétaires, qui
suppriment les clivages techniques.
UML a été adopté (normalisé) par l'OMG et intégré à l'OMA, car il participe à cette
vision et parce qu'il répond à la "philosophie" OMG.
___________________________________________________________________
DI GALLO Frédéric Page 24 15/10/200808
8820448.doc
______________________________________________________________________________
___________________________________________________________________
DI GALLO Frédéric Page 25 15/10/200808
8820448.doc
______________________________________________________________________________
La vue de déploiement
Cette vue très importante dans les environnements distribués, décrit les ressources
matérielles et la répartition du logiciel dans ces ressources : la disposition et nature physique
des matériels, ainsi que leurs performances, l'implantation des modules principaux sur les
nœuds du réseau, les exigences en terme de performances (temps de réponse, tolérance aux
fautes et pannes...).
___________________________________________________________________
DI GALLO Frédéric Page 26 15/10/200808
8820448.doc
______________________________________________________________________________
Résumons la démarche...
Modéliser une application ? Mais comme UML n'est pas un processus... Quelle démarche
utiliser ? Trouver un "bon" modèle est une tâche difficile mais capitale !
1. Optez pour une approche itérative et incrémentale.
2. Centrez votre démarche sur l'analyse des besoins des utilisateurs.
3. Prenez grand soin à la définition de l'architecture de votre application (l'approche
"4+1" permet de mieux la cerner).
OK OK , mais en pratique ? ien qu'UML n'est pas un processus, il facilite une démarche
d'analyse itérative et incrémentale, basée sur les niveaux d'abstraction. Les niveaux
d'abstraction permettent de structurer les modèles. Un micro-processus régit les itérations à
niveau d'abstraction constant. Un macro-processus régit le passage de niveau à niveau. Une
démarche incrémentale consiste à construire les modèles de spécification et de conception en
plusieurs étapes (cible = catégories). Le schéma ci-dessous montre les niveaux d'abstraction
principaux, qu'on peut identifier dans un processus de développement logiciel :
___________________________________________________________________
DI GALLO Frédéric Page 27 15/10/200808
8820448.doc
______________________________________________________________________________
Conceptualisation
L'entrée de l'analyse à ce niveau, est le dossier d'expression des besoins client. A ce niveau
d'abstraction, on doit capturer les besoins principaux des utilisateurs. Il ne faut pas chercher
l'exhaustivité, mais clarifier, filtrer et organiser les besoins ! Le but de la conceptualisation est
de définir le contour du système à modéliser (de spécifier le "quoi"), de capturer les
fonctionnalités principales du système, afin d'en fournir une meilleure compréhension (le
modèle produit sert d'interface entre les acteurs du projet), de fournir une base à la
planification du projet.
Analyse du domaine
L'entrée de l'analyse à ce niveau, est le modèle des besoins clients (les "cas d'utilisation"
UML). Il s'agit de modéliser les éléments et mécanismes principaux du système. On
identifie les éléments du domaine, ainsi que les relations et interactions entre ces éléments :
les éléments du domaine sont liés au(x) métier(s) de l'entreprise, ils sont indispensables à la
mission du système, ils gagnent à être réutilisés (ils représentent un savoir-faire). A ce stade,
on organise aussi (selon des critères purement logiques), les éléments du domaine en
"catégories" : pour répartir les tâches dans les équipes, regrouper ce qui peut être générique,
etc...
Analyse applicative
A ce niveau, on modélise les aspects informatiques du système, sans pour autant rentrer
dans les détails d'implémentation. Les interfaces des éléments de modélisation sont définis
(cf. encapsulation). Les relations entre les éléments des modèles sont définies. Les éléments
de modélisation utilisés peuvent être propres à une version du système.
Conception
On y modélise tous les rouages d'implémentation et on détaille tous les éléments de
modélisation issus des niveaux supérieurs. Les modèles sont optimisés, car destinés à être
implémentés.
___________________________________________________________________
DI GALLO Frédéric Page 28 15/10/200808
8820448.doc
______________________________________________________________________________
Synthèse de la démarche
Modéliser une application n'est pas une activité linéaire.
Il s'agit d'une tâche très complexe, qui nécessite une approche :
itérative et incrémentale (grâce aux niveaux d'abstraction), car il est plus efficace de
construire et valider par étapes, ce qui est difficile à cerner et maîtriser,
centrée sur l'architecture (définie par la vue "4+1"), car il s'agit de la clé de voûte
qui conditionne la plupart des qualités d'une application informatique,
guidée par la prise en compte des besoins des utilisateurs (à l'aide des cas
d'utilisation), car ce qui motive l'existence même du système à concevoir, c'est la
satisfaction des besoins de ses utilisateurs.
La modélisation UML
Le méta-modèle UML fournit une panoplie d'outils permettant de représenter l'ensemble
des) éléments du monde objet (classes, objets, ...) ainsi que les liens qui les relie. Toutefois,
étant donné qu'une seule représentation est trop subjective, UML fournit un moyen astucieux
permettant de représenter diverses projections d'une même représentation grâce aux vues.
Une vue est constitué d'un ou plusieurs diagrammes.
___________________________________________________________________
DI GALLO Frédéric Page 29 15/10/200808
8820448.doc
______________________________________________________________________________
___________________________________________________________________
DI GALLO Frédéric Page 30 15/10/200808
8820448.doc
______________________________________________________________________________
___________________________________________________________________
DI GALLO Frédéric Page 31 15/10/200808
8820448.doc
______________________________________________________________________________
Un lien existe dès lors qu'un objet possède une visibilité vis-à-vis d'un autre, c'est-à-dire
lorsqu'un objet a un rapport direct avec un autre (appartenance, utilisation, communication,
...). Il est de plus possible d'ajouter des commentaires sur le modèle sous forme de notes. Une
note est représentée par un rectangle dont le coin supérieur droit est replié. Pour relier une
note à un objet il faut utiliser un trait discontinu (en pointillés).
___________________________________________________________________
DI GALLO Frédéric Page 32 15/10/200808
8820448.doc
______________________________________________________________________________
___________________________________________________________________
DI GALLO Frédéric Page 33 15/10/200808
8820448.doc
______________________________________________________________________________
• publique: Les fonctions de toutes les classes peuvent accéder aux données ou aux
méthodes d'une classe définie avec le niveau de visibilité public. Il s'agit du plus bas
niveau de protection des données
• protégée: l'accès aux données est réservé aux fonctions des classes héritières, c'est-
à-dire par les fonctions membres de la classe ainsi que des classes dérivées
• privée: l'accès aux données est limité aux méthodes de la classe elle-même. Il s'agit
du niveau de protection des données le plus élevé
___________________________________________________________________
DI GALLO Frédéric Page 34 15/10/200808
8820448.doc
______________________________________________________________________________
Introduction au
langage UML
___________________________________________________________________
DI GALLO Frédéric Page 35 15/10/200808
8820448.doc
______________________________________________________________________________
UP - LE PROCESSUS UNIFIÉ 5
I. LE PROCESSUS DE DÉVELOPPEMENT : NOUVELLE APPROCHE 5
II. LE PROCESSUS UNIFIÉ : CADRE GÉNÉRAL 6
III. LE PROCESSUS UNIFIÉ EST PILOTÉ PAR LES CAS D’UTILISATION 6
3.1) Présentation 6
3.2) Exemple: guichet de banque 6
IV. LE PROCESSUS UNIFIÉ EST CENTRÉ SUR L’ARCHITECTURE 8
4.1) Liens entre cas d’utilisation et architecture ? 8
4.2) Marche à suivre : 8
V. LE PROCESSUS UNIFIÉ EST ITÉRATIF ET INCRÉMENTAL 8
5.1) Avantages d’un processus itératif contrôlé 9
VI. LE CYCLE DE VIE DU PROCESSUS UNIFIÉ 9
6.1) Présentation du cycle de vie de UP 10
6.2) Exemple sur les différents modèles 11
a) Diagramme de cas d'utilisation: 11
b) Modèle d'analyse: réalisation d'un cas d'utilisation 12
c) Diagramme de collaboration 12
VII. CONCLUSION : UN PROCESSUS INTÉGRÉ 12
___________________________________________________________________
DI GALLO Frédéric Page 36 15/10/200808
8820448.doc
______________________________________________________________________________
Synthèse de la démarche 29
4.3) Modélisation UML 29
Qu'est-ce qu'un modèle ? 29
La modélisation UML 29
Les cas d'utilisation 30
Modélisation des classes et objets 30
Modélisation d'une classe 33
La visibilité des attributs 33
___________________________________________________________________
DI GALLO Frédéric Page 37 15/10/200808
8820448.doc
______________________________________________________________________________
___________________________________________________________________
DI GALLO Frédéric Page 38 15/10/200808
8820448.doc
______________________________________________________________________________
UML est un langage de modélisation avec plusieurs objectifs qui en font un véritable outil
de communication:
- Comprendre et décrire les besoins,
- Spécifier (un système),
- Etablir l'architecture logicielle.
Un cas d’utilisation est une manière spécifique d’utiliser un système. C’est l’image
d’une fonctionnalité du système, déclenchée en réponse à la stimulation d’un acteur
externe.
___________________________________________________________________
DI GALLO Frédéric Page 39 15/10/200808
8820448.doc
______________________________________________________________________________
Cas
d'utilisation
Acteur
Acteur : entité externe qui agit sur le système ; Le terme acteur ne désigne pas
seulement les utilisateurs humains mais également les autres systèmes. les acteurs
sont des classificateurs qui représentent des rôles au travers d'une certaine
utilisation (cas) et non pas des personnes physiques. Ce sont des acteurs types.
guichet
Retirer de l'argent
Client de la banque
Déposer de l'argent
Ravitailler distributeur
Réparer le distributeur
Agent de maintenance
___________________________________________________________________
DI GALLO Frédéric Page 40 15/10/200808
8820448.doc
______________________________________________________________________________
A chaque fois qu’une instance d’un acteur déclenche un cas d’utilisation, un scénario est
créé : ce scénario suivra un chemin particulier dans la description d’un cas d’utilisation. Un
scénario ne contient pas de branche du type « si la condition X est vraie alors faire Y », car
pendant l’exécution la condition est soit vraie, soit fausse mais elle aura toujours une valeur.
Bien sûr il est impossible de décrire un cas d’utilisation en écrivant tous les scénarios,
l’exhaustivité est difficile à atteindre, mais il faut répertorier les scénarios les plus
représentatifs afin de gérer les risques. On recherchera donc le ou les scénarios nominaux et
les principaux cas d’exceptions.
___________________________________________________________________
DI GALLO Frédéric Page 41 15/10/200808
8820448.doc
______________________________________________________________________________
5- M. Martin prend l’argent.
___________________________________________________________________
DI GALLO Frédéric Page 42 15/10/200808
8820448.doc
______________________________________________________________________________
Etapes de construction:
1. Les acteurs
2. Pour chaque acteur, recherche des cas d'utilisation,
3. Structuration des cas d'utilisation pour faire apparaître les comportements partagés
(relation d'inclusion), les cas particuliers ou options (relation d'extension), les
généralisations / spécialisations.
a) La relation d’inclusion :
Lors de la description des cas d’utilisation, il apparaît qu’il existe des sous-ensembles
communs à plusieurs cas d’utilisation, il convient donc de factoriser ces fonctionnalités en
créant de nouveaux cas d’utilisation qui seront utilisés par les cas d’utilisation qui les avaient
en commun.
Un cas d’utilisation A utilise un cas d’utilisation B signifie que :
- une instance de A va engendrer une instance de B et l’exécuter,
- A dépend de B,
- B n’existe pas tout seul et A n’existe pas sans B
Exemple :
Retirer de
l’argent « include »
Déposer de « include »
l’argent S’authentifier
« include »
Effectuer des virements
« include »
Consulter solde
Les cas de base « Déposer de l’argent », « Retirer de l’argent », « Effectuer des virements
entre comptes » et « Consulter solde » incorporent de façon explicite le cas d’utilisation
« S’authentifier », à un endroit spécifié dans leurs enchaînements.
___________________________________________________________________
DI GALLO Frédéric Page 43 15/10/200808
8820448.doc
______________________________________________________________________________
Remarquez que dans une relation « include », le cas d’utilisation de base utilise
systématiquement les enchaînements provenant du cas inclus.
On utilise cette relation pour éviter de décrire plusieurs fois un même enchaînement
d’actions. Ainsi on est amené à factoriser un comportement commun à plusieurs cas
d’utilisation dans un cas d’utilisation à part.
b) La relation d’extension
Exemple :
« extend »
Retenir carte
S’authentifier
La relation d'héritage ou de généralisation entre cas est plus subtile. La version 1.1 de
UML ne distinguait d'ailleurs pas <<extend>> et généralisation. Cette relation est à prendre
au sens classique de spécialisation, inhérent à 'héritage. Ici, la généralisation peut être vue
aussi comme un "polymorphisme" de cas.
Réserver
voyage
Dans un système d'agence de voyage, un acteur touriste peut participer à un cas de base qui
est "Réserver voyage", qui suppose par exemple des interactions basiques au comptoir de
l'agence. Une réservation peut aussi être réalisée par téléphone ou internet. On voit qu'il ne
s'agit pas de relation <<extend>> car la réservation par Internet n'étend pas les interactions ni
les fonctionnalités du cas 'Réserver voyage". Elle les traduit différemment. Les interactions
Internet ne sont pas une option des interactions comptoir. Par contre les deux cas "Réserver
voyage" et "Réserver voyage par Internet" sont liés : la réservation par Internet est un cas
particulier de réservation. De façon générale en objet, une situation de cas particulier se
traduit par une relation de généralisation.
___________________________________________________________________
DI GALLO Frédéric Page 45 15/10/200808
8820448.doc
______________________________________________________________________________
autorisés, plages horaires autorisées, durée maximale hebdomadaire de visualisation
autorisée appelée "crédit hebdomadaire").»
Travail à faire:
I.l) Expliquer le diagramme ci-dessous par un texte décrivant les informations qu'il contient
en les contextualisant dans le cadre de TVServices (deux sens possibles, ambiguïté ).
I.2) Quel peut-être l'intérêt de séparer les cas d'utilisation "ContrôleAccèsUtil" et "Identifier"
du cas d'utilisation "Administrer"?
I.3) Représenter par un fragment de diagramme de cas d'utilisation le fait que parmi les
acteurs sollicitant le système, "Client" et "Administrateur" sont tous deux "Utilisateur".
Utilisateur
___________________________________________________________________
DI GALLO Frédéric Page 46 15/10/200808
8820448.doc
______________________________________________________________________________
Client Administrateur
___________________________________________________________________
DI GALLO Frédéric Page 47 15/10/200808
8820448.doc
______________________________________________________________________________
___________________________________________________________________
DI GALLO Frédéric Page 48 15/10/200808
8820448.doc
______________________________________________________________________________
U M L_ D IG A LLO
R egarder ém is s ion C o ns ult er m agaz ine C on s ult er lis t e im m édiat em ent dis p on ible
___________________________________________________________________
DI GALLO Frédéric Page 49 15/10/200808
8820448.doc
______________________________________________________________________________
Dans un premier temps c’est à cette dernière catégorie de classes que nous allons nous
intéresser. Le diagramme de classe va être un outil nous permettant de représenter le modèle
du domaine. Le modèle du domaine saisit les éléments les plus importants pour comprendre
le contexte du système :
- les objets métiers (mis en œuvre dans une activité professionnelle tels que les
commandes, les contrats..) ,
- les concepts du domaine à modéliser dont le système doit garder une trace,
- les évènements s’étant produits ou devant se produire qui déclencheront un
certain comportement des objets.
b) Représentation
Nom de la classe
Attributs
Opérations
___________________________________________________________________
DI GALLO Frédéric Page 50 15/10/200808
8820448.doc
______________________________________________________________________________
Exemple :
VEHICULE
Marque
Modèle
Immatriculation
Niveau du carburant
..
Accélérer()
Vidanger()
Une classe correspond à un concept global d’information et se compose d’un ensemble
d’informations élémentaires, appelées attributs de la classe qui servent à la décrire.
UML définit trois niveaux de visibilité pour les attributs et les opérations :
Public qui rend l’élément visible à tous les clients de la classe,
Protégé qui rend l’élément visible aux sous classes de la classe,
Privé qui rend l’élément visible à la classe seule.
c) Syntaxe
Nom_attribut : type_attribut = valeur_par_défaut
Dans un premier temps on ne retiendra comme attribut que des données non calculées,
cependant par commodité de gestion on pourra garder des attributs pouvant être construits à
partir d’autres attributs (on rajoutera / devant l’attribut dit dérivé).
d) Opérations
La définition d’une classe est complétée par l’ensemble des opérations qu’elle peut
exécuter. Une opération est une fonctionnalité assurée par la classe.
Le niveau de détail à retenir pour décrire les opérations est fonction du niveau
d’avancement de l’étude.
A B
___________________________________________________________________
DI GALLO Frédéric Page 51 15/10/200808
8820448.doc
______________________________________________________________________________
Exemple : ENSEIGNANT
ETUDIANT SALLE
COURS
DateDébut
DateFin
b) Rôle
Les extrémités d’une association sont appelées rôles et peuvent porter un nom. Le rôle
décrit comment une classe voit une autre classe au travers d’une association.
___________________________________________________________________
DI GALLO Frédéric Page 52 15/10/200808
8820448.doc
______________________________________________________________________________
GARAGE
LOCATAIRE
1
1
1..* 1..*
louer CONTRAT
BOX
1 0..1
1..* Autoriser
0..2 VEHICULE
Travail à faire :
Faites une description de ce diagramme de classe en explicitant en une phrase chacune des
multiplicités.
Un box peut être loué par au maximum un seul contrat ou peut rester non loué.
Un contrat concerne la location d'un seul box à la fois.
Un box peut être vide ou contenir au maximum 2 véhicule.
Un véhicule est autorisé à aller dans un box (au minimum) ou plus.
Un contrat ne concerne qu'un seul locataire.
Un locataire peut souscrire plusieurs contrat mais doit en avoir souscrit au moins un.
___________________________________________________________________
DI GALLO Frédéric Page 53 15/10/200808
8820448.doc
______________________________________________________________________________
Il peut arriver que l’on ait besoin de garder des informations (attributs ou opérations)
propres à une association. Une classe de ce type est appelée classe association.
Exemple :
LIG-COM LIVRAISON
1..* 1
Quantité
Une classe association est une classe comme une autre qui peut entretenir des relations
avec d’autres classes
g) Agrégation
Une agrégation est un type particulier d’association. Elle traduit la volonté de renforcer la
dépendance entre les classes. C’est une association non symétrique dans laquelle une des
extrémités joue un rôle prédominant par rapport à l’autre extrémité.
Attention : l’inverse n’est pas toujours vrai ; l’agrégation n’implique pas nécessairement
tous les critères ci-dessus.
1 1..*
GARAGE BOX
___________________________________________________________________
DI GALLO Frédéric Page 54 15/10/200808
8820448.doc
______________________________________________________________________________
h) La composition
La composition est un cas particulier d’agrégation dans laquelle la vie des composants est
liée à celle de l’agrégat. Dans la composition, l’agrégat ne peut être multiple. La
composition se représente par un losange noir.
C om m u n e
1 1 1
M ai ri e C on s e i l M u n i ci pal S e rvi ce
Une composition est une association contraignante : la suppression d’un objet agrégat
entraîne la suppression des objets agrégés.
i) Généralisation :
UML emploie le terme de généralisation pour désigner la relation de classification entre
un élément plus général et un élément plus spécifique. La relation de généralisation
signifie « est un » ou « est une sorte de ».
Instrument
La classe ‘Instrument’ est une classe générique, elle porte les attributs communs à tous les
instruments. La classe ‘Instrument à cordes’ est une classe spécialisée qui porte les attributs
spécifiques à ce type d’instrument.
Une classe spécialisée peut avoir des relations avec d’autres classes.
___________________________________________________________________
DI GALLO Frédéric Page 55 15/10/200808
8820448.doc
______________________________________________________________________________
3.1) Interaction
La séquence d’actions d’un scénario d’un cas d’utilisation débute lorsqu’un acteur
invoque ce cas d’utilisation en envoyant une forme quelconque de message au système. En
fait ce n’est pas le système dans son ensemble qui va recevoir le message mais un objet
frontière (ou interface). L’objet frontière va envoyer à son tour un message à un autre objet,
de sorte que les objets concernés vont dialoguer pour réaliser ce cas d’utilisation ou plus
précisément un scénario de ce cas d’utilisation.
___________________________________________________________________
DI GALLO Frédéric Page 56 15/10/200808
Exemple : Utilisation d’un diagramme de collaboration pour décrire la réalisation du scénario « retrait autorisé » du cas d’utilisation
« retirer de l’argent »
IntGuichet/:IGuichetAccueil 2:DemanderAutorisation(Code)
Contrôleur1/:CAutorisation
1:Identifier(Code)
4:AutoriserCréation(ListeComptes) 3:[ContrôleOK]ObtenirListe()
5:ChoixCompteMontant(Compte,Montant)
IntChoixMontant/:IGuichetMontant
ComptesMartin/:Compte
M. Martin/:Client de la banque
6:DemanderRetrait(Compte, Montant)
CompteClient/:Compte
9:DélivrerArgent()
7:ValiderEtEffectuerRetrait()
Contrôleur2/:CRetrait Multi-objet
8:AutoriserRetrait(montant)
IntDistributeur/:Idistributeur
Le diagramme de collaboration peut être complété par du texte décrivant de quelle façon les objets dialoguent pour effectuer le scénario du
cas d’utilisation. C’est une description de scénario un peu plus précise.
___________________________________________________________________
DI GALLO Frédéric Page 60 15/10/200808
8820448.doc
______________________________________________________________________________
e version du diagramme de classe faisant apparaître les classes entités et les attributs nécessaires à la vision
e de classe.
Em i s s i on
1..* 1
T it re : s t ring C haine
D urée : s t ring Pr op os er
1..*
App ar tenir
1..*
T ype d'é m i s s i on
1..*
Reg ar der
1..*
___________________________________________________________________
DI GALLO Frédéric Page 61 15/10/200808
8820448.doc
______________________________________________________________________________
armi les chaînes accessibles (fonction de l'abonnement) au client, parmi les émissions en cours de diffusion,
s à l'utilisateur qui a déclenché la session.
t une.
images correspondantes au téléviseur.
éléviseur.
30 secondes; au bout des 30 secondes, le téléviseur restant arrêté, le système ferme la session.
'utilisation.
___________________________________________________________________
DI GALLO Frédéric Page 62 15/10/200808
8820448.doc
______________________________________________________________________________
sion d'un membre à l'association doit se faire en ligne. Une personne peut demander à devenir adhérente à
ée par deux membres en place. Le demandeur connecté à la partie du site de l'IWTS accessible au public,
demande d'adhésion. La première partie du formulaire demande une @dresse électronique et les références
contrôle de l'identité des parrains une clé est fournie au demandeur (dans sa boîte aux lettres électronique)
r au formulaire d'adhésion complet. L'association souhaite connaître; l'identité du demandeur, son adresse
e le plus important, son adresse professionnelle, sa profession (par exemple ingénieur d'études) et sa fonction
exemple directeur de laboratoire), ses thèmes préférés de recherche et les récompenses obtenues (par
e la meilleure publication sur le thème du lagunage...). Le demandeur choisit les groupes thématiques auquel
doit fournir également sa photo numérisée et les références de deux articles dont il est l'auteur; ces articles
des revues scientifiques répertoriées, ou être disponibles sur un site, auquel cas c'est l'adresse réticulaire
ournit.Un des membres du conseil (composé d'un président, d'un vice président, et d'un nombre de membres
ortionnel au nombre d'adhérents de ce collège) qui dirige l'association examine la demande d'adhésion,
ientifique des deux articles cités par le demandeur et contrôle le parrainage. Si le conseil apprécie le dossier
e lui est proposé et il peut devenir membre. S'il confirme sa demande, le demandeur (admis) signale le mode
on qu'il souhaite. Le tarif dépend du collège du membre. Le membre admis peut, après s'être acquitté du
des informations privées de l'association. L'enregistrement du paiement est effectué par le secrétariat. Il fait
diffusion du groupe thématique auquel il a choisi d'appartenir; il pourra dialoguer avec les autres membres
charte déontologique des listes. Cela peut se faire à tout moment notamment lors de la confirmation de
des articles:
ion est publiée pour ses membres sur le web tous les trois mois. Les membres ont deux mois entre chaque
articles. Un article possède un titre, un thème et des mots clefs. La sélection des articles est décidée par le
ux lecteurs du groupe thématique correspondant, choisis par le conseil. Un article peut être accepté, refusé
dements, pour une relecture. L'avis, après la deuxième lecture est définitif. L'auteur de l'article reçoit une
ù sont notées les remarques précises des lecteurs, ceux ci restent anonymes. Un résumé de chaque article
r la partie publique du site web, à titre d'apéritif, avec ses mots clefs.
vrages:
sociation réalisent parfois1 des ouvrages spécifiques (CDROM de photos par exemple).Ces ouvrages sont
à condition qu'ils demeurent scientifiques et non publicitaires (le traitement de l'acceptation d'un ouvrage est
rticle sans que ne se pose le problème de délai). Ces ouvrages sont alors mis en vente pour tout public sur le
bénéfices entre auteur et éditeur est alors calculée).
ure analytique du texte ci-dessus, produisez une première version du diagramme des cas d'utilisation du
WTS". Veillez à respecter les frontières du système. Une des approches possibles consiste à passer au crible
pes nominaux) ; ils sont candidats à être des objets du système ou des acteurs extérieurs, utilisateurs du
___________________________________________________________________
DI GALLO Frédéric Page 63 15/10/200808
8820448.doc
______________________________________________________________________________
rmes verbales), quand à eux, marquent un aspect dynamique, un lien entre objets, un comportement du
'il rend.
mme des cas d'utilisation, on sélectionnera les acteurs et les services.
___________________________________________________________________
DI GALLO Frédéric Page 64 15/10/200808
8820448.doc
______________________________________________________________________________
dentité des parrains (0K) et veille à la non redondance du nom du demandeur (0K). */
l'@ [email protected] la clé LMU3288. PA renouvelle sa demande d'adhésion
un formulaire d'adhésion en ligne.
mulaire avec la clé qui lui a été fournie (LMU3268), son adresse personnelle (18, Rue des Roses Trémières
nne, France...), son diplôme le plus important (Ph D en biologie), son adresse professionnelle (...), sa
études) et sa fonction dans l'organisation dont il fait partie (directeur du laboratoire de biologie appliquée),
recherche (l'utilisation des algues dans le processus de lagunage et les groupes thématiques auxquels il
a ntation & traitements biologiques). */
aire incluant sa photo (magnétique), et les références de deux articles dont il est l'auteur publiées sur le site
nieur.
message vers la bal du conseil.
), membre du conseil, demande à accéder au dossier.
le dossier.
n au collège des laboratoires. /* Le serveur enregistre l'avis du conseil. */
vis du conseil à PA.
___________________________________________________________________
DI GALLO Frédéric Page 65 15/10/200808
8820448.doc
______________________________________________________________________________
nde d'adhésion au collège des laboratoires, signale son mode de
ion par chèque bancaire, et signe la charte afin d'utiliser les listes de
x thèmes qu'il a choisi.
gistre le paiement de la cotisation. /* PA devient membre effectif */
détail le texte de description du cas d'utilisation « adhérer », produire une première version du diagramme
cette application.
___________________________________________________________________
DI GALLO Frédéric Page 66 15/10/200808
8820448.doc
______________________________________________________________________________
___________________________________________________________________
DI GALLO Frédéric Page 67 15/10/200808