76
INTRODUCTION A UML INTRODUCTION A UML INTRODUCTION A UML INTRODUCTION A UML M. Lo – Introduction à UML – 02/2008 1 Moussa LO UFR de Sciences Appl. & de Technologie UGB de Saint-Louis

UML3

Embed Size (px)

Citation preview

Page 1: UML3

INTRODUCTION A UMLINTRODUCTION A UMLINTRODUCTION A UMLINTRODUCTION A UML

M. Lo – Introduction à UML – 02/2008 1

Moussa LO

UFR de Sciences Appl. & de Technologie

UGB de Saint-Louis

Page 2: UML3

Bibliographie

• Intégrez UML dans vos projets, N. Lopez, J. Migueis, E. Pichon, Eyrolles, 1998.

• Modélisation objet avec UML, P. Muller, Eyrolles, 1998.

• UML 2 en action, P. Roques, F. Vallée, Eyrolles, 2004

M. Lo – Introduction à UML – 02/2008 2

• UML 2, Initiation, exemples et exercices corrigés, L. Debrauwer, F. V. der Heyde, ENI, 2005.

• UML 2, Entraînez-vous à la modélisation, L. Debrauwer, N. Karam, ENI, 2005.

Page 3: UML3

Webographie

• UML @ site de l’OMG, http://www.uml.org/ .

• UML en français, http://uml.free.fr/ .

• UML @ developpez.com, http://uml.developpez.com/

M. Lo – Introduction à UML – 02/2008 3

• UML @.wikipedia, http://fr.wikipedia.org/wiki/Unified_Modeling_Language

• Support de cours UML de F. Julliard, Université de Bretagne Sud, 2002.

• Support de cours UML de Y. Laloum, CNAM.

Page 4: UML3

UML (Unified Modeling Language )

• Résultat de la fusion de plusieurs modèles de conception objet comme :

� OMT (J. Rimbaugh),

� BOOCH (G. Booch),

M. Lo – Introduction à UML – 02/2008 4

� BOOCH (G. Booch),

� OOSE (I. Jacobson), etc.

• Adopté et normalisé par l’OMG (Object Management Group) en 1997.

• Représentation standardisée d’un système orienté objet.

Page 5: UML3

UML (Unified Modeling Language )

• UML ≠≠≠≠ Méthode de conception

• UML = notation graphique normaliséede présentation de certains concepts pour modéliser des systèmes objets.

M. Lo – Introduction à UML – 02/2008 5

de certains concepts pour modéliser des systèmes objets.

• Peut être utilisée avec tout processus de développement objet.

Page 6: UML3

UML (Unified Modeling Language )

• La version actuelle de UML (2) s’articule autour de 13

diagrammes.

� 4 ont été introduits dans UML 2, Juillet 2005.

M. Lo – Introduction à UML – 02/2008 6

• Chaque diagramme fournit une représentation du systèmesuivant un point de vueparticulier.

Page 7: UML3

UML (Unified Modeling Language )

• UML modélisele système suivant 2 modes de représentation(nécessaires et complémentaires):

� Mode statique(ou structurel) : concerne la structure du système pris au repos.

M. Lo – Introduction à UML – 02/2008 7

� Mode dynamique(ou comportemental) : concerne la dynamique de fonctionnement du système.

� UML schématise la manière dont le système est composé et comment ses composantes sont liées.

Page 8: UML3

Les 7 diagrammes UML de structure

� Use cases: description des fonctionnalités du point de vue user

� Classes: structuration des entités manipulées par les utilisateurs (classes, interfaces)

� Packages : hiérarchie des modules du système (UML 2)

� Objets : illustration des structures de classe complexes en montrant des exemples d’instances et leurs relations

M. Lo – Introduction à UML – 02/2008 8

montrant des exemples d’instances et leurs relations

� Structure composite : description de la composition d’un objet complexe lors de son exécution(UML 2)

� Composants: architecture des composants physiques du système

� Déploiement: description de l’installation des composants du système sur le matériel et sur le réseau

Page 9: UML3

Les 6 diagrammes UML de comportement

