Académique Documents
Professionnel Documents
Culture Documents
02/04/2018
ENSA DE KENITRA 1
UNIFIED MODELING LANGUAGE 2017-2018
OBJECTIFS
DIAGRAMMES DE
04 09
>
> DIAGRAMMES D’OBJETS COMPOSANTS ET DE
DÉPLOIEMENT
10
> BONNES PRATIQUES DE LA
ENSA DE KENITRA 2
UNIFIED MODELING LANGUAGE 2017-2018
01 INTRODUCTION
Rôle:
> Collecte d’informations
> Stockage de l’information
> Traitement de l’information
> Diffusion de l’information
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 4
UNIFIED MODELING LANGUAGE 2017-2018
LES DIFFÉRENTES PHASES DANS LE CYCLE DE VIE D’UN LOGICIEL
L’intégration et la
Cadrage de besoins
validation client
Conception
fonctionnelle et Formation et transfert
technique
Maintenance et
Réalisation
évolution
ENSA DE KENITRA 5
UNIFIED MODELING LANGUAGE 2017-2018
CADRAGE ET CONCEPTION
Phase 1 Phase 2
Cadrage de besoins Conception fonctionnelle et technique
Impliquer les différents interlocuteurs métier (les Dérouler des ateliers d’études et d’architecture
interlocuteurs concernés par le produit) pour
exprimer leur besoins.
Définir les différents flux fonctionnels
définir le produit à réaliser sur 5 axes
Objectifs > Les clients/utilisateurs du produit Définir l’architecture globale du produit et les
> Leurs besoins différents flux entre les composants
> Les enjeux pour l’entreprise
> La proposition de valeur du produit Choisir les technologies à adopter (avec l’aide du
> Les critères de succès quantifiables responsable des développements)
ENSA DE KENITRA 6
UNIFIED MODELING LANGUAGE 2017-2018
RÉALISATION ET INTÉGRATION
Phase 3 Phase 4
Réalisation L’intégration et la validation client
ENSA DE KENITRA 7
UNIFIED MODELING LANGUAGE 2017-2018
FORMATION ET ÉVOLUTION
Phase 5 Phase 6
Formation Maintenance et évolution
Les sessions de formation : elles s’appuient sur Prise en compte de nouveaux cas d'utilisation
l’alternance d’un enseignement théorique et des
mises en pratiques immédiates
Ajout de nouvelles fonctionnalités
ENSA DE KENITRA 8
UNIFIED MODELING LANGUAGE 2017-2018
CONCEPTION
3 types de conception
> Conception fonctionnelle
+ L’analyse fonctionnelle est une démarche qui « consiste à rechercher et à
caractériser les fonctions offertes par un produit pour satisfaire les besoins de
son utilisateur. »
> Conception Architecturelle
+ Définition de la structure interne du logiciel
+ Décomposition en composants de taille maîtrisable
+ Définition des interfaces et interactions entre composants
> Conception détaillée
+ Définition du rôle de chacun des composants
+ Définition des sous-composants
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 9
UNIFIED MODELING LANGUAGE 2017-2018
LES DIFFÉRENTES VUES
Vue métier
Les processus métier et leurs
activités, l’organisation
Vu
Vue fonctionnelle
Les fonctions du SI supportant les
processus métier
Vue applicative
Les blocs applicatifs, les
messages, les données
Vue technique
Les matériels,les logiciels,les
technologies
CENTRE DE DE
ENSA TRANSMISSION
KENITRA
UNIFIED MODELING LANGUAGE 2017-2018
MODÉLISATION
Support de la conception
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 11
UNIFIED MODELING LANGUAGE 2017-2018
MODÉLISATION
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 12
UNIFIED MODELING LANGUAGE 2017-2018
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 croit important pour la compréhension et
la prédiction du phénomène modélisé, les limites du phénomène
modélisé dépendent des objectifs du modèle.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 13
UNIFIED MODELING LANGUAGE 2017-2018
MÉTHODE ET LANGAGE
Méthode de conception
> Description normative des étapes de la modélisation
> Exemple: Merise
> Problème:
+ Existence de plusieurs cas particuliers difficulté de représenter une méthode
exhaustive
Langage de modélisation
> Langage graphique pour représenter, communiquer les divers aspects d’un système
d’information
> Possède un vocabulaire et des règles qui permettent de combiner les mots afin de
communiquer
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 14
UNIFIED MODELING LANGUAGE 2017-2018
LANGAGES DE MODÉLISATION
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 15
UNIFIED MODELING LANGUAGE 2017-2018
MODÉLISATION PAR DÉCOMPOSITION FONCTIONNELLE
Approche descendante :
> Décomposer la fonction globale jusqu'à obtenir des fonctions simples à
appréhender et donc à programmer.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 16
UNIFIED MODELING LANGUAGE 2017-2018
MODÉLISATION ORIENTÉE OBJETS
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.
On peut partir des objets du domaine (briques de base) et remonter vers le système
global : approche ascendante.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 17
UNIFIED MODELING LANGUAGE 2017-2018
UNIFIED MODELING LANGUAGE
Au milieu des années 90, les auteurs de Booch, OOSE et OMT 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 ;
+ Ces représentations ne disposent cependant pas de qualités formelles
suffisantes pour justifier d'aussi bonnes propriétés mathématiques que des
langages de spécification formelle (Z, VDM...).
UML v2.0 date de 2005. Il s'agit d'une version majeure apportant des innovations radicales
et étendant largement le champ d'application d'UML.
La dernière version v2.5.1 a été publiée en Décembre 2017.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 18
UNIFIED MODELING LANGUAGE 2017-2018
BRIQUES DE BASE D’UML
Les éléments
> Ce sont les abstractions essentielles au modèle.
Les relations
> Les relations expriment les liens existants entre les différents éléments.
Les diagrammes
> Un diagramme est une représentation visuelle de l’ensemble des éléments qui
constituent le système
> Ils servent à visualiser un système sous différents angles (utilisateur, administrateur
par ex.)
> Dans les systèmes complexes, un diagramme ne fournit qu’une vue partielle du
système
+ L’ensemble des diagrammes réunis permet d’obtenir une vue globale du système
à concevoir
+ Chaque diagramme va permettre de modéliser ou spécifier une vue (spécificité)
du système à concevoir
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 19
UNIFIED MODELING LANGUAGE 2017-2018
LES 4+1 VUES
Vue logique
> Définition du système vu de l’intérieur
> COMMENT satisfaire les besoins des acteurs
Vue d’implémentation
> Dépendances entre les modules
Vue de déploiement
> Position géographique et architecture physique de chaque élément
> Le OÙ
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 20
UNIFIED MODELING LANGUAGE 2017-2018
LES 4+1 VUES
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 21
UNIFIED MODELING LANGUAGE 2017-2018
DIAGRAMMES D’UML 2
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 22
UNIFIED MODELING LANGUAGE 2017-2018
02 DIAGRAMMES DE CAS
D’UTILISATION
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 24
UNIFIED MODELING LANGUAGE 2017-2018
EXEMPLE DE DIAGRAMME DE CAS D'UTILISATION
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 25
UNIFIED MODELING LANGUAGE 2017-2018
CAS D'UTILISATION
Un cas d'utilisation est une unité cohérente représentant une fonctionnalité visible de
l'extérieur. Il réalise un service de bout en bout, avec un déclenchement, un
déroulement et une fin, pour l'acteur qui l'initie. Un cas d'utilisation modélise donc un
service rendu par le système, sans imposer le mode de réalisation de ce service.
Un cas d'utilisation se représente par une ellipse contenant le nom du cas (un verbe à
l'infinitif), et optionnellement, au-dessus du nom, un stéréotype.
Dans le cas où l'on désire présenter les attributs ou les opérations du cas d'utilisation, il
est préférable de le représenter sous la forme d'un classeur stéréotypé << use case >>
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 26
UNIFIED MODELING LANGUAGE 2017-2018
ACTEURS ET CAS D'UTILISATION
Un acteurs est une entité extérieure au système modélisé, et qui interagit directement
avec lui.
Un acteur est l'idéalisation d'un rôle joué par une personne externe, un processus ou
une chose qui interagit avec un système.
Il se représente par un petit bonhomme avec son nom (i.e. son rôle) inscrit dessous.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 27
UNIFIED MODELING LANGUAGE 2017-2018
ACTEURS PRINCIPAUX ET SECONDAIRES
Un acteur est qualifié de principal pour un cas d'utilisation lorsque ce cas rend service
à cet acteur.
Le stéréotype << primary >> vient orner l'association reliant un cas d'utilisation à son
acteur principal, le stéréotype << secondary >> est utilisé pour les acteurs
secondaires
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 28
UNIFIED MODELING LANGUAGE 2017-2018
IDENTIFICATION DES ACTEURS
Une même personne physique peut être représentée par plusieurs acteurs si elle a
plusieurs rôles.
Pour faciliter la recherche des acteurs, on se fonde sur les frontières du système.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 29
UNIFIED MODELING LANGUAGE 2017-2018
RELATIONS ENTRE CAS D'UTILISATION EN ACTEURS
Les acteurs impliqués dans un cas d'utilisation lui sont liés par une association.
Lorsqu'un acteur peut interagir plusieurs fois avec un cas d'utilisation, il est possible
d'ajouter une multiplicité sur l'association du côté du cas d'utilisation.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 30
UNIFIED MODELING LANGUAGE 2017-2018
RELATIONS ENTRE CAS D'UTILISATION
Une dépendance se représente par une flèche avec un trait pointillé. Si le cas A inclut
ou étend le cas B.
Le symbole utilisé pour la généralisation est un flèche avec un trait plein dont la pointe
est un triangle fermé désignant le cas le plus général.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 31
UNIFIED MODELING LANGUAGE 2017-2018
RELATIONS ENTRE CAS D'UTILISATION
Généralisation : le cas A est une généralisation du cas du cas B (B est une sorte de
A).
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 32
UNIFIED MODELING LANGUAGE 2017-2018
RELATION D’INCLUSION
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 33
UNIFIED MODELING LANGUAGE 2017-2018
RELATION D'EXTENSION
La relation d'extension est probablement la plus utile, car elle a une sémantique qui a
un sens du point de vue métier au contraire des deux autres qui sont plus des artifices
d'informaticiens.
On dit qu'un cas d'utilisation A étend un cas d'utilisation B lorsque le cas d'utilisation A
peut être appelé au cours de l'exécution du cas d'utilisation B.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 34
UNIFIED MODELING LANGUAGE 2017-2018
DÉPENDANCES D'INCLUSION ET D'EXTENSION
Les <<incude>> et les <<extend>> sont des stéréotypes (entre guillemets) des
relations de dépendance.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 35
UNIFIED MODELING LANGUAGE 2017-2018
RÉUTILISABILITÉ AVEC LES INCLUSIONS ET LES EXTENSIONS
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 36
UNIFIED MODELING LANGUAGE 2017-2018
DÉCOMPOSITION GRÂCE AUX INCLUSIONS ET AUX
EXTENSIONS
Quand un cas est trop complexe (faisant intervenir un trop grand nombre d'actions), on
peut procéder à sa décomposition en cas plus simples.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 37
UNIFIED MODELING LANGUAGE 2017-2018
RELATION DE GÉNÉRALISATION
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 38
UNIFIED MODELING LANGUAGE 2017-2018
RELATIONS ENTRE ACTEURS
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 39
UNIFIED MODELING LANGUAGE 2017-2018
CONDITIONS D’UNE RELATION
Il est possible de mentionner les conditions nécessaires pour une relation a l’interieur
d’un diagramme de cas d’utilisations.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 40
UNIFIED MODELING LANGUAGE 2017-2018
RECENSER LES CAS D'UTILISATION
Il n'y a pas une manière mécanique et totalement objective de repérer les cas
d'utilisation.
> Il faut se placer du point de vue de chaque acteur et déterminer comment il se sert
du système, dans quels cas il l'utilise, et à quelles fonctionnalités il doit avoir accès.
> Il faut éviter les redondances et limiter le nombre de cas en se situant au bon niveau
d'abstraction (par exemple, ne pas réduire un cas à une seule action).
> Il ne faut pas faire apparaître les détails des cas d'utilisation, mais il faut rester au
niveau des grandes fonctions du système.
Trouver le bon niveau de détail pour les cas d'utilisation est un problème
difficile qui nécessite de l'expérience.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 41
UNIFIED MODELING LANGUAGE 2017-2018
DESCRIPTION DES CAS D'UTILISATION
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.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 42
UNIFIED MODELING LANGUAGE 2017-2018
DESCRIPTION TEXTUELLE
Identification
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 43
UNIFIED MODELING LANGUAGE 2017-2018
DESCRIPTION TEXTUELLE
Séquencements :
> Le cas d'utilisation commence lorsqu'un client demande le paiement par carte
bancaire
> Préconditions
+ Le client a validé sa commande
> Enchaînement nominal
+ 1. Le client saisit les informations de sa carte bancaire
+ 2. Le système vérifie que le numéro de CB est correct
+ 3. Le système vérifie la carte auprès du système bancaire
+ 4. Le système demande au système bancaire de débiter le client
+ 5. Le système notifie le client du bon déroulement de la transaction
> Enchaînements alternatifs
+ 1 En (2) : si le numéro est incorrect, le client est averti de l'erreur, et invité à
recommencer
+ 2 En (3) : si les informations sont erronées, elles sont redemandées au client
> Post-conditions
+ La commande est validée
+ Le compte de l'entreprise est crédité
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 44
UNIFIED MODELING LANGUAGE 2017-2018
DESCRIPTION TEXTUELLE
Rubriques optionnelles
> Contraintes non fonctionnelles :
+ Fiabilité : les accès doivent être sécurisés
+ Confidentialité : les informations concernant le client ne doivent pas être
divulgués
> Contraintes liées à l'interface homme-machine :
+ Toujours demander la validation des opérations bancaires
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 45
UNIFIED MODELING LANGUAGE 2017-2018
03 DIAGRAMMES DE CLASSES
Le système est composé d'objets qui interagissent entre eux et avec les acteurs pour
réaliser ces cas d'utilisation.
Les diagrammes de classes permettent de spécifier la structure et les liens entre les
objets dont le système est composé.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 47
UNIFIED MODELING LANGUAGE 2017-2018
EXEMPLE DE DIAGRAMME DE CLASSES
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 48
UNIFIED MODELING LANGUAGE 2017-2018
CONCEPTS ET INSTANCES
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 49
UNIFIED MODELING LANGUAGE 2017-2018
REPRÉSENTATION GRAPHIQUE
D’UNE CLASSE
Une classe est la description d'un ensemble d'objets ayant une sémantique, des
attributs, des méthodes et des relations en commun. Elle spécifie l'ensemble des
caractéristiques qui composent des objets de même type.
Une classe est un classeur. Elle est représentée par un rectangle divisé en trois à cinq
compartiments
Un compartiment des exceptions peut également être ajouté pour énumérer les
situations exceptionnelles devant être gérées par la classe.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 50
UNIFIED MODELING LANGUAGE 2017-2018
PROPRIÉTÉS : ATTRIBUTS ET OPÉRATIONS
Les attributs et les opérations sont les propriétés d'une classe. Leur nom commence
par une minuscule.
> Un attribut décrit une donnée de la classe.
+ Les types des attributs et leurs initialisations ainsi que les modificateurs d'accès
peuvent être précisés dans le modèle
+ Les attributs prennent des valeurs lorsque la classe est instanciée : ils sont en
quelque sorte des variables attachées aux objets.
> Une opération est un service offert par la classe (un traitement que les objets
correspondant peuvent effectuer).
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 51
UNIFIED MODELING LANGUAGE 2017-2018
ENCAPSULATION, VISIBILITÉ, INTERFACE
Ces services accessibles (offerts) aux utilisateurs de l'objet définissent ce que l'on
appelle l'interface de l'objet (sa vue externe)
L'encapsulation permet donc de garantir l'intégrité des données contenues dans l'objet.
Elle fait partie de la relation entre un élément et le conteneur qui l'héberge, ce dernier
pouvant être un paquetage, une classe ou un autre espace de noms.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 52
UNIFIED MODELING LANGUAGE 2017-2018
ENCAPSULATION, VISIBILITÉ, INTERFACE
Dans la pratique, lorsque des attributs doivent être accessibles de l'extérieur, il est préférable
que cet accès ne soit pas direct, mais se fasse par l'intermédiaire d'opérations
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 53
UNIFIED MODELING LANGUAGE 2017-2018
EXEMPLE D'ENCAPSULATION
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 54
UNIFIED MODELING LANGUAGE 2017-2018
COMPARTIMENT DU NOM DE LA CLASSE
[ <Nom_du_paquetage_1>::...::<Nom_du_paquetage_N> ]
<Nom_de_la_classe> [ { [abstract], [<auteur>], [<date>], ... } ]
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 55
UNIFIED MODELING LANGUAGE 2017-2018
MÉTALANGAGE
[]:
> les crochets indiquent que ce qui est à l'intérieur est optionnel ;
<>:
> les signes inférieur et supérieur indiquent que ce qui est à l'intérieur est plus ou
moins libre ; par exemple, la syntaxe de déclaration d'une variable
comme compteur : int est <nom_variable> : <type> ;
'':
> les cotes sont utiles quand on veut utiliser un métacaractère comme un caractère ;
par exemple, pour désigner un crochet ([) il faut écrire '[», car [ est un métacaractère
ayant une signification spéciale ;
…:
> permet de désigner une suite de séquence de longueur non définie, le contexte
permettant de comprendre de quelle suite il s'agit.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 56
UNIFIED MODELING LANGUAGE 2017-2018
COMPARTIMENT DES ATTRIBUTS
Attributs de la classe
Les attributs définissent des informations qu'une classe ou un objet doivent connaître.
Ils représentent les données encapsulées dans les objets de cette classe.
Chacune de ces informations est définie par un nom, un type de données, une visibilité
et peut être initialisée.
Le nom de l'attribut doit être unique dans la classe. La syntaxe de la déclaration d'un
attribut est la suivante :
Le type de l'attribut (<type>) peut être un nom de classe, un nom d'interface ou un type
de donnée prédéfini.
La multiplicité (<multiplicité>) d'un attribut précise le nombre de valeurs que l'attribut
peut contenir. Lorsqu'une multiplicité supérieure à 1 est précisée, il est possible
d'ajouter une contrainte ({<contrainte>}) pour préciser si les valeurs sont ordonnées
({ordered}) ou pas ({list}).
ENSA DE KENITRA 57
UNIFIED MODELING LANGUAGE 2017-2018
COMPARTIMENT DES ATTRIBUTS
Attributs de classe
Par défaut, chaque instance d'une classe possède sa propre copie des attributs de la
classe.
Les valeurs des attributs peuvent donc différer d'un objet à un autre. Il est parfois
nécessaire de définir un attribut de classe(static en Java ou en C++) qui garde une
valeur unique et partagée par toutes les instances de la classe.
Les instances ont accès à cet attribut, mais n'en possèdent pas une copie.
Un attribut de classe n'est donc pas une propriété d'une instance, mais une propriété
de la classe et l'accès à cet attribut ne nécessite pas l'existence d'une instance.
ENSA DE KENITRA 58
UNIFIED MODELING LANGUAGE 2017-2018
COMPARTIMENT DES OPÉRATIONS
Méthode de la classe
Une opération est définie par son nom ainsi que par les types de ses paramètres
et le type de sa valeur de retour.
Dans une classe, une opération (même nom et mêmes types de paramètres) doit être
unique. Quand le nom d'une opération apparaît plusieurs fois avec des paramètres
différents, on dit que l'opération est surchargée.
La déclaration d'une opération contient les types des paramètres et le type de la valeur
de retour, sa syntaxe est la suivante :
<visibilité> <nom_méthode> ([<paramètre_1>, ... , <paramètre_N>]) : [<type_renvoyé>] [{<propriétés>}]
Comme pour les attributs de classe, il est possible de déclarer des méthodes de
classe.
Une méthode de classe ne peut manipuler que des attributs de classe et ses propres
paramètres.
Une méthode de classe ne peut manipuler que des attributs de classe et ses propres
paramètres.
ENSA DE KENITRA 60
UNIFIED MODELING LANGUAGE 2017-2018
COMPARTIMENT DES OPÉRATIONS
Méthodes et classes abstraites
Une méthode est dite abstraite lorsqu'on connaît son entête, mais pas la manière dont
elle peut être réalisée (i.e. on connaît sa déclaration, mais pas sa définition).
Une classe est dite abstraite lorsqu'elle définit au moins une méthode abstraite ou
lorsqu'une classe parent contient une méthode abstraite non encore réalisée.
On ne peut instancier une classe abstraite : elle est vouée à se spécialiser. Une classe
abstraite peut très bien contenir des méthodes concrètes.
ENSA DE KENITRA 61
UNIFIED MODELING LANGUAGE 2017-2018
INTERFACE
Une interface est dénie comme une classe, avec les mêmes compartiments. On ajoute
le stéréotype interface avant le nom de l'interface.
On utilise une relation de type réalisation entre une interface et une classe qui
l'implémente.
Les classes implémentant une interface doivent implémenter toutes les opérations
décrites dans l'interface
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 62
UNIFIED MODELING LANGUAGE 2017-2018
CLASSE CLIENTE D'UNE INTERFACE
Quand une classe dépend d'une interface (interface requise) pour réaliser ses
opérations, elle est dite classe cliente de l'interface.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 63
UNIFIED MODELING LANGUAGE 2017-2018
EXEMPLE D'INTERFACE
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 64
UNIFIED MODELING LANGUAGE 2017-2018
RELATIONS ENTRE CLASSES
Une association représente une relation sémantique entre les objets d'une classe.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 65
UNIFIED MODELING LANGUAGE 2017-2018
ASSOCIATION
Une association est une relation entre deux classes (association binaire) ou plus
(association n-aire), qui décrit les connexions structurelles entre leurs instances. Une
association indique donc qu'il peut y avoir des liens entre des instances des classes
associées.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 66
UNIFIED MODELING LANGUAGE 2017-2018
MULTIPLICITÉS DES ASSOCIATIONS
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 67
UNIFIED MODELING LANGUAGE 2017-2018
NAVIGABILITÉ D'UNE ASSOCIATION
> Exemple : Connaissant un article on connaît les commentaires, mais pas l'inverse.
On peut aussi représenter les associations navigables dans un seul sens par des
attributs.
> Exemple : En ajoutant un attribut avis Internaute de classe Commentaire à la
place de l'association.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 68
UNIFIED MODELING LANGUAGE 2017-2018
ASSOCIATION UNIDIRECTIONNELLE DE 1 VERS 1
La flèche indique ici que la relation est uni-directionnelle : les objets de classe Client
connaissent ceux de la classe Adresse auxquels il sont liés, mais pas l’inverse.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 69
UNIFIED MODELING LANGUAGE 2017-2018
IMPLÉMENTATION
L’absence de flèche indique ici que l’on peut accéder aux adresses à partir des clients
qui leur sont liés, et inversement.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 71
UNIFIED MODELING LANGUAGE 2017-2018
IMPLÉMENTATION
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 73
UNIFIED MODELING LANGUAGE 2017-2018
RÔLES
C’est surtout utile quand plusieurs associations concernent les mêmes classes en
qu’en conséquence, de mêmes objets peuvent être liés par des modalités différentes.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 74
UNIFIED MODELING LANGUAGE 2017-2018
NAVIGABILITÉ
la terminaison du côté de la classe Commande n'est pas navigable : cela signifie que
les instances de la classe Produit ne stockent pas de liste d'objets du type Commande.
Inversement, la terminaison du côté de la classe Produit est navigable : chaque objet
commande contient une liste de produits.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 75
UNIFIED MODELING LANGUAGE 2017-2018
ASSOCIATION UNIDIRECTIONNELLE DE 1 VERS *
Une classe article contient un type de la classe commentaire sous forme d’une liste de
commentaires, mais pas l’inverse.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 76
UNIFIED MODELING LANGUAGE 2017-2018
IMPLEMENTATION
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 77
UNIFIED MODELING LANGUAGE 2017-2018
ASSOCIATIONS RÉFLEXIVES
Parfois, les deux extrémités de l'association pointent vers le même classeur. Dans ce
cas, l'association est dite réfexive .
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 78
UNIFIED MODELING LANGUAGE 2017-2018
CLASSE-ASSOCIATION
Une association peut être raffinée et avoir ses propres attributs, qui ne sont disponibles
dans aucune des classes qu'elle lie.
Comme, dans le modèle objet, seules les classes peuvent avoir des attributs, cette
association devient alors une classe appelée <<classe-association>> .
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 79
UNIFIED MODELING LANGUAGE 2017-2018
ASSOCIATIONS N-AIRES
Les associations n-aires sont peu fréquentes et concernent surtout les cas
où les multplicités sont toutes <<*>> Dans la plupart des cas, on utilisera
plus avantageusement des classes-association ou plusieurs relations binaires.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 80
UNIFIED MODELING LANGUAGE 2017-2018
ÉQUIVALENCES
Parfois, l'information véhiculée par une classe-association peut être véhiculée sans
perte d'une autre manière
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 81
UNIFIED MODELING LANGUAGE 2017-2018
ASSOCIATION DE TYPE AGRÉGATION
Une association simple entre deux classes représente une relation structurelle entre
pairs, c'est-à-dire entre deux classes de même niveau conceptuel : aucune des deux
n'est plus importante que l'autre.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 82
UNIFIED MODELING LANGUAGE 2017-2018
ASSOCIATION DE TYPE COMPOSITION
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 83
UNIFIED MODELING LANGUAGE 2017-2018
COMPOSITION ET AGRÉGATION
Dès lors que l'on a une relation du tout à sa partie, on a une relation d'agrégation ou de
composition.
Pour décider de mettre une composition plutôt qu'une agrégation, on doit se poser les
questions suivantes :
> Est-ce que la destruction de l'objet composite (du tout) implique nécessairement la
destruction des objets composants (les parties) ? C'est le cas si les composants
n'ont pas d'autonomie vis-à-vis des composites.
> Lorsque l'on copie le composite, doit-on aussi copier les composants, ou est-ce
qu'on peut les réutiliser , auquel cas un composant peut faire partie de plusieurs
composites ?
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 84
UNIFIED MODELING LANGUAGE 2017-2018
AGGREGATION ET COMPOSITION
Ce que dit la norme UML Superstructure version 2.1.1 reflète d'ailleurs très bien le flou
qui entoure ces notions :
> Precise semantics of shared aggregation varies by application area and modeler.
The order and way in which part instances are created is not defined.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 85
UNIFIED MODELING LANGUAGE 2017-2018
AGGREGATION ET COMPOSITION
La composition peut être vue comme une relation “fait partie de” (“part of”), c’est à
dire que si un objet B fait partie d’un objet A alors B ne peut pas exister sans A. Ainsi si
A disparaît alors B également.
L’agrégation quant à elle est vue comme une relation de type “a un” (“has a”), c’est à
dire que si un objet A a un objet B alors B peut vivre sans A.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 86
UNIFIED MODELING LANGUAGE 2017-2018
RELATION D'HÉRITAGE
Exemple :
> Par héritage d'Article,
un livre a d‘office un prix,
une désignation et une opération
acheter(), sans qu'il
soit nécessaire de le préciser
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 87
UNIFIED MODELING LANGUAGE 2017-2018
IMPLANTATION DE L'HÉRITAGE EN JAVA
class Article {
...
void acheter () {
...
}
}
Les << extends >> Java n'a rien à voir avec le << extend >> UML vu pour les
cas d'utilisation
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 88
UNIFIED MODELING LANGUAGE 2017-2018
RELATION D'HÉRITAGE ET PROPRIÉTÉS
La classe enfant possède toutes les propriétés de ses classes parents (attributs et
opérations)
> La classe enfant est la classe spécialisée (ici Livre)
> La classe parent est la classe générale (ici Article)
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 89
UNIFIED MODELING LANGUAGE 2017-2018
TERMINOLOGIE DE L'HÉRITAGE
Une classe enfant peut redéfinir (même signature) une ou plusieurs méthodes de la
classe parent.
> Sauf indications contraires, un objet utilise les opérations les plus spécialisées dans
la hiérarchie des classes.
> La surcharge d'opérations (même nom, mais signatures des opérations différentes)
est possible dans toutes les classes.
Toutes les associations de la classe parent s'appliquent, par défaut, aux classes
dérivées (classes enfant).
Principe de substitution : une instance d'une classe peut être utilisée partout où une
instance de sa classe parent est attendue.
> Par exemple, toute opération acceptant un objet d'une classe Animal doit accepter
tout objet de la classe Chat (l'inverse n'est pas toujours vrai).
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 90
UNIFIED MODELING LANGUAGE 2017-2018
HÉRITAGE MULTIPLE
Une classe peut avoir plusieurs classes parents. On parle alors d'héritage multiple.
> Le langage C++ est un des langages objet permettant son implantation effective.
> Java ne le permet pas.
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 91
UNIFIED MODELING LANGUAGE 2017-2018
CLASSE PARAMÉTRÉE
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 92
UNIFIED MODELING LANGUAGE 2017-2018
DIAGRAMMES DE CLASSES À DIFFÉRENTES ÉTAPES DE LA
CONCEPTION
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 93
UNIFIED MODELING LANGUAGE 2017-2018
CONSTRUCTION D'UN DIAGRAMME DE CLASSES
CENTRE DE DE
ENSA TRANSMISSION
KENITRA 94
UNIFIED MODELING LANGUAGE 2017-2018