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

Packages

Pierre PARREND

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
9 Mars 2005

Pierre PARREND

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

Ex : acheteurs

1 personnage = plusieurs acteurs

Ex : boulanger, vendeur

Toute personne qui interagit avec le systme

Pierre PARREND

12

Mars 2005

Cas d'utilisation

Les acteurs

Acteurs principaux

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

Acteurs secondaires

Maintenance, tches administratives

Matriel externe

Indispensable au domaine. Ex : imprimante pour le reu

Autres systmes

Ex : systme bancaire
13 Mars 2005

Pierre PARREND

Cas d'utilisation

Les cas d'utilisation

Strotype

<<acteur>>

Nom

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

Pas conception

'Build the right system'

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' Voir Associations Reprsentation implicite

Reprsentation par la composition

Pierre PARREND

27

Mars 2005

Diagrammes de Classes

Classes : Attributs et Oprations

Attributs

Attributs drivs

'/surface'

Pierre PARREND

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

Direction des arguments des oprations Types d'opration

Pierre PARREND

29

Mars 2005

Diagrammes de Classes

Classes : Attributs et Oprations

Oprations

Proprits

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

Pierre PARREND

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

Accessible par tous les objets (dans et hors de la classe) Accessible seulement par la classe et les sous-classes Accessible seulement par les objets de la classe

# protected

- private

Pierre PARREND

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


Elment de la table Table gntique

Paramtre formel Classe paramtrable

Pierre PARREND

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>>

Dans un langage de programmatin donn Domaine de valeur d'un type Classe d'une classe Reprsente un type Ses instances sont des sous-types de ce type
38 Mars 2005

<<numration>>

<<mta-classe>>

<<powertype>>

Pierre PARREND

Diagrammes de Classes

Classes : Strotypes (3)

Diffrents strotypes

<<processus>>

Flux de contrle lourd Flux de contrle lger Domaine d'objets Opration sur ce domaine Regroupement d'oprations (Ex : Math) Pas instanciables
39 Mars 2005

<<thread>>

<<type>>

<<utilitaire>>

Pierre PARREND

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>>

Ensemble de rles jous par un acteur dans le systme Descripteurs des oprations, sans code Communication entre les classes Hors appel de mthode

<<interface>>

<<signal>>, <<exception>>

Pierre PARREND

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) Sens prcis par < ou > De gauche droite par dfaut

Lecture

Pierre PARREND

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 Public par dfaut Priv (-) ou protg (#)

Indication de visibilit

Pierre PARREND

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

personne propritaire d'un immeuble Proprtaire multiple: co-propritaires

Pierre PARREND

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

Et disparait avec le dernier lment

Pierre PARREND

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

Parfois reprsentes par un losange

Pierre PARREND

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..*

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

Pierre PARREND

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

Compte est un attribut de Personne

Pierre PARREND

65

Mars 2005

Diagrammes de Classes

Associations

Navigabilit

Association bidirectionnelle

Une modification dans une classe est rpercute dans la classe associe Complexe si association en chane Erreur si boucle d'associations

Pierre PARREND

66

Mars 2005

Diagrammes de Classes

Associations

Dpendances

'Associations lgres'

<<appelle>>

Liaison

Utilisation

Abstraction

<<lie>>

<<utilise>> <<instancie>> <<appelle>>


67

<<cre>> <<drive>> <<raffine>> <<ralise>>


Mars 2005 <<trace>>

Permission

<<ami>>

Pierre PARREND

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] Proprietaire Paul:Personne[Conduit] Tuture:Voiture[EnPanne]

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

Activation de l'instance mitrice Activation de l'instance receptrice Activation de l'instance mitrice

Message

Rponse

Pierre PARREND

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

= flot de contrle emboit

Pierre PARREND

84

Mars 2005

Diagrammes de Squence

Les Diagrammes de squence

Catgories d'envoi de message

Retour d'appel de procdure

Fin d'activation d'objet != fin de vie d'objet

Pierre PARREND

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