� Etats : représentation du cycle de vie commun aux objets d’une même classe.

� Activités : règles d’enchaînement des activités du système.

� Séquences: description d’échanges de messages entre objets dans le cadre d’un fonctionnement particulier du système;

M. Lo – Introduction à UML – 02/2008 9

dans le cadre d’un fonctionnement particulier du système; représentation des scénarios d’utilisation du système.

� Communication (ou collaboration) : représentation simplifiée du diagramme de séquence.

� Global d’interactions : association entre diagrammes de séquence et d’activités (UML 2).

� De temps: description de contraintes tps-réel délicates (UML 2).

Page 10: UML3

Quelques outils UML

� Rational Rose, http://www-306.ibm.com/software/rational/

� WinDesign, http://www.win-design.com/

� Objecteering/UML, http://www.objecteering.com/

� Poseidon

M. Lo – Introduction à UML – 02/2008 10

� Poseidon, http://www.gentleware.com/

� ArgoUML , http://argouml.tigris.org/

� EclipseUML, http://www.eclipsedownload.com/

Page 11: UML3

Les cas d’utilisation d’UML

analyse

M. Lo – Introduction à UML – 02/2008 11

spécifications Use cases

tests

Page 12: UML3

Use cases d’UML

• Modélisation de processus métiersen les découpant en cas d’utilisation.

• Représentation des fonctionnalités du système.

• Composé :

� d’acteurs:

M. Lo – Introduction à UML – 02/2008 12

� utilisateursdu système à représenter� rôle joué par une personne ou une chose extérieure qui

interagit avec le système

� de cas d’utilisation : � fonctionnalitésproposées par le système� « classes » dont les instances sont des scénarios

Page 13: UML3

Cas d’utilisation d’un GAB

M. Lo – Introduction à UML – 02/2008 13

Exemple tiré de « Introduction à UML, Y. Laloum, CNAM »

Page 14: UML3

Les acteurs

• Représentent la frontière entre :� les éléments constitutifs de l’application

� les éléments extérieurs à l’application

• Un acteur est un élément extérieurau système qui interagit avec ce dernier.

M. Lo – Introduction à UML – 02/2008 14

• L’identification des acteurs permet d’avoir une vue orientée utilisateur du système.

• Acteurs primaires: utilisateurs du système

• Acteurs secondaires: administrateurs du système

• Un acteur possède un rôle.

Page 15: UML3

Représentation UML des acteurs / système

Exemple d’une application bancaire

?

Guichetier (enregistre les opérations courantes)

Responsable des devises (fournit les infos sur le

M. Lo – Introduction à UML – 02/2008 15

?Directeur (fait le bilan journalier)

infos sur le cours des devises)

RQ : On ne représente pas les relations entre les acteurs.

Page 16: UML3

Les acteurs

• Humains :

� Utilisateurs du logiciel (via l’interface graphique)

• Logiciels :

� Autres logiciels qui interagissent avec le logiciel

M. Lo – Introduction à UML – 02/2008 16

• Matériels :

� Matériels qui exploitent les données du logiciel ou qui sont pilotés par le logiciel

� Ne pas confondre acteuret personneutilisant le système :

� Une même personnepeut jouer plusieurs rôles

� Plusieurs personnespeuvent jouer un même rôle

Page 17: UML3

Définition d’un acteur

• Pour chaque acteur :� choisir un identificateur représentatif du rôle

� mettre, éventuellement, une brève description textuelle

M. Lo – Introduction à UML – 02/2008 17

Page 18: UML3

Les use cases (cas d’utilisation)

• Quelles sont les vues que les acteurs identifiés ont du système ?

� Identifier les fonctionnalités du système

• Use case:

M. Lo – Introduction à UML – 02/2008 18

• Use case:

� représente une fonctionnalité déclenchée suite à une action initiée par un acteur.

� correspond à une manière spécifique d’utiliser le système.

� suite d’interactions entre un acteur et le système

� décrit un ensemble de scénarios

Page 19: UML3

Acteur et use case

M. Lo – Introduction à UML – 02/2008 19

Page 20: UML3

