Académique Documents
Professionnel Documents
Culture Documents
Support de cours
Génie Logiciel et Modélisation UML
▪ Diagramme de classe
▪ Diagramme d’objet
▪ Diagramme de séquence
▪ Diagramme d’activité
Pour faire face à la complexité croissante des systèmes d’information, de nouvelles méthodes
et outils ont été créées. La principale avancée des quinze dernières années réside dans la
programmation orientée objet (P.O.O.)
→ Face à ce nouveau mode de programmation, les méthodes de modélisation classique (telle
MERISE) ont rapidement montré certaines limites et ont dû s’adapter.De très nombreuses
méthodes ont également vu le jour comme Booch, OMT …
→ Dans ce contexte et devant le foisonnement de nouvelles méthodes de conception «orientée
objet ».
→ Simula, premier langage de programmation à implémenter le concept de type abstrait à
l'aide de classes, date de 1967 ! En 1976 déjà, Smalltalk implémente les concepts
fondateurs de l'approche objet : encapsulation, agrégation, héritage.
Les premiers compilateurs C++ datent du début des années 80 et de nombreux langages
orientés objets "académiques" ont étayé les concepts objets (Eiffel, Objective C, Loops...). Il
y donc déjà longtemps que l'approche objet est devenue une réalité.
Connaître C++ ou Java n'est donc pas une fin en soi, il faut aussi savoir les utiliser à bon
escient. La question est donc de savoir : comment comparer deux solutions de découpe objet
d'un système si l'on ne dispose pas d'un moyen de représentation adéquat ? Il est très simple
de décrire le résultat d'une analyse fonctionnelle, mais qu'en est-il d'une découpe objet ?«
→ Pour remédier à ces inconvénients majeurs de l'approche objet, il est nécessaire de :
1. un langage (pour s'exprimer clairement à l'aide des concepts objets) Le langage doit
permettre de représenter des concepts abstraits (graphiquement par exemple), limiter les
ambiguïtés (parler un langage commun, au vocabulaire précis, indépendant des langages
orientés objet), faciliter l'analyse (simplifier la comparaison et l'évaluation de solutions).
2. Une démarche d’analyse et de conception objet est nécessaire afin de ne pas effectuer
une analyse fonctionnelle et se contenter d'une implémentation objet, mais penser objet
dès le départ, définir les vues qui permettent de décrire tous les aspects d'un système avec
des concepts objets.
Il faut donc disposer d'un outil qui donne une dimension méthodologique à l'approche
objet et qui permette de mieux maîtriser sa richesse.
C’est cette démarche antérieure à l’écriture que l’on appelle modélisation ; son produit
est un modèle
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 considère comme important pour la compréhension et la
prédiction du phénomène modélisé. Les limites du modèle dépendent des objectifs
visés par sa création.
→ Pourquoi modéliser ?
Un modèle est une simplification de la réalité qui permet de mieux comprendre le système à
développer. Il permet de :
La Conception Orientée Objet (COO) est la méthode qui conduit à des architectures
logicielles fondées sur les objets du système, plutôt que sur une décomposition
fonctionnelle.
C'est la structure du système lui donne sa forme.
On peut partir des objets du domaine (briques de base) et remonter vers le système global :
approche ascendante
• Accent mis sur ce qu’est le système (ses composants)
• Identification des composants du système : les objets
• Fonction = collaboration entre objets
• Les fonctions sont indépendantes de la structure
• Un objet intègre à la fois des données et des opérations
Concepts Orientés-Objet :
▪ Abstraction
▪ Encapsulation
▪ Héritage
▪ Polymorphisme
▪ objets, classes, événements, états
o Analyse OO :
– Trouver les objets
– Les organiser (les classer et les regrouper)
– Décrire leurs interactions (scénarios, interfaces)
– Définir leurs opérations (d’après les interfaces nécessaires)
– Définir l’intérieur des objets (informations stockées)
o Programmation OO :
– On peut avoir analyse OO et programmation non OO
– Le style de programmation peut être OO même avec un langage classique
• Test OO : le test peut être considéré lui-même comme un objet
❑ 1993-1994: les auteurs de Booch, OOSE et OMT ( les méthodes Booch’93 et OMT-2 )
ont décidé de créer un langage de modélisation unifié avec pour objectifs:
• Modéliser un système des concepts à l'exécutable, en utilisant les techniques orientée
objet
• Réduire la complexité de la modélisation
• Utilisable par l'homme comme la machine
• Représentations graphiques mais disposant de qualités formelles suffisantes pour être
traduites automatiquement en code source
❑ En 1994, plus de 50 méthodes orientées objet, telles que Fusion, Shlaer-Mellor, ROOM,
Classe-Relation, Wirfs-Brock, Coad-Yourdon, MOSES, Syntropy, BOOM, OOSD,
OSA, BON, Catalysis, COMMA, HOOD, Ooram, DOORS... étaient utilisées.
❑ Naissance d’UML
• 1993-1994: Les 2 méthodes ( Booch’93 et OMT-2 ) deviennent leaders sur le
marché, elles sont de plus en plus proches
• Octobre 1994
o J. Rumbaugh (OMT) rejoint G. Booch chez Rational
o Annonce de l’unification des deux méthodes
• Octobre 1995: Méthode Unifiée v0.8
• Fin 1995: le fondateur d ’Objectory, Ivar Jacoson, rejoint à son tour Rational
• Janvier 97 : Soumission à l’OMG de la version UML 1.0
→ Historique
→ qu’est-ce qu’UML ?
UML: norme qui définit les diagrammes et les conventions à utiliser lors de la
construction de modèles décrivant la structure et le comportement d’un logiciel.
o Les modèles sont des diagrammes constitués d’éléments graphiques et de texte.
o UML n’est pas une méthode, mais un langage.
Les diagrammes UML peuvent être regroupés sous forme d’un diagramme de classes en
trois catégories principales en fonction de leur objectif et de ce qu'ils représentent dans la
modélisation d'un système logiciel:
Un diagramme UML est une représentation graphique, qui s'intéresse à un aspect précis
du modèle.
• Chaque type de diagramme UML possède une structure (les types des éléments
de modélisation qui le composent sont prédéfinis).
• Un type de diagramme UML offre toujours la même vue d'un système (il
véhicule une sémantique précise).
• Combinés, les différents types de diagrammes UML offrent une vue complète
des aspects statiques et dynamiques d'un système.
• le système
• les acteurs
• les cas d'utilisation
❑ Il contient: des descriptions textuelles
→ Le système
Nom de système
→ Les acteurs
Un acteurs est une entité extérieure au système modélisé, et qui interagit directement avec
lui. Exemple: un client, un guichetier, un responsable maintenance, Une même personne
peut jouer plusieurs rôles.
Un acteur exécute un ou plusieurs cas d'utilisation, et est représenté par:
• un petit bonhomme (stick man) avec son nom en dessous
• par un rectangle contenant le mot-clé << actor>> avec son nom (Un acteur non-
Humain)
• Par un mélange de ces 2 représentations
« actor »
Nom de l’acteur
→ Les acteurs
Attention
Un acteur correspond à un rôle, pas à une personne physique.
→ Les acteurs
❑ Les acteurs secondaires sont sollicités par le système, tandis que le plus souvent, ce
sont les acteurs principaux qui prennent l'initiative des interactions.
En général, les acteurs secondaires représentent d'autres systèmes informatiques avec
lesquels le système développé est interconnecté.
Exemple:
❑ Généralisation : le cas A est une généralisation du cas B (B est une sorte de A).
→ Généralisation
Exemple:
• Un virement est un cas particulier de paiement.
• Un virement est une sorte de paiement.
• La flèche pointe vers l'élément général.
• Le diagramme de cas d'utilisation décrit les grandes fonctions d'un système du point de
vue des acteurs, mais n'expose pas de façon détaillée le dialogue entre les acteurs et les cas
d'utilisation.
• Un simple nom est tout à fait insuffisant pour décrire un cas d'utilisation.
• Chaque cas d'utilisation doit être documenté pour qu'il n'y ait aucune ambiguïté
concernant son déroulement et ce qu'il recouvre précisément.
❑ Description textuelle
Une description textuelle d’un cas d’utilisation se compose de trois parties : identification,
description des scénarios et exigence non fonctionnelle
Exemple
Nous disposons des cas d'utilisation suivants :
1. Passer une commande
2. Passer une commande urgente
3. Suivre une commande
4. Valider l'utilisateur
5. Expédier commande totale ou partielle
• Le suivi de la commande englobe l'ensemble du processus, depuis la commande initiale
jusqu'à l'expédition.
• Cependant, il peut arriver que certaines commandes passées ne soient pas expédiées.
• Il convient de noter que passer une commande urgente est un cas particulier de passer
une commande.
• Pour passer une commande, il est impératif de valider l'utilisateur.
Exemple
Exercice 1
Exercice 2