Cours de Modélisation UML
Cours de Modélisation UML
Par
CT TSHIKUTU BIKENGELA ANACLET
E-mail : [email protected]
Tél : +243 812382300
OBJECTIFS DU COURS
MODES D’EVALUATION
- Sous forme de travaux réalisés pendant l’année (Présence aux cours, aux T.P.)
- Sous forme d’exposés (Par groupe d’étudiants, les étudiants choisissent un
thème, le développent et l’exposent avant les examens)
- Sous forme d’interrogation et d’examen oral et / ou écrit
CONTENU
REFERENCES BIBLIOGRAPHIQUES
I.1. INTRODUCTION
L’information comme élément de connaissance susceptible d’être codé pour être
conservé, traité ou communiqué, est indispensable au fonctionnement d’une entreprise.
Il est nécessaire de traiter les diverses données, d’origine interne et externe, pour les
adapter aux besoins des utilisateurs.
A chaque instant, pour l’ensemble de ses activités, l’entreprise utilise des informations.
Ces informations doivent être préparées et traitées pour être utilisables.
Le Système d’information a pour objectif de restituer aux différents membres de
l’entreprise, les informations sous une forme directement utilisable, au moment
opportun, afin de faciliter le déroulement des opérations et la prise de décision aux
différents niveaux.
Le Système d’information est en partie formel et en partie informel.
Le système d’information formel est défini dans l’organisation par des procédures
codifiées, des documents et des messages rigoureusement spécifiés. L’information y est
véhiculée essentiellement sous forme écrite.
Le système d’information informel traite et communique de l’information, souvent
importante, sans laisser de traces systématiques et sans appliquer des règles rigoureuses
connues et stables. C’est le domaine de l’improvisation, de la relation personnelle…
voir du secret.
De plus en plus, les opérations correspondant au système d’information formel sont
automatisées grâce à l’utilisation d’ordinateur. Un système informatique comprend des
matériels (micro, mini ou gros ordinateurs et périphériques) et des logiciels
(programmes nécessaires pour le traitement des données). Ce système informatique est
une composante majeure du système d’information formel de l’entreprise.
La notion de système d’information ne fait qu’évoluer. Elle a connu depuis plus de trente
ans une évolution très importante et régulière, tout particulièrement sous l’effet des
transformations technologiques et l’émergence des moyens informatiques et
télématiques qui peuvent être envisagés et mobilisés pour construire et faire fonctionner
le nouveau système d’information.
Trois grandes étapes marquent principalement cette évolution. Chacune de ces étapes
traduit une importante extension de la compréhension du concept. Ces trois étapes
correspondent :
MODELISATION OBJET : UML
a. Au Système d’information informatisé qui prend en charge les tâches administratives
les plus courantes et très répétitives ;
b. Au Système d’information informatisé qui contribue à informer le manager
opérationnel sur le fonctionnement courant ;
c. Au Système d’information informatisé qui assiste le manager dans la prise de
décisions opérationnelles.
Dans le cadre de ce cours, nous allons nous intéresser plus au type (b).
Relativement à l’organisation et la direction d’un système d’information, celui-ci se
construit autour de processus « métiers » et ses interactions, et non simplement autour
de bases de données ou de logiciels informatiques. Le système d'information doit
réaliser l’alignement stratégique et la stratégie d’entreprise par un management
spécifique.
La gouvernance des systèmes d’information ou gouvernance informatique (IT
gouvernance) renvoie au moyen de gestion et de régulation des systèmes d’information
mis en place par une organisation dans le but d’atteindre ses objectifs. A ce titre, la
gouvernance du système d’information fait partie de la gouvernance de l’organisation.
Les méthodes ITIL (IT infrastructure Library) et COBIT (Control Objectives for
Business & Related Technology) sont par exemple des supports permettant de mettre un
système d’information sous contrôle et de le faire évoluer en fonction de la stratégie de
l’organisation.
I.2. DEFINITIONS, FONCTIONS ET QUALITES D’UN SI
Une organisation, en tant que système, peut être décomposée en sous-système opérant
et sous-système de pilotage reliés par un système d’information faisant le trait d’union.
Une telle décomposition prend bien en compte :
- la différence de besoin en matière d’information des modules opérants et pilotes,
- la nécessité pour le système d’information de ne pas se contenter de transmettre les
informations mais d’en changer le niveau de synthèse.
Par système d’information d’une organisation, on entend un ensemble formé :
- de procédés pour l’acquisition, la mémorisation, la transformation, la recherche, la
communication et la restitution des renseignements.
- de ressources humaines et de moyens techniques intégrés dans un système coopérant
et contribuant à son fonctionnement et à la poursuite des objectifs qui lui sont assignés.
Il englobe aussi un modèle de fonctionnement de cette dernière à travers d’une part, les
règles qui régissent la vie des renseignements, et d’autre part, les principes administratifs
de constitution, de transformation et de diffusion des documents. Il faut le voir comme
un miroir sur lequel on peut observer :
MODELISATION OBJET : UML
• La réalité décrite dans ses multiples facettes et projetée avec des réductions
temporelles et spatiales inhérente à la nature du Système d’information ;
• Une abstraction simplificatrice qui analyse la réalité en termes de catégories ou de
types.
Le Système d’information est considéré comme un artéfact (phénomène artificiel) greffé
sur l’objet réel qui est l’entreprise, volontairement conçu et mis en place pour remplir
des fonctions de représentation, de mémorisation et de communication, en vue
d’atteindre des objectifs informationnels.
Cet artéfact supporte un réseau de flux d’information nécessaire pour organiser, mettre
en œuvre, gérer et maintenir les activités d’une organisation. C’est un instrument de
communication qui sert aux échanges informationnels entre les partenaires et
l’organisation et accroit leur efficacité.
Un bon système d'information doit remplir comme fonctions : le recueil (Collecte et
saisie) des informations, la mémorisation des informations brutes ou résultats de
traitement, le traitement et la circulation des informations.
Un bon système d’information doit posséder des qualités ci-après : la fiabilité, la
rapidité, la pertinence et la sécurité.
I.3. DEVELOPPEMENT D’UN SYSTEME D’INFORMATION
PHENOMENES REELS ET
BESOINS
La Phase de conception
PROCESSUS DE
CONCEPTION
SCHEMA DU
S.I
La Phase de réalisation
PROCESSUS DE
REALISATION
SYSTEME D’INFORMATION
EN OPERATION
Fig. 2 – Développement d’un Système d’information
C’est le tout premier modèle classique du cycle de vie. D’autres noms sont parfois
donnés à ses phases et un découpage plus fin est souvent utile. Le cycle de vie dit de la
« cascade » date de 1970, il est l’œuvre de Royce. Ce Cycle de vie est linéaire
(présentoir) sans aucune évaluation entre le début du projet et la validation. Ici, Le projet
est découpé en phases successives dans le temps et à chaque phase correspond une
activité principale bien précise produisant un certain nombre de livrables et On ne passe
à l’étape suivante que si les résultats de l’étape précédente sont jugés satisfaisants.
L’activité d’une étape se réalise avec les résultats fournis par l’étape précédente ; ainsi,
chaque étape sert de contrôle du travail effectué lors de l’étape précédente et Chaque
phase ne peut remettre en cause que la phase précédente ce qui, dans la pratique, s’avère
insuffisant. L’élaboration des spécifications est une phase particulièrement critique : les
erreurs de spécifications sont généralement détectées au moment des tests, voire au
MODELISATION OBJET : UML
moment de la livraison du logiciel à l’utilisateur. Leur correction nécessite alors de
reprendre toutes les phases du processus. Ce modèle est mieux adapté aux petits projets
ou à ceux dont les spécifications sont bien connues et fixes. Dans le modèle en cascade,
on effectue les différentes étapes du logiciel de façon séquentielle. Les interactions ont
lieu uniquement entre étapes successives : on s’autorise des retours en arrière
uniquement sur l’´étape précédente. Par exemple, un test ne doit pas remettre en cause
la conception architecturale.
Une fois qu’une version modifiée du logiciel a été développée, il faut bien entendu la
distribuer. De plus, il est en général nécessaire de fournir à l’exploitant du logiciel une
assistance technique et un support de consultation.
Ces étapes ne doivent pas être vues comme se succédant les unes aux autres de façon
linéaire. Il y a en général (et toujours) des retours sur les phases précédentes, en
particulier si les tests ne réussissent pas ou si les besoins évoluent.
Des études ont été menées pour évaluer le coût des différentes étapes du
développement :
Type de système Conception Implantation Test
Gestion 44 28 28
Scientifique 44 26 30
Industriel 46 20 34
Mais c’est la maintenance qui coûte le plus cher.
I.5.2. MODELE EN V
Chronologie
Orientation Maintenance
faisabilité
+ Préparation de la ……………
Validation
• Analyse des
Cahier des Tests
•
charges besoins – analyse d’acceptation
du système
•
Système
Vérification
Conception Tests
•
Spécification architecturale d’intégralité
architecturale
• Vérification Logiciel
Conception Tests unitaires
• détaillée
Spécification
•
détaillée Module
Abstraction
Codage
Comme les phases des modèles précédents sont successives, une difficulté majeure est
rencontrée lorsque les besoins exprimés par le client ne sont pas complets au début du
cycle. Il est alors possible de construire une maquette (prototype) qui simule le
comportement du logiciel tel qu’il sera perçu par l’utilisateur.
MODELISATION OBJET : UML
NB : d’autres modèles ont étés crées pour le développement de systèmes complexes, par
exemple : Modèle spiral, Modèle Incrémental, Modèle en Y, etc.
Une méthode :
• Propose une démarche, distinguant les étapes du développement dans le cycle du
vue du logiciel et exploitant au mieux les principes fondamentaux : modularité,
réduction de la complexité, réutilisation, abstraction, etc.,
• Propose des formalismes (langages) et des types de documents (modèles), qui
facilitent la communication, l’organisation et la vérification,
Parmi les principaux objectifs des méthodes objets, on peut noter la volonté de :
• Regrouper l’analyse des données et des traitements,
• Etablir un couplage explicite entre les concepts du monde réel et les composants
exécutables (« réduire la distance sémantique entre le langage des concepteurs et
celui des utilisateurs »),
• Faciliter la réutilisation,
• Simplifier les transformations entre le niveau conceptuel et l’implantation.
Au début des années 90, il existait une cinquantaine de méthodes objet, liées par un
certain consensus autour d’idées communes : objets, classes, sous-systèmes, etc. mais
chacune possédait sa propre notation, ses points forts et ses manques, et son orientation
privilégiée vers un domaine d’application. L’idée d’une certaine unification des
méthodes objet est née de ce constant. La communauté informatique, autour de l’OMG
(‘Objet Management Group’) qui standardise les technologies de l’objet, s’est attachée
à la définition d’un langage commun unique, utilisable par toutes les méthodes objets,
dans toutes les phases du cycle de vie et compatible avec les techniques de réalisation
du moment.
MODELISATION OBJET : UML
II.2. UML
Ce langage commun s’appelle UML (‘Unified Modeling Language’). UML est une
notation basée principalement sur les méthodes OOD (de Booch), OMT (de Rumbaugh)
et OOSE (de Jacobson).
En résumé :
• UML est une notation, pas une méthode.
• UML est un langage de modélisation objet.
• UML convient pour toutes les méthodes objets.
• UML est dans le domaine public.
Les cas d’utilisation délimitent le système, ses fonctions (ses arcs), et ses relations avec
son environnement. Ils constituent un moyen de déterminer les besoins du système. Ils
permettent d’impliquer les utilisateurs dès les premiers stades du développement pour
exprimer leur attente et leurs besoins (analyse des besoins). Ils constituent un fil
conducteur pour le projet et la base pour les tests fonctionnels (cf.Figure 2).
Un acteur est une personne ou un système qui interagit avec le système étudié, en
échangeant de l’information (en entrée et en sortie). On trouve les acteurs en observant
les utilisateurs directs du système, les responsables de sa maintenance, ainsi que les
autres systèmes qui interagissent avec lui. Un acteur représente un rôle joué par un
utilisateur qui interagit avec le système. La même personne physique peut jouer le rôle
de plusieurs acteurs. D’autres part, plusieurs personnes peuvent jouer le même rôle, et
donc agir comme un même acteur.
Exprime Comprend
Analyse
Utilisateur
Cas d’utilisation
réalise Vérifie
Programmeur
Figure 2 : les cas d’utilisation, fil conducteur du Tester
projet
MODELISATION OBJET : UML
Notations :
SYSTEME
communication
Acteur humain
Cas d’utilisation
Acteur <<acteur>>
X
Acteur
Acteur système
Cas d’utilisation
Y
Virement
Client distant par internet Client local
<<Etend>>
<<Inclut>> Virement
Identification
Les objets informatiques définissent une représentation simplifiée des entités du monde
réel, qu’il s’agisse d’entités concrètes (avec une « réalité physique ») ou conceptuelles.
Les objets sont des abstractions qui mettent en avant les caractéristiques essentielles et
dissimulent les détails. Une abstraction se définit par rapport à un point de vue (tout
dépend de l’intérêt que l’on porte à l’objet).
Exemples d’objets : une transaction bancaire, un client, un pop-up menu.
Une voiture
Essence = 30 litres Son état
Une voiture
Après un parcours de 100 km Couleur = Rouge
Poids = 979 kg
Puissance = 16 CV
Essence = 25 litres
Une voiture
Essence = 20 litres
Le comportement décrit les actions et les réactions d’un objet (ou ‘compétences’ d’un
objet). Le comportement se matérialise sous la forme d’un ensemble d’opérations (ou
méthodes ou fonctions membres). On distingue souvent les opérations selon leur finalité
de constructeur, accesseur, modificateur, destructeur et itérateur.
Un autre objet
Un message Etat
Comportement
Opérateur 1{…}
Opérateur 2{…}
Un objet
Tout objet possède une identité interne (non modifiable) qui lui est propre et qui le
caractérise. L’identité permet de distinguer tout objet de façon non ambiguë,
indépendamment de son état (de ses attributs). Les langages objets utilisent des
identifiants internes. Les identifiants et clés primaires des bases de données sont inutiles
en objet.
Une application est une société d’objets qui collaborent afin de réaliser les fonctions de
l’application. Le comportement global d’une application repose donc sur la
communication entre les objets qui la composent (échanges de messages).
Les diagrammes de collaboration mettent l’accent sur les relations « spatiales » entre
objet. Les messages peuvent être numérotés pour introduire une dimension temporelle.
MODELISATION OBJET : UML
De nombreuses notations annexes permettent de caractériser les messages. Ils sont
souvent utilisés pour décrire grossièrement la réalisation des cas d’utilisation.
Exemple : un objet A envoie un message X à un objet B, puis l’objet B envoie un
message Y à un objet C, et enfin C s’envoie à lui-même message Z.
A
1:X
B
3:Z
2:Y
Ils mettent l’accent sur les relations temporelles. De nombreuses notations annexes
permettent de préciser la nature des messages (appel de procédure, simple signal,
message répétitif, conditionnel, réflexif, récursif, etc.) et les données véhiculées. Ils
peuvent être utilisés aussi bien pour préciser la réalisation des cas d’utilisation que pour
spécifier de manière très détaillée la dynamique d’un ensemble d’objets (appels de
méthodes).
A B C
M1
M2
M3
M4
M5
M6
M7
M9
M8
temps M10
‘ligne de vie’
Le monde qui nous entoure est constitué de très nombreux objets. Pour comprendre le
monde, l’être humain a tendance à regrouper les éléments qui se ressemblent. Regrouper
des objets suivant des critères de ressemblance s’appelle classer. Les humains ont classé
les animaux, les plantes, les champignons, les atomes, …
La classe est la description abstraite d’un ensemble d’objets. Elle peut être vue comme
la factorisation des éléments communs à un ensemble d’objets.
Nom de classe
Attribut
Règles de visibilité
Opérateurs
+attribut public
Motocyclette #attribut protégé
-attribut privé
Couleur
Cylindrée Téléviseur
+opérateur publique ( )
Vitesse #opérateur protégée
maximale Modèle
-opérateur privée ( )
Démarrer ( ) Allumer
Accélérer ( ) Eteindre
Freiner ( ) Changer le programme( )
Régler le volume
La classe intègre les concepts de type (en tenant que « moule à instances ») et de module
(avec l’idée d’interface + corps).
Opération
(méthode)
publique
Classe
Etat Interface
Opération
(méthode)
privée
Figure 10 : interface et corps d’une classe
MODELISATION OBJET : UML
La hiérarchisation des classes permet de gérer la complexité. Dans un sens, la
généralisation correspond à la factorisation des éléments communs de classes (attributs,
opérations) ce qui favorise la réduction de la complexité et la généricité. Dans l’autre
sens, la spécification permet d’adapter une classe générale à un cas particulier ce qui
favorise la réutilisation et la modification incrémentielle.
Exemple :
Animal
Carnivore Herbivore
Employé
Méthode abstraite
CalculerPaie( )
Mensualité A_la_tâche
Méthodes concrètes
CalculerPaie( ) CalculerPaie( )
A
B1
B2
MODELISATION OBJET : UML
Enfin, il est possible de décrire du parallélisme entre sous-systèmes, ce qui rapproche
les diagrammes d’états des réseaux de Pétri.
Ils permettent de décrire un flot de contrôle entre opérations (calculs). Il s’agit d’un gros
ordinogramme incluant éventuellement du parallélisme.
A un niveau macroscopique, les diagrammes d’activité permettent de décrire des
enchaînements de fonctionnalités. Ils complètent donc bien les cas d’utilisation au
niveau de l’analyse des besoins.
A niveau microscopique, les diagrammes d’activité permettent, par exemple, de décrire
l’algorithme d’une action d’un diagramme d’états.
Les composants sont des codes (sources, exécutables), des scripts, des fichiers, des
tables, etc.
9.2. Les diagrammes de déploiement
Puis les diagrammes de collaboration et de séquence associées aux cas font apparaître
les classes d’objets impliquées dans le système et donc passer à une vue ‘objet’ (cf.
Figure 26).
Mais on peut aussi passer à une vue ‘hiérarchie de fonctions’ à partir des cas
d’utilisation, comme le montre la Figure 27.
MODELISATION OBJET : UML
Diagrammes essentiels par phase :
• Analyse des besoins : cas d’utilisation.
• Analyse du système : diagrammes de classes, de collaboration, d’activités,
(enchaînement des cas).
• Conception : diagrammes de classes, de séquences, d’activités (conception
méthodes), d’états, de composants, de déploiement.
MODELISATION OBJET : UML
CHAPITRE III. NIVEAU CONCEPTUEL : FACE A FACE MERISE
ET UML
III.1. INTRODUCTION
Avant la phase de conception, il est indispensable d’analyser le système existant en
faisant l’inventaire le plus exhaustif possible des échanges d’information entre
intervenants du domaine d’étude et des traitements réalisés. Cette analyse se clôture
par la décision d’informatiser ou non, et le cas du oui, un cahier des charges et
éventuellement un plan directeur de réalisation sont établis.
III.1.1. DEMARCHE DE LA METHODE MERISE
Parmi les informations qui appartiennent au système d’information, certaines doivent
ou peuvent faire l’objet d’un traitement automatisé grâce aux outils informatiques. Pour
assurer la cohérence du système d’information, la méthode Merise propose une
démarche d’informatisation comportant comme étapes :
- le schéma directeur : dont le rôle est de définir, de manière globale, la politique
d’organisation et d’automatisation du système d’information. Pour ce faire, il est
nécessaire de répertorier l’ensemble des applications informatiques existantes à
modifier et à développer. Pour rendre contrôlable et modulable ce développement, il est
nécessaire de découper le système d’information en sous-ensembles homogènes et
relativement indépendants. Ces sous-ensembles sont appelés domaines. Par exemple, on
peut trouver le domaine « Approvisionnement », le domaine « Personnel ». Les résultats
attendus à la fin de cette étape sont une définition précise des domaines, une
planification du développement de chaque domaine et un plan détaillé, année par année,
des applications qui doivent être réalisées. Cette étape concerne les décideurs.
- l’étude préalable par domaine : qui doit aboutir à une présentation générale du futur
système de gestion (modèles des données et des traitements) en indiquant les principales
novations par rapport au système actuel, les moyens matériels à mettre en œuvre, les
bilans coût – avantage. Cette étude est réalisée en 4 phases :
• Une phase de recueil qui a pour objectif d’analyser l’existant afin de cerner les
dysfonctionnements et les obsolescences les plus frappantes du système actuel.
• Une phase de conception qui a pour objectif de formaliser et hiérarchiser les
orientations nouvelles en fonction des critiques formulées sur le système actuel et
d’autre part des politiques et des objectifs de la direction générale. Cela revient à
modéliser le futur système avec une vue pertinente de l'ensemble.
• Une phase d’organisation dont l’objectif est de définir le système futur au niveau
organisationnel : qui fait quoi ?
• Une phase d’appréciation dont le rôle est d’établir les coûts et les délais des
solutions définies ainsi que d’organiser la mise en œuvre de la réalisation.
MODELISATION OBJET : UML
A cet effet un découpage en projets est effectué.
- l’étude détaillée par projet qui consiste d’une part à affiner les solutions conçues lors
de l’étude préalable et d’autre part à rédiger, pour chaque procédure à mettre en œuvre,
un dossier de spécifications détaillé décrivant les supports (maquettes d’états ou d’écran)
ainsi que les algorithmes associés aux règles de gestion… A l’issue de cette étude, il est
possible de définir le cahier des charges utilisateurs qui constitue la base de
l’engagement que prend le concepteur vis à vis des utilisateurs. Le fonctionnement
détaillé du futur système, du point de vue de l’utilisateur, y est entièrement spécifié.
- la réalisation dont l’objectif est l’obtention des programmes fonctionnant sur un jeu
d’essais approuvés par les utilisateurs.
- la mise en œuvre qui se traduit par un changement de responsabilité : l’équipe de
réalisation va en effet transférer la responsabilité du produit à l’utilisateur. Cette étape
intègre en particulier la formation des utilisateurs. Après une période d’exploitation de
quelques mois, la recette définitive de l’application est prononcée.
- la maintenance qui consiste à faire évoluer les applications en fonction des besoins
des utilisateurs, de l’environnement et des progrès technologiques. Le schéma suivant,
extrait de l’ouvrage « La méthode Merise » reprend les étapes décrites ci-dessus.
La démarche de MERISE se fait selon trois cycles suivants : le cycle d’abstraction, avec
les formalismes à 4 niveaux (conceptuel, organisationnel, logique, opérationnel ou
physique) pour modéliser un système d’information ; le cycle de vie qui comporte 3
grandes périodes dont la conception, la réalisation et la maintenance ; et le cycle de
décision qui va de l’étude à la maintenance.
Le cycle d’abstraction de MERISE distingue quatre niveaux de description des systèmes
d’information :
- Niveau conceptuel : « Décrit le QUOI faire et avec QUELLES données ? »
MODELISATION OBJET : UML
Son rôle est d’exprimer les choix fondamentaux de gestion et les objectifs (tenant
naturellement compte des contraintes) ou les finalités de l’entreprise. Il décrit les
invariants de l’organisation et le métier de l’organisation indépendamment des aspects
organisationnels et des aspects techniques de mise en œuvre (on ne se préoccupe pas de
l’organisation du travail ni du matériel utilisé). Il se traduit en termes de modèle
conceptuel des données (MCD) avec entité, association, propriété et de modèle
conceptuel des traitements (MCT). Il produit la représentation abstraite des données et
des traitements.
Du point de vue des traitements, il définit : objectif, résultat, règles de gestion,
enchaînement ; et du point de vue des données : signification, structure, liens. Bref, c’est
la description la plus stable du système.
- Niveau organisationnel : « Décrit QUI fait, QUAND et OÙ ? »
Son rôle est de définir l’organisation de travail qu’il est souhaitable de mettre en place
dans l’entreprise pour atteindre les objectifs souhaités.
Il définit la répartition géographique et fonctionnelle des sites de travail (du point de vue
des données et des traitements), le mode de fonctionnement (temps réel ou temps
différé), la répartition du travail homme/machine (degré et type d’automatisation), les
postes de travail et leur affectation, la volumétrie des données, la sécurité des données,
indépendamment des moyens de traitement et de stockage de données actuels ou futurs.
Université
Les opérations conceptuelles vont être décomposées au niveau organisationnel en une
ou plusieurs opérations organisationnelles. C’est la description des postes de travail de
l’entreprise et des informations qu’elle traite.
Il se traduit en termes de modèle organisationnel des données (MOD) et de modèle
organisationnel des traitements (MOT).
- Niveau logique : « Décrit AVEC QUOI ? QUELS OUTILS ? »
Son rôle est de définir l’organisation qu’il est souhaitable de mettre en place dans
l’entreprise pour atteindre les objectifs souhaités. C’est à cette étape que l’on précise
l’emploi des bases de données ou des fichiers…
Il exprime la forme que doit prendre l’outil informatique pour être adapté à l’utilisateur,
à son poste de travail, cela indépendamment de l’informatique spécifique et des langages
de programmation ou de gestion des données. Il décrit le schéma de la base de données
(relationnel, hiérarchique ou réseau), c'est-à-dire les caractéristiques du mode de gestion
des données, la répartition des données sur les différentes unités de stockage, les
volumes par unité de stockage et l’optimisation des coûts induits par le mode de gestion.
MODELISATION OBJET : UML
Il se traduit en termes de modèle logique des données (MLD) et de modèle logique des
traitements (MLT).
- Niveau physique / opérationnel : « Décrit le COMMENT faire ? »
Son rôle est de définir les solutions techniques (mode de stockage pour les données,
matériels, découpage des programmes pour les traitements) et la prise en compte de leurs
spécificités.
Il répond aux besoins des utilisateurs sur les aspects logiciels et matériels. Il définit
complètement les fichiers, les programmes, l’implantation physique des données et des
traitements, les ressources à utiliser et les modalités de fonctionnement.
C’est la description des moyens mis en œuvre pour gérer les données et effectuer les
traitements. Ils se traduisent en termes de Modèle physique des données et de Modèle
physique ou opérationnel des traitements.
Remarque : Chacun de ces niveaux n’est pas indépendant. Il va de soi, que les choix
techniques (niveau physique) peuvent être imposés dès le début du projet. Les modèles
conceptuels et organisationnels seront alors étudiés en tenant compte de ces contraintes.
Chacun des modèles seront affinés au cours de la vie du projet.
Le schéma suivant résume les modèles que nous allons aborder tout au long des lignes
qui suivent :
Un modèle conceptuel des données est une représentation des besoins en matière de
données pour un système d’information. Il met en évidence les entités, leurs attributs,
les associations et contraintes entre ces entités pour un domaine donné. Cette
représentation, de nature sémantique, ne comporte aucune indication concernant la
structure de mémorisation des données associées aux entités. Le modèle conceptuel est
généralement représenté à l’aide du Formalisme entité-association (EA, appelé aussi
entité-relation ou ER).
Plusieurs formalismes ont été proposés pour réaliser un modèle conceptuel de données,
par exemple le réseau sémantique de J. F. Sowa [SOW 84], mais seul le formalisme
entité-association fait l’objet d’un réel consensus en cette matière et est une composante
essentielle de la plupart des outils de conception de base de données.
a. Modèle entité-association
Dans le monde réel des organisations, le modèle entité-association permet de repérer et
de décrire des entités ou des associations d’entités à l’aide d’un nombre limité des mots
appelés : valeurs.
L'idée fondamentale du modèle EA est de retenir comme concepts de base pour la
représentation, les mêmes concepts génériques que ceux qui guident le processus
d'abstraction conduisant de l'observation d'une réalité à sa description. On suppose que
la perception d'une situation observée se fait naturellement sur la base d'une
identification des objets présents (qu'ils soient réels, une personne, ou abstraits, une
foule), de liens entre ces objets (une personne conduit une voiture) et de propriétés
observables (la taille d'une personne, la couleur d'une voiture, ...).
Le modèle EA propose une description sur la base de ces mêmes trois concepts
renommés de façon à distinguer facilement le discours sur la réalité (fait en termes
d'objets, liens et propriétés) du discours sur la représentation de la réalité (fait en utilisant
les termes du modèle). La correspondance entre les trois concepts génériques et la
terminologie du modèle EA est la suivante :
Objet → entité
Lien → association
Propriété → attribut
MODELISATION OBJET : UML
Entité : est une représentation d'un objet du monde réel (concret ou abstrait), perçu par
le concepteur comme ayant une existence propre, et à propos duquel on veut enregistrer
des informations.
Une entité existe indépendamment du fait qu'elle puisse être liée à d'autres entités de la
base de données.
Exemple : KAFUNDA, NZUZI, Un 4x4, Une BMW, Bas-congo, Equateur
Type d'entités (TE) : est une représentation d'un ensemble d'entités perçues comme
similaires et ayant les mêmes caractéristiques.
Exemple : Personne, Voiture, Province
Association : est une représentation d'un lien entre plusieurs entités, lien où chaque
entité liée joue un rôle déterminé.
Exemple : KAFUNDA a un 4x4, NZUZI a une BMW, …
Si l'association lie deux (ou plus) entités du même type, elle est dite "cyclique" ou
"réflexive" et, dans ce cas, la spécification du rôle de chaque entité est indispensable
pour supprimer les ambiguïtés possibles.
Type d’associations (TA) : c’est la représentation d’un ensemble d’associations ayant
la même sémantique et décrites par les mêmes caractéristiques.
Exemple : Avoir entre KAFUNDA et 4x4, et entre NZUZI et BMW.
Attribut : c’est la représentation d’une propriété associée à un type d’entité ou à un type
d’association, ou participant à la composition d’un autre attribut. L’ensemble des
attributs d’un type d’entités (type d’associations) représente l’ensemble des
informations inhérentes que l’on souhaite conserver sur les entités (associations) du type
d’entités (type d’associations).
Exemple : L’âge d’une personne, la puissance d’une voiture, la superficie d’une
province...
Identifiant : Un identifiant d’un type d’entités ou d’un type d’associations est un attribut
ou un ensemble d’attributs tels qu’il n’existe pas deux occurrences du type d’entités ou
d’associations qui ont la même valeur pour cet attribut ou cet ensemble d’attributs.
- Un attribut monovalué est un attribut qui ne peut prendre qu’une seule valeur par
occurrence du type d’entités ou d’associations ;
- Un attribut multivalué est un attribut qui peut prendre plusieurs valeurs par
occurrence du type d’entités ou d’associations.
- Un attribut obligatoire est un attribut qui doit prendre une valeur au moins par
occurrence du type d’entités ou d’associations ;
MODELISATION OBJET : UML
- Et un attribut facultatif est un attribut qui peut ne pas prendre une valeur par
occurrence.
Exemple : Le numéro d’immatriculation peut servir d’identifiant d’une voiture...
Remarques :
- On souligne les identifiants d’une entité.
- L’identifiant d’une association est un sous-ensemble des identifiants des entités
liées.
- Un type d’entités possède au moins un identifiant (son identifiant), tandis qu’un type
d’associations peut ne pas avoir d’attribut.
Cardinalités : ce sont deux nombres formant un couple qui expriment le minimum et
maximum qu’une occurrence d’un type d’entités associée peut intervenir dans le type
d’associations. (C’est une information supplémentaire exprimant la règle de
participation des entités dans les associations au niveau des occurrences).
Exemple : un client peut commander entre 1 et n produits
Remarques :
- Il est parfois difficile de faire un choix entre entité et association, souvent le contexte
aide à décider.
Ex : Un mariage est-il une association entre deux personnes ou une entité pour lequel
on veut conserver un numéro, une date, un lieu, etc. et que l’on souhaite manipuler
en tant que tel ?
- Lorsqu’on ne parvient pas à trouver d’identifiant pour une entité, il faut se demander
s’il ne s’agit pas en fait d’une association. Si ce n’est pas le cas, un identifiant
arbitraire numérique entier peut faire l’affaire.
- Lorsqu’une association porte les cardinalités 1,1 de part et d’autre, il faut se
demander si cette association et les entités liées ne décrivent pas en fait une seule
entité ?
MODELISATION OBJET : UML
En fonction des cardinalités une association est définie de type :
- 1 :1 si toutes les cardinalités maximales valent 1
- 1 : n s’il existe au moins une cardinalité maximale à n et une autre à 1
- n :m si toutes les cardinalités maximales valent n
d. Quelques concepts étendus (MERISE 3)
Le modèle entité-association retenu par la méthode Merise date des années 70. Or les
concepts de ce modèle peuvent s’avérer insuffisants pour modéliser certaines situations
ou contraintes et l’on est obligé dans ce cas d’ajouter des commentaires pour en faire
mention. Les extensions au modèle individuel remédient aux faiblesses du formalisme
de base.
d.1) Le concept d’héritage
Quand le concepteur s’aperçoit que plusieurs entités, proches mais distinctes, partagent
un ensemble de caractéristiques, il doit mettre en œuvre un processus de création
d’entités génériques (ou entités sur-types) et d’entités spécialisées (ou entités sous-
types) appelé « héritage ». Ce concept qui permet de représenter le lien « est-un » ou «
IS-A » entre deux entités A et B (une occurrence de A est une occurrence de B) est
représenté graphiquement par une flèche double allant de A vers B.
On dit qu’il y a héritage simple quand un sous-type n’a qu’un seul sur-type. Dans ce cas,
toutes les occurrences du sous-type sont en même temps des occurrences de son sur-
type. Cela n’implique pas que toutes les occurrences du sur-type soient des occurrences
de l’un des sous-types.
Le sous-type hérite de toutes les propriétés de son sur-type y compris de son identifiant.
Exemple :
MODELISATION OBJET : UML
Remarque : l’association entre les deux entités doit être stable, c’est-à-dire qu’une fois
un lien établi entre deux occurrences, celui-ci ne doit plus être modifié dans le temps.
La notion d’identifiant relatif permet aussi d’exprimer un lien entre une association et
une ou plusieurs entités. Certains auteurs appellent une telle association pseudo-entité
ou agrégation. Lorsqu'un identifiant est constitué uniquement d'attributs intrinsèques à
une entité, c'est-à-dire ne faisant référence à aucune autre entité, on le nomme identifiant
absolu. Les entités comportant des identifiants absolus peuvent être définies
indépendamment des autres occurrences d'entités, on dit que ces entités sont
indépendantes. Certaines entités ne peuvent toutefois être identifiées que par
l'intermédiaire d'autres entités, c'est la raison pour laquelle on parle d'identification
MODELISATION OBJET : UML
relative. On parlera par exemple de la 4ème porte au 2ème étage du bâtiment B au lieu de
dire la porte n°3451... Ainsi, l’agrégation (appelée aussi identification relative) permet
de spécifier qu'une entité est nécessaire pour en identifier une autre.
- La classe d'entité permettant d'identifier est appelé classe d'entité agrégeante
- La classe d'entité identifiée est appelée classe d'entité agrégée
La représentation de ce type de relation est la suivante :
Cette figure montre l’entité type Client qui décrit la structure commune pour l’ensemble
des entités Client notamment les attributs que chaque entité de ce type possède : No
client, Nom client, Prénom client et Adresse client.
Association
Tout comme une entité appartient à une entité type, une association appartient à une
association type illustrée par un arc entre des entités types dans un modèle conceptuel.
On notera que l’association est identifiée, en UML, à l’aide d’un verbe d’action qu’une
flèche donne une direction à la lecture du modèle, ce qui permet de faire une lecture de
l’association comme s’il s’agissait d’une phrase comportant un sujet, un verbe et un
complément.
La figure suivante présente un modèle où les entités Client et Commande sont liées par
une association portant le nom Effectue. L’association est définie par un arc allant de la
gauche vers la droite. Celle-ci est dite binaire car elle met en cause deux entités. Il existe
aussi des associations sur plus de deux entités, dites de degré supérieur.
Identifiant
Pour marquer un identifiant, dans la notation UML, l’attribut est marqué d’une
contrainte, placée à la suite du nom de l’attribut, qui indique que la valeur de cet attribut
est unique, c’est-à-dire qu’elle ne peut être prise par deux occurrences de la même
entité. En UML, une contrainte est inscrite entre accolades comme le montre la figure
suivante. Ici la contrainte {Unique} marque l’attribut agissant comme identifiant.
MODELISATION OBJET : UML
Dans le modèle ci-haut, le concepteur a été tenu de répondre à deux questions qui ont
conduit à deux réponses différentes :
1. « Un client est-il obligatoirement lié à une commande et à combien au maximum ?
»
2. « Une commande est-elle obligatoirement liée à un client et à combien au maximum
?»
Attributs d’une association
Un attribut qui dépend fonctionnellement de deux entités ou plus doit être considéré
comme un attribut de l’association.
Les attributs d’une association sont représentés en UML à l’aide d’une entité rattachée
à l’association par une ligne pointillée. On pourrait qualifier cette entité d’entité
d’association.
Il peut être nécessaire de définir des entités d’association pour regrouper des attributs
qui ne peuvent appartenir ni à l’une ni à l’autre des entités associées et éviter ainsi de
transgresser la règle de construction. Bien qu’il s’agisse sur le plan sémantique d’une
entité, son identifiant n’y est généralement pas inscrit car il résulte implicitement de la
combinaison des identifiants des entités associées. Une entité d’association est en fait
ce que les concepteurs appellent une entité faible.
Entité faible est un type d’entité dont l’existence dépend de deux ou plusieurs entités.
Son identifiant se définit en fonction des identifiants des entités dont elle dépend. Elle
ne possède pas d’attribut qui puisse servir d’identifiant et qui lui appartienne en propre.
Exemple de Modèle conceptuel final avec une entité d’association : Article commandé
MODELISATION OBJET : UML
Article mène en effet à une seule occurrence d’Article commandé. Celle-ci est dès lors
considérée comme une entité faible et le concepteur a donc fait un bon choix en la
considérant comme une entité d’association.
Associations de degré supérieur
Les associations liant seulement deux entités, sont dites binaires. Celles liant plus de
deux entités sont dites de degré supérieur. Ces dernières sont représentées à l’aide d’un
grand losange où des arcs reliant les entités impliquées dans l’association sont marqués
chacun de multiplicités.
Une occurrence d’une association de degré supérieur, tout comme une occurrence
d’association binaire, est susceptible d’être liée à une occurrence de chacune des entités
associées. Chaque arc doit disposer impérativement d’une multiplicité minimale et
d’une multiplicité maximale.
Déterminer les multiplicités dans une association de degré supérieur est un exercice
intellectuel plus exigeant que celui déployé pour une association binaire.
Dans une association binaire, la multiplicité la plus près de l’entité indique combien
d’occurrences de cette entité peuvent être associées à une occurrence de l’autre entité.
Dans le cas d’une association de degré supérieur n, la multiplicité près d’une entité
indique combien d’occurrences de cette entité peuvent être associées à une combinaison
mettant en cause une occurrence de chacune des n–1 autres entités.
L’exemple suivant tiré du modèle sur la société aérienne où il est stipulé qu’une
réservation comporte des vols et des tarifs. Pour la compréhension du domaine,
précisons qu’une réservation peut comporter plusieurs vols différents, par exemple
Québec-Montréal, Montréal-Paris, Paris-Toronto, Toronto- Québec Sur chaque vol de
la réservation, un tarif est appliqué et celui-ci peut varier d’un vol à l’autre. Un tarif est
identifié par un code qui précise les conditions rattachées au prix du billet. Par exemple
le tarif YHJLI pourrait avoir comme conditions : classe économique, non remboursable,
payé 30 jours avant le départ.
MODELISATION OBJET : UML
Multiplicité du côté Réservation : Combien de réservations peuvent être associées à une
occurrence du couple Tarif-Vol ? Considérons la combinaison Code de tarif = YHJLI
avec No du vol = AC2033, combien de réservations peuvent être faites avec cette
combinaison ? Aucune ou plusieurs, donc multiplicité 0..*. Pourquoi ? Il est possible
qu’aucune réservation n’ait été accordée avec ce code de tarif pour ce vol ou bien
plusieurs peuvent l’avoir été
Multiplicité du côté Tarif : Combien de tarifs peuvent être associés à une occurrence du
couple Réservation-Vol ? Considérons la combinaison No réservation = 4567725653
avec No du vol = AC2033, combien de tarifs peuvent être appliqués à cette combinaison
? Une et une seule, donc multiplicité 1..1. Pourquoi ? On ne retrouve qu’un seul tarif
pour un vol dans une réservation.
Multiplicité du côté Vol : Combien de vols peuvent être associés à une occurrence du
couple Réservation-Tarif ? Considérons la combinaison No réservation = 4567725653
avec Code de tarif = YHJLI, combien de vols peuvent être impliqués dans cette
combinaison ? Un ou plusieurs, donc multiplicité
1..*. Pourquoi ? S’il existe un code de tarif associé à une réservation, il doit y avoir au
moins un vol dans la réservation avec ce tarif ou plusieurs.
Décomposition des associations de degré supérieur
Il existe deux situations principales où une association de degré supérieur peut être
divisée en deux associations de degré moindre. La première concerne une dépendance
fonctionnelle entre les identifiants de deux entités de l’association, la seconde la
présence d’une multiplicité maximale de 1 sur un des arcs de l’association. Ces deux
conditions se rencontrent souvent simultanément dans une association de degré
supérieur.
Dans la figure précédente, bien qu’une multiplicité maximale valant 1 se trouve côté
Tarif, cette entité ne dépend fonctionnellement ni de Réservation, ni de Vol. En effet
Vol ne détermine pas le Tarif car sur le même vol plusieurs tarifs sont applicables.
La Réservation ne détermine pas le tarif car une réservation comporte des vols avec des
tarifs différents. Cependant Tarif dépend fonctionnellement à la fois de Réservation et
Vol. La combinaison Réservation-Vol mène indubitablement à un seul tarif considérant
la multiplicité 1..1 du côté de Tarif.
L’association de degré trois peut être théoriquement ramenée à deux associations
binaires : une première liant les deux entités dont dépend la troisième. Cette nouvelle
association aura une entité d’association artificielle sans attribut explicite qui sera
associée à la troisième entité, soit Tarif. Par ailleurs, si une entité d’association avait été
rattachée à l’association de degré 3 dans le modèle d’origine, la création d’une entité
MODELISATION OBJET : UML
artificielle n’aurait point été requise. Il aurait suffi d’associer l’entité Tarif à cette entité
d’association et de réduire à deux le degré de l’association initiale.
MODELISATION OBJET : UML
CHAPITRE IV. LE NIVEAU LOGIQUE : DU RELATIONNEL A
L’OBJET
IV.1. ITRODUCTION
L'objectif du niveau logique est la définition des moyens informatiques à disposition des
postes de travail (utilisateurs) afin d'effectuer les opérations organisées.
Chaque outil informatique "transactionnel" se décrit sous la forme d'enchaînement
d'états (MLT) affichant des informations et prêt à en saisir d'autres.
La spécification externe comprend la description des états et des informations affichées
et saisies approuvée par l'utilisateur final. La spécification interne comprend la
description des actions de création des informations du MLD (enregistrements,
informations et chemins d'accès).
IV.2. LE MODELE LOGIQUE DES DONNEES (MLD)
Le modèle logique de données (MLD) décrit les structures de données indépendamment
de la gestion physique des bases de données.
Un premier MLD se déduit d'un MOD (Modèle Organisationnel de Données) ou d’un
MCD (Modèle Conceptuel de Données). Il est ensuite optimisé ou modifié suivant le
choix de l'utilisateur pour accélérer certains traitements effectués par les outils
informatiques.
Le MCD ou MOD étant établi, on peut le traduire en différents systèmes logiques,
comme les systèmes par fichiers ou les bases de données (Avec les variantes basées sur
les modèles des données). Nous retenons ici l’approche fondée sur le modèle relationnel.
Un modèle relationnel de données est un modèle logique de données spécifiant un
schéma pour une base de données relationnelle soit : les tables, les champs de chaque
table et leurs propriétés, la clé primaire des tables, les clés étrangères assurant les
liaisons entre les tables et les contraintes d’intégrité portant sur ces liaisons (Relational
Data model). C’est donc un ensemble de schémas relationnels de la forme :
Relation (clé1, ... clén, attribut1, ... attributm)
Par convention, on souligne les clés primaires et on fait précéder les clés étrangères d’un
dièse # dans la description des éléments de la relation.
En somme un modèle relationnel de données n’est qu’un cas particulier de modèle
logique de données. Un modèle réseau de données ou un modèle hiérarchique de
données font aussi partie des modèles de données de niveau logique.
a. Passage du MCD (ou MOD) au MLD relationnel
Considérons le modèle conceptuel des données suivant :
MODELISATION OBJET : UML
Règle 1 : Chaque entité avec au moins un attribut non identifiant donne lieu à un schéma
relationnel (table), les identifiants deviennent les clés.
Patient (SECU, NomPatient, PrenomPatient, AdressePatient)
Médecin (NuméroMédecin, NomMédecin, PrénomMédecin)
Mutuelle (CodeMutelle, NomMutuelle, AdresseMutuelle)
Affection (CodeAffection, LibelléAffection)
Règle 2 : Les associations binaires de type 1: n donnent lieu à l’ajout de l’identifiant
côté 1 vers le côté n, en tant qu’attribut non-clé (ou étrangère). Cette clé étrangère ne
peut recevoir la valeur vide si la cardinalité est 1, 1.
Patient (SECU, NomPatient, PrenomPatient, AdressePatient, #CodeMutuelle)
Dans cas où l’association avait des attributs, ceux-ci glissent vers le schéma relationnel
(table) côté 1.
Règle 3 : Les associations binaires de type n:m ou les associations non binaires donnent
lieu à la création de nouveaux schémas relationnels supplémentaires (tables de jointure).
– Les identifiants des entités liées deviennent des clés.
– Les propriétés de l’association deviennent des attributs simples.
Hospitalisation (NuméroMedecin, SECU, CodeAffection, DateEntrée, DateSortie)
Règle 4 : Les associations binaires de type 1:1 sont traduites comme des associations
binaires de type 1: n, sauf que la clé se voit imposer une contrainte d’unicité (sans
doublon) en plus d’une éventuelle contrainte de non vacuité.
Si d’un côté, on a la cardinalité 0, 1. C’est dans la table côté opposé que devra aller la
clé étrangère. Si les deux côtés sont de cardinalité 0, 1 alors la clé étrangère peut être
placée indifféremment dans l’une de deux tables.
Une alternative consiste à voir une association binaire de type 1 : 1 comme une
association bina ire de type n : m particulière, il suffit pour cela d’ajouter une
MODELISATION OBJET : UML
contrainte d’unicité sur chacune des clés étrangères de la table de jointure
supplémentaire.
b. Les concepts étendus
En ce qui concerne les concepts étendus, mis à part la notion d’identifiant relatif, leur
implantation en relationnel n’est pas directement réalisable, car il est impossible de
représenter les contraintes ensemblistes. Il faudra donc mettre en place, au niveau des
traitements, des dispositifs pour garantir toutes les contraintes qu’ils expriment. La suite
de ce paragraphe présente trois possibilités de traduction du concept d’héritage rappelé
par le schéma ci-dessous :
Exemple d’occurrences :
Internes
1 - Annick Lassus (14/06/1999)
2 – Armelle Mundubeltz (20/09/2000)
Extérieur
3 – Bernadette Chaulet (CAP GEMINI)
Première possibilité : PERSONNEL (Numéro, Nom, Prénom, SSII, DateEmbauche)
PERSONNEL
Seconde possibilité :
EXTERIEUR (Numéro, Nom, Prénom, SSII)
INTERNE (Numéro, Nom, Prénom, DateEmbauche)
MODELISATION OBJET : UML
Troisième possibilité : PERSONNEL (Numéro, Nom, Prénom)
EXTERIEUR (#Numéro, SSII)
INTERNE (#Numéro, DateEmbauche)
Dans un modèle relationnel les associations entre les tables n’ont pas à être nommées.
Elles indiquent simplement qu’il existe un lien entre les deux tables et que la clé primaire
d’une table marquée {PK} (pour Primary Key) est reproduite dans l’autre table sous
forme de clé étrangère. Une clé étrangère est marquée {FK} (pour Foreign Key).
La présence d’un attribut avec la mention {PK} dans une table reflète une contrainte
d’intégrité appelée contrainte d’intégrité d’entité.
MODELISATION OBJET : UML
Un corollaire de cette contrainte d’intégrité est que la mention {PK} devrait toujours
être suivie de la contrainte {Non nul} dans un modèle relationnel. Encore une fois,
puisque {PK} sous-entend {Non nul}, on inscrit rarement les deux mentions dans un
modèle relationnel de manière à alléger le diagramme.
Toutes les tables devraient posséder une clé primaire et les associations entre les tables
assurées par ces clés seront de deux types :
1. les multiplicités maximales sont 1 d’une part et 1 de l’autre, on parle ici d’une
association un à un ;
2. les multiplicités maximales sont 1 d’une part et * de l’autre, on parle d’une association
un à plusieurs.
Contrairement au modèle conceptuel, le modèle relationnel ne supporte que les
associations binaires un à un et un à plusieurs donc aucune association plusieurs à
plusieurs n’est acceptable dans ce dernier type de modèle. Il s’agit d’une erreur grave
sur le plan sémantique d’avoir des multiplicités maximales * de part et d’autre d’une
association dans un modèle relationnel. La raison est simple : comme un attribut clé
étrangère ne peut avoir qu’une seule valeur dans une ligne donnée de la table, elle ne
peut assurer la liaison de cette ligne qu’à une seule autre ligne de la deuxième table. La
multiplicité maximale est donc systématiquement à 1 du côté de la table possédant la clé
primaire qui a été copiée dans l’autre table avec la mention {FK} (clé étrangère).
Un modèle relationnel complet devrait notamment faire état du domaine de chaque
attribut. Cela est habituellement réalisé en inscrivant à la suite des attributs et des
mentions {PK} et {FK} le cas échéant, le type de données de l’attribut et les contraintes
d’intégrité de l’attribut. Par exemple, si la clé primaire porte sur un seul attribut, il s’agit
donc d’une clé simple. Cet attribut devrait avoir les contraintes d’intégrité {Unique} et
{Non nul}. Rappelons qu’une clé primaire est par définition obligatoire et non
redondante.
Règles de dérivation des relations à partir d’un MCD
- Le cas des entités
Pour chaque entité du modèle conceptuel, une table est créée dans le modèle relationnel,
sauf dans le cas d’une association d’héritage où les attributs des entités en cause peuvent
être combinés pour former une table. Les attributs de l’entité deviennent les attributs de
la table et, dans le cas d’une entité forte, son identifiant, simple ou composé, devient la
clé primaire de la table. Que la clé primaire soit simple ou composée, chaque attribut
formant la clé porte la mention {PK}.
- Dérivation à partir d’une entité d’association
MODELISATION OBJET : UML
En ce qui concerne une entité d’association, la table correspondante aura comme clé
primaire, une clé obligatoirement composée des attributs de tous les identifiants des
entités participant à l’association et chaque attribut de la clé composée portera la
mention {PK, FK}.
La mention {Cascade} peut accompagner les clés étrangères présentes dans la table
dérivée de l’entité d’association pour faire état d’une contrainte d’intégrité fort
importante appelée contrainte d’intégrité référentielle (Referential integrity).
La mention {Cascade} comporte des restrictions supplémentaires :
1 si une ligne de la table mère est supprimée, toutes les lignes associées à celle-ci via la
clé étrangère dans la table fille sont aussi supprimées (contrainte de suppression en
cascade) ;
2 si la valeur de la clé primaire d’une ligne est modifiée, les valeurs des clés étrangères
des lignes associées dans la table fille sont modifiées pour continuer d’assurer la liaison
(contrainte de mise à jour en cascade).
Ces contraintes sont incontournables dans le cas d’une entité faible, car son existence
dépend de l’existence d’une entité forte. Logiquement toute occurrence d’entité forte
qui est détruite entraîne avec elle la disparition des entités faibles qui en dépendent.
Les associations binaires
- Association binaire un à un
Dans un tel cas, la dérivation de la clé étrangère repose sur l’analyse des multiplicités
minimales de l’association. Cela consiste à établir si la participation des occurrences à
l’association est obligatoire d’un côté ou de l’autre ou des deux à la fois.
Si la participation est obligatoire des deux côtés de l’association (multiplicités
minimales 1 de part et d’autre), l’une ou l’autre des tables dérivées des entités peut agir
comme table mère. Cependant, si une seule des deux entités est associée à une troisième,
on choisira comme table fille celle dérivée de l’entité qui comporte une deuxième
association. Si toutes deux sont associées à une autre, on choisit comme table fille celle
qui possède une clé primaire composée.
Considérons la figure suivante où une association binaire montre des multiplicités 1..1
de part et d’autre des entités concernées.
MODELISATION OBJET : UML
Pour ce modèle, nous faisons l’hypothèse que l’entité Paiement est associée par ailleurs
à l’entité Client (non illustrée). La table fille sera donc Paiement, la table mère sera
Reçu, et la clé primaire de la table mère, No reçu, est reproduite dans la table fille à titre
de clé étrangère (cfr. figure suivante). Les multiplicités sont reprises telles quelles du
modèle conceptuel.
Sans cette hypothèse, la table fille aurait tout aussi bien pu être Reçu.
N. B. : Il y a un doute sur le fait que la clé primaire de la table fille dérivée d’une
association binaire plusieurs à plusieurs exclue tout doublon
MODELISATION OBJET : UML
Association réflexive
La dérivation d’une association réflexive reprend les règles évoquées plus haut en les
spécialisant pour tenir compte du fait qu’une entité est associée à elle-même.
- Cas 1 : L’association réflexive comporte une entité d’association
En vertu des règles données plus tôt, l’entité d’association donne lieu à une table fille
associée à la table mère dérivée de la seule entité en cause. La table dérivée de l’entité
d’association comporte les attributs de cette dernière avec comme clé primaire deux
exemplaires de la clé primaire de la table mère, les exemplaires portent un nom différent
pour éviter toute redondance. Chaque exemplaire est aussi une clé étrangère avec la
mention {Cascade} pour assurer l’intégrité référentielle.
Ce modèle permet de faire état de tous les mariages qu’une personne peut avoir
contractés. On fait l’hypothèse qu’une personne ne peut épouser la même personne
qu’une seule fois. Chaque mariage peut donc être identifié de manière unique par la
combinaison des matricules des deux personnes qui s’épousent à la date donnée.
La table fille Mariage est dérivée de l’entité d’association. Elle comporte une clé
primaire composée des deux numéros matricules des personnes contractant un mariage.
Chaque matricule porte un nom d’attribut différent. À chaque matricule correspond une
association reprenant du côté de la table fille les multiplicités du modèle conceptuel. Le
matricule est aussi une clé étrangère pour laquelle l’intégrité référentielle doit être
assurée en ajout, en suppression et en mise à jour.
Le modèle relationnel qui en dérive, comporte cinq tables, dont une table dérivée de
l’entité d’association qui possède une clé primaire composée des clés primaires des
quatre autres. Cette table, Période de cours, est une table fille. Les clés primaires des
quatre tables mères qui sont copiées dans la table fille sont toutes des attributs considérés
comme clés étrangères sur lesquelles la contrainte d’intégrité référentielle s’applique.
Les attributs propres à l’entité d’association, Heure de début et Heure de fin,
apparaissent à leur suite.
Les multiplicités placées du côté de la table fille sont toutes 0..*. Les multiplicités du
côté des tables mères sont systématiquement 1..1. Puisque toutes les associations
comportent des multiplicités maximales plusieurs du côté de la table fille, sa clé primaire
ne peut être simplifiée.
MODELISATION OBJET : UML
Dans ce modèle relationnel dérivé, on notera que la clé primaire de la table mère Tarif,
Code de tarif, est tout de même copiée dans la table fille Comporte. Bien que clé
étrangère, elle ne constitue cependant pas un élément de la clé primaire composée de
cette dernière car la multiplicité maximale de son côté est 1. De plus la mention
{Cascade} n’est pas présente, une conséquence de la simplification.
Puisque qu’une multiplicité maximale de 1 est présente sur un des arcs de l’association,
il n’y a pas lieu de créer une clé primaire artificielle. La combinaison des attributs No
réservation et No vol assure l’unicité d’accès à une ligne de la table.
IV.4. OPTIMISATION DU MODELE RELATIONNEL
Le modèle relationnel peut être optimisé de manière à produire un modèle physique
techniquement performant. Deux mesures affectant le modèle relationnel peuvent être
considérées de façon à améliorer la performance du modèle physique qui en sera dérivé.
1. Le nombre de tables peut être réduit en fusionnant certaines tables pour en arriver à
éviter des opérations de jointure inutiles ;
2. Une clé primaire composée peut être remplacée par une clé primaire simple pour
réduire la complexité des index et rendre plus performantes les opérations de
jointure.
Deux types d’associations binaires présentes dans un modèle relationnel peuvent
entraîner la fusion des deux tables concernées. Les associations un à un dont les
multiplicités minimales sont 1 et 1. Les associations un à un dont les multiplicités
minimales sont 0 et 1.
MODELISATION OBJET : UML
IV.5. OUTILS DU MARCHE : DE LA THEORIE A LA PRATIQUE AVEC
ETUDES DE CAS.
5.1. BREVE PRESENTATION DE L’OUTIL DE MODELISATION CHOISI
La licence d’utilisation de WinDesign que vous avez acquise correspond à tout ou partie
de ces modules.
Lorsque vous ne disposez pas d’un module, celui-ci est accessible en mode Evaluation.
Ceci est visible sur le bouton portant le nom du module, qui s’affiche alors avec la
mention « Démo ». Vous pouvez utiliser un module en version d’évaluation, mais vous
ne disposez pas alors des fonctions d’enregistrement.
Cliquez sur le bouton correspondant au module gérant le type de modèle que vous
souhaitez créer.
Questions
a) Décrivez ce que représente ce diagramme ?
b) Etant donné ce modèle, est-il possible de savoir dans quelle usine a été fabriqué un
moteur et qui est responsable de sa production ?
c) La responsabilité d'un modèle est-elle toujours assumée par un employé travaillant
dans l'usine dans laquelle ce modèle est produit ?
d) Pourquoi avoir fait le choix d'une classe Type pour codifier les défauts, plutôt qu'un
attribut de type énuméré directement dans la classe Défaut ?
e) Pourquoi l'attribut kilométrage apparait-il à la fois dans les classes Défaut et Moteur
et pourquoi avoir fait apparaître la méthode SetKilométrage ?
MODELISATION OBJET : UML
f) Ce diagramme permet-il de répondre à la question : Quel est le nombre moyen de
défauts rencontrés pour un moteur dont le modèle a été mis en service avant 2000 ?
Quelles sont les classes et attributs utiles ?
g) Peut-on également répondre à la question : Quel est le kilométrage moyen pour
lequel un moteur est concerné par au moins deux défauts de gravité supérieure à 5
?
7) La structure de données suivante est extraite d’un document comportant des données
sur le dépôt d’une candidature à un poste dans une organisation. Comme on peut le
noter facilement à la consultation de la structure de données, un candidat peut
pratiquer plusieurs langues, avoir de multiples centres d’intérêt, posséder plusieurs
diplômes, avoir eu plusieurs employeurs chez qui il a pu exercer plusieurs fonctions.
Le candidat peut avoir été réembauché plusieurs fois chez un même employeur. Le
candidat peut avoir exercé la même fonction chez plusieurs employeurs et avoir
exercé la même fonction plus d’une fois chez un même employeur. Il ne peut
cependant pas avoir obtenu le même diplôme plus d’une fois.
Il s’agit d’élaborer un diagramme des classes (formalisme UML) qui reflète ces
exigences. Il peut comporter une association de degré 3 qui peut être réduite à deux
associations binaires.
8) Le service de gestion du personnel d'une entreprise désire s'équiper d'un outil lui
permettant de gérer informatiquement ses employés, leurs salaires et leurs congés.
MODELISATION OBJET : UML
Les spécifications suivantes ont pu être mises en exergue par une analyse des besoins
réalisée auprès des utilisateurs du service du personnel.
Généralités :
♦ Tout employé est identifié par un nom, un prénom et une date de naissance.
♦ Tout employé remplit une fonction et appartient à un service.
♦ Pour chaque employé on gère la date d'embauche et la quotité (c'est à dire le
pourcentage de temps travaillé par rapport au temps plein, en cas de travail à temps
partiel)
Gestion des salaires :
♦ Pour chaque employé on gère l'historique de ses salaires dans l'entreprise, chaque
salaire étant affecté à une période de temps.
♦ Un salaire est composé d'un salaire brut, de charges patronales et de charges
salariales.
♦ On cherchera à partir de ces données à obtenir également le salaire chargé (brut +
charges patronales), et le salaire net (brut - charges salariales), et ce en particulier
pour le salaire en cours (celui que touche actuellement le salarié).
Gestion des congés :
♦ Pour chaque employé, on mémorise chaque congé pris (posant qu'un congé
concerne toujours une ou plusieurs journées entières)
♦ Chaque employé a le droit aux jours de congés suivants :
- 25 jours (pour une quotité de 1) et 25 x quotité sinon
- Chaque fonction ouvre les droits à un certain nombre de jours de RTT
- Chaque service ouvre les droits à un certain nombre de jours de RTT
- Chaque tranche de 5 ans passés dans l'entreprise donne droit à 1 jour supplémentaire
- Les employés de plus de 40 ans ont un jour supplémentaire, et ceux de plus de 50
ans deux.
♦ Pour chaque employé on cherchera à connaître le nombre total de jours de congés
autorisés, le nombre de jours pris et le nombre de jours restants sur l'année en cours.
Question1
Réaliser le diagramme de classes permettant de modéliser ce problème et le modèle
relationnel correspondant.
9) Vous avez en charge la réalisation d'un modèle de base de données pour la gestion
d'un parc informatique.
MODELISATION OBJET : UML
L'analyse des besoins révèlent les informations suivantes : tout matériel informatique
est identifié de façon unique par un numéro de série et est décrit par une désignation.
Il existe trois types de matériel informatique : les PC, les serveurs et les imprimantes.
Pour les PC les informations que l'on veut gérer sont la taille de la mémoire vive et
la cadence du micro-processeur, pour les serveurs on veut gérer leur volume de disque
dur et pour les imprimantes leur résolution maximale d'impression. On veut
également gérer les connections réseau sachant que tout PC peut être relié à un ou
plusieurs serveur et que chaque serveur sert bien entendu plusieurs PC ; et qu'un PC
peut être relié à une imprimante, qui est également utilisée par plusieurs PC. Quand
un PC est relié à un serveur, on veut gérer le quota de disque dont il dispose sur ce
serveur.
Questions
a) Réaliser le modèle conceptuel UML de ce problème.
b) Réalisez le passage au modèle relationnel.
10) Le GAB – cas d’utilisation
Modélisation d’un GAB (Guichet Automatique de Banque). Les principales fonctions
sont les suivantes :
-distribution d’argent à tout porteur d’une carte de la banque (autorisation d’un certain
montant par le système d’information de la banque) ou d’une carte VISA (autorisation
à distance par le système d’autorisation VISA),
-consultation du solde, dépôt en numéraire et de chèques pour les possesseurs d’une
carte de la banque.
Toutes les transactions sont sécurisées (code personnel vérifié avec le code enregistré
sur la puce de la carte ; la carte est avalée après trois échecs).
Il faut parfois recharger le GAB et retirer des choses …
Identifier les acteurs et les cas. Structurer les cas.
11) Le GAB – diagramme d’activités et diagramme de séquence
a) Modéliser le retrait d’argent avec une carte VISA avec un diagramme d’activités.
La carte peut être invalide. Si elle est valide, le client doit taper son code. La carte
est avalée après trois essaies infructueux. Le SA VISA autorise un certain
montant ou refuse tout retrait. Une carte non récupérée est avalée. Les billets non
récupérés par le client sont repris. Un ticket est toujours imprimé pendant que les
billets sont proposés.
16) Cette étude de cas concerne un système simplifié de réservation de vols pour une
agence de voyages. Les interviews des experts métier auxquelles on a procédé ont
permis de résumer leur connaissance du domaine sous la forme des phrases suivantes
:
1. Des compagnies aériennes proposent différents vols.
2. Un vol est ouvert à la réservation et refermé sur ordre de la compagnie.
3. Un client peut réserver un ou plusieurs vols, pour des passagers différents.
4. Une réservation concerne un seul vol et un seul passager.
5. Une réservation peut être annulée ou confirmée.
6. Un vol a un aéroport de départ et un aéroport d’arrivée.
7. Un vol a un jour et une heure de départ, et un jour et une heure d’arrivée.
8. Un vol peut comporter des escales dans des aéroports.
9. Une escale a une heure d’arrivée et une heure de départ.
10. Chaque aéroport dessert une ou plusieurs villes.
Déterminer le diagramme des classes modélisant le problème
17) Cet exercice concerne un système simplifié de caisse enregistreuse de
supermarché. Le déroulement normal d’utilisation de la caisse est le suivant :
URL utiles
1. EnterPrise Architect http://www.sparxsystems.com.au/products/ea.html
2. MagicDraw UML http://www.magicdraw.com/
3. MEGA Designer http://www.mega.com/en/product/mega_designer/
4. ModelSphere http://www.silverrun.com/modelsphere.html
5. MyEclipse http://myeclipseide.com
6. Objecteering http://www.objecteering.com/
7. Poseidon http://gentleware.com/index.php?id=30
8. PowerAMC
http://www.sybase.com/products/developmentintegration/poweramc
9. Rational Rose http://www-
306.ibm.com/software/awdtools/developer/datamodeler/
10.Together http://www.borland.com
11.Visio http://www.microsoft.com/france/office/visio
12.Visual Paradigm http://www.visual-
paradigm.com/product/vpuml/productinfovpumlse.jsp
13.Visual UML http://www.visualuml.com/Products.htm
14. Win’Design http://www.win-design.com/fr/
MODELISATION OBJET : UML
Table des Matières