Vous êtes sur la page 1sur 86

MODÉLISATION UML

Mme Sanae MAZOUZ


Plan
2

▪ Approche Objet.
▪ Analyse et conception objets : méthodes et outils.
▪ Modélisation Orienté Objet : notations
graphiques.
▪ UML : standard.
▪ Diagramme UML des cas d'utilisation.
▪ Diagrammes UML de modélisation statique.
▪ Diagrammes UML de modélisation dynamique.
▪ Reverse engineering.
Matériel et logiciel
3

 Systèmes informatiques :
 80% de logiciel ;
 20% de matériel.

 Depuis quelques années, la fabrication du matériel


est assurée par quelques fabricants seulement.
 Le matériel est relativement fiable ;
 Le marché est standardisé.

Les problèmes liés à l’informatique sont


essentiellement des problèmes de logiciel.
La crise du logiciel
4

 Étude sur 8380 projets (Standish Group, 1995) :


➔Succès : 16% ;
➔Problématique : 53% (budget ou délais non
respectés, défaut de fonctionnalités) ;
➔Échec : 31% (abandonné).

Le taux de succès décroît avec la taille des


projets et la taille des entreprises.
La crise du logiciel (Suite)
5

Problématique :

Comment faire des logiciels de qualité ? Génie


Logiciel (Software Engineering)
Les défis devant le GL
6

B.Shishedjiev - Génie logiciel


Les défis devant le GL (suite)
7
Les défis devant le GL (suite)
8
Les défis devant le GL (suite)
9
Cycle de vie
10

La qualité du processus de fabrication est garante de


la qualité du produit.
 Pour obtenir un logiciel de qualité, il faut en
maîtriser le processus d’élaboration.
 La vie d’un logiciel est composée de différentes étapes.
 La succession de ces étapes forme le cycle de vie.

 Il faut contrôler la succession de ces différentes étapes.

 Types de cycle de vie :


Cycle en cascade, cycle en V et cycle itérative...
Démarche Projet Classique
Etape1
Etape0
Demande Client 1ere Rencontre Création
Pour définir le besoin équipe projet
Cahier des charges

Etape2
Cahier des charges

Choix d’un cycle Recueil


de développement Devis et Planning GO client
existant
Étude coût & Délais
Plan qualité Analyse
Retouche sur demande client Fonctionnelle

Etape5 Etape3
Analyse
Cycle de Développement Déploiement Recette
F. OK

Spécifications détaillé
Plan test
maintenance
Plan déploiement
11 Etape4 Etape6
Étapes du cycle de vie Principaux documents Contrôles qualité
0 Préliminaires - Cahier des charges Revue de contrat
- Appel d'offres
- Contrat

1 Planification - Note de lancement Revue de planification


-. Plan d'assurance qualité
- Plan de développement

2 Spécifications - Dossier de définition des besoins/ Cahier des Revue de spécifications


charges
- Spécifications d'interface
- Dossier tests de validation

3 Conception générale - Dossier de conception générale Revue de conception générale


- Dossier tests d'intégration

4 Conception détaillée - Dossier de conception détaillée Revue de conception détaillée


- Dossier tests unitaires

5 Codage - Listings de programme Revue de code


- Documentation programme

6 Tests unitaires - Cahier de tests unitaires Revue de tests unitaires


- Bilan des tests unitaires

7 Intégration - Cahier de tests d'intégration Revue d'intégration


- Bilan de l'intégration
- Dossier d'installation
- Dossier d'exploitation

8 Recette - Cahier de tests de validation Revue de recette


- Bilan de la recette

9 Installation/diffusion - Cahier de l'installation Revue d'installation


Exploitation - Dossier de maintenance
12Maintenance (hors projet)
Cycle en V
13

Analyse du Exploitation et
besoin maintenance

Qualification
opérationnelle

Spécification Validation
système système

Spécification sous- Validation


systèmes Sous-systèmes

Conception Test
préliminaire d’intégration

Conception Test sous-


détaillée systèmes

Réalisation
Modèle en cascade
14

 Le modèle le plus connu, et le plus utilisé.