Représentation textuelle d’un use case

• Pour documenter les CA, la description textuelle est indespensable afin de communiquer facilement avec les utilisateurs.

• Rubriques habituelles obligatoires :

M. Lo – Introduction à UML – 02/2008 20

� Nom : verbe à l’infinitif décrivant une intercation

entre un acteur et le système.

� Résumé : brève description du CA.

� Acteurs : liste des acteurs interagissant avec le CA.

� Description : texte explicatant le CA.

Page 21: UML3

Représentation textuelle d’un use case

• Rubriques habituelles optionnelles :

� Pré-conditions : conditions nécessaires pour

déclencher le CA.

� Post-conditions : conditions remplies après

M. Lo – Introduction à UML – 02/2008 21

l’exécution du CA (état du système après réalisation

du CA).

� Exceptions : décrit les éventuelles exceptions levées. (Un CA décrit le comprtement du système lorsqu’il n’y a pas d’exception.)

Page 22: UML3

Représentation textuelle d’un use case

� Use case “ Retrait en espèces “

• Nom : Retrait en espèces

• Acteurs : Guichetier

• Description :

M. Lo – Introduction à UML – 02/2008 22

Description :

� Le guichetier saisit le numéro de compte du client.

� L’application vérifie la validité du numéro de compte et demande le type d’opération au guichetier.

� Le guichetier sélectionne un retrait d’espèces d’un certain montant.

� L’application vérifie que le montant est disponible dans le compte. Si oui, elle débite le compte et informe le guichetier qu’il peut donner la somme au client.

Page 23: UML3

Exemples de diagramme de use cases

M. Lo – Introduction à UML – 02/2008 23

Page 24: UML3

Exemples de diagramme de use cases

M. Lo – Introduction à UML – 02/2008 24

Page 25: UML3

Relations entre use cases

� 2 types de relations:

• Extension (extends)

• Utilisation (usesou include)

M. Lo – Introduction à UML – 02/2008 25

Page 26: UML3

La Relation extends

• Tous les use cases fils

• sont des cas particuliers du use case père

• héritent des caractéritisques du père

M. Lo – Introduction à UML – 02/2008 26

Page 27: UML3

La Relation uses

• Permet de décomposer un use case complexe en plusieurs use cases plus simples.

M. Lo – Introduction à UML – 02/2008 27

Page 28: UML3

Relations entre use cases : exemple tiré de Y. Laloum

M. Lo – Introduction à UML – 02/2008 28

Page 29: UML3

Les use cases (cas d’utilisation)

� L’ensemble des cas d’utilisation d’un système contient:� les exigences fonctionnelles attendues ou existantes

� les acteurs

� les relations qui unissent acteurs et fonctionnalités.

M. Lo – Introduction à UML – 02/2008 29

� les relations qui unissent acteurs et fonctionnalités.

� Les cas d’utilisation servent de support pour les étapes de modélisation, de développement et validation.

� Référentiel du dialogue entre les informaticiens et les clients.

� Base pour l’élaboration du cahier des charges.

Page 30: UML3

Exemple : distributeur automatique

On considère un distributeur automatique de produits courants (bonbons, boissons, etc.).

Une fois qu’il a choisi les produits qu’il désire acheter, le client doit ensuite payer ses achats, soit en espèces,

M. Lo – Introduction à UML – 02/2008 30

client doit ensuite payer ses achats, soit en espèces, soit par carte bancaire.

Lors de l’achat d’un produit alimentaire, le client verifier la date limite de consommation du produit.

Page 31: UML3

Exemple : distributeur automatique

M. Lo – Introduction à UML – 02/2008 31

Page 32: UML3

Les scénarios

M. Lo – Introduction à UML – 02/2008 32

Les scénarios

Page 33: UML3

Scénarios

• “ Série d’évènements ordonnés dans le temps simulant une éxécution particulière du système”, Lopez, Migueis, Pichon.

• “Ensemble ordonné de messages échangés par des objets (instance de classe ou d’acteur)”, Roques, Vallée.

M. Lo – Introduction à UML – 02/2008 33

