Vous êtes sur la page 1sur 25

Leçon 10

LES OPERATIONS DE JOINTURE ET DE TRI


Objectif
Au terme de cette leçon, l’élève doit être capable d’appliquer les opérations suivantes :
regroupement, tri, jointure.

Introduction

1. Les regroupements : La clause « GROUP BY »

La clause GROUP BY permet de partitionner la relation résultat selon les valeurs d'un ou de

plusieurs attributs. Les seuls noms de colonnes (en dehors des fonctions statistiques) qui peuvent

apparaître dans le SELECT sont celles qui figurent dans le GROUP BY.

Exemple

SELECT SUM(Prix), Puissance


FROM VOITURE
GROUP BY Puissance;

Cette commande permet de créer des partitions selon la Puissance dans la table VOITURE. On aura

donc, pour notre exemple, 3 partitions correspondant aux puissances 5, 6 et 7 chevaux. La somme

des Prix s'affichera pour chacune de ces partitions.

2. La recherche de données avec Tri : La clause « ORDER BY »

Certaines requêtes ont besoin de rechercher des données de la base et d’avoir un résultat

qui soit trié selon un ordre croissant ou décroissant des valeurs d’une ou de plusieurs colonnes.

La forme générale de la commande de recherche est la suivante :

SELECT [Distinct] * <attributs>

FROM Nom_table1 [alias1], Nom_table2 [alias2]

WHERE <condition>

ORDER BY Nom_colonne1[ASC/DESC] [Nom_colonne2[ASC/DESC]...];

 La clause ORDER BY sert à exiger le classement (ou tri) du résultat.

ENSEIGNANT : M. ESSAM BENJAMIN P a g e 37 | 95


 Le classement peut se faire selon un ordre croissant(ASC) ou décroissant(DESC) des valeurs

d’une ou plusieurs colonnes. Ces dernières sont données par le paramètre Nom_colonne, et elles

doivent obligatoirement figurer parmi celles indiquées par le paramètre <attributs>.

 Par défaut c’est l’ordre croissant(ASC) qui est pris en considération.

 Les éléments dont les valeurs des colonnes concernées par le tri sont indéterminées(NULL) sont

donnés ensemble de manière successive.

 Le tri peut être associé à n’importe quelle opération de recherche (projection, Sélection et

Jointure)

Remarque : Dans une requête SQL, la clause ORDER BY se situe juste après une clause

WHERE ou après une clause GROUP BY.

Exemple

SELECT *
FROM VOITURE
ORDER BY Puissance [ASC];

Ces 2 requêtes (avec ASC ou sans ASC) sont identiques et permettent d'afficher l'ensemble des

tuples de la table VOITURE triés sur l'attribut Puissance selon un ordre croissant.

Exemple

La clause ORDER BY permet également un tri sur plusieurs attributs : le tri sera effectué

prioritairement sur le premier attribut, puis sur le second et ainsi de suite.

SELECT *
FROM VOITURE
ORDER BY Puissance DESC, Couleur;

Cette requête permet d'afficher l'ensemble des tuples de la table VOITURE triés sur l'attribut

Puissance selon un ordre décroissant puis sur l'attribut Couleur (ordre alphabétique) selon un

ordre croissant.

ENSEIGNANT : M. ESSAM BENJAMIN P a g e 38 | 95


3. Les Jointures

Dans certaines situations, on a besoin de données provenant de plusieurs tables différentes


de la base de données. Il s’agit dans ce cas d’une opération de jointure
La forme générale de jointure est la suivante :

SELECT [Distinct] * <attributs>

FROM Nom_table1 [alias1], Nom_table2 [alias2]

WHERE <condition> ;

 L’opération relationnel de jointure réalise une liaison entre deux tables en se basant sur l’égalité
des valeurs entre l’une des colonnes de chaque table.
 Un alias permet de donner un nom synonyme, abrégé, à une table. Il permet d’alléger l’écriture
de la commande SELECT en cas d’ambiguïté.
 Le paramètre <condition> sert, particulièrement, à préciser la condition de jointure. Cette
condition ne doit pas être confondue avec celle indiquée pour l’opération relationnelle de
sélection.
 La condition de jointure doit porter sur les colonnes en commun aux tables utilisées pour
l’opération de jointure.
Exemple

SELECT Immatriculation, numPersonne, dataAchat, Marque, Couleur, Puissance, Prix


FROM VOITURE, ACHAT
WHERE Immatriculation = numImmatriculation;

