0% ont trouvé ce document utile (0 vote)
11 vues86 pages

Cours

Le document traite de la modélisation orientée objet à l'aide du langage UML et de l'initiation à Java. Il aborde les concepts fondamentaux de l'analyse et de la conception des systèmes d'information, en soulignant l'importance de l'encapsulation, de l'héritage et du polymorphisme. La bibliographie fournie inclut des références clés sur la conception orientée objet et les ressources en ligne pertinentes.

Transféré par

foufainfor
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
11 vues86 pages

Cours

Le document traite de la modélisation orientée objet à l'aide du langage UML et de l'initiation à Java. Il aborde les concepts fondamentaux de l'analyse et de la conception des systèmes d'information, en soulignant l'importance de l'encapsulation, de l'héritage et du polymorphisme. La bibliographie fournie inclut des références clés sur la conception orientée objet et les ressources en ligne pertinentes.

Transféré par

foufainfor
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Processus et Systèmes d’Information - UML

Modélisation orientée objet - UML


et Initiation Java.

Enseignant : Marie Aimar,


Mail : aimar@[Link],

Modélisation orientée objet - UML – p.1


Bibliographie

Les best-of :
Conception orientée objet et applications,
G Booch (Addison-Wesley, 1992).

Le génie logiciel orienté objet,I. Jacobson,


M. Christerson, P. Jonsson, G. Overgaard (Addison-Wesley, 1993).

Les outsiders :
Méthodes orientées objet, 2nd édition,
I Graham (thompson Publisher, 1997).

Analyse des systèmes : de l’approche fonctionnelle à


l’approche objet, Ph. Larvet (InterEditions, 1994).

Modélisation orientée objet - UML – p.2


Bibliographie

Spécial UML :
UML La notation unifiée de modélisation objet,
M. Lai (Dunod, 2000).

Modélisation objet avec UML,


P.A. Muller (Eyrolles, 1998).

Les sites internet :


Index to Object-Oriented Information Sources
[Link] scg/OOinfo/[Link]

UML Resources
[Link] ou [Link]

Aspect-Oriented Programming Home Page


[Link] ou [Link] [Link]

Modélisation orientée objet - UML – p.3


Objectifs du Cours

Architecture Logicielle :
Approcher les problèmes d’analyse et de conception
des systèmes informatiques (des programmes).
Au travers du filtre des méthodes orientées objet :
Unified Modeling Language.

Modélisation orientée objet - UML – p.4


Combattre quelques idées reçues

Il existe une étape Analyse - Conception du logiciel


différente de l’analyse des besoins d’une entreprise (ou
d’un service).
Ne pas tenter de solutionner tous les problèmes d’un
service avec un seul logiciel. Apprendre à cerner
précisément le problème à traiter.
Les méthodes orientées objet ne sont pas faites ( et n’ont
pas prétendue être faites) pour traiter les problèmes
organisationels de management d’une entreprise ou d’un
service.

Modélisation orientée objet - UML – p.5


Analyse des systèmes

1. Analyser un problème.
2. Proposer un modèle.
3. Concevoir un solution.
4. Réaliser (programmer) la solution.

Modélisation orientée objet - UML – p.6


Schema classique - caricatural

Client Quel est le pb Gestion des stocks


à traiter ?

Identification des
Analyste Analyse taches à accomplir
cahier des charges
des données à manipuler

Conception d’un
Chef de Modèle conceptuel système informatique
projet répondant à la question

Programmeur Réalisation codage du programme

Modélisation orientée objet - UML – p.7


Les erreurs de cette vision des choses

Vous n’interviendrez “jamais” sur un projet totalement


nouveau
Ignore les relations avec les autres applications de
l’entreprise : la gestion des stocks peut communiquer avec
la fabrication des marchandises, les commandes des
clients . . .
cloisonne les activités : organisation hiérarchique de
l’analyste au programmeur, le client n’a pas de contact
avec le réalisateur final.
Un client connait pas ses besoins.
✔Un système doit être facile à modifier, à enrichir de
nouvelles fonctionnalités.
✔L’architecture doit donc être modulaire et facile à main-
tenir.
Modélisation orientée objet - UML – p.8
Développement en cascade

