modélisation structurelle - unigecui.unige.ch/isi/cours/uml-fr/03-uml-classes.pdf1 modélisation...
TRANSCRIPT
1
Modélisation structurelle
G. Falquet
June 2001 - G. Falquet, L. Nerima Classes 2
ISI
References
Grady Booch, James Rumbaugh, Ivar Jacobson“!The Unified Modeling Language User Guide!”, Addison-Wesley 1999
Pierre-Alain Muller“!Modélisation objet avec UML!”, Eyrolles 1997
Grady Booch, James Rumbaugh, Ivar Jacobson“!The Unified Modeling Language Reference Manual!”,Addison-Wesley 1999
2
June 2001 - G. Falquet, L. Nerima Classes 3
ISI
Modélisation par objets et classes
v Modélisation du monde en termesv d'objetsv de classes d'objets« ce qui est » ≠ « ce qu'on fait »
v Les cas d'utilisation font référence aux objets dudomaine d'application
v L'architecture du système informatique sera construiteautour des classes d'objets
June 2001 - G. Falquet, L. Nerima Classes 4
ISI
Objets et système
v Le système est fait d'objets
v Les objets représentent des entités concrètes ouabstraites du monde réel
v un livre de la bibliothèquev un emprunteurv un prêt (abstrait)v une fenêtre sur l'écran de l'utilisateur (objet d'interface)v une occurrence de l'évènement « le bouton STOP a été pressé
à 16h22.33.01
3
June 2001 - G. Falquet, L. Nerima Classes 5
ISI
A l'intérieur des objets
Un objet est caractérisé par les valeurs de ses attributs
livre56titre = "Zéro et Un"auteur = "M. Deux"année = 2001
livre3titre = "Tout est rien"auteur = "Nobody"année = 2000
bobnom = "Robert"prénom = "Konk"age = 20
HCUG
CHUV
June 2001 - G. Falquet, L. Nerima Classes 6
ISI
Liens entre objets
v Il peut exister des liens logiques entre objets
livre56titre = "Zéro et Un"auteur = "M. Deux"année = 2001
bobnom = "Kronk"prénom = " Robert "age = 20
emprunté par
HCUG
employé de
joenom = "Gloubs"prénom = " Joseph "age = 28
employé de
4
June 2001 - G. Falquet, L. Nerima Classes 7
ISI
Classes d'objets
v Regrouper les objets ayant des caractéristiquescommunes
v Décrire globalement les propriétés communes à uneclasse d'objets
v Organiser le système en modules
June 2001 - G. Falquet, L. Nerima Classes 8
ISI
Notation et Exemples
Personnenomprénomage
Livretitreauteurdate_éditionéditeurnb_pages
Classeattributattribut...
Concepttermedéfinitionsource
5
June 2001 - G. Falquet, L. Nerima Classes 9
ISI
Les objets sont des instances de classes
Personnenomprénomage
paul : Personne
pierre : Personne
emilie : Personnenom = "Loiseau"prénom = "Emilie"age = 33
June 2001 - G. Falquet, L. Nerima Classes 10
ISI
Les objets sont des instances de classes
Concepttermedéfinitionsource
liberté : Concept
égalité : Concept
ogm : Conceptterme = "organisme génétiquement modifié"définition = "Un OGM est ..."source = "Institut fédéral ..."
6
June 2001 - G. Falquet, L. Nerima Classes 11
ISI
Associations entre objets
v Représente des liens logiques entre objets des classes
Classeattributattribut...
Classeattributattribut...
Association
Etudiant CoursInscription
Professeur
Enseignement Organisation
June 2001 - G. Falquet, L. Nerima Classes 12
ISI
Multiplicité des associations
v Tout objet de C est lié par A à au moins min et au plusmax objets de D.
C DA
Personne Caisse maladieAssurance_Maladie
min .. max
1 .. 1« il est obligatoire de s'assurer »
Domicile
Adresse0 .. 1 « on peut être SDF ou non »
7
June 2001 - G. Falquet, L. Nerima Classes 13
ISI
Min et max peuvent rester indéterminés
Club PersonneMembre
3 .. *
« il faut au moins 3 personnes pourfaire un club »
Inscription Cours
* .. 10« on peut suivre au plus 10 cours »
Etudiant
Possession Véhicule
* .. *
Personne
June 2001 - G. Falquet, L. Nerima Classes 14
ISI
Préciser les deux extrémités de l'association
Club PersonneMembre
3 .. *
« il faut au moins 3 personnes pourfaire un club »
Inscription Cours
* .. 10« on peut suivre au plus 10 cours »
Etudiant
Possession Véhicule
* .. *
Personne
* .. *
5.. 20
1 .. 1
« entre 5 et 20 étudiants par cours »
« un véhicule appartient toujours à quelqu'un »
8
June 2001 - G. Falquet, L. Nerima Classes 15
ISI
Associations : distinguer les rôles
v Chaque classe joue un rôle dans l'association
Classe ClasseAssociation
Etudiant CoursInscription
< Rôle Rôle >
suit >< est suivi par
Personne
Filiation
< parent
enfant >
2..2
0..*
June 2001 - G. Falquet, L. Nerima Classes 16
ISI
Associations : ajouter des attributs
v Informations propres à l'association
Classe ClasseAssociation
Etudiant CoursInscription
attributs
dateconditionsévaluation
9
June 2001 - G. Falquet, L. Nerima Classes 17
ISI
Contraintes entre associations
OrdonancementParti PersonneElu
0..* ordonné
ExclusionVol Pilote
pilote >
copilote >ou exclusif
InclusionDépartement
Employé< membre
< directeur inclusion
June 2001 - G. Falquet, L. Nerima Classes 18
ISI
Composition
v Modéliser le lien « fait partie de »v A est composé de un ou plusieurs Bv Un B ne peut exister tout seul (dans le système)v Un B n'appartient qu'à un seul A
Bâtiment
Pièce
10
June 2001 - G. Falquet, L. Nerima Classes 19
ISI
Agrégation
v Modéliser le lien « fait partie de »v Moins fort que la compositionv Un B peut exister indépendamment d'un Av Un B peut éventuellement appartenir à plusieurs A
Formation
Cours Stage
June 2001 - G. Falquet, L. Nerima Classes 20
ISI
Généralisation et spécialisation
v Organiser le domaine (taxonomie)
Boisson
Eau minérale Vin Bière
Eau gazeuse Eau plate
11
June 2001 - G. Falquet, L. Nerima Classes 21
ISI
Généralisation et spécialisation
v Partager les descriptions communes
Personnenomprénom
Employéno_AVSsalaire
Etudiantno_etudiantdate_entrée
Informaticienassurance RC
June 2001 - G. Falquet, L. Nerima Classes 22
ISI
Opérations avec les objets
v Chaque objet peut être muni de méthodes qui rendentdes services.
v Les méthodes seront programmées par lesdéveloppeurs.
v Une méthodev calcule un résultat à partir de la valeur de l'objet et de
paramètresv modifie éventuellement la valeur de l'objet
12
June 2001 - G. Falquet, L. Nerima Classes 23
ISI
Exemple
Livre
titreauteurdate_éditionéditeurstatut
emprunter()rendre()
Rectangle
largeurhauteurcoordonnées
surface()élargir(taille)déplacer(h, v)
June 2001 - G. Falquet, L. Nerima Classes 24
ISI
Fonctionnement du système
Système = ensemble d'objets qui interagissent
message = demande d'exécution d'une méthode
Prêt
Livre
emprunter()
vérifier_disponibilité()
13
June 2001 - G. Falquet, L. Nerima Classes 25
ISI
Cas d'utilisation et objets
v Deux axes de modélisation distinctsv structurelv fonctionnel
v Lien explicitev les scénarios parlent des objets du systèmev les classes et objets définissent le vocabulaire des scénarios
v Les cas d'utilisation déterminent l'étendue de lamodélisation des objetsv éviter le syndrome de la modélisation infinie
June 2001 - G. Falquet, L. Nerima Classes 26
ISI
Modéliser quelles entités ?
Scenario: " Vérifier la disponibilité du livre. Vérifier si lelecteur a le droit d'emprunter ce livre. Enregistrer leprêt "
=> le système a besoin d'objets pour représenter leslivres, lecteurs et prêts
mais pas les étagères, portes, chaises, tables, ...
14
June 2001 - G. Falquet, L. Nerima Classes 27
ISI
Cas d'utilisation et Objets
Raffinement d'un cas d'utilisation --> implémentationConnecter les cas d'utilisation aux classes nécessaires
Emprunter
Réserver un livre
Consulter catalogue
Enregistrer nouvel utilisateur
Livre
Reservation
Prêt
Utilisateur
Catalogue
Bibliothécaire Etagère
Auteur
June 2001 - G. Falquet, L. Nerima Classes 28
ISI
Ce n'est pas automatique
Tout terme du scénario ne se traduit pas forcémenten classe
" Vérifier la disponibilité du livre. Vérifier si lelecteur a le droit d'emprunter ce livre. Enregistrer leprêt "
« disponibilité » => attribut de livre« droit » => Ø
1. Utiliser l'intelligence et l'ingéniosité du concepteur2. Il n'y a pas de « solution unique » en conception