Cette requête permet de faire la jointure entre la table VOITURE et la table ACHAT ; cette jointure

porte sur le numéro d'immatriculation. Cette requête renverra donc tous les tuples de la table

VOITURE et de la table ACHAT qui ont même numéro d'immatriculation (on n’a pas affiché

numImmatriculation).

Pour les autres types de jointure (non équijointure, autojointure, jointure externe), le principe

est identique, seule l'expression de jointure diffère.

 Cas de la jointure naturelle

SELECT <attributs>
FROM <relation1> NATURAL JOIN <relation2> ;

ENSEIGNANT : M. ESSAM BENJAMIN P a g e 39 | 95


 Cas de la thêta-jointure

SELECT <attributs>

FROM <relation1> JOIN <relation2> ON


relation1.attrbut1 = relation2.attribut2;

 Cas de la clause AS (c'est-à-dire deux relations identiques qui ont le même

attribut)

SELECT <attributs>

FROM relation R1, relation R2

WHERE R1.attribut = R2.attribut;

4. Les opérateurs relationnels

Les opérateurs relationnels en SQL sont basés sur les opérateurs relationnels vus dans le

chapitre Modèle Relationnel. En SQL, les principaux opérateurs sont UNION, INTERSECTION,

MINUS (différence). Les deux relations R1 et R2 sur lesquelles sont appliqués les opérateurs