Cahier des charges


Expression des besoins
Formalisation
Spécifications
fonctionnelles
Conception
Conception Globale et
détaillée
Codage
Codage et
Validation
Execution
Résultats
Modélisation orientée objet - UML – p.9
Développement Orienté Objet

Prise d’expertise / Lectures et mises à jour


Expression des
besoins

Conceptualisation

ANALYSE / Modifications
CONCEPTION DEVELOPPEUR

Réutilisation Modifications
classification des classes

IMPLEMENTATION
Interprétation
des classes/codages

Réutilisation
Instanciation
et execution RESULTATS

Modélisation orientée objet - UML – p.10


Développement Orienté Objet

Conséquences de l’application des méthodes OO :


les phases d’analyse, de conception et de
programmation sont très liées.

Historique des méthodes orientées objet :


1. langages de programmation,
2. méthodes de conception,
3. méthodes d’analyse.

Modélisation orientée objet - UML – p.11


Quelques repères

Age de l’invention :
1967 - le langage de programmation SIMULA.
1970 - SMALLTALK (Palo Alto).
Age de la confusion :
1980 - les langages ++.
Les méthodes de conception se multiplient
Age de la maturité:
1990 - Object Management Group : standardisation.
Unification des méthodes OMT (Booch) OOSE
(Jacobson) et Rumbaugh : Unified Modeling Language
(version 1.0 1997, version actuelle 1.3).

Modélisation orientée objet - UML – p.12


Principes des langages orientés objet

Permettent d’exprimer la solution d’un problème à l’aide


des éléments de ce problème.
Les programmes manipulent des structures de données
représentant les différentes entités, les objets, du
domaine traité.
Dans ce contexte, Objet signifie élément de l’univers,
c-à-d : chose palpable et/ou visible, quelque chose qui
peut être appréhendée intellectuellement, quelque chose
vers qui la pensée ou l’action est dirigée.
Pour la conception de logiciels, un objet représente un
élément individuel, identifiable, soit réel, soit abstrait avec
un rôle bien défini dans le domaine du problème.

Modélisation orientée objet - UML – p.13


Les concepts de base

Objets : unités de base organisées en classes et


partageant des traits communs (attributs ou procédures).
Peuvent être des entités du monde réel, des concepts de
l’application ou du domaine traité.
Encapsulation :
les structures de données et les détails de
l’implémentation sont cachés aux autres objets du
système.
La seule façon d’accéder à l’état d’un objet est de lui
envoyer un message qui déclenche l’exécution de l’une
de ses méthodes.

Modélisation orientée objet - UML – p.14


Les concepts de base

Encapsulation :
Les types d’objets peuvent être assimilés aux types de
données abstraites en programmation.
Abstraction et encapsulation sont complémentaires,
l’encapsulation dressant des barrières entre les
différentes abstractions.
Héritage : chaque instance d’une classe d’objet hérite
des caractéristiques (attributs et méthodes) de sa classe
mais aussi d’une éventuelle super-classe. L’héritage est un
des moyens d’organiser le monde c.-à-d. de décrire les
liens qui unissent les différents objets.

Modélisation orientée objet - UML – p.15


Les concepts de base

Polymorphisme : possibilité de recourir à la même


expression pour dénoter différentes opérations. L’héritage
est une forme particulière du polymorphisme
caractéristique des systèmes orientés objet.
Modularité : partition du programme qui crée des
frontières bien définies (et documentées) à l’intérieur du
programme dans l’objectif d’en réduire la complexité
(Meyers). Le choix d’un bon ensemble de modules pour un
problème donné, est presque aussi difificile que le choix
d’un bon ensemble d’abstractions.

Modélisation orientée objet - UML – p.16


Faire des choix

Tom Jean Claire