Modèle en W
15

 Chemin critique difficilement gérable.


 Gestion et coût des changements impactent plusieurs sous-systèmes.
Cycle itératif et incrémental
16

• Il repose sur un enchaînement de développements classiques (type cycle en V),

• Chacun aboutissant à la validation d’un morceau exécutable du système,

• On y retrouve les étapes classiques de développement mais la plupart de ces


étapes sont effectuées plusieurs fois.
Cycle itératif et incrémental
17
Cycle en Y
18
Les méthodes agiles
19

• Définition donnée sur le site Wikipédia :

• Une méthode agile est une méthode de développement informatique permettant


de concevoir des logiciels en impliquant au maximum le demandeur (client), ce
qui permet une grande réactivité a ses demandes.
Les méthodes agiles
20
Les méthodes agiles
21
Démarche et modèles
22

 Démarche : succession d’étapes pour :


 Mieux maîtriser le déroulement d’un projet;
 Meilleure visibilité pour les utilisateurs sur certains résultats
intermédiaires et garantir que le résultat final sera celui
attendu.
 A chaque étape, on produit des modèles à différentes
niveaux d’abstraction, en utilisant un formalisme :
 Un langage formel ;
 Un langage semi-formel généralement graphique;

 Un langage naturel.
Modélisation
23

Réalité
(représentations Modèles
mentales, connaissances, (représentations
règlements..) Modélisation schématiques,
formulations
rigoureuses..)

Implantation
Modèle
24

 Un modèle est une représentation abstraite de


la réalité qui exclut certains détails du monde
réel.
 Il permet de réduire la complexité d’un phénomène
en éliminant les détails qui n’influencent pas son
comportement de manière significative.
 Il reflète ce que le concepteur croit important pour
la compréhension et la prédiction du phénomène,
les limites du phénomène modélisé dépendent des
objectifs du modèle.
Intérêt de la modélisation
25

 Modéliser le processus de développement permet de


 Bien répartir les tâches et d’automatiser certaines d’entre
elles;
 Réduire les coûts et les délais ;

 Assurer un bon niveau de qualité et une maintenance


efficace.
 Modéliser un système avant sa réalisation permet de
 Comprendre le fonctionnement du système ;
 Assurer sa cohérence ;

 Pouvoir communiquer au sein de l’équipe de réalisation.


Propriétés attendues
26

Le choix du modèle a une influence capitale sur les


solutions obtenues
 Il faut bien choisir les modèles employés.
 Les modèles doivent pouvoir décrire un système à
différentes niveaux d’abstraction ;
 Les modèles doivent avoir un comportement proche de la
réalité ;
 Un seul modèle est souvent insuffisant. Les systèmes de la
réalité sont mieux modélisés par un ensemble de modèles
inter-indépendants.
 Selon les modèles employés, la démarche de
modélisation n’est pas la même.
Approche objet
27

 La modélisation objet consiste à créer une


représentation informatique des éléments du
monde réel, sans se préoccuper de
l’implémentation. Pour ce faire :
 On identifie les éléments du système et on
fait des objets;
 On cherche à faire collaborer ces objets
pour qu’ils accomplissent la tâche voulue.
Approche objet (Suite)
28

 La conception objet doit être dissociée de


la programmation objet.
 Les langages objets ne présentent que des
manières particulières d’implémenter certains
concepts. Ils ne valident en rien la conception.
 Ilest possible de concevoir objet et de coder
en C.
L’unification
29

 des méthodes
 La guerre des méthodes ne fait plus avancer
la technologie des objets
 La recherche d’un langage commun et unique
◼ Utilisable par toutes les méthodes;
◼ Adapté à toutes les phases du développement;
◼ Compatible avec toutes les techniques de
réalisation.
L’unification
30

 sur plusieurs domaines d’applications


 Logiciels → Ingénierie des logiciels
 Logiciels et matériels → Ingénierie des
systèmes
 Personnes → Ingénierie des affaires
Vers un langage de modélisation
universel
31

1 : (OMG) Object Management Group


Unified Modeling Language
32

 UML = Unified Modeling Language


 Langage unifié pour la modélisation objet
 Langage de modélisation des applications construites à
