1 introduction à uml françoise schlienger remise à niveau 2004-2005
TRANSCRIPT
![Page 1: 1 Introduction à UML Françoise Schlienger Remise à niveau 2004-2005](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/25.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/26.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/27.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/28.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/29.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/30.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/31.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022070309/551d9d85497959293b8c04e3/html5/thumbnails/32.jpg)
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’