Modélisation UML
Karim SEHABA
Laboratoire Informatique Image Interaction
 Introduction
 Modélisation Objet
 Types de relation
 Héritage
 Association
 Contenance
Diagrammes UML
Diagramme d’objets
Cas d’utilisation
 Exercice
Plan
Déploiement
Système réel
Réalisation
Conception
Analyse
Introduction
Modèle
d’Analyse
Modèle de
Conception
Modèle de
Réalisation
Modèle de
Déploiement
BOOCH, OMT, OOSE,…
UML (Unified Modeling Language)
Autres méthodes Booch’91 OMT-1 OOSE Partenaires
Booch’93 OMT-2
Méthode unifiée 0.8
UML 0.9
UML 1.0
Octobre 1995
Janvier 1997
Juin 1999 UML 1.3
Introduction
Introduction
Résumé
• UML est une notation, pas une méthode
• UML est un langage de modélisation objet
• UML convient pour toutes les méthodes objet
• UML est dans le domaine public
Programmation Orientée Objet
modéliser informatiquement des éléments d'une partie du monde réel en
un ensemble d'entités informatiques (objets)
Intérêt d'une méthode objet
• définir le problème à haut niveau sans rentrer dans les spécificités du
langage
• définir un problème de façon graphique
• utiliser les services offertes par l’objet sans rentrer dans le détail de
programmation (Encapsulation)
• Réutilisation du code
Notion d’Objet
Une abstraction du monde réel c.-à-d. des données informatiques
regroupant des caractéristiques du monde réel
Exemple
une personne, une voiture, une maison, ...
Caractérisation d’un objet
Identité
permet de le distinguer des autres objets
Attributs
données caractérisant l'objet
Méthodes
actions que l'objet est à même de réaliser
FIAT-UNO-17 : Voiture
233434 : Numéro de série
1500 kg : Poids
8864 YF 17 : Immatriculation
133 000 : kilométrage
Démarrer ()
Arrêter()
Rouler()
Modélisation objet
Notion de Classe
• Structure d'un objet, c.-à-d. une déclaration de l'ensemble des entités
qui composeront l’objet
• Un objet est donc "issu" d'une classe, c'est le produit qui sort d'un
moule
Notation
un objet est une instanciation (occurrence) d'une classe
Une classe est composée:
 attributs
données dont les valeurs représentent
l'état de l'objet
 méthodes