Classe de personnes

Personnes

Quelles sont les caractéristiques - attributs - d’une


personne ?
Quels sont les comportements génériques - fonctions -
d’une personne ?

Modélisation orientée objet - UML – p.17


Le type Personne

Classe Personne

Attributs Comportement

Age Stocker_Age
Femme Communiquer_Age
Ami Marcher
Adresse

Jambe Créer une instance


Tete
Bras

Classe Homme Classe Femme


Comportement Comportement

Sauter Sauter
Danser Danser

Modélisation orientée objet - UML – p.18


3 manières d’ajouter une classe Vieil Homme

Personne Personne
Stocker_Age Stocker_Age
Communiquer_Age Communiquer_Age

Danser Danser Danser Danser Danser


Sauter Sauter Sauter Sauter Sauter
Vieil Homme Homme Femme Homme Femme

Danser
Personne Sauter

Stocker_Age Vieil Homme


Communiquer_Age

Sauter Danser
Sauter
Homme Femme

Danser Danser
Vieil Homme Jeune Homme

Modélisation orientée objet - UML – p.19


Trouver les bons objets

Méthode de désagrégation / agrégation :


désagréger un module ⇒ une suite de modules,
agréger une suite de modules ⇒ un module.

Désagrégation
On part d’un tout que l’on éclate en plusieurs parties.
Chaque partie, formant à son tour un tout, est
susceptible d’être à nouveau éclatée en parties plus
petites.
Il est difficile d’exprimer en décomposition logicielle ce
qu’est une partie.
La conception fait l’hypothèse que le système est un
tout. Pour détailler et exprimer la solution, on postule
que ce tout est composé de parties cohérentes
séparables. Modélisation orientée objet - UML – p.20
Trouver les bons objets

Dans un premier temps, la décomposition est basée sur


les entités du domaine du problème.
La désagrégation est très différente de la décomposition
fonctionnelle puisqu’une fonctionnalité n’est pas une entité
du monde concret.
La granularité de la taille des entités à utiliser est un
facteur important de l’effort d’abstraction à réaliser.
Comment faire trouver les bons Objets ?
c.-à-d. :
1) comment trouver un objet ?
2) comment distinguer un bon objet d’un mauvais ?

Modélisation orientée objet - UML – p.21


Quelques règles d´écriture d’un module

Un module représente un concept et tout le concept.


Pour représenter une idée, il faut que cette idée existe.
Ne pas regrouper dans un module des opérations qui
n’ont pas de raisons particulières d’être ensemble (écriture
de modules fourre-tout).
Pour concrétiser une idée le choix du nom du module est
un élément puissant d’expression (exemple les design
patterns).
Dans une première phase “simpliste” le choix des
méthodes correspond aux verbes.

Modélisation orientée objet - UML – p.22


Un exemple.. enfin !

distribuerLeCourrier()

leFacteur : Facteur

1 : recupererLeCourrier()
2 : distribuerLeCourrier()

particulier : Particulier laPoste : Poste

Modélisation orientée objet - UML – p.23


Objets et Classe d’objets

Objet = Etat + Comportement + Identité

Conventions graphiques de UML

Identité Produit Marteau

Prix 25
Attributs Bricolo
Fabriquant
Afficher() Afficher()
Méthodes
CalculerPrix() CalculerPrix()

printf(prix);

Les classes abstraites sont représentées uniquement par


leur nom dans un rectangle. Il est possible de faire appa-
raitre le mot abstract sous ce nom.
Modélisation orientée objet - UML – p.24
La composition d’objets - 1

Les attributs d’un objet peuvent être eux-même des objets.


La composition par valeur : la construction d’un objet
physique implique la construction de ses attributs par
valeur.

Stock Stock

produit Produit entrepot Entrepot


produit
Produit
entrepot Entrepot
dateMiseaJour Date

dateMiseaJour Date

Modélisation orientée objet - UML – p.25


La composition d’objets - 2

La composition par référence : c’est un lien de


