Académique Documents
Professionnel Documents
Culture Documents
1 0
0 2
2 0
2 Méthodologies d’analyse
et de conception O.O
Plan
Introduction Générale
1
Institut Supérieur des Sciences Appliquées et de Technologie de Sousse
1 0
0 2
2 0
Introduction
2
Le développement
Introduction Générale
d’applications aujourd’hui…
Langage UML
Démarche Associée
Un peu d’histoire
En 1995, une étude du Standish Group dressait un tableau
accablant de la conduite des projets informatiques. Reposant
sur un échantillon représentatif de 365 entreprises, totalisant
8380 applications, cette étude établissait que :
2
Un peu d’histoire
Pour les grandes entreprises (qui lancent proportionnellement
davantage de gros projets) :
Un peu d’histoire
Les causes d’échecs :
L’informatique (Non)
Le client
3
Le Génie Logiciel Pourquoi ?
Il remédie à :
L’augmentation des coûts.
Les difficultés de maintenance et d’évolution.
La non fiabilité.
Le non respect des spécifications.
Le non respect des délais.
L’analyse du besoin,
L’élaboration des spécifications,
La conceptualisation,
Le développement,
La phase de test,
La maintenance.
4
Le Génie Logiciel Comment ?
Qu’est ce qu’un modèle ?
Un modèle est une représentation abstraite et simplifiée d’une entité du monde réel en vue
de le décrire, de l’expliquer ou de le prévoir. Il reflète ce que le concepteur croit important
pour la compréhension et la prédiction du phénomène modélisé.
Pourquoi modéliser ?
Mieux comprendre le fonctionnement du système.
Maîtriser sa complexité
Assurer sa cohérence.
Finalité
5
Institut Supérieur des Sciences Appliquées et de Technologie de Sousse
1 0
0 2
2 0
Qualités du logiciel
2
Introduction Générale
Langage UML
Démarche Associée
Unified Modeling Language
Les patrons de conception
Enseignant : Dr. Mhamed Saidane
Bibliographie
– Booch G., Rumbaugh J., Jacobson I., UML Semantics, Version 1.1, Rational Software
Corporation, Santa Clara, CA, 1 Septembre 1997
– Booch G., Rumbaugh J., Jacobson I., Unified Modeling Language User Guide, Addison-
Wesley, 1998 (traduction française : Le guide de l’utilisateur UML, Edition Eyrolles, 2000).
– Jacobson I., Booch G., Rumbaugh J., The Unified Software Development Process, Addison-
Wesley, 1999.
– Larman C., "Applying UML and Patterns", Prentice Hall, 1998.
– Muller P.A., Nathalie Gaertner "Modélisation objet avec UML",2ème édition, Eyrolles,
février 2000, Paris
– Rumbaugh J., Jacobson I., Booch G., Unified Modeling Language Reference Manual,
Addison-Wesley, 1999
– Joseph Schmuller, Teach Yourself UML in 24 Hours, Sams Publishing, 1999.
6
Netographie
http://www.rational.com/uml/global
Historique
7
Historique
OOSE (Ivar Jacobson) : Oriented Object Software Engineering a des vues basées sur
le cycle vie logiciel
Analyse
Conception
Réalisation/Implémentation
Test/Maintenance
8
UML : Vue générale
Introduction à l’UML
9
Institut Supérieur des Sciences Appliquées et de Technologie de Sousse
1 0
0 2
2 0
2
Modéliser avec UML
Les concepts de base
Langage UML
Démarche Associée
10
Les diagrammes UML
Diagramme
Statique Dynamique
Diagramme de classes Diagramme de séquence
Diagramme des objets Diagramme des collaboration
Diagramme d’états-transitions
Diagramme d’activités
11
Vues classiques de modélisation
Aspects implantation
12
Utilisation des diagrammes UML
Étapes de développement Diagrammes et langages utilisés
1 0
0 2
2 0
2 Diagramme de Cas
Les concepts de base
d’utilisation
Langage UML
Démarche Associée
13
Diagrammes de cas d’Utilisation
Cas d’Utilisation
cas d’utilisation
Les acteurs sont à l’extérieur et les Acteur A
y
cas d’utilisation à l’intérieur.
14
Cas d’utilisation : exemple
Créer compte
Guichetier
Consulter compte
Retrait
Directeur
distributeur
régional
Gérer prêts
Cas d’Utilisation
Les use cases, permettent de modéliser les besoins des clients d'un
système et doivent aussi posséder ces caractéristiques. Ils ne doivent
pas chercher l'exhaustivité, mais clarifier, filtrer et organiser les
besoins !
Dernière remarque : Utilisez les use cases tels qu'ils ont été pensé par
leurs créateurs ! UML est issu du terrain. Si vous utilisez les use cases
sans avoir en tête la démarche sous-jacente, vous n'en tirerez aucun
bénéfice.
15
Cas d’utilisation : concepts
L’acteur
Le cas d’utilisation
Relation entre acteur et cas d’utilisation
Relation entre cas d’utilisation
« Etend» (« extends »)
« Inclut » (« includes »)
Représente un rôle joué par une personne ou une chose qui interagit
avec un système.
16
Cas d’utilisation : les acteurs
Exemple :
Un garagiste passe le plus clair de son temps dans le rôle du mécanicien, mais peut à
l’occasion jouer le rôle de vendeur. Le dimanche, il joue le rôle de client et entretient sa
voiture personnelle.
Conduire
Client
Entretenir
Vendre vendeur
réparer
mécanicien
Les autres systèmes : les systèmes avec lesquels le système doit interagir.
Dans le cas d’un distributeur de billets, le système de groupement bancaire qui gère
un parc de distributeurs est un acteur.
17
Cas d’utilisation
Cas d'utilisation
Réalise
Conçoit Vérifie
Programmeur Testeur
Architecte
18
Relation entre acteur et cas d’utilisation
Inclusion (formalisé par le stéréotype « include »): permet à un cas d’utilisation de faire appel
aux services d’un autre cas. Cette relation permet de « factoriser » une fonctionnalité invocable
dans plusieurs cas d’utilisation.
Exemple
« inclut »
Retrait Identification
distributeur client
19
Relation entre cas d’utilisation
Exemple
Modification
article
Supprimer un Ajouter un
composant d’un composant d’un
article article
20
Relation entre acteurs
Exemple
Gérer le stock
Directeur
des ventes
21
Description détaillée de chaque cas d’utilisation
Information à décrire :
22
Exemple de description détaillée d’un CU
Précondition :
Le distributeur contient des billets, il est en attente d ’une
Retirer opération, il n’est ni en panne, ni en maintenance
DeLArgent
AuDistributeur Début : lorsqu ’un client introduit sa carte bancaire dans le
distributeur.
Postcondition :
Si de l ’argent a pu être retiré la somme d’argent sur le
compte est égale à la somme d ’argent qu’il y avait avant,
moins le montant du retrait. Sinon la somme d ’argent sur
le compte est la même qu’avant.
Déroulement normal :
(1) le client introduit sa carte bancaire
(2) le système lit la carte et vérifie si la carte est valide
Retirer (3) le système demande au client de taper son code
DeLArgent
AuDistributeur
(4) le client tape son code confidentiel
(5) le système vérifie que le code correspond à la carte
(6) le client choisi une opération de retrait
(7) le système demande le montant à retirer
…
Variantes :
(A) Carte invalide : au cours de l ’étape (2) si la carte est
jugée invalide, le système affiche un message d ’erreur,
rejète la carte et le cas d ’utilisation se termine.
(B) Code erroné : au cours de l ’étape (5) ...
23
Exemple de description détaillée d’un CU
...
24
Institut Supérieur des Sciences Appliquées et de Technologie de Sousse
1 0
0 2
2 0
2
Diagramme d’activités
Les concepts de base
Langage UML
Démarche Associée
Diagramme d’activités
Un diagramme d’activités donne une vue simplifiée de ce qui se passe durant une opération ou
un processus en présentant l’algorithme correspondant.
25
Cas d’utilisation : concepts
Nœud d’activité
Transition
Nœud initial et nœud final
Nœud de décision
Nœud de bifurcation / d’union
Les Travées (Partition)
Nœud d’activité
Un noeud d’activité est un type d’élément abstrait permettant
de représenter les étapes le long du flot d’une activité.
26
Nœud d’activité
Nœud action Nœud d’objet
Nœud initial
Nœud Objet
Nœud final
Transition
Le passage d’une activité vers une autre est matérialisé par une transition.
Graphiquement les transitions sont représentées par des flèches en traits pleins qui
connectent les activités entre elles.
Elles sont déclenchées dès que l’activité source est terminée et provoquent
automatiquement et immédiatement le début de la prochaine activité à déclencher
(l’activité cible).
27
Nœud initial / Nœud final
Nœud initial
Un noeud initial est un noeud de contrôle à partir duquel le flot
débute lorsque l’activité enveloppante est invoquée.
Un noeud initial possède un arc sortant et pas d’arc entrant.
Nœud final
Lorsque l’un des arcs d’un noeud de fin d’activité est activé,
l’exécution de l’activité enveloppante se termine.
Nœud de décision
Un noeud de décision est un noeud de contrôle qui permet de faire un choix entre
plusieurs flots sortants.
Si, quand le noeud de décision est atteint, aucun arc en aval n’est franchissable , c’est que
le modèle est mal formé.
L’utilisation d’un garde [else] est recommandée après un noeud de décision car elle
garantit un modèle bien formé.
Dans le cas où plusieurs arcs sont franchissables, seul l’un d’entre eux est retenu et ce
choix est non déterministe.
28
Nœud de décision
Vérifier
Nœud de décision
solde
Transition gardée
Garde
[Solde
Suffisant] [else]
Donner Refuser
argent au de donner
client l’argent
Nœud d’union
29
Diagramme d’activités
Barre de synchronisation
Desserrer Lancement de 2 transitions
frein à main simultanées
Barre de synchronisation
synchronisation de 2 transitions
relâcher
embrayage
Les travées
30
Les travées : Exemple
Il est possible de
faire apparaître
clairement les
objets dans un
diagramme
d’activité.
Le passage d'une activité vers une autre est matérialisé par une transition.
Les transitions sont déclenchées par la fin d'une activité et provoquent le début
immédiat d'une autre (elles sont automatiques).
31
Exemple : Description des scénarii du UC « Retirer-
Argent »
1 0
0 2
2 0
2 Diagramme de classes
Les concepts de base
Langage UML
Démarche Associée
32
Diagramme de Classes
Le diagramme de classes exprime la structure statique du système en termes de
classes et de relations entre ces classes.
Un objet est une instance d’une classe. C’est une entité dotée d’une
identité, d’un état et d’un comportement que l’on peut invoquer.
33
Les diagrammes de classes
Classe & Objet
Représentée par un rectangle composée de 3 parties :
le nom de la classe,
les attributs,
les opérations
Classe détaillée :
Les attributs sont typés, les méthodes sont spécifiées et le niveaux
de protection des membres sont renseignés.
Classe documentée
Voiture
Voiture
Attribut public +marque : String
(Ici, noms symboliques) marque +immatriculation : String
attributs immatriculation +propriétaire : String
propriétaire Attribut protégé #puissanceFiscale : entier
#poidsVide : entier
(Ici, noms symboliques) démarrer #/Age : entier
méthodes conduire Attribut privé -dateFabrication : Date
arrêter -proprietaire : Personone
Un attribut est une propriété d’une classe ; il décrit une gamme de valeurs que la propriété
peut prendre à l’intérieur d’un objet (instance) d’une classe.
La notation UML permet d’ajouter des informations complémentaires aux attributs ; il est
possible de spécifier le type de valeur de chaque attribut ( chaîne de caractères, nombre
entier, booléen…). On peut aussi donner une valeur par défaut à un ATTRIBUT.
Le nom de l’attribut doit être unique dans la classe. La syntaxe de la déclaration d’un
attribut est la suivante :
Remarque : On appelle Attribut dérivé tout attribut qui peut être déduit d’un ou plusieurs
autres attributs (représenté par le symbole /)
34
Les diagrammes de classes
Une Méthode est un service que l ’on peut demander à un objet pour
réaliser un comportement.
Exemple :
Lave Linge
nomModèle
…
ajouterVêtement()
…
35
Les diagrammes de classes
Rappel
Nom-objet : Nom-de-classe
OBJET
nom-attribut1 = valeur1
....
36
Les diagrammes de classes
Résumé de la notation : Exemple Nom de la Classe
Initialisation
Fenetre
Visibilité + taille : Rectangle = 100,100
}
- visible : B oolean = true
couleur : C olor = blue Attributs
#$ tailleMax : Rectangle
Static #$ tailleMin : Rectangle
/#$ tailleMoyenne : Rectangle
Retour
Paramètre
Dr. Mhamed Saidane 1ème Ing - A.U. 2019 - 2020 73
Elle est représentée par une ligne connectant les deux classes et portant le nom de
l’association au dessus de la ligne.
Exemple :
Joueur Joue dans Equipe
37
Les diagrammes de classes
Multiplicité des Associations binaires
Précise combien d’objets d’une classe peuvent se rattacher à un seul objet d’une
classe associée,
Association binaire est bi-directionnelle : multiplicité des deux côtés
Exemple :
Multiplicités conventionnelles
1 Un et un seul
Client A-pour-compte 1..* Compte
1 0..1 Zéro ou un
nom n°compte M..N De M à N (entiers naturels)
* De zéro à plusieurs
1,1 0..* De zéro à plusieurs
1..* De un à plusieurs
Quand une classe est associée à une autre, chacune des classes joue généralement un rôle précis
dans l’association.
Exemple
38
Les diagrammes de classes
Association : Exemple récapitulatif
Rôle
Classe
Multiplicité
Association réflexives
Association réflexives
Exemple :
conduit
Chauffeur 1
Occupant voiture
0..4
Passager
39
Les diagrammes de classes
Associations n-aire
C’est une association parmi trois classes ou plus. Chaque instance de l’association est un n-
tuple de valeurs des classes respectives.
Exemple :
Un joueur peut jouer pour
plusieurs équipes une année donnée
plusieurs années pour la même équipe
Chaque équipe a plusieurs joueurs la même année
Un bilan annuel est associé à chaque joueur dans une équipe
Equipe
dupont louvetaux 96 6 2
durand louvetaux 96 3 4
victoires dupont totoche 96 4 5
défaites dupont totoche 97 5 3
Salle
lieu 1
Cours
Professeur 1 Elève
1..*
Heure de début
Heure de fin
40
Les diagrammes de classes
Haut-parleur Clavier
CPU
Ecran Souris
Agrégation : Pourquoi :
Elle définit un point de contrôle unique pour l’objet représentant l’assemblage.
Si une instruction affecte l’ensemble de l’assemblage, l’objet détenant le contrôle
dicte la façon dont les membres répondent.
1
Carrosserie
1
Voiture Moteur
4
Roues
41
Les diagrammes de classes
Composition : une Agrégation particulière
le composant n’appartient qu’à un seul composé. Autrement dit, une instance de la partie
appartient toujours à au plus une instance de l’élément composite : la multiplicité du côté
composite ne doit pas être supérieure à 1 (i.e. 1 ou 0..1).
le composant peut naître hors de son composé, par contre il meurt avec son composé.
Autrement dit le cycle de vie des parties lié à celui du composite
le composant n’intervient pas dans d ’autres association de composition ni agrégation.
le plus souvent pas d ’«accès» direct (les demandes de services « passent » par le composé)
Exemple :
* Division * Service
Société
Composition : Exemple 2
Composition : si le livre est détruit
alors chapitre n’existe plus
1..1 1..*
Livre Chapitre
1 64
Échiquier Case
42
Les diagrammes de classes
Généralisation
Relation ente un élément plus général et un élément plus spécifique qui est entièrement
conforme avec le premier élément, et qui ajoute de l ’information supplémentaire
Les attributs et les opérations hérités ne sont pas représentés dans les classes filles.
Une classe fille peut ajouter des attributs et des opérations à ceux qui sont hérités. On parle
de spécialisation.
Elle peut redéfinir une propriété héritée :
- surcharge du code d’une méthode
- redéfinition des valeurs par défaut d’un attribut
- restriction des types des attributs ou des paramètres d’une méthode
Animal
- expression des contraintes supplémentaires.…
Reptile Mammifère
Cheval
Classe Électroménager
attributs Classe Article-Luxe
duréegarantie : entier attributs
poids : réel quantité : [0..100]
méthodes méthodes
valider() prixTTC()
garantie()
43
Les diagrammes de classes
Héritage multiple
Une classe dite de jointure admet plusieurs super-classes
Héritage multiple de classes appartenant à deux généralisations distinctes
Véhicule
44
Les diagrammes de classes
Contraintes…
Exemple de contraintes sur les liens : {ordonné}, {pas de répétition}...
Exemple de contraintes inter-liens (contraintes ensembliste)
Entreprise
Membre de
0..* 0..*
Compte {or}
{inclus}
Personne Comité
Personne
1 0..*
Président du
La méta-modélisation
45
La méta-modélisation
Hiérarchie de modélisation à 4 niveaux
La méta-modélisation
Hiérarchie de modélisation à 4 niveaux
M3 MOF
M2 MétaModèle GestionEntreprise
MétaModèle SystèmesTechniques
46
La méta-modélisation
Hiérarchie de modélisation à 4 niveaux
Langage de programmation
M0 : l'exécution d'un programme
M1 : le programme
M2 : la grammaire du langage dans lequel est écrit le programme
M3 : le concept de grammaire EBNF
XML
M0 : données du système
M1 : données modélisées en XML
M2 : DTD / Schéma XML
M3 : le langage XML
La méta-modélisation
M2 : Méta-modèle UML (très simplifié)
47
La méta-modélisation
Lien éléments modèle / méta-modèle
Le langage OCL
Diagrammes UML insuffisants
Pour spécifier complètement une application
Diagrammes UML seuls sont généralement insuffisants
Nécessité de rajouter des contraintes
Comment exprimer ces contraintes ?
Langue naturelle mais manque de précision, compréhension , pouvant être ambigüe
Langage formel avec sémantique précise : par exemple OCL
OCL : Object Constraint Language
Langage de contraintes orienté-objet
Langage formel (mais simple à utiliser) avec une syntaxe, une grammaire, une
sémantique (manipulable par un outil)
S'applique entre autres sur les diagrammes UML
48
Le langage OCL : exemple
Exercice 1
Un répertoire possède un nom et des droits de lecture, d’exécution et d’écriture.
Proposer une modélisation sous forme de classe de cette notion de répertoire.
Toutes les propriétés structurelles des répertoires et des fichiers sont privées.
Compléter votre diagramme de classes en précisant les méthodes d’accès.
Dr. Mhamed Saidane 1ème Ing - A.U. 2019 - 2020 98
49
Exercice 2
1 0
0 2
2 0
2 Diagramme d’Objets
Introduction Générale
Le Langage UML
La démarche RUP
50
Diagrammes d’objets
Représentation d’un ensemble d’objets et de liens, exprimant
la structure statique.
Diagrammes d’objets
Les objets
51
Diagrammes d’objets
Diagrammes d’objets
Objet (Suite)
Un objet anonyme
52
Diagrammes d’objets
Objet : Exemples de représentation
Diagrammes d’objets
Lien
Les objets sont reliés par des instances d’associations : les liens.
Un lien représente une relation entre objets à un instant donné.
ATTENTION : la multiplicité des extrémités des liens est toujours de 1.
1
Voiture Moteur :Voiture :Moteur
4
Roue :Roue :Roue :Roue :Roue
D. classes D. Objets
53
Diagrammes d’objets
Synthèse
Diagrammes d’objets
D. classes Vs D. Objets
D. Classe D. Objet
1. Les classes ont 3 compartiments 1.Les objets ont deux
: nom, attributs et méthodes compartiments : nom et attributs
2.Le nom de la classe est seul 2.Le format du nom de l’objet est
dans le compartiment du nom. NObj : NClass.
On peut parfois omettre le nom de
l’objet objet anonyme.
54
Diagrammes d’objets
D. classes Vs D. Objets
D. Classe D. Objet
3. Le compartiment des attributs 3. Les objets définissent les
définit les propriétés de l’attribut. valeurs des attributs.
Diagrammes d’objets
D. classes Vs D. Objets
D. Classe D. Objet
5.Les objets sont connectés avec
5. Les classes sont connectées par
des liens qui ont des noms et pas
des associations avec un nom et
de multiplicité. Les objets
une multiplicité, contrainte, rôle,
représentent des entités uniques et
…
les liens sont un-a-un c’est
pourquoi la multiplicité est non
relevante. Tandis qu’on peut
utiliser la notion de rôle dans les
liens.
55
Diagrammes d’objets
Exemple 2
L’exemple partiel qui suit est extrait du livre “Instant UML” (Pierre-Alain Muller)
Il s’agit d’un système de sécurité limitant les accès à des parties d’un bâtiment à l’aide de
cartes magnétiques.
Diagrammes d’objets
Exemple 2 (suite)
Le système gère un seul bâtiment contenant trois portes.
Le système peut être géré par une personne nommée « Tolkien ».
Deux utilisateurs peuvent accéder au bâtiment :
« Gandalf » a accès à la première (8h-18h) et seconde porte (12h-24h)
« Bilbon » a accès `a la troisième porte toute la journée.
56
Diagrammes d’objets
Le système gère un seul
bâtiment contenant trois
portes.
Le système peut être géré
par une personne nommée
« Tolkien ».
Deux utilisateurs peuvent
accéder au bâtiment :
« Gandalf » a accès à la
première (8h-18h) et
seconde porte (12h-24h)
« Bilbon » a accès `a la
troisième porte toute la
journée.
Exercice
Exemples :
(x + y/2) / (x/3 + y),
(x + y/2), etc.
57