l’aide d’objets, indépendant de la méthode utilisée
 Différence entre Langage et Méthode
 Langage de modélisation = notations, grammaire et
sémantique
 Méthode : comment utiliser le langage de modélisation
(recueil des besoins, analyse, conception, mise en
oeuvre, validation…)
Les Diagrammes UML
33

 Les diagrammes de structure :


 Diagramme de classes (class diagram) ;
 Diagramme d’objets (object diagram);
 Diagramme de paquetage (package diagram);
 Diagramme de composants (component diagram);
 Diagramme de structure composite (composite structure diagram);
 Diagramme de déploiement (deployment diagram);
 Diagramme de profils (profile diagram);
 Les diagrammes de comportement :
 Diagramme d’états-transitions (state diagram);
 Diagramme d’activités (activity diagram);
 Diagramme de cas d’utilisation (use case diagram) ;
Les Diagrammes UML (Suite)
34

 Diagrammes d’interaction
 Diagramme de séquences (sequence diagram);
 Diagramme de communication (communication diagram);

 Diagramme de temps (Timing diagram);

 Diagramme global d’interaction (Interaction overview


diagram).
Les Diagrammes UML (Suite)
35
36 Diagramme de classes
L’analyse : comment identifier les classes ?
37

A partir d’un cahier des charges :


 lister les mots clefs (tout mot clef peut être une classe) ;
 réduire la liste en supprimant :
◼ les synonymes ;
◼ les classes non pertinentes.
 les classes peuvent évoluer (processus incrémental) : ajout de nouvelles classes
lors de l’implémentation pour créer une liste de classes par exemple.
 La difficulté d’identifier les classes :
 quand l’application contient des objets physiques : gérer une
médiathèque (livre, CD,… ) ;
 quand l’application est abstraite : modéliser un système
d’exploitation ?
Diagramme de classe
38

Objectif :
 Chaque langage de Programmation Orienté Objets

(POO) donne un moyen spécifique d’implémenter le


paradigme objet.
 UML permet de :

 Définir le problème indépendamment du langage


(pointeurs ou pas, héritage multiple ou pas etc.) ;
 Mener une Conception Orientée Objet (COO).

Le diagramme de classes permet de fournir une


représentation abstraite des objets du système.
Diagramme de classe (Suite)
39

 Une instance est une concrétisation d’un concept


abstrait.
 Concept : Amitié/Instance : Ali est l’ami de Karim
 Un objet est une instance d’une classe
 La classe spécifie la manière dont tous les objets de même
type sont décrits.
 Une lien est une instance d’association
 Association : concept <<travailler pour>> qui lit deux
classes personne et entreprise
 Lien : instance qui lie Ali avec l’entreprise OCP.
Diagramme de classe (Suite)
40

Exemple : Magasin d'articles de sport


Les clients du magasin ont accès à un catalogue décrivant
les différents articles (chaussures, ballons, …) qu'ils
peuvent commander. Tous les types d’articles disponibles
sont décrits dans le catalogue, accompagnés de leur prix.
Le stock de Bruxelles contient uniquement des chaussures.
Le stock de Namur possède des chaussures bleues ainsi
que des ballons de basket.
Notre exemple s'arrête ici, le domaine d'un magasin par
correspondance est évidemment plus étendu :
 fournisseurs, service de livraison + tarification, fichiers
clients…
Diagramme de classe (Suite)
Modélisation d'un magasin de vente d'articles de sport par
correspondance.
5
Entrepôt
(Bruxelles) 7 Catalogue Sport
8
Entrepôt
(Namur) 12
1
M. Dupont Commande 133 1 stock x

2 présente
M. Jean Commande 234 commande x
commande
41
Diagramme de classe (Suite)
42

 Notre but
◼ Utiliser des diagrammes ayant une interprétation
unique, connue par tous le monde
◼ Décrire l'ensemble des état possibles du domaine

 UML, bon ou mauvais choix ?