objets (instance de classe ou d’acteur)”, Roques, Vallée.

• Instance de cas d’utilisation.

• Permettent d’expérimenter les exécutions du système � très utiles lors des tests.

Page 34: UML3

Scénarios

� Pour chaque cas d ’utilisation, il existe un ou plusieurs scénarios dont la description permet d’expliciter le comportement du système pour une situation donnée.

Exemple (tiré de Y. Laloum)

M. Lo – Introduction à UML – 02/2008 34

Page 35: UML3

Représentation d’un scénario

Un scénario peut être représenté par un diagramme de séquence.

Exemple de diagramme de séquence

M. Lo – Introduction à UML – 02/2008 35

Le diagramme de séquence se focalise sur les aspect s temporels.

Page 36: UML3

Représentation d’un scénario

Un scénario peut être aussi représenté par un diagramme de communication (diagramme de collaboration dans UML 1).

Exemple de diagramme de communication

M. Lo – Introduction à UML – 02/2008 36

Le diagramme de communication se focalise sur la re présentation spatiale.

Page 37: UML3

Le diagramme de séquence

M. Lo – Introduction à UML – 02/2008 37

Page 38: UML3

Diagramme de séquence

• Décrit la dynamique d’une sous-fonction du système.

• La dynamique globale d’un système nécessite

plusieurs diagrammes de séquences.

M. Lo – Introduction à UML – 02/2008 38

• Modélise les messages échangés entre objets en

mettant l’accent sur la chronologie des messages.

• Décrit les interactions entre un groupe d’objets en

montrant, de façon séquentielle, les envois de message

qui interviennent entre les objets.

Page 39: UML3

Diagramme de séquence : messages

• Pour interagir entre eux, les objets s’envoient des

messages.

� Lors de la réception d’un message, un objet devient actif et

exécute la méthode appropriée.

M. Lo – Introduction à UML – 02/2008 39

� Envoi de message = appel de méthode

• Message: spécification d’une communication

unidirectionnelle entre objets qui transporte de

l’information avec intention de déclencher une réaction

chez le récepteur.

Page 40: UML3

Diagramme de séquence : ligne de vie

• Le diagramme de séquence fait entrer en action les instances des classes intervenant dans la réalisation de la sous-fonction qui lui est liée.

M. Lo – Introduction à UML – 02/2008 40

• A chaque instance est associée une ligne de vie qui montre ses actions et réactions, ainsi que les périodes durant lesquelles elle est active.

Page 41: UML3

Diagramme de séquence : ligne de vie

nom objet : Classe

nom de l’objet et de sa classe

Le nom de l’objet est optionnel

M. Lo – Introduction à UML – 02/2008 41

période d’activité de l’objet

ligne de vie de l’objet

Un diagramme de séquence contient plusieurs lignes de vie.

Page 42: UML3

Diagramme de séquence : messages

• Les envois de messagesont représentés par des flèches horizontalesreliant la ligne de vie de l’objet émetteur à celle de l’objet destinataire.

objet_1 : Classe objet_2 : Classe

M. Lo – Introduction à UML – 02/2008 42

objet_1 : Classe objet_2 : Classe

message

Page 43: UML3

Diagramme de séquence : messages

• La transmission d’informations est possible.

objet_1 : Classe objet_2 : Classe

M. Lo – Introduction à UML – 02/2008 43

objet_1 : Classe objet_2 : Classe

message (donnee1, donnee2)

Page 44: UML3

Diagramme de séquence : messages

3 catégories de messages :

• Synchrone (appel) : invocation d’une opération;

l’émetteur donne la main au récepteur et est bloqué jusqu’au

traitement effectif du message.

M. Lo – Introduction à UML – 02/2008 44

• Asynchrone(signal) : communication explicite entre 2

objets; l’émetteur n’est pas bloqué et peut poursuivre son

exécution. (cas des systèmes multi-thread).

• De retour :retour du résultat d’une fonction

Page 45: UML3

Diagramme de séquence : messages

Auto-envoi de message :

Un objet peut s’envoyer un message.

objet : Classe

