Vous êtes sur la page 1sur 86

Cours de

Gnie Logiciel
Sciences-U Lyon
Diagrammes UML
http://www.rzo.free.fr

Pierre PARREND

Mars 2005

Sommaire

Les Diagrammes UML

Niveaux de modles

Elments communs aux diagrammes

Diagrammes de cas d'utilisation

Diagrammes de Classes

Diagrammes d'Objets

Diagrammes de Squence

Pierre PARREND

Mars 2005

Niveaux de Modles

Les Niveaux de modles

UML

Pierre PARREND

Mars 2005

Sommaire

Les Diagrammes UML

Niveaux de modles

Elments communs aux diagrammes

Diagrammes de cas d'utilisation

Diagrammes de Classes

Diagrammes d'Objets

Diagrammes de Squence

Pierre PARREND

Mars 2005

Elments communs

Elments communs aux diagrammes

Note

Dpendance

Modification dans la cible implique modification dans la source

Pierre PARREND

Mars 2005

Elments communs

Elments communs aux diagrammes

Hritage

Pierre PARREND

Packages

Mars 2005

Elments communs

Elments communs aux diagrammes

Streotypes

Classe prdfine

<<acteur>>

Pierre PARREND

Mars 2005

Sommaire

Les Diagrammes UML

Niveaux de modles

Elements communs aux diagrammes

Diagrammes de cas d'utilisation

Diagrammes de Classes

Diagrammes d'Objets

Diagrammes de Squence

Pierre PARREND

Mars 2005

Cas d'utilisation

Les Diagrammes de cas d'utilisation

Objectif : dtermination des besoins

Fonctionnalits du systme

Acteurs

Cas d'utilisation

Relations entre les 2

association

Systme

Pierre PARREND

Mars 2005

Cas d'utilisation

Les Diagrammes de cas d'utilisation

Formalisation du cahier des charges

Evolutions du systme

Centrs sur l'utilisateur

Expression simple

Permet le dialogue entre le client et le dveloppeur

Point de dpart du dveloppement

Pierre PARREND

10

Mars 2005

Cas d'utilisation

Les Diagrammes de cas d'utilisation

Utilisateur

Analyste

Architecte

Programmeur

Testeur

Exprimer
Comprendre
Concevoir
Raliser
Vrifier

Pierre PARREND

11

Mars 2005

Cas d'utilisation

Les acteurs

1 acteur = plusieurs personnages

1 personnage = plusieurs acteurs

Ex : acheteurs

Ex : boulanger, vendeur

Toute personne qui interagit avec le systme

Pierre PARREND

12

Mars 2005

Cas d'utilisation

Les acteurs

Acteurs principaux

Acteurs secondaires

Maintenance, tches administratives

Matriel externe

Ex : client, dans le cas d'un distributeur de billets

Indispensable au domaine. Ex : imprimante pour le reu

Autres systmes

Ex : systme bancaire

Pierre PARREND

13

Mars 2005

Cas d'utilisation

Les cas d'utilisation

Strotype

Nom

<<acteur>>

Eleve

Proprit

Cours = Genie Logiciel

Pierre PARREND

14

Mars 2005

Cas d'utilisation

Les cas d'utilisation

Relation de gnralisation

Relation d'inclusion

Relation d'extension

Pierre PARREND

15

Mars 2005

Cas d'utilisation

Les cas d'utilisation

Reprsentent

Les tches de l'acteur

Informations cres ou utilises par l'acteur

Changements externes ncessaires au systme

Doivent tre simples

Possibilit de les fractionner

A partir de scnarii

Pierre PARREND

16

Mars 2005

Cas d'utilisation

Les cas d'utilisation

Analyse

'Build the right system'

Pas conception

Pas 'Build the system right'

Passage une vue Objet indispensable

Pour la ralisation du systme

Pierre PARREND

17

Mars 2005

Sommaire

Les Diagrammes UML

Niveaux de modles

Elments communs aux diagrammes

Diagrammes de cas d'utilisation

Diagrammes de Classes