◼ Langage de modélisation de plus en plus répandu
◼ Définit une notation accompagnée d'une
signification établie (informellement)
Diagramme de classe (Suite)
43

 Un objet modélise une entité qui possède


 une identité :
◼ elle représente une entité qui a une existence propre
dans le monde modélisé
 une durée de vie :
◼ les entités modélisées par les objets existent pendant
un laps de temps dans le monde modélisé.
◼ les objets ne représentent en général pas des actions,
des événements.
Diagramme de classe (Suite)
44

 un état :
◼décrivant ses caractéristiques à un instant
donné
 un (ou plusieurs) rôle(s) :
◼dans la description d'un domaine, le rôle
d'un objet est décrit dans le lexique
Diagramme de classe (Suite)
45

 Exemple : Objet catalogue de sport


Sport : Catalogue
Catalogue Notation Période : Automne-Hiver
Sport Année : 2020
UML ...


 identité : Sport, collection automne-hiver 2020
 durée de vie : [ septembre2020, février 2021 ]
 état : attributs + relations avec d ’autres objets
 rôle : présenter les différents articles accompagnés de leur prix
au client. La période de validité est de septembre 2020 à février
2021
Diagramme de classe (Suite)
46

 Exemple : Objet entrepôt de Bruxelles


Entrepôt de Bxl : Entrepôt
Notation Adresse: 1 rue de l'enchère
Entrepôt
1007 Bruxelles
(Bruxelles) UML Tel : 02/640.45.45
...

⚫ identité : Entrepôt de Bruxelles
⚫ durée de vie : tant que cet entrepôt existe et est utilisé comme
entrepôt par la société
⚫ état : attributs + ensemble des couples < article, quantité >
⚫ rôle : entreposer les différents articles
Diagramme de classe (Suite)
47

 Classes : une vue ensembliste


 Décompose le monde modélisé en ensembles d'objets ayant des
caractéristiques communes en fonction de l'objectif poursuivi par
la modélisation
 Exemple : Magasin de sport par correspondance
La classe des entrepôts : Entrepôt

 Décrit l'ensemble des entrepôts

de la société de vente par Entrepôt


correspondance (Bruxelles)
 Idée principale :
Entrepôt
stockage des articles (Namur)
Diagramme de classe (Suite)
48

 Les classes
 sont des ensembles d'éléments ayant des caractéristiques
communes… mais des différences subsistent entre-eux.
 permettent de définir la granularité intéressante en fonction
de la vue du monde modélisé
 Exemple:
 Les articles de la société de vente par correspondance
◼ Si la catégorie des articles (chaussure, ballon) n'est pas importante, la
classe "Type d’Article"
est suffisante pour la
modélisation Type d'Article
◼ Dans le cas contraire,
une classe par catégorie
d'article est nécessaire
Diagramme de classe (Suite)
 Classe : Notation UML
Entrepôt Entrepôt
Notation Adresse: string
Tel : string
UML …

 Classe = ensemble d’objets possédant des caractéristiques


communes
49
Diagramme de classe(Suite)
50

5
Entrepôt
(Bruxelles) 7 Catalogue
Sport
8
Entrepôt
(Namur) 12
1
Mr. Dupont Commande 133 1 Stock x

2 présente
Mr. Jean Commande 234 commande x
commande
50
Diagramme de classe(Suite)
51

 Classe = ensemble d’objets possédant des


caractéristiques communes
Entrepôt Type d'Article Catalogue

Client Commande
Diagramme de classe(Suite)
52

Nom de classe

Attributs
Opérations ()

 Visibilité pour attributs et opérations


+ public
◼ Accessible par tous les objets (dans et hors de la classe)
# protected
◼ Accessible seulement par la classe et les sous-classes
- private
◼ Accessible seulement par les objets de la classe
Diagramme de classe(Suite)
53

Format de description d’un attribut :


 [Vis] Nom [Mult] [":" TypeAtt] ["=" Val]

 Vis : + (public), - (privé), # (protégé), ∼ (package)


 Mult : "[" nbElt "]" ou "[" Min .. Max "]"

 TypeAtt : type primitif (Entier, Chaîne, ...)

 Val : valeur initiale à la création de l’objet