M. Lo – Introduction à UML – 02/2008 45

objet : Classe

Page 46: UML3

Diagramme de séquence : messages

Creation et destruction d’un objet :

• Création d’objet : message spécifique qui donne

lieu au début de la ligne de vie du nouvel objet.

M. Lo – Introduction à UML – 02/2008 46

• Destruction d’objet : message envoyé à un objet

existant et qui donne lieu à la fin de sa ligne de vie.

Représenté par une croix.

Page 47: UML3

Diagramme de séquence : messages

Creation et destruction d’un objet :

objet_1 : Classe

objet_2 : Classe

M. Lo – Introduction à UML – 02/2008 47

objet_2 : Classe

X

Page 48: UML3

Exemple : distributeur automatique

M. Lo – Introduction à UML – 02/2008 48

Page 49: UML3

Le diagramme de classes

M. Lo – Introduction à UML – 02/2008 49

Page 50: UML3

Diagramme de classes

• Permet de définir l’ensemble des classes et leurs relations.

• Une classe est représentée par un rectangleséparé en 3 parties :

M. Lo – Introduction à UML – 02/2008 50

parties :� La 1ière partie contient le nom de la classe

� La 2e partie contient les attributs de la classe

� La 3e partie contient les méthodes de la classe

• Pour des raisons de lisibilité, on peut masquer ou non une de ces parties

Page 51: UML3

Diagramme de classes : représentation d’une classe

public class Etudiant {public String nom; public String prenom;private String numero_ins;

public Etudiant(String nom) {this.nom = nom;

}

M. Lo – Introduction à UML – 02/2008 51

public String getNumIns() { return this. numero_ins; }public void setNumIns(String numero_ins) {

if (numero_ins==null || numero_ins.length!=11) return; this.numero_ins = numero_ins;

}

public void afficher(){System.out.println(“etudiant :”+ nom);

}}

Page 52: UML3

Diagramme de classes : représentation d’une classe

Nom Classe

attribut1 : typeattribut2 : type = valeur

methode1(args)

M. Lo – Introduction à UML – 02/2008 52

methode1(args)methode2():type

Page 53: UML3

Diagramme de classes : visibilité

• (+) public : accessible par toutes les classes.

• (-) private : accessible que par les seules méthodes de sa classe.

M. Lo – Introduction à UML – 02/2008 53