référence qui peut être partagé par plusiseurs objets.

Camion Chauffeur

La construction du conteneur n’implique pas la


construction de l’objet référencé.
NB : le losange se place du coté de l’objet référençant.

Modélisation orientée objet - UML – p.26


La visibilité des attributs et des méthodes

Publique : un attribut ou une méthode publique est


spécifée avec le signe +.
Privée : un attribut ou une méthode privée est spécifée
avec le signe -.
Protected : un attribut ou une méthode protégée est
spécifée avec le signe #.

Modélisation orientée objet - UML – p.27


Signature

La signature d’une méthode se compose de :


son nom,
le nombre et le type de ses paramètres en entrée,
Exemple :
public void afficher(String , Integer);

Dans un espace défini (le même espace de noms), deux


méthodes peuvent avoir le même nom si elles n’ont pas la
même signature.

Modélisation orientée objet - UML – p.28


Représentation de l’héritage

Héritage simple
Véhicule

Aérien Terrestre Marin

Héritage multiple
Tapis Véhicule

Aérien Terrestre Marin

TapisVolant

Modélisation orientée objet - UML – p.29


Héritage multiple inclusif

Véhicule

Propulsion Inclusif Milieu

A voile A moteur Terrestre Marin

Pétrolette
Mélange
de 2 dimensions

Modélisation orientée objet - UML – p.30


Un exemple

Contexte :
Un utilisateur d’interface graphique compose des dessins
complexes à partir d’éléments simples tel que les carrés,
les rectangles . . . Une représentation simple définit des
classes primitives graphiques telles que Texte, Ligne . . . et
quelques autres classes classes jouant le rôle de
containers.
Problème :
Cette approche ne permet pas de traiter de façon
identique les objets containers et les objets primitives alors
que l’utilisateur les traite de la même manière.

Modélisation orientée objet - UML – p.31


L’exemple du pattern Composite

Composant

opération()
ajouter(Composant)
supprimer(Composant)
acqEnfant(int)

Enfants
Feuille Composite
opération() Pour tout g de enfants
opération()
ajouter(Composant) g,operation()
supprimer(Composant)
acqEnfant(int)

Modélisation orientée objet - UML – p.32


Association de classes

Les liens d’association doivent être portés sur une classe


pas sur les champs (instances).
Stock Stock
Liste

produit listeProduits ListeProduits


Produit

Produit
entrepot Entrepot
entrepot Entrepot
dateMiseaJour Date
dateMiseaJour Date

Modélisation orientée objet - UML – p.33


Arité d’une association

1 1 est une seule


0..1 0 ou 1 association
M..N de M à N (M et N entiers naturels)
⋆ de 0 à plusieurs
0..⋆ de 0 à plusieurs
1..⋆ de 1 à plusieurs

Modélisation orientée objet - UML – p.34


Marquer les arités dans le diagramme de classe

leFacteur : Facteur leCourrier:Courrier


1..N 1 1

0..N
laPoste : Poste
0..N
1..N
lesBoitesAuxLettres: BoitesAuxLettres

1
0..1
particulier : Particulier

Modélisation orientée objet - UML – p.35


Les contraintes

Il est possible de préciser les contraintes d’une association


directement sur le diagramme de classe.

Stock Stock
Liste

produit listeProduits ListeProduits


Produit
Produit
entrepot Entrepot {ordonné}
entrepot Entrepot
dateMiseaJour Date
dateMiseaJour Date

Modélisation orientée objet - UML – p.36


Les contraintes - 2

Les liens d’héritage peuvent aussi être étiquetés par des


contraintes.
Personnel
Complet
Disjoint

Cadre Non-Cadre Stagiaires Autres

Modélisation orientée objet - UML – p.37


Les Méta-Classes

