1 introduction à uml françoise schlienger remise à niveau 2004-2005

32
1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005 Départem entInform atique

Upload: veillantif-cano

Post on 03-Apr-2015

104 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

1

Introduction à UML

Françoise Schlienger

Remise à niveau

2004-2005

Département Informatique

Page 2: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

2

Les méthodes objet

OBJECTORY(1992)

FUSION(1994)

CLASSERELATION

(1991)

OOA(S&M)(1991)

OMT(1991)

G. BOOCH(1991)

OOM(1991)

OBJETSNATURELS

(1991)

MERISE 2(1993)

EUROMETHODE

UML

MERISE +

1990-1995

Actuellement

Page 3: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

3

UML : Unified Modeling Language

• octobre 94 : Grady Booch (Méthode Booch) et James Rumbaugh (OMT) commencent à unifier leurs 2 méthodes.

--> Unified Method 0.8

• fin 1995 : Ivar Jacobson introduit certains concepts de sa méthode (OOSE)

Langage de modélisation unifié avec pour objectifs de :

- ne plus faire évoluer les méthodes de manière indépendante les unes des autres,

- unifier la sémantique et les notations et amener ainsi une stabilité sur le marché "orienté-objet "

- rassembler leurs efforts pour résoudre des problèmes qu'aucune des trois méthodes ne peut bien résoudre.

Page 4: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

4

UML : Unified Modeling Language

• octobre 1996 : UML 0.9 (Unified Modeling Language)diffusion au sein de la "communauté informatique" et intégration des remarques.

• 16 janvier 1997 : le document UML a été soumis à l'OMG (Object Management Group). .

• 14 novembre 1997 : adoption d'UML 1.1 comme standard par l'OMG.

• Novembre 1998 : UML 1.3

• 2000 : UML 1.4

Sites officiels : www.omg.org

www.uml.org

Page 5: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

5

Bibliographie

• Modélisation objet avec UML

Pierre-Alain Muller, Eyrolles 1997, Eyrolles 2000

• Intégrer UML dans vos projets

N. Lopez, J. Migueis, E. Pichon, Eyrolles 1997

• UML pour l'analyse d'un système d'information

Chantal Morley, Jean Hugues, Bernard Leblanc , Dunod 2000

• Le guide de l'Utilisateur UML

Grady Booch, James Rumbaugh, Ivar Jacobson, Eyrolles 2000

• Le processus unifié de développement logiciel

Grady Booch, James Rumbaugh, Ivar Jacobson, Eyrolles 2000

Page 6: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

6

UML : généralités

UML propose :

• des éléments de modélisation qui représentent les abstractions du système en cours de modélisation

• des éléments de visualisation qui procurent des projections textuelles ou graphiques permettant la manipulation des éléments de modélisation

Page 7: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

7

Diagrammes de classes / Diagrammes d’objets

Françoise Schlienger

Remise à niveau

2002/2003

Page 8: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

8

Il existe plusieurs niveaux de notation :

a) niveau sans détail

PERSONNE

PERSONNE

NomPrénomAdresse

ModifierAdresse()

b) niveau détail d'analyse

On y précise : le type des variables (integer, string, date …) les valeurs par défaut les signatures des opérations éventuellement, le niveau de visibilité : + public (accessible par tout utilisateur) par défaut

- privé (accessible seulement par la classe elle-même) # protégé (accessible seulement par les descendants)

c) niveau de détail d'implémentation

Notation des classes

Page 9: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

9

• Attribut [ visibilité ] NomAttribut [: type] [= <valeur par défaut>]

•Opération[ visibilité ] NomOpération [(liste Paramètres)] [: typeRetour]

Paramètre[direction] Nom : type[ = valeur par défaut]

direction : in | out | inout (par défaut : in)

Notation des attributs et opérations

NOMDECLASSE

Opération()

Attributs

+EstSur(in p :POINT): boolean

-Longueur :integer =5

SEGMENT

Page 10: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

10

Opérations / méthodes

• Une opération définit un service qui peut être demandé à n’importe quel objet de la classe.

• Une méthode est une implémentation d’une opération.

• La méthode associée à une opération fournit un algorithme exécutable. Cet algorithme est donné dans un langage de programmation ou dans du texte structuré.

Page 11: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

11

Classe-1 Classe-2

Nom d’association

rôle-1 rôle-2

PERSONNE EstEnfantDe

Mère

Fils

PERSONNE APPARTEMENTLoue >

SonPropriétaire SesPropriétés

Propose >

SonLocataire SaLocation

Association entre classes

^

Page 12: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

12

Exactement 1 1Exactement n nPlusieurs (0 ou plus) *Au plus 1 0..11 ou plus 1..*Cardinalité spécifiée 1..2 4

Nombre de propriétaires Nombre d ’appartements proposés

Cardinalité d’une association

PERSONNE APPARTEMENTPropose >1 *

Page 13: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

13

Association : un exemple (1)

Un appartement n’a qu’un propriétaire et une personne peut proposer à la location plusieurs appartements (sous-entendu, elle peut aussi ne pas proposer d’appartement).