Diagrammes d'Objets

Diagrammes de Squence

Pierre PARREND

18

Mars 2005

Sommaire

UML : Diagrammes de Classes

Prsentation

Classes

Associations

Autres types de classes

Exemples

Pierre PARREND

19

Mars 2005

Diagrammes de Classes

Prsentation

Structure statique des systmes

Contient

Classes

Relations entre ces classes

Interfaces

Packages

Pierre PARREND

20

Mars 2005

Diagrammes de Classes

Prsentation

Classe

Instancie par des objets

Unique dans un package

Syntaxe : 'nomPackage :: nomClasse'

Strotype, proprits

Associations

Instancies par des liens

Pierre PARREND

21

Mars 2005

Diagrammes de Classes

Prsentation

Interface

'Vue totale ou partielle sur un ensemble de services'

Descripteur des oprations

Sans code

Pas d'attribut

Pas d'association

Pierre PARREND

22

Mars 2005

Diagrammes de Classes

Prsentation

Package

Pierre PARREND

23

Mars 2005

Sommaire

UML : Diagrammes de Classes

Prsentation

Classes

Associations

Autres types de classes

Exemples

Pierre PARREND

24

Mars 2005

Sommaire

UML : Diagrammes de Classes : Classes

Attributs et Oprations

Classes paramtrables

Strotypes

Mots Cls

Pierre PARREND

25

Mars 2005

Diagrammes de Classes

Classes : Attributs et Oprations

Les compartiments

Nom de la classe

Attributs

Oprations

Pierre PARREND

26

Mars 2005

Diagrammes de Classes

Classes : Attributs et Oprations

Attributs

Ce qu'est la classe

Nom : type = valeur initiale

Test : boolean = false

Peut tre constant

'const'

Reprsentation par la composition

Pierre PARREND

Voir Associations

Reprsentation implicite

27

Mars 2005

Diagrammes de Classes

Classes : Attributs et Oprations

Attributs

Attributs drivs

Pierre PARREND

'/surface'

28

Mars 2005

Diagrammes de Classes

Classes : Attributs et Oprations

Oprations

Ce que fait la classe

Nom (nom de paramtre : type de paramtre) : type de Retour

multiplier(a : int, b : int) : int

Proprits

Pierre PARREND

Direction des arguments des oprations

Types d'opration

29

Mars 2005

Diagrammes de Classes

Classes : Attributs et Oprations

Oprations

Proprits

Pierre PARREND

Directions d'un argument d'une opration

In argument en entre, non modifi par l'opration

Out argument en sortie, rcupration d'information

Inout argument pass l'opration et modifiable

30

Mars 2005

Diagrammes de Classes

Classes : Attributs et Oprations

Oprations

Proprits

Des Oprations

{request} pas de modification de l'tat de l'instance appele

{abstract} opration non implmente

{final} opration qui ne peut pas tre redfinie dans une sousclasse

{isRoot} racine, opration dfinie pour la premire fois dans la


hirarchie des classes

Pierre PARREND

31

Mars 2005

Diagrammes de Classes

Classes : Attributs et Oprations

Visibilit

Pour attributs et oprations

+ public

# protected

Accessible par tous les objets (dans et hors de la classe)


Accessible seulement par la classe et les sous-classes

- private

Pierre PARREND

Accessible seulement par les objets de la classe

32

Mars 2005

Diagrammes de Classes

Classes : Attributs et Oprations

Compartiments supplmentaires

En plus du Nom de Classe, Attributs, Oprations

Responsabilit de la classe

Evnements gnrs

Reprsent aussi par une relation de dpendance strotype


<<envoie>>

Exceptions acceptes

Pierre PARREND

33

Mars 2005

Sommaire

UML : Diagrammes de Classes : Classes

Attributs et Oprations

Classes paramtrables

Strotypes

Mots Cls

Pierre PARREND

34

Mars 2005

Diagrammes de Classes

Classes : Classes paramtrables

= classes templates

Patron de classe : attributs, valeurs par dfaut, oprations

Langages Eiffel, C++

