UML pour le Master

Transcription

UML pour le Master
UML
« Unified Modeling Language »
Le Langage de Modélisation Objet Unifié
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Modélisation
Le Langage de Modélisation Objet Unifié
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Qu'est-ce qu'un modèle ?
• Un modèle est une abstraction de la réalité
– Modéliser est un processus qui consiste à identifier les
caractéristiques intéressantes d'entités, en vue d'une
utilisation précise
– L'abstraction désigne aussi le résultat de ce processus,
c'est-à-dire l'ensemble des caractéristiques essentielles
d'entités, retenues par un observateur
• Un modèle est une vue subjective mais pertinente de
la réalité
– Un modèle définit une frontière entre la réalité et la
perspective de l'observateur
– Un modèle reflète des aspects importants de la réalité, il en
donne une vue pertinente bien qu’imprécise
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Caractéristiques fondamentales des
modèles
• Faciliter la compréhension du système étudié
– Un modèle réduit la complexité du système étudié
• Simuler le système étudié
– Un modèle représente le système étudié et reproduit ses
comportements
• Un modèle réduit (décompose) la réalité, dans le but
de disposer d'éléments exploitables par des moyens
– Mathématiques
– Informatiques
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Quelques exemples de modèles
• Modèle météorologique
– à partir de données d'observation, permet de prévoir des
conditions climatiques
• Modèle économique
– peut permettre de simuler l'évolution de cours boursiers en
fonction d'hypothèses macro-économiques
• Modèle démographique
– définit la composition d'un panel d'une population et son
comportement, dans le but de fiabiliser des études
statistiques, d'augmenter l'impact de démarches
commerciales, etc...
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
L’Orientation Objet
Le Langage de Modélisation Objet Unifié
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Qu’est-ce qu’un objet ?
• La programmation traditionnelle consiste à traiter des
données (éventuellement structurées) au moyen de
fonctions ou procédures
• Un objet est une entité autonome, qui regroupe un
ensemble de propriétés cohérentes et de traitements
associés.
– Un objet est une entité aux frontières précises qui possède
une identité (un nom)
– Un ensemble d'attributs caractérise l'état de l'objet
– Un ensemble d'opérations (méthodes) en définissent le
comportement
• Un objet est accessible à travers une interface
• Les objets réagissent à des messages, et en
envoient à d’autres objets, au travers de leurs
interfaces
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Exemples d’objets
• Individu
Objet1 : Individu
Nom = Dupont
Prénom = Jean
Date de naissance = 16/06/40
Sexe = M
• Correspondant
Objet2 : Correspondant
Nom = Dupont
Prénom = Jean
Adresse = [email protected]
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Encapsulation
• Consiste à masquer les détails d'implémentation d'un
objet, en définissant une interface
• L'interface est la vue externe d'un objet, elle définit
les services accessibles (offerts) aux utilisateurs de
l'objet
• On peut modifier l'implémentation des attributs d'un
objet sans modifier son interface
• L'encapsulation garantit l'intégrité des données, car
elle permet d'interdire l'accès direct aux attributs des
objets
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Les messages
• Message simple dont on ne spécifie aucune
caractéristique d'envoi ou de réception particulière
• Message asynchrone qui n'interrompt pas l'exécution
de l'expéditeur.
– Le message envoyé peut être pris en compte par le
récepteur à tout moment ou jamais traité
• Message synchrone qui bloque l'expéditeur jusqu'à
prise en compte du message par le destinataire
– Le flot de contrôle passe de l'émetteur au récepteur
– L'émetteur devient passif et le récepteur actif à la prise en
compte du message
• Message dérobant qui n'interrompt pas l'exécution de
l'expéditeur
– Il ne déclenche une opération chez le récepteur que s'il s'est
préalablement mis en attente de ce message
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Encapsulation et messages
• Les objets communiquent entre eux par des
messages
Partie visible
Partie cachée
M
e
s
s
a
g
e
s
Objet
Interface
Implémentation
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Exemples de Messages
• Message simple
– Publicité (papier, radio, télé, Internet, …)
• Message asynchrone
– Courrier (poste, répondeur, messagerie, …)
• Message synchrone
– Conversation (orale, téléphone, chat, …)
• Message dérobant
– Avertissement (alerte, autorisation, …)
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Qu’est-ce qu’une classe d’objets ?
• Une classe est un type de données abstrait,
caractérisé par des propriétés (attributs et méthodes)
communes à des objets et permettant de créer des
objets possédant ces propriétés
• Exemple
Classe
Voiture
206 : Voiture
-Marque
-Couleur
-Immatriculation
+Démarrer()
+Conduire()
+Arrêter()
Marque = Peugeot
Couleur = Gris
Immatriculation = 1024 ZZ 13
Objet : instance de classe
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Exemples de classes
• Les individus
Individu
-Nom
-Prénom
-Date de naissance
-Sexe
+Age()
• Les correspondants
Correspondant
-Nom
-Prénom
-Adresse
+RecevoirMessage()
+EnvoyerMessage()
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Héritage
• Une classe peut être spécialisée en d'autres classes,
afin d'y ajouter des caractéristiques spécifiques ou
d'en adapter certaines.
• Plusieurs classes peuvent être généralisées en une
classe qui les factorise, afin de regrouper les
caractéristiques communes d'un ensemble de
classes.
• La spécialisation et la généralisation permettent de
construire des hiérarchies de classes. L'héritage peut
être simple ou multiple
• L'héritage est un mécanisme de transmission des
propriétés d'une classe (ses attributs et méthodes)
vers une sous-classe.
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Hiérarchie de classes
Généralisation
Oeuvre
-Titre
-Auteur
Livre
Roman
Opéra
BD
Film
Spécialisation
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Polymorphisme
•
•
Le polymorphisme représente la faculté d'une méthode à
pouvoir s'appliquer à des objets de classes différentes
Exemple
Véhicule
+SeDéplacer()
Train
Voiture
Bateau
SeDéplacer( "sur des rails" )
SeDéplacer( "sur la route" )
SeDéplacer( "sur l'eau" )
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Covariance
• La covariance est la propriété d’une hiérarchie de
classes d’avoir des parties isomorphes
• Exemple
Animal
Quadrupède
Bipède
Herbivore
Carnivore
Herbivore
Carnivore
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Délégation
• La délégation permet de rompre le mécanisme
d’héritage entre classe et sous-classes
• Exemple
Animal
Station
Bipède
Nourriture
Quadrupède
Herbivore
Carnivore
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Composition
• Il s'agit d'une relation entre deux classes, spécifiant
que les objets d'une classe sont des composants de
l'autre classe
• Les éléments agrégés font physiquement partie de
l’agrégat
• Exemple
Corps
1
1
Tête
Tronc
Membres
1
*
Inférieurs
Supérieurs
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Les associations
• Les associations décrivent des relations structurelles
entre classes d’objets
• Chaque classe possède un rôle explicite ou implicite
dans une association
• Forme générale d’une association binaire
Classe1
-Rôle1
Association > -Rôle2
-Attributs2
-Attributs1
+Méthodes1()
Classe2
*
*
+Méthodes2()
Cardinalités
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Cardinalités des associations
• Les cardinalités possibles sont
–
–
–
–
0..* (ou *) : zéro ou plusieurs
1..* : au moins un
0..1 : un au plus
1..1 (ou 1) : un et un seul
• Exemples
Traite >
-Patient
Médecin
Individu
0..*
1..*
Est >
Médecin
Individu
0..1
1..1
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Associations n-aires et classes
d’associations
• Association n-aire
Classe d’association
Professeur
1..1
Professeur
1..1
Etudiant
Salle
1..*
1..1
Salle
Etudiant
1..1
1..*
-Date
-HeureDébut
-Durée
Cours
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Spécialisation d’une classe d’association
• Une classe d’association peut participer au modèle
– On peut par exemple la spécialiser
-Récepteur
Facteur
Personne
0..*
1..*
Courrier
Lettre
Colis
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Relations de dépendance
• Indiquent une contrainte à respecter au moment
d’instancier des éléments d’un modèle
-Parent d'élèves
Sous-ensemble
Ecole
Individu
-Délégué
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
UML
Le Langage de Modélisation Objet Unifié
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Comment modéliser avec UML ?
• UML est un langage qui permet de représenter des
modèles, mais il ne définit pas le processus
d'élaboration des modèles
• Cependant, dans le cadre de la modélisation d'une
application informatique, les auteurs d'UML
préconisent d'utiliser une démarche
– itérative et incrémentale
– guidée par les besoins des utilisateurs du système
– centrée sur l'architecture logicielle
• Un processus de développement qui possède ces
qualités devrait favoriser la réussite d'un projet
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Une démarche itérative et incrémentale
• Pour modéliser (comprendre et représenter) un
système complexe, il vaut mieux s'y prendre en
plusieurs fois, en affinant son analyse par étapes
• Cette démarche devrait aussi s'appliquer au cycle de
développement dans son ensemble, en favorisant le
prototypage
• Le but est de mieux maîtriser la part d'inconnu et
d'incertitudes qui caractérisent les systèmes
complexes
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Une démarche guidée par les besoins des
utilisateurs
• Ce sont les utilisateurs qui guident la définition des
modèles
– Le périmètre du système à modéliser est défini par les
besoins des utilisateurs
– Le but du système à modéliser est de répondre aux besoins
de ses utilisateurs
• Les besoins des utilisateurs servent aussi de fil rouge
– A chaque itération de la phase d'analyse, on clarifie, affine et
valide les besoins des utilisateurs
– A chaque itération de la phase de conception et de
réalisation, on veille à la prise en compte des besoins des
utilisateurs
– A chaque itération de la phase de test, on vérifie que les
besoins des utilisateurs sont satisfaits
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Une démarche centrée sur l'architecture
logicielle
• Définir une architecture avec UML : « 4+1 »
– La vue logique modélise les éléments et mécanismes
principaux du système
– La vue des composants identifie les modules qui réalisent
(physiquement) les éléments de la vue logique
– La vue des processus montre la décomposition du système
en terme de processus (tâches) et leurs interactions
– La vue de déploiement décrit les ressources matérielles et la
répartition du logiciel dans ces ressources
– La vue des besoins des utilisateurs ( « cas d’utilisation »)
guide toutes les autres
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Modéliser les vues statiques et
dynamiques d’un système
• Vues statiques
– Cas d'utilisation (use cases)
– Diagrammes de classes
• Vues dynamiques
– Diagrammes de collaborations
– Diagrammes de séquence
• Il existe d’autres diagrammes que nous ne
présenterons pas dans le cadre de ce cours (voir la
bibliographie dans la dernière diapositive)
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Exercice ( fil rouge )
Bar en mode client / serveur
serveur
Ressources
demande de boisson
gestion :
client
boisson et
informations de
service
de la file d'attente
des ressources
des conflits
…
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Les cas d’utilisation
• Ils identifient les utilisateurs du système (acteurs) et
leurs interactions avec le système
• Ils permettent de structurer les besoins des
utilisateurs et les objectifs correspondants d'un
système
• Ils se limitent aux préoccupations "réelles" des
utilisateurs
– ils ne présentent pas de solutions d'implémentation
– ils ne forment pas un inventaire fonctionnel du système
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Exemple de cas d’utilisation
On ne peut retirer de l'argent que dans la limite du contenu du coffre du distributeur
débite
Retirer de l'argent
Ravitailler le
coffre
Client
Eteindre/allumer
le distributeur
Agent de maintenance
L'agent de maintenance doit eteindre le distributeur avant de ravitailler le coffre
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Exercice : cas d’utilisation
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Les diagrammes de classes
• Un diagramme de classes fait abstraction des
aspects dynamiques et temporels
• Pour un modèle complexe, plusieurs diagrammes de
classes complémentaires doivent être construits
– On peut par exemple se focaliser sur
• les classes qui participent à un cas d'utilisation
• les classes associées dans la réalisation d'un scénario précis
• la structure hiérarchique d'un ensemble de classes
– On peut aussi avoir recours aux associations entre classes
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Exercice : diagramme de classes
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Les diagrammes de collaboration
• Les diagrammes de collaboration montrent des
interactions entre objets
– Ils permettent de représenter le contexte d'une interaction,
car on peut y préciser les états des objets qui interagissent
• Exemple
AF-A320 : Avion
Décoller (simple)
Etat = a_terre
TourDeControle
Attérir (dérobant)
DA-B737 : Avion
Etat = en_vol
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Exercice : diagramme de collaboration
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Les diagrammes de séquences
• Les diagrammes de séquences permettent de
représenter des collaborations entre objets selon un
point de vue temporel
– on y met l'accent sur la chronologie des envois de messages
• Les diagrammes de séquences peuvent servir à
illustrer des cas d'utilisation
• L'ordre d'envoi des messages est déterminé par leur
position sur l'axe vertical du diagramme
– le temps s'écoule "de haut en bas" de cet axe
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Axe temporel des diagrammes de
séquences
Objet : Classe
Message simple
Temps
Message asynchrone
Message synchrone
Créer
NouvelObjet : Classe
Détruire
Message de renvoi
Lignes de vie
Période
d’activation
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Conditions dans les diagrammes de
séquences
AutreObjet
Objet
Message asynchrone
Renvoi explicite
SI <Condition>
Alors
Sinon
Cas A
Cas B
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Exercice : diagramme de séquences
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Problème
• On se propose de modéliser avec UML le
fonctionnement du cabinet d’un médecin généraliste
– Les cas d’utilisation devront mettre en évidence les acteurs
et leurs interactions avec le système
– Si nécessaire, un diagramme de classes présentera les
spécificités des entités impliquées
– Un ou des diagrammes de collaboration préciseront les
interactions entre objets et/ou classes
– Un diagramme de séquences devra montrer les
collaborations dans le temps et/ou illustrer des cas
d’utilisation
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004
Bibliographie
• Livres
– Modélisation objet avec UML. P-A Muller, N Gaertner.
Eyrolles
– Exercices corrigés d’UML : Génie logiciel. P André, A Vailly.
Ellipses Marketing
• Sites Internet
– Introduction à la notation UML :
http://www.commentcamarche.net/uml/umlintro.php3
– UML en français : http://uml.free.fr
– Introduction to OMG’s UML :
http://www.omg.org/gettingstarted/what_is_uml.htm
Master EISIS – Michel JOUBERT – LERTIM, Faculté de Médecine, Marseille - 2004