Remarque : on précisera toujours les noms des rôles. Le nom de l ’association est facultatif.

PERSONNE APPARTEMENT

Propose >1 0..*

SonPropriétaire SesPropriétés

Page 14: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

14

Association : un exemple (2)

PERSONNE APPARTEMENT

Propose >1 0..*

SonPropriétaire SesPropriétés

-Code-Adresse-Surface-MontantLoyer

APPARTEMENT a un attribut implicite SonPropriétaire : PERSONNE

Un constructeur « complet » d’appartement doit avoir en paramètres le Code, l ’Adresse, la Surface, le MontantLoyer d ’un nouvel appartement mais aussi une instance de la classe PERSONNE.

Page 15: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

15

Un attribut dérivé est un attribut calculé. Cela signifie qu’il peut être calculé à partir d ’autres informations du système à n’importe quel moment.

(et non pas qu’il a été calculé à un moment donné).

Exemple : pour une personne, l’attribut Age est un attribut calculé à condition que sa DateDeNaissance ait été enregistrée.Un attribut calculé est noté /Attribut

Par contre : si on met à jour une QuantitéEnStock par ajout ou suppression, sans conservertout l’historique des mouvements, alors QuantitéEnStock n’est pas une rubrique calculée.

L’attribut QuantitéEnStock est dit « modifiable » (par défaut tout attribut est « modifiable »)

« gelé » (« frozen ») est réservé aux attributs qui, une fois initialisés, ne peuvent être modifiés.

Attribut dérivé

Page 16: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

16

Une association dérivée est une association déduite d’une autre.

Une association dérivée ne se justifie que pour faciliter des traitements.

Association dérivée

ENTREPRISE SERVICE EMPLOYESesServices SesEmployés

SesEmployés

SonService

/Emploi

Le nom de l’association est précédé d’un /

Page 17: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

17

Contrairement à Merise, UML autorise :

• Une classe avec une seule instance

• Des attributs multivalués.

• Les attributs calculés (attributs dérivés) précédés par un / On précise alors, dans une note, la règle de calcul.

• Les associations dérivées (stéréotype « derive ») qui faciliteront un traitement.

Les identificateurs explicites (identifiants) ne sont pas indispensables. Ils ne sont pas soulignés (seuls les attributs de classe sont soulignés).

On peut les préciser à l’aide d’une note.

On peut représenter des « paramètres » (Merise) par le biais de variables de classe.

Remarques sur les classes

{identifier}

Page 18: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

18

Contrairement à Merise ...

Exemple

+AjouterPersonne(in P : PERSONNE)

Emploie>

ENTREPRISE

-Nom-Adresse

+ModifierAdresse()+AjouterPersonne()

1

PERSONNE

-Nom-Prénoms-Adresse-DateDeNaissance/-Age

+CréerPersonne()+GetCoordonnées()+CalculerAge 

0..*

SesEmployés SonEntreprise

. {Age=DateCourante - DateNaissance}

Page 19: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

19

C ’est un type particulier d ’association "composé-composant" ou "partie de"

Agrégation : 0..1

EQUIPE SPORT JOUEUR

Composition :

DOSSIER DOCUMENT

Agrégation - Composition

Le document n’existe qu’en tant que partie du dossier.La destruction du composite entraîne la destruction des composants.Un objet ne fait partie que d ’un seul composite à la fois.

SonEquipeSesEquipes

1 *

SonDossier SesDocuments

SesParticipants

**

Page 20: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

20

Elles permettent de regrouper des opérations et des attributs communsà une ou plusieurs classes données et de préciser que les classes les plus spécifiqueshéritent des classes les plus générales.

COMPTE-BANCAIRE-Crédit : integer-Débit : integer….

+Déposer(S:integer)+Retirer(S:integer)+GetSolde()

COMPTE-EPARGNE-Taux : float

+CalculerIntérêts()

Généralisation Spécialisation

Relations de généralisation-spécialisation

Page 21: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

21

Qualité d’une association qui permet le passage d’une classe vers une autre.En général, on peut naviguer dans les 2 sens. On peut cependant limiter la navigabilité :

Exemple :CLASSE-1 CLASSE-2

Nom d’association

Il doit être facile de passer directement d’un produit à son fabriquant.La commande d’un produit fait référence à l ’adresse de « SonRéalisateur »

Il y a demande de service (GetAdresse) de PRODUIT à FABRIQUANT.

Navigabilité d’une association

1..* 1SonRéalisateu

rSesProduits

FABRIQUANT

-Adresse

+GetAdresse()

PRODUIT

-QttéRéappro

+Commander()

Page 22: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

22

Un attribut de classe décrit une valeur commune à une classe d'objets dans son ensemble.

Une opération de classe est une opération sur la classe elle- même. La plus commune est celle destinée à créer des nouvelles instances de classe.

Attributs et opérations de classe sont soulignés. (Attention : ne pas les confondre avec les identifiants de Merise.)

ARTICLE