Utilis en conception dtaille

Paramtre
formel
Classe paramtrable

Pierre PARREND

Elment de
la table
Table gntique

35

Mars 2005

Sommaire

UML : Diagrammes de Classes : Classes

Attributs et Oprations

Classes paramtrables

Strotypes

Mots Cls

Pierre PARREND

36

Mars 2005

Diagrammes de Classes

Classes : Strotypes (1)

Dfinition

Extension du langage UML

Prcision sur le type

De Classe

D'Association

'Cration d'un nouvel lment de modlisation par extension


de la smantique d'un lment du mta-modle'

Pierre PARREND

37

Mars 2005

Diagrammes de Classes

Classes : Strotypes (2)

Diffrents strotypes

<<classe implmentation>>

<<numration>>

Domaine de valeur d'un type

<<mta-classe>>

Dans un langage de programmatin donn

Classe d'une classe

<<powertype>>

Pierre PARREND

Reprsente un type

Ses instances sont des sous-types de ce type


38

Mars 2005

Diagrammes de Classes

Classes : Strotypes (3)

Diffrents strotypes

<<processus>>

<<thread>>

Flux de contrle lourd


Flux de contrle lger

<<type>>

Domaine d'objets

Opration sur ce domaine

<<utilitaire>>

Pierre PARREND

Regroupement d'oprations (Ex : Math)

Pas instanciables
39

Mars 2005

Sommaire

UML : Diagrammes de Classes : Classes

Attributs et Oprations

Classes paramtrables

Strotypes

Mots Cls

Pierre PARREND

40

Mars 2005

Diagrammes de Classes

Classes : Mots cls (1)

Diffrents des strotypes

Propre un mtamodle donn

Pas partie intgrante des spcifications UML

Pierre PARREND

41

Mars 2005

Diagrammes de Classes

Classes : Mots cls (2)

Exemples frquents

<<acteur>>

<<interface>>

Ensemble de rles jous par un acteur dans le systme


Descripteurs des oprations, sans code

<<signal>>, <<exception>>

Pierre PARREND

Communication entre les classes

Hors appel de mthode

42

Mars 2005

Sommaire

UML : Diagrammes de Classes

Prsentation

Classes

Associations

Autres types de classes

Exemples

Pierre PARREND

43

Mars 2005

Diagrammes de Classes

Associations

Relation structurelle entre deux classes d'objets

Dure de vie non ngligeable

Par rapport aux objets qui instancient les classes concernes

Relie deux classificateurs

Classes, interfaces

Parfois plus : association reprsente par une classe

Pierre PARREND

44

Mars 2005

Diagrammes de Classes

Associations

Reprsentation

Signification

On accde la classe 1 depuis la classe 2

On accde la classe 2 depuis la classe 1

Pierre PARREND

45

Mars 2005

Diagrammes de Classes

Associations

Nommage

Souvent forme verbale

Active : travaille pour (Personne<->societe)

Passive : est employ par (Personne<->societe)

Lecture

Pierre PARREND

Sens prcis par < ou >

De gauche droite par dfaut

46

Mars 2005

Diagrammes de Classes

Associations

Rles

Extrmit d'une association

Indication des rles relatifs des deux classes relies par association

Pseudo-attribut de la classe source

Ex : Employeur est un pseudo attribut de la classe Personne

Indication de visibilit

Pierre PARREND

Public par dfaut