Notation abrégée :
 nom_attribut : type_attribut = valeur initiale
Diagramme de classe(Suite)
54

Exemple :
age : Entier
#coord[3] : Réel
-x : Réel
+ pi : réel = 3.14
inscrits[2..8] : Personne
Diagramme de classe(Suite)
55

Format de description des opérations :


[Visibilité] Nom ["(" Arg ")"] [":" Type]
 Visibilité : + (public), - (privé), # (protégé)
 Arg : liste des arguments selon le format
 [Dir] NomArgument : TypeArgument
où Dir = in (par défaut), out, ou inout
 Type : type de la valeur retournée (type primitif ou classe)
Notation abrégée :
nom_opération (nom_argument : type_argument = valeur_par_défaut, …) :
type_retourné
Exemple :
multiplier(a : int, b : int) : int
Association
56

 Définition :
Une association décrit une connexion
sémantique bidirectionnelle entre les classes
du monde modélisé.
Association (Suite)
57

Exemple: Magasin d’articles de sport

Entrepôt Type d'Article

Ligne de commande

Client Commande
Association (Suite)
58

 Nom de l’association
L’association possède un nom décrivant la
sémantique de cette association.
Association (Suite)
59

Exemple: Magasin d’articles de sport


stocker
Entrepôt Type d'Article

concerne

Ligne de commande

effectuer composer
Client Commande
Association (Suite)
60

 Rôle de l’association
Une association possède des rôles décrivant la
fonction jouée par chaque classe dans cette
association (facultatif).
Association (Suite)
61

passager <Transporte véhicule


personne véhicule
conducteur Conduit> véhicule

propriétaire Possède> véhicule

employé <Emploie employeur


personne entreprise
directeur Dirige> société

actionnaire Possède> société


Association (Suite)
62

Exemple: Magasin d’articles de sport


stocker
Entrepôt Type d'Article
dépôt entreposé
commandé
concerne

Client
Ligne de commande
Commanditaire
composer
effectuer
Commande
Association (Suite)
63

 Multiplicité d’une association


Une association possède des multiplicités décrivant le
nombre de fois qu’une instance peut participer à une
relation.
Chaque extrémité d’une association peut porter une
indication de multiplicité qui montre combien d’objets
de la classe peuvent être liés à un objet de l’autre
classe.
Association (Suite)
64

Valeurs de multiplicité :
Valeur Description
1 Un et un seul
0..1 Zéro ou un
N N fois (entier naturel)
M...N De M à N (entiers naturels)
* De zéro à plusieurs
0..* De zéro à plusieurs
1..* D’un à plusieurs
Association (Suite)
65

Exemple :

Personne 0..* Employeur Société


Employé 1
Association (Suite)
66

 Exemple: Magasin d’articles de sport


0..* stocker 0..*
Entrepôt Type d'Article
dépôt entreposé
1 commandé
concerne
0..*
Client
Ligne de commande
1 Commanditaire
effectuer composer 1..*
Commande
1..* 1
Association n-aire
67

 Association n-aire :
il s'agit d'une association qui relie plus de deux
classes.
Note :
Telles associations sont difficiles à déchiffrer et
peuvent induire en erreur. Il vaut mieux limiter leur
utilisation, en définissant de nouvelles catégories
d'associations.
Association n-aire (Suite)
68

Exemple :

*
Association Unidirectionnelle
69

 Navigabilité :
Par défaut une association est navigable dans les
deux sens. Dans certains cas cette navigabilité est
restreint à un seul sens.
Exemple :
Association Réflexive
70

 Association réflexive :
Parfois les deux extrémités de l’association pointent
vers la même classe, on dit que l’association est
réflexive.
Exemple :
amie * collaborateur
*
Personne *
patron 1

emploie
Dépendance
71

 Dépendance :
Relation d'utilisation unidirectionnelle et
d'obsolescence (une modification de l'élément dont on
dépend, peut nécessiter une mise à jour de l'élément
dépendant).
Agrégation
72

 Les agrégations :