-Référence-PrixHT-NbInstances

+CalculerPrixTTC()+Créer()+CompterInstances()

Attributs et opérations de classes

Page 23: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

23

Classe et Opération abstraites / Polymorphisme

• Classe qui ne peut avoir aucune instance directe ; on écrit son nom en italique.

• Une opération abstraite ne fournit d’implémentation qu’au travers d’une instance d’une classe fille de celle qui la contient.

• Remarque : les noms des éléments abstraits sont écrits en italique ou préfixés par Abs.

FORME

-Nom : string

+CalcSurface()+GetNom()

Page 24: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

24

RECTANGLE

- Long : float- Larg : float

+CalcSurface() + Type()

CERCLE

- Rayon : float

+CalcSurface()+ Type()

Opérationspolymorphes

Classe et Opération abstraites / Polymorphisme

FORME

-Couleur : string

+CalcSurface()+Type()

return ’rectangle’ return ’cercle’return Long * Larg

return PI * Rayon * Rayon

Page 25: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

25

Attributs et opérations implicites (1)

ETUDIANT

Nom : string

Pour chaque attribut on ajouteimplicitement :

Ces opérations ne sont pas obligatoirement publiques. SetNom peut ne pas exister.

ETUDIANT

Nom : string

<constructeur>Etudiant ()<destructeur>~Etudiant()

<sélecteur ou accesseur>GetNom () : string<modificateur>SetNom (N:string) : bool

Pour la classe on ajoute implicitement :

Page 26: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

26

Attributs et opérations implicites (2)

ETUDIANT

Nom : string

ETUDIANT

Nom : stringSonGroupe : GROUPE

<sélecteur ou accesseur>GetSonGroupe () :GROUPE<modificateur>SetSonGroupe(G:GROUPE)RetirerSonGroupe() … si le minimum est à 0

GROUPE

Numéro : int

SonGroupe

0..1

Pour chaque association navigable

de cardinalité 0..1, 1..1 on ajoute :

un attribut

… et les opérations correspondantes

Page 27: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

27

Remarque concernant la navigation

ETUDIANT

Nom : string

GROUPE

Numéro : integer

SonGroupe

0..1

Pour un étudiant on peut obtenir son groupe, mais il n’est pas prévud’obtenir la liste des étudiants à partir du groupe.

SesEtudiants

0..*

Page 28: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

28

Attributs et opérations implicites (3)

ETUDIANT

Nom : string

ETUDIANT

Nom : stringSesOptions : ensemble(OPTION)

<modificateur>AjouterOption(O:OPTION):boolRetirerOption(O:OPTION):boolGetSesOptions() : ensemble(OPTION)

OPTION

Libellé : string

SesOptions

0..*

Pour chaque association navigable

de cardinalité 0..*, 1..* on ajoute : un attribut de type ensemble,

… et les opérations

pour gérer ce type ensemble.

Page 29: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

29

Remarque concernant la navigation

ETUDIANT

Nom : string

OPTION

Libellé : string

SesEtudiants SesOptions

0..* 0..*

Nouvelle hypothèse :

Pour un étudiant on peut obtenir ses options et on veut pouvoir obtenir la liste des étudiants à partir d’une option.

En ajoutant une flèche vers SesEtudiants, on ajoute implicitement SesEtudiants : ensemble (ETUDIANT) dans OPTION et les opérations correspondantes.

Page 30: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

30

Diagrammes d’objets

• Ils modélisent les instances d’éléments qui apparaissent sur les diagrammes de classe.

• Ils montrent un ensemble d ’objets et leurs relations à un moment donné.

– Instances nommées

– Instances anonymes

– Instances avec valeurs d ’attributs

Bouton2:RECTANGLE

Longueur : float = 13.5Nom : string = “bouton-poussoir”

Largeur : float = 3.2

:CERCLE

Bouton1:RECTANGLENomInstance:NOMCLASSE

:NOMCLASSE

Page 31: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

31

MATIERE

libellé : string

Diagramme d’objets (exemple)

E1:ENSEIGNANT

nom = ‘Dupont’

E2:ENSEIGNANT

nom = ‘Martin’

E3:ENSEIGNANT

nom = ‘Duval’

M3:MATIERE

libellé = ‘Système’

M1:MATIERE

libellé = ‘Génie logiciel’

M2:MATIERE

libellé = ‘Réseau’

enseigne >* 1..*

ENSEIGNANT

nom : string

Page 32: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005

32

MATIERE

libellé : string

Diagramme d’objets (nécessité de préciser l’association)

enseigne

enseigne

enseigne

enseigne >* 1..*

ENSEIGNANT

nom : string0..1 *

estResponsable >

estResponsable >

estResponsable >

E1:ENSEIGNANT

nom = ‘Dupont’

E2:ENSEIGNANT

nom = ‘Martin’

E3:ENSEIGNANT

nom = ‘Duval’

M3:MATIERE

libellé = ‘Système’

M1:MATIERE

libellé = ‘Génie logiciel’

M2:MATIERE

libellé = ‘Réseau’