Priv (-) ou protg (#)

47

Mars 2005

Diagrammes de Classes

Associations

Associations multiples

Concepts distncts dans la classe source

Ici : dans Avion, attributs Pilote et Passagers

Pas les mmes personnes

Sinon, erreur

Pierre PARREND

48

Mars 2005

Diagrammes de Classes

Associations

Associations multiples
Public class Avion{
Personne pilote;
Personne passager1;
Personne passager2;
Personne getPilote(){
return pilote;
}
List getPassagers(){
return List.add(passager1, passager2)
}
}

Pierre PARREND

49

Mars 2005

Diagrammes de Classes

Associations

Types

Gnralisation

Agrgation

Composition

Pierre PARREND

50

Mars 2005

Diagrammes de Classes

Associations

Gnralisation

Une classe gnrique (super classe)

Une classe spcialise (classe fille)

Pierre PARREND

51

Mars 2005

Diagrammes de Classes

Associations

Gnralisation

Exemple

public class SuperClasse{


}
public class Classe extends SupperClasse{
}

Pierre PARREND

52

Mars 2005

Diagrammes de Classes

Associations

Gnralisation

Classes abstraites

Pierre PARREND

53

Mars 2005

Diagrammes de Classes

Associations

Agrgation

Les Elements existent indpendamment de l'ensemble

Pierre PARREND

54

Mars 2005

Diagrammes de Classes

Associations

Agrgation

Modlisation d'une contrainte d'intgrit

Propagation de valeur d'une classe vers une autre

Propagation d'action d'une classe vers une autre

Exemple

Pierre PARREND

personne propritaire d'un immeuble

Proprtaire multiple: co-propritaires

55

Mars 2005

Diagrammes de Classes

Associations
public class Immeuble {
/**
* @poseidon-type Personne
*/
public java.util.Collection Proprietaire = new java.util.TreeSet();
}

public class Personne {


/**
* @poseidon-type Immeuble
*/
public java.util.Collection immeuble = new java.util.TreeSet();
}

Pierre PARREND

56

Mars 2005

Diagrammes de Classes

Associations

Composition

Les lements sont spcifiques l'ensemble : ne peuvent pas tre


partags (ex : roue de vlo)

L'ensemble n'existe que par la prsence des lments

Pierre PARREND

Et disparait avec le dernier lment

57

Mars 2005

Diagrammes de Classes

Associations

Composition

Cas particulier d'agrgation

Couplage plus fort

Dure de vie identique pour le composant et le composite

Pierre PARREND

58

Mars 2005

Diagrammes de Classes

Associations

Composition
public class Velo {
/**
* @poseidon-type Roue
*/
public java.util.Collection roue = new java.util.TreeSet();
}

public class Roue {


/**
* <p></p>
*/
public Vlo vlo;
}

Pierre PARREND

59

Mars 2005

Diagrammes de Classes

Associations

Classe d'association

L'association peut tre manipule

Pierre PARREND

60

Mars 2005

Diagrammes de Classes

Associations

Arit

Associations binaires - classiques

Associations n-aires

Pierre PARREND

Parfois reprsentes par un losange

61

Mars 2005

Diagrammes de Classes

Associations

Multiplicit

Contraintes lies au domaine d'application

Valable pendant toute la vie de l'objet

Pas d'influence sur l'ordre de cration des objets (associations simples)

Pierre PARREND

62

Mars 2005

Diagrammes de Classes

Associations

Multiplicit

possibilits

0..1
N
M..N
*
0..*
1..*

Pierre PARREND

1 Un seul
Zro ou un
N (entier naturel)
De M N (entiers naturels)
De zro plusieurs
De zro plusieurs
D'un plusieurs

63

Mars 2005

Diagrammes de Classes

Associations

Contraintes : exemples

Peuvent tre galement exprimer par le langage OCL

Object Contraint Language

{sous-ensemble}

{ordonn}

Pierre PARREND

64

Mars 2005

Diagrammes de Classes

Associations

Navigabilit

Possibilit d'accs d'une classe l'autre

Association oriente

Pierre PARREND

Compte est un attribut de Personne

65

Mars 2005

Diagrammes de Classes

Associations

Navigabilit

Association bidirectionnelle

Une modification dans une classe est rpercute dans la classe


associe

Pierre PARREND

Complexe si association en chane

Erreur si boucle d'associations

66

Mars 2005

Diagrammes de Classes

Associations

Dpendances

'Associations lgres'

<<appelle>>

Liaison

<<lie>>

Permission

<<ami>>

Pierre PARREND

Utilisation

Abstraction

<<utilise>>

<<cre>>

<<instancie>>

<<drive>>

<<appelle>>

<<raffine>>

<<ralise>>

<<trace>>Mars 2005

67

Sommaire

UML : Diagrammes de Classes

Prsentation

Classes

Associations

Autres types de classes

Exemples

Pierre PARREND

68

Mars 2005

Sommaire

Autres Classes

Classes actives

Rification de flots de contrle

= classe strotype

<<thread>> ou

<<processus>>

mission et rception de signaux, d'vnements

Pierre PARREND

69

Mars 2005

Sommaire

UML : Diagrammes de Classes

Prsentation

Classes

Associations

Autres types de classes

Exemples

Pierre PARREND

70

Mars 2005

Diagrammes de Classes

Exemples

Interfaces

Pierre PARREND

71

Mars 2005

Sommaire

Les Diagrammes UML

Niveaux de modles

Elments communs aux diagrammes

Diagrammes de cas d'utilisation

Diagrammes de Classes

Diagrammes d'Objets

Diagrammes de squence

Pierre PARREND

72

Mars 2005

Sommaire

UML : Diagrammes d'Objet

= Diagrammes d'instances

Objets et liens

Structure statique

Permet d'identifier les objets prsents

Avant de raliser le diagramme de classe

Nom de l'objet:Classe[Etat]

Pierre PARREND

73

Mars 2005

Sommaire

UML : Diagrammes d'Objet

Exemple
<<Devient>>
Tuture:Voiture[Roule]

Tuture:Voiture[EnPanne]

Proprietaire
Paul:Personne[Conduit]

Pierre PARREND

74

Mars 2005

Sommaire

Les Diagrammes UML

Niveaux de modles

Elments communs aux diagrammes

Diagrammes de cas d'utilisation

Diagrammes de Classes

Diagrammes d'Objets

Diagrammes de Squence

Pierre PARREND

75

Mars 2005

Diagrammes de
Squence

Les Diagrammes de squence

Interactions entre objets

Voir diagrammes de collaboration

Reprsentation des interactions dans le temps

Scnarii complexes

Avec un nombre limit d'objets

Pierre PARREND

76

Mars 2005

Diagrammes de
Squence

Les Diagrammes de squence

Instances

Objet

Ligne de vie

Message

Message

Activation de l'instance mitrice


Activation de l'instance receptrice

Rponse

Pierre PARREND

Activation de l'instance mitrice

77

Mars 2005

Diagrammes de
Squence

Les Diagrammes de squence

Message de Creation

Message de Termination

Pierre PARREND

78

Mars 2005

Diagrammes de
Squence

Les Diagrammes de squence

Catgories de messages

Synchrone

Asynchrone

Pierre PARREND

79

Mars 2005

Diagrammes de
Squence

Les Diagrammes de squence

Appel de procdure

Plusieurs reprsentations

Pierre PARREND

80

Mars 2005

Diagrammes de
Squence

Les Diagrammes de squence

Catgories d'envoi de message

Appel d'un objet lui-mme

Flot de contrle plat

Appel de procdure

= flot de contrle emboit

Retour d'appel de procdure

Pierre PARREND

81

Mars 2005

Diagrammes de
Squence

Les Diagrammes de squence

Catgories d'envoi de message

Appel d'un objet lui-mme

Pierre PARREND

82

Mars 2005

Diagrammes de
Squence

Les Diagrammes de squence

Catgories d'envoi de message

Flot de contrle plat

Pierre PARREND

83

Mars 2005

Diagrammes de
Squence

Les Diagrammes de squence

Catgories d'envoi de message

Appel de procdure

Pierre PARREND

= flot de contrle emboit

84

Mars 2005

Diagrammes de
Squence

Les Diagrammes de squence

Catgories d'envoi de message

Retour d'appel de procdure

Pierre PARREND

Fin d'activation d'objet

!= fin de vie d'objet

85

Mars 2005

Diagrammes UML

Bilan

Analyse : diagrammes de cas d'usage

Conception : diagramme de classes

Implmentation : classes et squences

Pierre PARREND

86

Mars 2005

Vous aimerez peut-être aussi