L’agrégation est une relation « agrégat-élément » ou
« partie de » non symétrique dans laquelle les objets
d’une extrémité joue un rôle prédominant par
rapport à l’autre extrémité.
l’agrégation est une association : contenant et
contenu pourront être dissociés et avoir des cycles
de vie différentes.
Agrégation (Suite)
73

L'agrégation est une forme spéciale d'association.


Le symbole représentant l’agrégation est le losange
vide. Il est situé à côté de la classe agrégat.

Membre 1..*
Département Professeur

Détruire un département ne met en aucun cas fin à la


vie des professeurs.
Composition
74

 La composition :
- La composition est un cas particulier de l’agrégation
avec un couplage très fort. Le symbole représentant
la composition est le losange plein.
- La vie du composant dépend de la vie du composé.
- Ils sont crées et détruits en même temps.

une composition
composite composant
0..1
Composition (Suite)
75

Exemple:

avoir 1..*
Livre Chapitre
1

Différenciation :
 Agrégation : la vie des éléments ne dépend pas de
celle de l’agrégat.
 Composition : la suppression du composé entraine la
suppression du composant.
Composition (Suite)
76

 La différence entre composition et agrégation est


surtout utile en conception et en programmation.
 Le tout « meurt » alors toutes ses parties
« meurent »
 Les parties naissent avec le tout ou après le tout.

 « Dans le modèle logique, le concept de


composition est moins bien défini et doit être
appliqué lorsqu’il est opportun » (Manuel UML 2)
Diagramme de classe
77

Exemple :
0..* stocker 0..*
Entrepôt Type d'Article
dépôt entreposé
1 commandé
concerne

Client Ligne de commande


1
Commanditaire 1..*
Commande
effectuer 1 composer
1..*
Classe association
78

 Classe association :
il s'agit d'une classe qui réalise la navigation
entre les instances des autres classes.
Classe association
79

 Exemple :
Etudiant Réalise Travail
0..* 0..*
1
Note
valeur

0..1
Chambre
Numéro
Association (Suite)
80

 Classe association :
c’est un moyen d’attacher des informations à
une association
Entrepôt Type d'Article

stocke
Quantité : entier concerne

Client Ligne de commande

effectuer composer
Commande
Association (Suite)
81

 Contraintes
 Les contraintes sont exprimées en UML entre
accolades { }, typiquement écrites en langage
naturel ou en Object Constraint Language (OCL).
 OCL est une contribution d'IBM à UML 1.1.
 Ce langage formel est volontairement simple
d'accès et possède une grammaire élémentaire .
 Elles restreignent l’ensemble des instances possibles
du modèle.
Association (Suite)
82

Entrepôt Type d'Article

stocke
Quantité : entier
{Quantité >0}

Client Ligne de commande

Commande
Généralisation/Spécialisation
83

 Une Généralisation/Spécialisation décrit une


relation de hiérarchisation entre classes du monde
modélisé selon un critère d’abstraction
Super-classe
Type d'Article Classe la plus générale

Spécialisation
Généralisation

Sous-classe
Ballon Classe la plus spécialisée
Généralisation/Spécialisation
84

 Niveau conceptuel : Généralisation


Relation transitive, non réflexive, et non symétrique La
sous-classe “est-une-sorte-de” la super classe ; Toute
instance de la sous-classe est instance de la super
classe.
 Mécanisme proposé par les langages de
programmation
Objet "B hérite de A" signifie que B possède : Toutes
les propriétés de A (attributs, opérations, association,
contraintes) ;
Généralisation : Exemple
85

 Classification des articles


 Tous les types d’articles
◼ peuvent être entreposés dans un stock
◼ peuvent apparaître dans une commande Type d'Article

◼ ont une marque et un modèle Ballon


 Les type de chaussures
◼ possèdent une pointure
◼ possèdent une couleur Chaussure
 Les type de ballons
◼ possèdent une couleur
◼ possèdent un sport associé
Diagramme de classe
86

Entrepôt Type d'Article


stocke
Quantité : entier

Ballon Chaussure
taille : entier pointure : entier
sport : string couleur : color
modèle : string

Client Ligne de commande

Commande

Vous aimerez peut-être aussi