Définition :
Une méta-classe définit les caractéristiques d’une
classe, c’est un modèle générique de classse (attribut
ou comportement).
Exemple :
classe abstraite, interface, par extension (abus de
langage !) toute classe d’une classe.
On notera qu’une méta-classe est également un objet
dont la classe est la classe de base de référence à partir
de laquelle tous les objets du système sont construits
(classe Object en Java).
A l’étape d’analyse et de conception, il n’existe pas de
différence entre une classe et une méta-classe.

Modélisation orientée objet - UML – p.38


Les Méta-Classes

<<abstract>>
Object

Véhicule

Terrestre Aérien Marin

Modélisation orientée objet - UML – p.39


Représentation des Paquetages

Service

Clients
Gestion

Client

Traitement
Etablissement Compte
Banque

<<import>>
Communication
Sauvegarde
Réseaux
Persistance

Modélisation orientée objet - UML – p.40


Représentation de modules

Les modules sont des unités de compilation. Certains


langages de programmation n’ont aucune correspondance
avec ce concept.

Gestion de

Compte
Clients

Modélisation orientée objet - UML – p.41


Le diagramme de classes

Le diagramme de classe est une vue statique du modèle.


Il décrit la structure interne des classes et leurs relations
(dépendances, héritage, composition . . . ) .
Les termes : static structural diagram et class diagram
sont équivalents dans la terminologie UML.
Il est une collection des éléments du modèle déclaratif.
Ces éléments sont classifiés grâce au mécanisme de
typage.

Modélisation orientée objet - UML – p.42


Le diagramme d’objets

C’est le graphe des instances des différentes classes


d’objets.
Il est lui-même une instance du diagramme de classes.
Il sert uniquement à illustrer des exemples.

Modélisation orientée objet - UML – p.43


Classifier

Il est également possible de construire un diagramme qui


ne contient que les interfaces et les classes abstraites. On
parle alors de Méta-modèle.

Modélisation orientée objet - UML – p.44


Type vs Implementation

Une classe peut-être spécialisée par des classes


d’implémentation ou de typage.
Un type se caractérise par un rôle (modifiable) qu’un
objet peut adopter puis abandonner.
Une implémentation définit la structure de données
physique et les procédures qui caractérisent un objet.
Un objet peut avoir plusieurs types (qui peut être changé
dynamiquement) mais une seule implémentation.
NB : si leur usage est différent, leur structure interne est
identique.

Modélisation orientée objet - UML – p.45


Type vs Implementation

<<type>> <<implementation>>
Collection HashTable

<<type>> <<implementation>>
Ensemble HashTableEnsemble
elements : Collection elements : Collection

addElement(Object) addElement(Object)
removeElement(Object) removeElement(Object)
testElement(Object):Boolean testElement(Object):Boolean
setTableSize(Integer)

Modélisation orientée objet - UML – p.46


Les Modèles UML

La modélisation proposée par UML est définie par un


Méta-modèle indépendant du formalisme de
représentation.
Un modèle peut caractériser :
Un niveau d’abstraction : passer graduellement des
spécifications externes du système à une solution
informatique concrète.
Une phase du cycle de vie de développement :
organisation du développement.
un niveau métier du domaine d’application : connexion
avec le vocabulaire du domaine.
des différentes vues du modèle objet final à obtenir :
classification des modèles (fonctionel, structurel,
temporel).
Modélisation orientée objet - UML – p.47
a
Cas d’utilisation

Problème :
Les besoins d’un système (cf cahier des charges) sont
souvent exprimés de manière non structurée, sans forte
cohérence (imprécision, oublis, contradictions).

Récepteur de dépots

Panneau client Imprimante à recu

Elt[0..n]

Base de recu Elt déposés

Hérite

Boite Cageot
Bouteille
Modélisation orientée objet - UML – p.48
Le modèle des cas d’utilisation

Les fonctions du système sont représentées au travers des


Cas d’utilisation.
Représentation des interactions entre le système et
l’extérieur.
Permettent de définir les limites du système et les
relations entre le système et l’environnement.
Décrivent le comportement du système du point de vue
d’un utilisateur, les acteurs.
La structuration de la démarche s’effectue par rapport aux
interactions d’une seule catégorie d’utilisateurs à la fois.
Les acteurs sont représentés comme des classes mais
ne font pas partie de la solution objet à réaliser.

