Modélisation Objet et UML en Informatique
Modélisation Objet et UML en Informatique
2003
Jacques Lonchamp
SIXIEME PARTIE
La modélisation objet.
UML
1. Les méthodes d’analyse et de conception
Une méthode :
• propose une démarche, distinguant les étapes du développement dans le cycle
de vue du logiciel et exploitant au mieux les principes fondamentaux : modularité,
réduction de la complexité, réutilisation, abstraction, etc.,
• propose des formalismes (langages) et des types de documents (modèles), qui
facilitent la communication, l’organisation et la vérification,
Parmi les principaux objectifs des méthodes objets, on peut noter la volonté de :
• regrouper l’analyse des données et des traitements,
• établir un couplage explicite entre les concepts du monde réel et les composants
exécutables (« réduire la distance sémantique entre le langage des concepteurs et
celui des utilisateurs »),
• faciliter la réutilisation,
• simplifier les transformations entre le niveau conceptuel et l’implantation.
Au début des années 90, il existait une cinquantaine de méthodes objet, liées par un
certain consensus autour d’idées communes : objets, classes, sous-systèmes, etc.
Mais chacune possédait sa propre notation, ses points forts et ses manques, et son
orientation privilégiée vers un domaine d’application. L’idée d’une certaine unification
des méthodes objet est née de ce constat. La communauté informatique, autour de
l’OMG (‘Object Management Group’) qui standardise les technologies de l’objet,
s’est attachée à la définition d’un langage commun unique, utilisable par toutes les
méthodes objets, dans toutes les phases du cycle de vie et compatible avec les
techniques de réalisation du moment.
2. UML
Ce langage commun s’appelle UML (‘Unified Modeling Language’). UML est une
notation basée principalement sur les méthodes OOD (de Booch), OMT (de
Rumbaugh) et OOSE (de Jacobson).
Vue logique
dynamique Vue déploiement
la dynamique l’architecture
des objets analyse à conception à implantation physique
En 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.
Les cas d’utilisation délimitent le système, ses fonctions (ses cas), et ses relations
avec son environnement. Ils constituent un moyen de déterminer les besoins du
système. Ils permettent d’impliquer les utilisateurs dès les premiers stades du
développement pour exprimer leurs attentes et leurs besoins (analyse des besoins).
Ils constituent un fil conducteur pour le projet et la base pour les tests fonctionnels
(cf. Figure 2).
Un acteur est une personne ou un système qui interagit avec le système étudié, en
échangeant de l’information (en entrée et en sortie). On trouve les acteurs en
observant les utilisateurs directs du système, les responsables de sa maintenance,
ainsi que les autres systèmes qui interagissent avec lui. Un acteur représente un rôle
joué par un utilisateur qui interagit avec le système. La même personne physique
peut jouer le rôle de plusieurs acteurs. D’autre part, plusieurs personnes peuvent
jouer le même rôle, et donc agir comme un même acteur.
Exprime Comprend
Utilisateur
Analyste
Cas d'utilisation
Réalise Vérifie
Programmeur Testeur
Notations :
SYSTEME
Acteur <<acteur>>
Client local
Client distant
Virement par
Internet <<Étend>>
<<Inclut>>
Virement
Identification
4. Les objets
Son état
Une voiture
Essence = 30 litres
Une voiture
Couleur = Rouge
Après un parcours Poids = 979 kg
de 100 Km Puissance = 16 CV
Essence = 25 litres
Une voiture
Essence = 20 litres
Le comportement décrit les actions et les réactions d’un objet (ou ‘compétences’ d’un
objet). Le comportement se matérialise sous la forme d’un ensemble d’opérations (ou
méthodes ou fonctions membres). On distingue souvent les opérations selon leur
finalité de constructeur, accesseur, modificateur, destructeur et itérateur.
Un autre objet
Un message
état
Opération 1{...} comportement
Un objet Opération 2{...}
Tout objet possède une identité interne (non modifiable) qui lui est propre et qui le
caractérise. L’identité permet de distinguer tout objet de façon non ambiguë,
indépendamment de son état (de ses attributs). Les langages objets utilisent des
identifiants internes. Les identifiants et clés primaires des bases de données sont
inutiles en objet.
5. Les collaborations
Une application est une société d'objets qui collaborent afin de réaliser les fonctions
de l’application. Le comportement global d’une application repose donc sur la
communication entre les objets qui la composent (échanges de messages).
A
1: X 3: Z
2: Y
B
Figure 7 : un diagramme de collaboration C
5.2. Les diagrammes de séquence
Ils mettent l’accent sur les relations temporelles. De nombreuses notations annexes
permettent de préciser la nature des messages (appel de procédure, simple signal,
message répétitif, conditionnel, réflexif, récursif, etc.) et les données véhiculées. Ils
peuvent être utilisés aussi bien pour préciser la réalisation des cas d’utilisation que
pour spécifier de manière très détaillée la dynamique d’un ensemble d’objets (appels
de méthodes).
A B C
M1
M2
M3
M4
M5
M6
M7
M9 M8
temps M10
(‘ligne de vie’)
Figure 8 : un diagramme de séquence
6. Les classes
Le monde qui nous entoure est constitué de très nombreux objets. Pour comprendre
le monde, l’être humain a tendance à regrouper les éléments qui se ressemblent.
Regrouper des objets suivants des critères de ressemblance s’appelle classer. Les
humains ont classé les animaux les plantes, les champignons, les atomes, ...
La classe est la description abstraite d’un ensemble d’objets. Elle peut être vue
comme la factorisation des éléments communs à un ensemble d’objets.
La classe intègre les concepts de type (en tant que « moule à instances ») et de
module (avec l’idée d’interface + corps).
opération
(méthode)
publique
Classe
Etat
interface
opération
(méthode)
privée
Classe plus
Super - classe générale
généralisation spécialisation
Classe plus
Sous - classe spécialisée
Figure 11 : généralisation/spécialisation
Exemple :
Animal
Carnivore Herbivore
Un même message peut être traité de manière différente selon la nature de l’objet
receveur. On parle de polymorphisme. L’émetteur n’a pas besoin de connaître la
classe du receveur.
Exemple : on paye des employés de 2 types (‘mensualisés’ et ‘à la tache’). Il suffit
d’envoyer la méthode calculerPaie() à tous les employés. Si un nouveau type
d’employé apparaît le programme de paie n’a pas à être modifié.
Employé
Mensualisé A_la_tâche
Figure 13 : polymorphisme
Etudiant
1 < Inscription *
Université Personne
1 Un et un seul
0..1 Zéro ou un
M .. N De M à N (entiers naturels)
* Plusieurs
0 .. * De zéro à plusieurs
1 .. * D 'un à plusieurs
Multiplicité placée sur la destination
Exemple : association Inscription entre Etudiant et Université (cf. Figure 14); lien
d’inscription entre l’objet Pierre et l’objet Université de Nancy. Rôles Employeur et
Employé de l’association Emploie.
L’agrégation est une association qui décrit une relation d’inclusion entre une partie et
un tout (l‘agrégat). Elle est réflexive, transitive, non symétrique. Si la relation
d’agrégation est une composition (composant/composé avec des durées de vie liées
pour les objets), elle est symbolisée par un losange plein ; sinon (pour des durées de
vie indépendantes), elle est représentée par un losange vide du côté de l’agrégat.
1 1
* 1 1 1..*
Roue Moteur Carrosserie Arrêt
TarteAuxPommes Pomme
Une tarte aux pommes est de même nature qu’une tarte. Une pomme n’est pas de
même nature qu’une tarte !
Autres concepts :
- Attributs d’associations :
Buveur Boire
Vin
A_bu Est_bu
Date
Quantité
Figure 16 : attributs d’association
Pas de nom
Note
Salle
1
2..* 1
Etudiant Enseignant
Cours
Début
Fin
Figure 19 : un paquetage
Ces diagrammes permettent aussi la décomposition d’états en sous états (cf. Figure
22). On parle aussi d’état composite.
B
Etat initial
B1
A
B2
S
E1 T U
X
E3 Y A
E1 E4
Z
E2 B
Ils permettent de décrire un flot de contrôle entre opérations (calculs). Il s’agit en gros
d’organigrammes incluant éventuellement du parallélisme (cf. Figure 24).
activité
départ
transition (automatique)
flot d’objet
objet
conditionnelle
[état]
[garde]
barre de synchronisation
activités parallèles
fin
couloir
9. Autres éléments
9.1. Les diagrammes de composants
Les composants sont des codes (sources, exécutables), des scripts, des fichiers, des
tables, etc. (cf. Figure 25).
C’est un langage déclaratif typé. Il peut servir à spécifier les invariants de classe, les
pré et post conditions des opérations, les gardes, etc.
Figure 25 : un diagramme de déploiement
Mais on peut aussi bien passer à une vue ‘hiérarchie de fonctions’ à partir des cas
d’utilisation, comme le montre la Figure 27.
A B C D
m1 m1 m2
A B
m6 m4 m3 m3
m2 m5
C D m6
m5 m4
<<Utilise>>
Cas 1 Le «virage»
Cas 2 Cas 3
vers l’objet
décomposition décomposition objet
fonctionnelle