UNION, INTERSECTION et MINUS doivent absolument avoir le même schéma de table (nombre

équivalent d'attributs et attributs identiques deux à deux).

SELECT *
FROM VOITURE
WHERE Puissance = 5
UNION
SELECT * FROM VOITURE WHERE Puissance = 7;

Cette requête permet d'afficher l'ensemble des tuples de la table VOITURE dont la Puissance est

égale à 5 ou à 7 chevaux.

5. La clause « HAVING »
ENSEIGNANT : M. ESSAM BENJAMIN P a g e 40 | 95
La clause HAVING définit les conditions que les groupes doivent respecter pour être
retenus, elle sélectionne les partitions désirées. Elle ne peut comprendre que des conditions dont
le premier terme est une fonction statistique. La clause HAVING est aux groupes (GROUP BY) ce
que la clause WHERE est aux lignes (SELECT).
Exemple

SELECT MAX(Prix), Puissance


FROM VOITURE
GROUP BY Puissance
HAVING COUNT (*)>1;

Cette commande permet de créer des partitions selon la Puissance dans la table VOITURE. Elle
calculera le prix maximum sur ces partitions. La clause HAVING limite l'affichage aux partitions
contenant au moins 2 éléments (tuples) : COUNT (*)>1. On aura donc, pour notre exemple, 2
partitions correspondant aux puissances 6 et 7 chevaux (la partition relative à la Puissance de 5
chevaux n'a pas été retenue car elle ne contient pas assez d'éléments pour satisfaire la condition
énoncée dans la clause HAVING).

ENSEIGNANT : M. ESSAM BENJAMIN P a g e 41 | 95


Leçon 11 EXPORT ET SAUVEGARDE DES DONNEES

Leçon 11
EXPORT ET SAUVEGARDE DES DONNEES
Objectif
Au terme de cette leçon, l’élève doit être capable d’exporter/importer et sauvegarder une base de
données.

ENSEIGNANT : M. ESSAM BENJAMIN P a g e 42 | 95


MODULE 2 :

MODELISATION DES
SYSTEMES
D’INFORMATION

ENSEIGNANT : M. ESSAM BENJAMIN P a g e 43 | 95


Chapitre 2 ENVIRONNEMENT D’UN SYSTEME D’INFORMATION

Leçon 12
LE SI DANS UNE ORGANISATION
Objectifs
Au terme de cette leçon, l’élève doit être capable de :
 Identifier les différentes ressources d’un SI ;
 Situer le SI dans une organisation (son rôle, son importance, ses fonctions) ;

I. NOTION DE SYSTEME D’INFORMATION


1. Vocabulaire de base des systèmes d’information des entreprises
Une organisation ou entreprise est une entité, disposant de ressources humaines,
matérielles et financières qu’elle gère en vue de produire des biens et des services destinés
à la vente.
Une donnée est la représentation d’une information sous une forme conventionnelle
(codée) destinée à faciliter son traitement.
Une information est le support formel d’un élément de connaissance humaine
susceptible d’être représentée à l’aide de conventions afin d’être conservée, traitée ou
communiquer.
Le traitement de l’information est le processus de production de nouvelles
informations à partir d’informations existantes grâce à des programmes informatiques.
Un système d'information (SI) est un ensemble organisé de ressources qui permet de
collecter, stocker, traiter et distribuer de l'information pour des prises de décision. Il est
ainsi l’outil d’acheminement des informations de l’entreprise et opère entre le SO et le SP
comme nous le montre la figure suivante.

II. LES AVANTAGES DE L’INFORMATISATION D’UNE ENTREPRISE


L’information est d’une grande importance pour une entreprise et lui procure plusieurs

avantages parmi les quel :

 L’augmentation la productivité en améliorant l’efficacité des utilisateurs

 L’amélioration les conditions de travail

 Permet de rendre un meilleur service (de qualité, rapide, etc.) aux partenaires de

l'organisation

III. ROLE ET FONCTIONS D’UN SYSTEME D’INFORMATION


Un SI a pour rôle principal d’automatiser toutes les opérations d’une entreprise.

Un SI a quatre principales fonctions dans une entreprise, il s’agit :

ENSEIGNANT : M. ESSAM BENJAMIN P a g e 44 | 95


 De collecter l’information : des informations peuvent provenir des clients (source

externe) ou du système lui-même (source interne) …

 De la mémorisation de l’information : pour assurer la pérennité, les informations

peuvent être conservées dans des disques durs, base de données…

 Du traitement de l’information : le SI peut effectuer des opérations telles que les

calculs, le tri, le classement…

 De la diffusion de l’information : Pour être exploitée, l’information doit parvenir

rapidement à son destinataire soit sous forme orale, support papier ou support

numérique

Leçon 13
LANGAGE DE MODELISATION ET LIMITES DE MERISE

Objectifs
Au terme de cette leçon, l’élève doit être capable de :
 Citer quelques méthodes de développement (MERISE, UP, XP, SCRUM) ;
 Enoncer les limites de MERISE ;
 Citer un langage de modélisation ;

I. NOTION DE METHODE D’ANALYSE ET DE CONCEPTION


Une méthode d'analyse et de conception est un procédé qui formalise les étapes préliminaires

du développement d'un système afin de rendre ce développement plus fidèle aux besoins du client.

Ainsi, elle décrit une démarche, c’est-à-dire un ensemble de travaux tout en les ordonnant afin

d’aboutir à la réalisation du système.

Une méthode de conception possède les composants suivants :

 Les Modèles : ensemble de concepts et de règles destiné à expliquer et construire la

représentation de phénomènes d’une organisation.

 Le langage : destiné à l’élaboration des spécifications, à faciliter la communication

 Démarche

 Outils et techniques : qui aident à la mise en œuvre des modèles.

L’utilisation des méthodes de conception et d’analyse a pour avantages :

 D’améliorer les communications entre intervenants (utilisateurs et informaticiens)


ENSEIGNANT : M. ESSAM BENJAMIN P a g e 45 | 95
 De réduire la complexité des informatisations

 De rendre cohérent le projet

 De capitaliser les expériences (ex. : réutilisation des solutions ayant résolu les mêmes

problèmes, acquisition de savoir-faire)

 D’augmenter la qualité des travaux d'informatisation

 D’augmenter la productivité des travaux d'informatisation

II. CLASSIFICATION DES METHODES D’ANALYSE ET DE CONCEPTION D’UN SI


On peut classer les méthodes de conception en plusieurs catégories parmi lesquelles:

1. La méthode d’analyse cartésienne

C’est une démarche dite analytique qui fixe les étapes à respecter, leur enchaînement,

ainsi que les entrées et les sorties correspondant à chaque étape.

Exemple :

- Les méthodes SADT (Stuctured Analysis and Design Technique),

- CORIG…

2. La méthode d’analyse systémique


C’est une démarche dite globalisante qui procède à la résolution globale des
problèmes
Exemples :
- MERISE (Méthode d’Etude et de Réalisation Informatique pour les Systèmes
d’Entreprise),
- AXIAL (analyse et conception de système d'information assistées par logiciels),
- NIAM (Nijssen information analysis method appelé aussi modèle relationnel
binaire)

3. La méthode d’analyse objet


L’approche orientée objet considère le logiciel comme une collection d’objets dissociés,
identifiés et possédant des caractéristiques.
Une caractéristique est soit un attribut (propriété), soit un comportement de l’objet
(fonction).
La fonctionnalité du logiciel émerge alors de l’interaction entre les différents objets qui le
constituent.
On peut donc citer :
- OOA (Oriented Object Analysis),
- OMT (Object Modeling Technique),

ENSEIGNANT : M. ESSAM BENJAMIN P a g e 46 | 95


- MCO (Modèle de Communication de l'Objet),
- OOSE (Object Oriented Software Engineering),
- Booch concut par Grady Booch.
- La fusion de Booch, OMT, OOSE et a donné naissance à un langage de modélisation : le
UML (Unified Modeling Language)

ENSEIGNANT : M. ESSAM BENJAMIN P a g e 47 | 95


Leçon 14
LES COMPOSANTES D’UN SI
Objectifs
Au terme de cette leçon, l’élève doit être capable de :
 Décrire les trois composantes du système d’une organisation (de pilotage, d’information,
opérant) ;
 Identifier les acteurs de chaque composante ;

I. LES COMPOSANTES D’UN SYSTEME D’INFORMATION


Une organisation peut se composer de trois sous-systèmes :

 Le système de pilotage ou de décision

 Le système d’information

 Le système opérant

1. Le système de pilotage (SP)


Encore appelé système de décision, le système de pilotage est le siège des activités

décisionnelles de l’entreprise. Il dirige l’entreprise partant des dirigeants jusqu’aux ouvriers. Le

système de décision a pour rôle :

 D’exploiter les informations qui circulent

 Organiser le fonctionnement de l’entreprise

 De décider des actions à conduire sur le système opérant.

 De raisonner en fonction des objectifs et des politiques de l’entreprise

2. Le système opérant (SO)


Le système opérant est le siège de l'activité productive de l'entreprise. Cette activité menée

par les ouvriers de l’entreprise consiste en une transformation de ressources (Matière, finance,

personnel, information). Le système opérant a pour rôle :

 De recevoir les informations émises par le SP (via le SI)

 De réaliser les tâches qui lui sont confiées

 De générer à son tour des informations en direction du SP (via le SI)

3. Le système d’information (SI)


Il sert d’intermédiaire entre le SO et le SP et sera étudier plus en détail dans la leçon
suivante
ENSEIGNANT : M. ESSAM BENJAMIN P a g e 48 | 95
ENVIRONNEMENT

ENTREPRISE / ORGANISATION

SYSTEME DE PILOTAGE

Commnication Génération

SYSTEME DINFORMATION

Traitement Mémorisation

Commnication

RESSOURCES SYSTEME OPERANT PRODUITS

ENSEIGNANT : M. ESSAM BENJAMIN P a g e 49 | 95


Leçon 15
LES METHODES DE COLLECTES DE DONNEES

Objectifs
Au terme de cette leçon, l’élève doit être capable de :
 Donner la différence entre une donnée et une information ;
 Décrire les méthodes de collecte de données ;

SITUATION PROBLEME
EBENDE est un jeune informaticien (analyste et programmeur) qui a été sélectionné pour

informatiser une entreprise de la ville. Ne connaissant rien du fonctionnement de cette entreprise,

vous décidez de faire une collecte des données.

1. Enumérer les moyens de collecte de données que vous connaissez.

2. Quels sont les personnes à rencontrer pour faire collecte ?

3. A quoi lui serviront ces données ?

SOLUTION
1.
2.
3.

RESUME
La collecte de données est une approche systématique qui consiste à réunir et à mesurer

des informations en provenance de sources variées, afin d'obtenir une vue complète et précise d'un

domaine d'intérêt. Elle est très utile pour la réalisation d’un projet d’informatisation, car celle-ci

permet de connaitre de façon précise ce que l’utilisateur attend de son futur système d’information.

Plusieurs moyens peuvent être utilisés pour collecter les données nécessaires à la réalisation

d’un projet d’informatisation. Il peut s’agir :

 De l’interview : c’est un entretien avec les différents acteurs de l’organisation. Cet entretien

permet de définir le périmètre de l’applicatif futur.

 L’étude des documents internes : Les documents internes (factures, bons de livraison, ordres

de fabrication) recèlent des informations qui sont souvent omises lors des entretiens.

 L’étude des documents externes : les documents externes (factures des fournisseurs, bons de

livraison fournisseurs...) tout comme l’étude des documents internes permet de découvrir des

ENSEIGNANT : M. ESSAM BENJAMIN P a g e 50 | 95


informations oubliées lors des interviews et de découvrir aussi quelques règles de gestion.

 Questionnaires : ce sont des formulaires qui sont remplis par les déclarants (acteur de

l’organisation) seuls.

Suite à la collecte des données, il est nécessaire de centraliser toutes les informations et règles de

gestions au sein d’un document. Ce document se nomme le dictionnaire des données.

EXERCICE 1
1. Décrire les rôles des composantes d’un système d’organisation
2. Quels sont les acteurs de chacune de ces composantes ?

EXERCICE 2
1. Enumérez et expliquez les fonctions d’un SI
2. Dessinez et expliquez brièvement le schéma montrant l’interaction entre les différentes
composantes d’une entreprise.

ENSEIGNANT : M. ESSAM BENJAMIN P a g e 51 | 95


CHAPITRE 3 MODELISATION STATIQUE

Leçon 15
INTRODUCTION AU LANGAGE UML

Objectifs
Au terme de cette leçon, l’élève doit être capable de donner le rôle de quelques diagrammes
structurels/statiques du langage UML (diagramme de classes et diagramme d’objets).

Introduction

La réalisation d'un site web ou d’une application doit être impérativement précédée

d'une méthodologie d'analyse et de conception qui a pour objectif de permettre de

formaliser les étapes préliminaires du développement afin de rendre ce développement

plus fidèle aux besoins du client. La phase d'analyse permet de lister les résultats attendus,

en termes de fonctionnalités et La phase de conception permet de décrire de manière non

ambiguë, le plus souvent en utilisant un langage de modélisation, le fonctionnement futur

du système, afin d'en faciliter la réalisation. Dans ce chapitre nous présentons une brève

introduction au langage de modélisation UML.

1. Définition d’UML

UML (Unified Modeling Language) est un langage graphique permettant de modéliser

la structure et le comportement des systèmes orientés objet.

Ce n'est pas une méthode, il ne donne pas de solution pour la mise en œuvre d'un projet.

C'est avant tout un formalisme graphique issu de notations employées dans différentes

méthodes objets. UML unifie (Rend homogène) également les natations et les concepts

orientés objet. Il ne s’agit pas d’une simple notation graphique, car les concepts transmis

par un diagramme ont une sémantique précise et sont porteurs de sens au même titre que

les mots d’un langage.

2. Mise en œuvre d'une démarche à l'aide d'UML


UML se décompose en plusieurs sous-ensembles : Les vues, Les diagrammes, Les
ENSEIGNANT : M. ESSAM BENJAMIN P a g e 52 | 95
modèles d'élément.

2.1. Les vues

Elles décrivent le système d'un point de vue donné, qui peut être organisationnel,

dynamique, temporel, architectural, géographique, logique, ...

Une façon de mettre en œuvre UML est de considérer différentes vues qui peuvent

se superposer pour collaborer à la définition du système :

 Vue des cas d'utilisation : c'est la description du modèle vu par les acteurs du système.

Elle correspond aux besoins attendus par chaque acteur (c'est le QUOI et le QUI). 

 Vue logique : c'est la définition du système vu de l'intérieur. Elle explique comment

peuvent être satisfaits les besoins des acteurs (c'est le COMMENT).

 Vue d'implémentation : cette vue définit les dépendances entre les modules.

 Vue des processus : c'est la vue temporelle et technique, qui met en œuvre les notions

de tâches concurrentes, stimuli, contrôle, synchronisation, etc.

 Vue de déploiement : cette vue décrit la position géographique et l'architecture

physique de chaque élément du système (c'est le OÙ).

2.2. Les diagrammes

Un diagramme UML est une représentation graphique, qui s'intéresse à un aspect

précis du modèle. C’est une perspective du modèle.

Chaque type de diagramme UML possède une structure et 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.

Les diagrammes permettent donc d'inspecter un modèle selon différentes

perspectives et guident l'utilisation des éléments de modélisation (les concepts objet), car

ils possèdent une structure.

Les 14 diagrammes UML sont dépendants hiérarchiquement et se complètent, de

façon à permettre la modélisation d'un projet tout au long de son cycle de vie.

a) Diagrammes structurels ou statiques

Les diagrammes structurels ou statiques rassemblent :

ENSEIGNANT : M. ESSAM BENJAMIN P a g e 53 | 95


 Le diagramme de classes : il représente les classes intervenant dans le système.

 Le diagramme d’objets : il sert à représenter les instances de classes (objets) utilisées

dans le système.

 Le diagramme de composants : il permet de montrer les composants du système d'un

point de vue physique, tels qu'ils sont mis en œuvre (fichiers, bibliothèques, bases de

données…

 Le diagramme de HYPERLINK : il sert à représenter les éléments matériels

(ordinateurs, périphériques, réseaux, systèmes de stockage…) et la manière dont les

composants du système sont répartis sur ces éléments matériels et interagissent entre

eux.

 Le diagramme des paquetages : un paquetage étant un conteneur logique permettant

de regrouper et d'organiser les éléments dans le modèle UML, le diagramme de

paquetage sert à représenter les dépendances entre paquetages, c’est-à-dire les

dépendances entre ensembles de définitions.

 Le diagramme de structure composite : il permet de décrire sous forme de boîte blanche

les relations entre composants d'une classe.

 Le diagramme de profils : il permet de spécialiser, de personnaliser pour un domaine

particulier un Meta-modèle de référence d'UML.

b) Diagrammes comportementaux ou dynamique

Les diagrammes comportementaux rassemblent :

 Le diagramme des cas d’utilisation : il permet d'identifier les possibilités d'interaction

entre le système et les acteurs (intervenants extérieurs au système), c'est-à-dire toutes

les fonctionnalités que doit fournir le système.

 Le diagramme états-transitions : il permet de décrire sous forme de machine à états

finis le comportement du système ou de ses composants.

 Le diagramme d’activité : il permet de décrire sous forme de flux ou d'enchaînement

d'activités le comportement du système ou de ses composants.

 Le diagramme de séquence : il représentation séquentielle du déroulement des

ENSEIGNANT : M. ESSAM BENJAMIN P a g e 54 | 95


traitements et des interactions entre les éléments du système et/ou de ses acteurs.

 Le diagramme de communication : c’est la représentation simplifiée d'un diagramme

de séquence se concentrant sur les échanges de messages entre les objets.

 Le diagramme global d’interaction : il permet de décrire les enchaînements possibles

entre les scénarios préalablement identifiés sous forme de diagrammes de séquences.

 Le diagramme de temps : il permet de décrire les variations d'une donnée au cours du


temps.

3. LES AVANTAGES EI LES INCONVENIENTS d'UML


3.1. Les points forts d'UML
 UML est un langage formel et normalisé : Il permet le gain de précision, encourage
l'utilisation d'outils et constitue à cet effet un gage de stabilité.
 UML est un support de communication performant : Il cadre l'analyse et facilite la
compréhension de représentations abstraites complexes. Son caractère polyvalent et
sa souplesse en font un langage universel.

3.2. Les points faibles d'UML


 La mise en pratique d'UML nécessite un apprentissage et passe par une période
d'adaptation.
 Le processus (non couvert par UML) est une autre clé de la réussite d'un projet.

ENSEIGNANT : M. ESSAM BENJAMIN P a g e 55 | 95


Leçon 15
RELATIONS ENTRE CLASSES
Objectifs
Au terme de cette leçon, l’élève doit être capable de :
 Représenter une classe, un objet dans le formalisme UML ;
 Mettre en évidence les caractéristiques d’une classe (visibilité, paramètre de
méthodes, type de retour, etc.) ;
 Matérialiser l’association et la multiplicité entre classes ;

Introduction

Le diagramme de classes exprime la structure statique du système en termes de classes et

de relations entre ces classes. L’intérêt du diagramme de classe est de modéliser les entités du

système d’information. Le diagramme de classe permet de représenter l’ensemble des

informations finalisées qui sont gérées par le domaine. Ces informations sont structurées,

c’est-à-dire qu’elles ont regroupées dans des classes. Le diagramme met en évidence

d’éventuelles relations entre ces classes. Le diagramme de classes comporte 6 concepts :

classe, attribut, identifiant, relation, opération, généralisation / spécialisation.

1. Notion de classe et de diagramme de classes

1.1. Notion de classe

Une classe est une représentation abstraite d’un d’ensemble d’objets, elle contient les
informations nécessaires à la construction de l’objet (c'est-à-dire la définition des attributs
et des méthodes).
La classe peut donc être considérée comme le modèle, le moule ou la notice qui va
permette la construction d’un objet. Nous pouvons encore parler de type (comme pour une
donnée). On dit également qu’un objet est l’instance d’une classe (la concrétisation d’une
classe).

1.2. Rôles du diagramme des classes

Un diagramme UML est une représentation graphique, qui s'intéresse à un aspect


précis du modèle.
ENSEIGNANT : M. ESSAM BENJAMIN P a g e 56 | 95
Le diagramme des classes est un diagramme structurel (statique) qui permet de
représenter Les classes (attributs + méthodes) et les associations (relations) entre les
classes.Le diagramme de classes est le plus important des
Nom Classe
diagrammes UML, c’est le seul qui soit obligatoire lors de la
- NomAttribut1 : type
modélisation objet d’un système. - NomAttribut2 : type
- …
2. Représentation des classes - NomAttributn : type
+ NomMéthode1() : void
Une classe est représentée par un rectangle (appelé aussi + NomMéthode1() : void

classeur) divisé en 3 compartiments.
+ NomMéthode1() : void
 Le premier compartiment contient le nom de la classe Tableau 3 : Représentation d'une
 Le deuxième compartiment contient les attributs. classe Uml.

 Le troisième compartiment contient les méthodes.

Remarque : Si la modélisation ne s’intéresse qu’aux relations entre les différentes classes

du système (et pas au contenu des classes), nous pouvons ne pas représenter les attributs

et les méthodes de chaque classe (nous ne mettons rien dans le deuxième et troisième

compartiment).

Exemples :

- La classe Horloge

Horloge
- heures : int
Horloge
- minutes : int Ou
+ régler() : void
+ afficher() : void

- La classe LecteurMp3

LecteurMP3
- volume : int
- sélection : int
LecteurMP3
+ metreEnMarche() : void ou
+ arrêter() : void
+ lireSélection() : void
+ avanceRapide() : void
+ changerVolume() : void

Nous pouvons détailler la classe en indiquant :


ENSEIGNANT : M. ESSAM BENJAMIN P a g e 57 | 95
 La visibilité (encapsulation) des méthodes et des attributs ;
 Le type de chaque attribut (void, int, short, boolean, char, float, double) ;
 La signature de chaque méthode ;
 Le type de valeur retournée par chaque méthode ;
 La direction des paramètres des méthodes ;
 Valeurs par défauts des attributs et des paramètres des méthodes ;
 Attributs et méthodes de classe (ou attributs et méthodes statiques) ;
 Les contraintes ;
 Les attributs calculés (dérivé) ;
 La multiplicité ([ ] (tableau), * (pointeur), &(référence)) ;
 Constructeur et destructeurs ;
 Les énumérations ;

2.1. La visibilité (encapsulation) des méthodes et des attributs.


Type de Symbole à placer devant
Signification
visibilité l’attribut ou la méthode
public Elément non encapsulé visible par tous. +
private Elément encapsulé visible seulement dans la classe. -
protected Élément encapsulé visible dans la classe et les sous-classes. #
package Élément encapsulé visible dans les classes du même paquage ~

2.2. La direction des paramètres des méthodes


Devant le nom du paramètre, il est possible d’indiquer par un mot clé (in, out, inout), la direction
dans laquelle celui-ci est transmis.

La valeur du paramètre est transmise à l’appel de la méthode (par l’appelant de la


In méthode) et ne peut pas être modifiée (c’est le comportement par défaut si aucune
direction n’est spécifiée).
La valeur finale du paramètre est transmise au retour de l’appel de la méthode (à
Out
l’appelant de la méthode).
Inout La valeur du paramètre est transmise à l’appel et au retour.

Exemple :

 Considérons la méthode régler (heures : int, minutes : int) : void de la classe Horloge de

l’exemple précédent. L’appelant de la méthode veut affecter les attributs heures et minutes avec

des valeurs qu’il va donner.

La direction des paramètres sera alors in : régler(in heures : int, in minutes : int) : void

 Considérons maintenant la méthode getTime (heures : int, minutes : int) : void de la classe

Horloge. L’appelant de la méthode veut récupérer les valeurs des attributs heures et minutes.

ENSEIGNANT : M. ESSAM BENJAMIN P a g e 58 | 95


La direction des paramètres sera alors out : getTime (out heures : int, out minutes : int) : void

En fonction des objectifs de modélisation, la représentation d’une classe peut être plus ou

moins exhaustive.

Remarque

Comme une méthode ne peut retourner qu’une seule valeur, et que dans notre cas nous avons
besoin de connaître deux valeurs (les heures et les minutes), le retour se fera par les arguments
(en utilisant les références ou les pointeurs en C++).

2.3. Valeurs par défauts des attributs et des paramètres des méthodes

Nous indiquons les valeurs par défauts des attributs lors de leur construction et les valeurs
par défauts des paramètres des méthodes s’ils ne sont pas clairement spécifiés lors de
l’appel.

Horloge
- heures : int = 0
- minutes : int = 0
+ régler(in heures : int =0, in minutes : int =0) : void
+ afficher() : void
+ getTime(out heures :int, out minutes : int ) : void

2.4. Attributs et méthodes de classe (ou attributs et méthodes statiques)

Une classe peut contenir des attributs et des méthodes qui lui sont propres et
auxquels nous pouvons accéder sans nécessairement instancier des objets.
Un attribut de classe n’appartient pas à un objet en particulier mais à toute la classe
(il n’est pas instancié avec l’objet).
Un attribut ou une méthode de classe est représenté par un nom souligné. Cela
permet également d’avoir une information commune à tous les objets instanciés.

Exemple Soit la classe Gasoil qui représente le gas-oil fourni par une pompe de station-service.

L’attribut prixParLitre appartient à la classe


Gasoil ; il ne fait pas parti des objets instanciés,
Gasoil mais chaque objet individuel peut accéder.
- qauantité : double { quantité<100}
- prixParLitre : ouble = 1.23
La méthode fixePrix() permet de modifier la valeur
+ setQuantité (quantité :double) : void
de l’attribut de classe prixParLitre (c’est le seul
+ getQuantite() : quantite { query }
autorisé)
+ fixePrix( prixParLitre : double ) void

ENSEIGNANT : M. ESSAM BENJAMIN P a g e 59 | 95


2.5. Les contraintes
Une contrainte est une condition que doit vérifier un attribut. Elle s’écrite entre 2 accolades { }.
Elle peut être exprimée dans :
 Un langage naturel (description textuelle)
 Un langage formel (C++, java, OCL…).

Remarques : OCL (Object Contraint Language) est un langage spécialement conçu pour
exprimer des contraintes. En voici quelques-unes qui peuvent être bien utiles :
 { readOnly } : si une telle contrainte est appliquée à un attribut, alors la valeur de celui-
ci ne peut plus être modifiée une fois la valeur initiale fixée (équivalent à un attribut
constant).
 { query } : une méthode peut être déclarée comme étant de type requête (query) si le
code implémentant celle-ci ne modifie nullement l’état de l’objet, donc aucun de ses
attributs .
 {ordered} {list} : lorsqu’une multiplicité supérieure à 1 est précisée, il est possible
d’ajouter une contrainte pour préciser si les valeurs sont ordonnées {ordered} ou pas
{list}. Très souvent, dans ce dernier cas, nous ne précisons même pas cette deuxième
contrainte, c’est le mode par défaut.
 { unique } : on demande cette fois-ci qu’il n’y ait aucun doublon dans les valeurs de la
collection.
 { not null } : L’attribut doit à tout prix être initialisé (utile dans le cas des pointeurs).
Exemple ci-dessus

2.6. La multiplicité
La multiplicité indique le nombre de valeur que l’attribut peut contenir (l’attribut
est souvent un tableau de valeurs, statique ou dynamique).
La multiplicité se note entre crochets après le type de valeur que contient l’attribut.

Cardinalités Significations
0..1 Zéro ou une fois
1..1 ( ou 1) Une et une seule fois
0..* (ou *) De zéro à plusieurs fois
1..* De une à plusieurs fois
m..n Entre m et n fois
n..n (ou n) n fois

Exemple : Une station météo doit relever la température à intervalles de temps réguliers.
Elle doit pouvoir stocker 100 relevés.

ENSEIGNANT : M. ESSAM BENJAMIN P a g e 60 | 95


RelevéMétéo
L’attribut temperature contient
- temperature : int[100]
+ setTemperature(quantite : double) : void 100 valeurs de type int
+ getTemperature() double {query}

RelevéMétéo Tableau dynamique d’une capacité


- temperature : int[*] quelconque
+ setTemperature(quantite : double) : void
+ getTemperature() double {query}

2.7. Constructeur et destructeurs :


Notes
Des stéréotypes peuvent être utilisés pour - notes: double[*]
- nombre : unsigned =0
identifier des opérations particulières comme les - taille : unsigned
constructeurs (stéréotype « create ») et le + « create » Notes(quantite :unsigned=10)
+ajoutNote(note :double) : void
destructeur (stéréotype « destroy »). +maxi() : double { query }
+ « destroy » ~Notes()
Exemple Il est possible de mettre en place une
gestion de notes, avec le calcul de la moyenne, de la valeur maxi, etc. au travers d’une classe
adaptée nommée Notes.

ENSEIGNANT : M. ESSAM BENJAMIN P a g e 61 | 95

Vous aimerez peut-être aussi