Modélisation orientée objet - UML – p.49


Le modèle des cas d’utilisation

Les cas d’utilisation sont repésentés à partir d’un


diagramme conceptuel ou diagramme des cas
d’utilisation.
Ce diagramme représente une sorte de diagramme de
communication, de flux d’évènements ou de données
entre des entités externe et le système à concevoir.
Une fois les objets identifiés et décrits, on peut
exprimer comment ces objets participent au cas
d’utilisation.

Modélisation orientée objet - UML – p.50


Représentation UML

Distributeur Automatique de Billets

effectuer un
virement gérer le <<acteur>>
<<acteur>> distributeur Banque
client
retirer une
somme d’argent
effectuer la
<<acteur>>
maintenance
employé
consulter un
compte

Modélisation orientée objet - UML – p.51


Descripton d’un cas d’utilisation

l’identification et la représentation graphique d’un cas


d’utilisation donne une connaissance sur l’interface externe
du système.
La description détaillée peut être donnée sous forme de
diagrammes de séquences qui modélisent les échanges
de messages entre les objets.
Dans ce cas, seulement 2 catégories d’objets : les
acteurs externs et et les composants qui interagissent
directement avec les acteurs.

Modélisation orientée objet - UML – p.52


Diagramme de collaboration

Le diagramme de collaboration montre simultanément les


interactions entre les objets et les relations structurelles
qui permettent ces interactions.
La numérotation donne l’ordre d’envoi des messages.
Le temps n’est pas représenté.

:Ascenseur
1 monter

:Cabine 3 fermer

:Porte
2 allumer

:Lumière Modélisation orientée objet - UML – p.53


Diagramme de collaboration - 2

Exprime le contexte d’un groupe d’objets (liens entre


objets) et l’interaction entre ces objets (envoi de
messages).
Une interaction est réalisée par un groupe d’objets qui
collaborent en échangeant des messages.
Ces messages sont représentés le long des liens qui
relient les objets avec des flêches orientées vers le
destinataire du message.
Est une extension du diagramme d’objets.
Permet la représentation d’un acteur, élément externe au
système (le premier message est envoyé par l’acteur).
Ne pas confondre ces liens avec ceux de composition des
diagrammes de classes ou d’objets.
Modélisation orientée objet - UML – p.54
Diagramme de séquence

<<actor >> <<actor>>


client:Client dab:DistributeurAutomatique

afficher message accueil


introduire carte banquaire
demander mot de passe
introduire mot de passe
demander type operation
introduire demande retrait
demander montant
introduire montant
afficher message billets a retirer
distribuer billets
retirer billets
restituer carte
retirer carte
afficher message fin operation

Modélisation orientée objet - UML – p.55


Diagramme de séquence

Montrent des interactions entre objets selon un point de


vue temporel.
Pas de représentation explicite du contexte des objets.
Notation a :
Un objet est matérialisé par un rectangle est une barre
verticale appelée ligne de vie

unObjet

a
Object Message Sequence Chart, Siemens Pattern Group. Wiley 1996
Pattern-riented Softawre
Modélisation orientée objet - UML – p.56
Diagramme de séquence - 2

L’ordre d’envoi d’un message est donné par la position


sur l’axe vertical.

unObjet objet2 objet3

un message

un autre message

Modélisation orientée objet - UML – p.57


Diagramme de séquence - utilisation

Deux utilisations possibles :


Documentation des cas d’utilisation : description des
interactions entre objets sans détails de synchronisation.
Les flèches correspondent à des événements qui
surviennent dans le domaine de l’application. Pas de
distinction entre flots de contrôle et flots de données.

appelant ligne appelé


téléphonique
décroche

tonalité
numérotation
indication de sonnerie sonnerie
décroche
Modélisation orientée objet - UML – p.58
allo
Diagramme de séquence - utilisation - 2