opérations applicables aux objets
Nom_de_la_classe
attribut1 : Type
attribut2 : Type
…
méthode1 ()
méthode2 ()
…
Modélisation objet
Voiture
Démarrer ()
Arrêter()
Rouler()
Numéro de série : Int
Poids : double
Immatriculation : String
Kilométrage : double
FIAT-UNO-17
233434 : Numéro de série
1500 kg : Poids
8864 YF 17 : Immatriculation
33 000 : kilométrage
Renault-Clio-17
5323454 : Numéro de série
1500 kg : Poids
64 YFT 17 : Immatriculation
23 000 : kilométrage
Peugeot-206-75
3434 : Numéro de série
1700 kg : Poids
8634 YGG 75 : Immatriculation
15 000 : kilométrage
Modélisation objet
Visibilité des attributs
définissent les droits d'accès aux données (pour la classe elle-même,
d'une classe héritière, ou bien d'une classe quelconque)
Publique (+)
les classes peuvent accéder aux données et
méthodes d'une classe définie avec le niveau
de visibilité public
Protégée (#): l'accès aux données est
réservé aux fonctions des classes héritières
Privée (-): l'accès aux données est limité
aux méthodes de la classe elle-même
Nom_de_la_classe
# Attribut1 : Type
- Attribut2 : Type
…
+ méthode1 ()
Méthode2 ()
…
Modélisation objet
Types de relation entre classes
Héritage
Association
Contenance
permet de créer une nouvelle classe à partir d'une classe existante
Principe
classe dérivée contient les attributs et les méthodes de sa superclasse
Spécialisation Généralisation
étendre les propriétés
d'une classe, sous
forme de sous-classes
factoriser les propriétés
groupe de classes sous
forme de super-classe
Chaque personne de l’université est identifiée par son nom, prénom
Les étudiants ont plus un noEtudiant
Les enseignants ont un numéro de téléphone interne
Types de relation : Héritage
Connexion sémantique entre deux classes
Navigabilité
 Par défaut une association est navigable dans les deux sens
• Chaque instance de voiture a un lien vers le propriétaire
• Chaque instance de Personne a un ensemble de lien vers les voitures
 Restriction de la navigabilité
• Le service de contravention
est associé à une ou plusieurs
voiture(s)
• La voiture ne connaît pas service
de contravention
Navigable
Types de relation : Association
Documentation d’une association
 Nom de l’association
lien sémantique entre les classes
 Rôle d’une association
Spécification du rôle de la classe
La personne joue le rôle de
propriétaire de la voiture
La personne achète la voiture
La voiture est achetée
Types de relation : Association
Attention
difficiles à déchiffrer
Professeur
Etudiant
Salle
Symbole d’association
Types de relation : Association
Relation n-aire
Type particulier d’association qui relie plus de deux classes
Multiplicités
1 : la classe est en relation avec un et un seul objet de l’autre classe
1..* : la classe est en relation avec au moins un objet de l’autre classe
0..* : la classe est en relation avec 0 ou n objets de l’autre classe
0..1 : la classe est en relation avec au plus un objet de l’autre classe
Une voiture est achetée par une
et une seule personne
Une personne peut acheter
0 ou n voitures
Types de relation : Association
Cas particulier d’association exprimant une relation de contenance
Exemples:
• Une voiture a 4 roues
• Un dessin contient un ensemble de figures géométriques
• Une présentation PowerPoint est composé de transparents
• Une équipe de recherche est composée d’un ensemble de personnes
Deux types de relations de contenance en UML
• Agrégation
• Composition (Agrégation forte)
Types de relation : Contenance
Type de relations
– A « contient » des instances de B,
Propriétés de l’agrégation
• La suppression de A n’implique pas la suppression de B
• L'élément agrégé peut être partagé
Exemples :
• L’enseignant est un composant
d’une (ou plusieurs) équipe de
recherche d’un seul département
• La disparition d’une équipe de
recherche n’entraine pas la
disparition d’un enseignant
B
A
Agrégat
Types de relation : Agrégation
 La suppression de A entraine la suppression de B
Exemple:
« Une présentation PowerPoint est composé de transparents »
La suppression de la présentation entraine la disparition des transparents
qui la compose
Types de relation : Composition
Diagramme de classes
Lettre Colis
Colis national
Peut contenir
0..*
Marchandise
0..*
Colis international
0..*
0..*
0..*
1..1
Client
1..*
Paquet
1..1
Livraison
0..*
1..1
1..*
1..1
Diagramme de classes
Interpréter le diagramme de classes suivant afin de donner une spécification
en langage naturel.
public class Personne {
public String nom;
public String prenom;
}
public class Etudiant extends Personne {
public int noEtudiant;
}
Implémentation : Héritage
Implémentation : Associations
public class Personne {
public String Nom;
public String prenom;
public java.util.Collection voiture =
new java.util.TreeSet();
}
public class Voiture {
public String immatriculation;
public Personne Propriétaire;
public void demarer() { }
}
public class ServiceContraventions {
public java.util.Collection Voiture = new java.util.TreeSet();
}
public class Enseignant extends Personne {
public String telephone;
public java.util.Collection equipeRecherche = new java.util.TreeSet();
public Departement departement;
}
public class Département {
private int nomDépartement;
private int codetheme;
public java.util.Collection enseignant = new java.util.TreeSet();
}
Implémentation : Agrégation
public class Laboratoire {
public java.util.Collection equipeRecherche = new java.util.TreeSet();
}
public class EquipeRecherche {
public String[] nomEquipe;
public String thématique;
public java.util.Collection enseignant = new java.util.TreeSet();
public Laboratoire laboratoire;
}
Implémentation : Composition
• Vues statiques
– Les diagrammes de classes
– Les diagrammes d’objets
– Les diagrammes de cas d’utilisation
– Les diagrammes de composants
– Les diagrammes de déploiement
• Vues dynamiques
– Les diagrammes de séquence
– Les diagrammes de collaboration
– Les diagrammes d’états-transition
– Les diagrammes d’activités
Les diagrammes UML
Diagramme d’objets
montre des objets (instances de classes dans un état particulier) et des
liens (relations sémantiques) entre ces objets.
Cas d’utilisation
Cas d’utilisation
Objectif du système, motivé par un besoin
d'un (ou plusieurs) acteur(s)
Acteur
Personne ou composant d’origine d’une
interaction avec le système
Note
Documente un élément du modèle
Relation d’utilisation
Le cas source contient aussi le comportement
décrit dans la cas destination
•structurer les besoins des utilisateurs et les objectifs correspondants du système.
•Préoccuper des cas "réels" des utilisateurs ; ils ne présentent pas de solutions
d'implémentation et ne forment pas un inventaire fonctionnel du système.
Notation
Cas d’utilisation
Concevoir le diagramme de classe d’une application de gestion d’hôtel.
Voici ce que vous devez modéliser :
Un hôtel est constitué d'un certain nombre de chambres. Un responsable
de l'hôtel gère la location des chambres. Chaque chambre se loue à un
prix donné.
L'accès aux salles de bain est compris dans le prix de la location d'une
chambre. Certaines chambres comportent une salle de bain, mais pas
toutes. Les hôtes de chambres sans salle de bain peuvent utiliser une
salle de bain sur le palier. Ces dernières peuvent être utilisées par
plusieurs hôtes.
Les pièces de l'hôtel qui ne sont ni des chambres, ni des salles de bain
(hall d'accueil, cuisine...) ne font pas partie de l'étude (hors sujet).
Des personnes peuvent louer une ou plusieurs chambres de l'hôtel, afin
d'y résider. En d'autre termes : l'hôtel héberge un certain nombre de
personnes, ses hôtes (il s'agit des personnes qui louent au moins une
chambre de l'hôtel...).
Exercice
Solution

Initiation à la modélisation Orienté Objet avec UML

  • 1.
    Modélisation UML Karim SEHABA LaboratoireInformatique Image Interaction
  • 2.
     Introduction  ModélisationObjet  Types de relation  Héritage  Association  Contenance Diagrammes UML Diagramme d’objets Cas d’utilisation  Exercice Plan
  • 3.
    Déploiement Système réel Réalisation Conception Analyse Introduction Modèle d’Analyse Modèle de Conception Modèlede Réalisation Modèle de Déploiement BOOCH, OMT, OOSE,… UML (Unified Modeling Language)
  • 4.
    Autres méthodes Booch’91OMT-1 OOSE Partenaires Booch’93 OMT-2 Méthode unifiée 0.8 UML 0.9 UML 1.0 Octobre 1995 Janvier 1997 Juin 1999 UML 1.3 Introduction
  • 5.
    Introduction Résumé • UML estune notation, pas une méthode • UML est un langage de modélisation objet • UML convient pour toutes les méthodes objet • UML est dans le domaine public Programmation Orientée Objet modéliser informatiquement des éléments d'une partie du monde réel en un ensemble d'entités informatiques (objets) Intérêt d'une méthode objet • définir le problème à haut niveau sans rentrer dans les spécificités du langage • définir un problème de façon graphique • utiliser les services offertes par l’objet sans rentrer dans le détail de programmation (Encapsulation) • Réutilisation du code
  • 6.
    Notion d’Objet Une abstractiondu monde réel c.-à-d. des données informatiques regroupant des caractéristiques du monde réel Exemple une personne, une voiture, une maison, ... Caractérisation d’un objet Identité permet de le distinguer des autres objets Attributs données caractérisant l'objet Méthodes actions que l'objet est à même de réaliser FIAT-UNO-17 : Voiture 233434 : Numéro de série 1500 kg : Poids 8864 YF 17 : Immatriculation 133 000 : kilométrage Démarrer () Arrêter() Rouler() Modélisation objet
  • 7.
    Notion de Classe •Structure d'un objet, c.-à-d. une déclaration de l'ensemble des entités qui composeront l’objet • Un objet est donc "issu" d'une classe, c'est le produit qui sort d'un moule Notation un objet est une instanciation (occurrence) d'une classe Une classe est composée:  attributs données dont les valeurs représentent l'état de l'objet  méthodes opérations applicables aux objets Nom_de_la_classe attribut1 : Type attribut2 : Type … méthode1 () méthode2 () … Modélisation objet
  • 8.
    Voiture Démarrer () Arrêter() Rouler() Numéro desérie : Int Poids : double Immatriculation : String Kilométrage : double FIAT-UNO-17 233434 : Numéro de série 1500 kg : Poids 8864 YF 17 : Immatriculation 33 000 : kilométrage Renault-Clio-17 5323454 : Numéro de série 1500 kg : Poids 64 YFT 17 : Immatriculation 23 000 : kilométrage Peugeot-206-75 3434 : Numéro de série 1700 kg : Poids 8634 YGG 75 : Immatriculation 15 000 : kilométrage Modélisation objet
  • 9.
    Visibilité des attributs définissentles droits d'accès aux données (pour la classe elle-même, d'une classe héritière, ou bien d'une classe quelconque) Publique (+) les classes peuvent accéder aux données et méthodes d'une classe définie avec le niveau de visibilité public Protégée (#): l'accès aux données est réservé aux fonctions des classes héritières Privée (-): l'accès aux données est limité aux méthodes de la classe elle-même Nom_de_la_classe # Attribut1 : Type - Attribut2 : Type … + méthode1 () Méthode2 () … Modélisation objet
  • 10.
    Types de relationentre classes Héritage Association Contenance
  • 11.
    permet de créerune nouvelle classe à partir d'une classe existante Principe classe dérivée contient les attributs et les méthodes de sa superclasse Spécialisation Généralisation étendre les propriétés d'une classe, sous forme de sous-classes factoriser les propriétés groupe de classes sous forme de super-classe Chaque personne de l’université est identifiée par son nom, prénom Les étudiants ont plus un noEtudiant Les enseignants ont un numéro de téléphone interne Types de relation : Héritage
  • 12.
    Connexion sémantique entredeux classes Navigabilité  Par défaut une association est navigable dans les deux sens • Chaque instance de voiture a un lien vers le propriétaire • Chaque instance de Personne a un ensemble de lien vers les voitures  Restriction de la navigabilité • Le service de contravention est associé à une ou plusieurs voiture(s) • La voiture ne connaît pas service de contravention Navigable Types de relation : Association
  • 13.
    Documentation d’une association Nom de l’association lien sémantique entre les classes  Rôle d’une association Spécification du rôle de la classe La personne joue le rôle de propriétaire de la voiture La personne achète la voiture La voiture est achetée Types de relation : Association
  • 14.
    Attention difficiles à déchiffrer Professeur Etudiant Salle Symboled’association Types de relation : Association Relation n-aire Type particulier d’association qui relie plus de deux classes
  • 15.
    Multiplicités 1 : laclasse est en relation avec un et un seul objet de l’autre classe 1..* : la classe est en relation avec au moins un objet de l’autre classe 0..* : la classe est en relation avec 0 ou n objets de l’autre classe 0..1 : la classe est en relation avec au plus un objet de l’autre classe Une voiture est achetée par une et une seule personne Une personne peut acheter 0 ou n voitures Types de relation : Association
  • 16.
    Cas particulier d’associationexprimant une relation de contenance Exemples: • Une voiture a 4 roues • Un dessin contient un ensemble de figures géométriques • Une présentation PowerPoint est composé de transparents • Une équipe de recherche est composée d’un ensemble de personnes Deux types de relations de contenance en UML • Agrégation • Composition (Agrégation forte) Types de relation : Contenance
  • 17.
    Type de relations –A « contient » des instances de B, Propriétés de l’agrégation • La suppression de A n’implique pas la suppression de B • L'élément agrégé peut être partagé Exemples : • L’enseignant est un composant d’une (ou plusieurs) équipe de recherche d’un seul département • La disparition d’une équipe de recherche n’entraine pas la disparition d’un enseignant B A Agrégat Types de relation : Agrégation
  • 18.
     La suppressionde A entraine la suppression de B Exemple: « Une présentation PowerPoint est composé de transparents » La suppression de la présentation entraine la disparition des transparents qui la compose Types de relation : Composition
  • 19.
  • 20.
    Lettre Colis Colis national Peutcontenir 0..* Marchandise 0..* Colis international 0..* 0..* 0..* 1..1 Client 1..* Paquet 1..1 Livraison 0..* 1..1 1..* 1..1 Diagramme de classes Interpréter le diagramme de classes suivant afin de donner une spécification en langage naturel.
  • 21.
    public class Personne{ public String nom; public String prenom; } public class Etudiant extends Personne { public int noEtudiant; } Implémentation : Héritage
  • 22.
    Implémentation : Associations publicclass Personne { public String Nom; public String prenom; public java.util.Collection voiture = new java.util.TreeSet(); } public class Voiture { public String immatriculation; public Personne Propriétaire; public void demarer() { } } public class ServiceContraventions { public java.util.Collection Voiture = new java.util.TreeSet(); }
  • 23.
    public class Enseignantextends Personne { public String telephone; public java.util.Collection equipeRecherche = new java.util.TreeSet(); public Departement departement; } public class Département { private int nomDépartement; private int codetheme; public java.util.Collection enseignant = new java.util.TreeSet(); } Implémentation : Agrégation
  • 24.
    public class Laboratoire{ public java.util.Collection equipeRecherche = new java.util.TreeSet(); } public class EquipeRecherche { public String[] nomEquipe; public String thématique; public java.util.Collection enseignant = new java.util.TreeSet(); public Laboratoire laboratoire; } Implémentation : Composition
  • 25.
    • Vues statiques –Les diagrammes de classes – Les diagrammes d’objets – Les diagrammes de cas d’utilisation – Les diagrammes de composants – Les diagrammes de déploiement • Vues dynamiques – Les diagrammes de séquence – Les diagrammes de collaboration – Les diagrammes d’états-transition – Les diagrammes d’activités Les diagrammes UML
  • 26.
    Diagramme d’objets montre desobjets (instances de classes dans un état particulier) et des liens (relations sémantiques) entre ces objets.
  • 27.
    Cas d’utilisation Cas d’utilisation Objectifdu système, motivé par un besoin d'un (ou plusieurs) acteur(s) Acteur Personne ou composant d’origine d’une interaction avec le système Note Documente un élément du modèle Relation d’utilisation Le cas source contient aussi le comportement décrit dans la cas destination •structurer les besoins des utilisateurs et les objectifs correspondants du système. •Préoccuper des cas "réels" des utilisateurs ; ils ne présentent pas de solutions d'implémentation et ne forment pas un inventaire fonctionnel du système. Notation
  • 28.
  • 29.
    Concevoir le diagrammede classe d’une application de gestion d’hôtel. Voici ce que vous devez modéliser : Un hôtel est constitué d'un certain nombre de chambres. Un responsable de l'hôtel gère la location des chambres. Chaque chambre se loue à un prix donné. L'accès aux salles de bain est compris dans le prix de la location d'une chambre. Certaines chambres comportent une salle de bain, mais pas toutes. Les hôtes de chambres sans salle de bain peuvent utiliser une salle de bain sur le palier. Ces dernières peuvent être utilisées par plusieurs hôtes. Les pièces de l'hôtel qui ne sont ni des chambres, ni des salles de bain (hall d'accueil, cuisine...) ne font pas partie de l'étude (hors sujet). Des personnes peuvent louer une ou plusieurs chambres de l'hôtel, afin d'y résider. En d'autre termes : l'hôtel héberge un certain nombre de personnes, ses hôtes (il s'agit des personnes qui louent au moins une chambre de l'hôtel...). Exercice
  • 30.