• (#) protected: accessible par les classes du même package.

Page 54: UML3

Diagramme de classes : association

• Une association représente une relation structurelle entre classes d’objets.

• On représente une association en traçant une ligne entre les classes associées.

M. Lo – Introduction à UML – 02/2008 54

entre les classes associées.

Page 55: UML3

Diagramme de classes : association

• Association ternaire:

Classe1 Classe2

M. Lo – Introduction à UML – 02/2008 55

Classe3

Page 56: UML3

Diagramme de classes : association

Types de multiplicité des associations

1 : un et un seul

0 .. 1 : zéro ou un

M. Lo – Introduction à UML – 02/2008 56

m .. n : de m à n

* : de zéro à plusieurs

0 .. * : de zéro à plusieurs

1 .. * : de un à plusieurs

N : exactement N

Page 57: UML3

Diagramme de classes : association

• Classe Association:

Classe1 Classe2

M. Lo – Introduction à UML – 02/2008 57

ClasseAssociation

Page 58: UML3

Diagramme de classes : composition/agregation

• Composition :

� Les composants font partie de l’objet composé.

� Chaque composant ne peut être partagé entre plusieurs objets composés.

M. Lo – Introduction à UML – 02/2008 58

plusieurs objets composés.

• Agregation :

� Composition faible.

� Les composants peuvent être partagés par plusieurs composés.

Page 59: UML3

Diagramme de classes : composition/agregation

M. Lo – Introduction à UML – 02/2008 59

Page 60: UML3

Diagramme de classes : héritage

M. Lo – Introduction à UML – 02/2008 60

Page 61: UML3

Diagramme de classes : interfaces

M. Lo – Introduction à UML – 02/2008 61

Page 62: UML3

Les diagrammes d’objets et

de structure composite

• Complètent le diagramme de classe.

• Les diagrammes d’objets servent à illustrer desstructuresde classescompliquéesen montrantdes

M. Lo – Introduction à UML – 02/2008 62

structuresde classescompliquéesen montrantdesexemples d’instance.

• Les diagrammes de structure composite permettentde décrire la composition d’un objet complexe lorsde l’exécution.

Page 63: UML3

Diagramme de packages

• Un package est un ensemble de classes et d'autrespackages regroupés sous un nom.

• C'est l'adaptation du concept de librairie ou debibliothèque.

M. Lo – Introduction à UML – 02/2008 63

bibliothèque.

• Servent à structurer l’ensemble des classes etinterfaces.

• Permet de structurer un système en plusieurs parties,chacune représentée par un package .

Page 64: UML3

Diagramme de packages

M. Lo – Introduction à UML – 02/2008 64

Page 65: UML3

Diagramme de packages

M. Lo – Introduction à UML – 02/2008 65

Page 66: UML3

Le diagramme d’états

Représente le cycle de viecommun aux objets d’1 même classe.

Exple : Situation professionnelle d’une personne

M. Lo – Introduction à UML – 02/2008 66

Page 67: UML3

Le diagramme d’états : état

• Moment du cycle de vie d’un objet.

• Dans un état, un objet peut êtreActif ou Inactif :

• Inactif : attendunsignalprovenantd’autresobjets

M. Lo – Introduction à UML – 02/2008 67

• Inactif : attendunsignalprovenantd’autresobjets

• Actif : réalise une activité (exécution d’une série deméthodes liée à un objectif)

• Le changement d’état est déclenché par unévenement : réception d’un message.

Page 68: UML3

Le diagramme d’états : transition

• Lien orienté entre 2 états qui exprime le fait que l’objet a la possibilité de passer d’un état d’origine à un état de destination.

• Généralement associée à un évènement.

M. Lo – Introduction à UML – 02/2008 68

Page 69: UML3

Le diagramme d’états : exemple

Lettre recommandée

M. Lo – Introduction à UML – 02/2008 69

Page 70: UML3

Le diagramme d’activités

• Permet de représenter graphiquement le comportement

d’une méthode ou le déroulement d’un cas

d’utilisation.

• Il est composé :

M. Lo – Introduction à UML – 02/2008 70

• Il est composé :

• d’un noeud initial

• d’activités liées entre elles par des évènements

• se termine par un noeud final

Page 71: UML3

Le diagramme d’activités

• Forme spécifique du diagramme d’états-transitionsdans lequel :

� chaque état est associé à une activité

� toutes les transitions sont automatiques (enchaînements)

M. Lo – Introduction à UML – 02/2008 71

• Activité : série d’actions.

• Action :

� Affecter une valeur à un attribut,

� Créer ou détruire un objet,

� Effectuer une operation, etc.

Page 72: UML3

Le diagramme d’activités : exemple

• Authentification d’un utilisateur.

M. Lo – Introduction à UML – 02/2008 72

Page 73: UML3

Le diagramme de composants

• Décrit les composants et leurs dépendances dansl’environnement de réalisation.

• Vue statique de l’implémentation des systèmes quimontrentleschoixderéalisation.

M. Lo – Introduction à UML – 02/2008 73

montrentleschoixderéalisation.

• En général, il n’est utilisé que pour des systèmescomplexes.

Page 74: UML3

Diagramme de composants

Modélisation de l’architecture logicielle et sa structuration en composants.

M. Lo – Introduction à UML – 02/2008 74

Page 75: UML3

Les diagramme de déploiement

• Montre la disposition physique des différents matériels– les noeuds– qui entrent dans la composition d’unsystème et la répartition des instances de composants,processus et objets qui « fonctionnent » sur cesmatériels.

M. Lo – Introduction à UML – 02/2008 75

matériels.

• Modélisation de l’architecture matérielle.

• Très utile pour des systèmes distribués.

Page 76: UML3

Le diagramme de déploiement

M. Lo – Introduction à UML – 02/2008 76