Représentation précise des interactions entre objets.


le concept de message unifie toutes les formes de
communication : appel de procédures, événemnt
discret, signal de flots, interruption matérielle . . .

objeta objetb objeta objetb

message synchrone un message

message asynchrone

objeta

message
réflexif
Modélisation orientée objet - UML – p.59
Diagramme de séquence - utilisation - 3

Un message réflexif peut aussi être un point d’entrée


dans une activité qui s’exerce au sein d’un objet (par
exemple composite).

objet composite composant a composant b


point
d’entrée

Modélisation orientée objet - UML – p.60


Diagramme de séquence - utilisation - 4

Création et destruction d’un objet.

objet a

créer
objet b

détruire

Modélisation orientée objet - UML – p.61


Diagramme de séquence - utilisation - 5

Représentation des périodes d’activité des objets = temps


pendant lequel un objet effectue une action.
le début et la fin de la bande rectangulaire correspondent
au début et à la fin d’une période d’activité.

objet a

activation

Modélisation orientée objet - UML – p.62


Diagramme de séquence - utilisation - 6

Les digrammes de séquence permettent également de


représenter les périodes d’activité des objets.

A B

retour
implicite

Modélisation orientée objet - UML – p.63


Diagramme de séquence - utilisation - 7

Dans le cas d’envoi asynchrone, le retour doit être


signalé.

A B

retour
explicite

Modélisation orientée objet - UML – p.64


Diagramme de séquence - utilisation - 8

Cas des messages récursifs

appel
récursif

Modélisation orientée objet - UML – p.65


Mode centralisé - Mode décentralisé

Les diagrammes de séquences reflètent le choix des


structures de controle.

A B C D

Modélisation orientée objet - UML – p.66


Mode centralisé - Mode décentralisé

Envoi décentralisé de messages.

A B C D

Modélisation orientée objet - UML – p.67


Expression des contraintes temporelles

A B C

x
{y-x <3s}
y
{z-y < 1s} z
t
{t’-t <2s}
t’

Modélisation orientée objet - UML – p.68


Boucles et branchements

A B A B

while X message *[X]message


loop
end loop

Modélisation orientée objet - UML – p.69


Branchement Conditionnel

A B C A B C

if X message [X]message

else message2
non[X]message2

Modélisation orientée objet - UML – p.70


Les diagrammes de collaboration

Rôle :
Ils montrent les interactions entre les objets.
Ils expriment le contexte d’un groupe d’objets.
Ils sont des extensions du diagrammes d’objets.
Une interaction est réalisée par un groupe d’objets qui
collaborent en échangeant des messages.
Ces messages sont représentés le long des liens qui
relient
les objets avec des flêches orientées vers le destinataire
du message.

Modélisation orientée objet - UML – p.71


Les diagrammes d’états-transitions

Visualisent des automates déterministes a .


On relie l’automate à la classe considérée. On ne
représente pas les automates des objets qui ne changent
pas (ou peu) d’état.

classe automate

a
formalisme de Harel, D. 1987. Statecharts : a Visual Formalism for Complex
Systems. Science of Computer Programming vol 8.

Modélisation orientée objet - UML – p.72


Les diagrammes d’états-transitions - 2

Un objet est à tout moment dans un état donné.


L’état d’un objet est constitué des valeurs instantanées de
ses attributs.

Etat intermédiaire
Etat initial Etat final

Modélisation orientée objet - UML – p.73


Les diagrammes d’états-transitions - 3

L’objet passe d’un état à un autre par les transitions.


Déclenché par un événement, les transitions permettent
le passage d’un état à un autre instantanément.

+de 60 ans
en activité

perte embauche retraite


d’emploi

chomage
+de 60 ans

Modélisation orientée objet - UML – p.74


Les événements

La syntaxe d’un événement dans un diagramme est la


suivante :
Nom_événement ( Nom_paramètre : type, ...)[condition]
condition est la garde qui valide ou non le déclenchement
d’une transition quand l’événement s’est produit.
On peut associer à chaque transition une action à
exécuter lors du franchissement dû à un événement. Les
spécifications de l’action sont contenues dans l’objet
destinataire.
Exemple : l’événement il fait trop chaud entraîne
la climatisation ou l’ouverture des fenêtres selon la saison.

il fait trop chaud[été] il fait trop chaud[hiver]


Modélisation orientée objet - UML – p.75
climatiser aérer
Les événements

Il est possible de préciser les actions à exécuter lorsque


l’on est dans un état donné, en entrant ou en sortant.
Pour cela UML donne plusieurs mots-clés :
entry : action à exécuter dès l’entrée dans l’état.
exit : action à exécuter lors de la sortie de l’état.
on : action interne provoquée par un événement qui ne
provoque pas le passage à un nouvel état.
do :activité à exécuter (une activité est une action dont
le temps d’exécution est non négligeable).

Modélisation orientée objet - UML – p.76


Exemple d’un diagramme d´états

fermer(écranPaiement)

ouvrir(écranPaiement)
en attente annulation
entry / ouvrir(écranAccueil)
exit / fermer(écranAccueil)

en attente de sélection
en cours de paiement
entry / ouvrir(écranSélection)
exit / fermer(écranSélection)
ouvrir
(écranPaiement)

choix effectué choix invalide


entry / ouvrir(écranDistribution)
exit / fermer(écranDistribution)

ouvrir(écranHorsService)
Modélisation orientée objet - UML – p.77
Généralisation d’états

Pour remédier au problème de l’explosion du nombre des


états et de leur connexions, il est possible de définir des
super-classes d’états et des sous-classes qui en
héritent. La démarche d’abstraction est identique à la
généralisation/spécification des classes.
Un état peut-être décomposé en plusieurs sous-états
disjoints (ou-exclusif), un objet ne peut-être que dans un
seul état à la fois.

t1
A B t1
A B

t2 t2
t2
C
C

Modélisation orientée objet - UML – p.78


Généralisation d’états - 2

Un sous-état hérite des variables d’états et de transitions


externes de sa super-classe.
Un seul état (le super-état ou un des sous-états) hérite
des transitions d’entrée car un seul état peut-être la cible
d’une transition.
Si la décomposition a pour objectif de définir un état
particulier pour le traitement d’une transition interne, cette
transition ne fera pas l’objet d’un héritage.
Cas d’une décomposition qui rompt la barrière
d’asbtraction :
A B
A B1

B2
Modélisation orientée objet - UML – p.79
Solution

Représentation simplifiée
B

A B1
A B
C
B2

Modélisation orientée objet - UML – p.80


Agrégation d’états

L’agrégation d’états est un état composé de plusieurs


automates qui évoluent simultanément et
indépendamment.

evt3
U W

evt1 evt2
X
Z
evt4
Y

Modélisation orientée objet - UML – p.81


Agrégation d’états - 2

Prendre un module
Incomplet

Fabriq1 1-fait Fabriq2 2-fait

Validé

ProjetFini projet fait

ok
TestFinal

échec
Rejeté

Modélisation orientée objet - UML – p.82


Transitions complexes

DemandeParamC MAJCouleurs

Démarrage Rafraichisseme
DemandeParamP MAJPosition

Modélisation orientée objet - UML – p.83


Décisions

[cout <$50] débiter


le client

calculer
cout total

demander
[cout >=$50] autorisation

Modélisation orientée objet - UML – p.84


Diagrammes d’activités

consomateur vendeur stock

demande
service

prendre
payer commande
remplir
commande

délivrer
commande
prendre
commande

Modélisation orientée objet - UML – p.85


Action et Objets

Consomateur Vendeur Stock

demande
service

commande
[passée]

prendre
payer commande commande
[en stock]

remplir
commande commande
[délivrée]

délivrer
commande commande
[délivrée]

récuperer
commande
Modélisation orientée objet - UML – p.86

Vous aimerez peut-être aussi