37
Introduction à la modélisation conceptuelle de données avec UML Stéphane Crozat stph.scenari-community.org/bdd mod1.pdf 12 janvier 2018 Paternité - Partage des Conditions Initiales à l'Identique : http://creativecommons.org /licenses/by-sa/4.0/fr/

Introduction à la modélisation conceptuelle de données ... · 2.5. Repérage des clés ... et au sens où c'est une simplification de la ... UML* est un langage de représentation

  • Upload
    votram

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

  • Introduction la modlisation

    conceptuelle de donnes avec UML

    Stphane Crozat

    stph.scenari-community.org/bddmod1.pdf

    12 janvier 2018Paternit - Partage des Conditions Initiales l'Identique : http://creativecommons.org/licenses/by-sa/4.0/fr/

  • Table des matires

    I - Cours 3

    1. Notion de modle ............................................................................................................................................ 3

    1.1. Exercice : Centre mdical ............................................................................................................................................................. 41.2. Qu'est ce qu'un modle? .............................................................................................................................................................. 41.3. Qu'est ce qu'un modleen informatique ? .................................................................................................................................... 41.4. Qu'est ce qu'un bon modle ? ....................................................................................................................................................... 5

    2. Introduction au diagramme de classes UML: classes et associations ............................................................. 6

    2.1. Exercice: Lab I ............................................................................................................................................................................ 62.2. Prsentation d'UML ..................................................................................................................................................................... 72.3. Classes ......................................................................................................................................................................................... 82.4. Attributs ....................................................................................................................................................................................... 92.5. Reprage des cls ....................................................................................................................................................................... 102.6. Mthodes ................................................................................................................................................................................... 112.7. Associations ............................................................................................................................................................................... 112.8. Cardinalit ................................................................................................................................................................................. 122.9. Classe d'association ................................................................................................................................................................... 14

    II - Exercices 16

    1. Exercice : Lire l'UML ................................................................................................................................... 17

    1.1. Exercice : Tennis ........................................................................................................................................................................ 171.2. Exercice : Journal ...................................................................................................................................................................... 171.3. Exercice : Logistique .................................................................................................................................................................. 18

    2. Exercice: Gestion d'une cooprative viticole ............................................................................................... 18

    3. Exercice: Cours et intervenants .................................................................................................................... 19

    4. Exercice: Gestion mthodique du personnel ................................................................................................ 20

    III - Devoirs 21

    1. Exercice: Attrapez les tous! ........................................................................................................................ 21

    Contenus annexes 22

    Questions de synthse 27

    Solutions des exercices 28

    Glossaire 35

    Abrviations 36

    Bibliographie 37

  • Cours

    3

    La est l'tape du processus de conception de . Elle consiste abstraire modlisation conceptuelle fondatrice BD*

    le problme rel pos pour en faire une reformulation qui trouvera une solution dans le cadre technologique

    d'un .SGBD*

    Si le modle dominant en conception de bases de donnes a longtemps t le modle , le modle E-A* UML*

    se gnralise de plus en plus. Nous proposons ici une introduction au diagramme de classes travers la reprsentation de classes et d'associations simples (il existe d'autres diagrammes UML, par exemple le diagramme de cas, et d'autres primitives de reprsentation dans le diagramme de classe, par exemple l'hritage).

    1. Notion de modleObjectifs

    Savoir ce qu'est un modle

    Savoir ce qu'est le langage UML

    CoursI

  • Qu'est ce qu'un modle?

    4

    1.1. Exercice : Centre mdical

    1.2. Qu'est ce qu'un modle?

    Modeling, in the broadest sense, is the cost-effective use of something in place of something else for some cognitive purpose. It allows us to use something that is simpler, safer or cheaper than reality instead of reality for some purpose. A model represents reality for the given purpose; the model is an abstraction of reality in the sense

    that it cannot represent all aspects of reality. ( , cit par )Rothenberg, 1989* Arribe, 2014*

    Systme physique, mathmatique ou logique reprsentant les structures essentielles d'une ralit et capable son niveau d'en expliquer ou d'en reproduire dynamiquement le fonctionnement. (TLFi)

    Un modle est une reprsentation simplifie de la ralit en vue de raliser quelque chose.

    1.3. Qu'est ce qu'un modleen informatique ?

    Un modle informatique est une reprsentation simplifie de la ralit en vue de raliser un traitement avec un ordinateur.

    [5 min]

    Soit le modle conceptuel suivant reprsentant des visites dans un centre mdical. Quelles sont les assertions vraies selon ce schma ?

    Un patient peut effectuer plusieurs visites.

    Tous les patients ont effectu au moins une consultation.

    Un mdecin peut recevoir plusieurs patients pendant la mme consultation.

    Un mdecin peut prescrire plusieurs mdicaments lors d'une mme consultation.

    Deux mdecins diffrents peuvent prescrire le mme mdicament.

    [ ]solution n1 *[ ] p.28

    Dfinition: Modle

    Fondamental : Modle

    Dfinition: Modle informatique

  • Qu'est ce qu'un bon modle ?

    5

    - - - - - - -

    1.

    Tout numrisation est une reprsentation de la ralit sous la forme d'une modlisation numrique. Cette modlisation procde d'une abstraction au sens o c'est une sparation d'avec le rel, au sens o c'est une construction destine la manipulation (algorithmique en l'occurrence) et au sens o c'est une simplification de la ralit.

    http://aswemay.fr/co/tropism-pres.html

    1.4. Qu'est ce qu'un bon modle ?

    Un modle est une abstraction, une simplification de la ralit, ce n'est pas la ralit, il n'est jamais compltement fidle par construction.

    Le seul modle compltement fidle la ralit est la ralit elle-mme, et ce n'est donc pas un modle.

    Une carte est un modle d'un territoire. Elle est une reprsentation simplifie destin un usage particulier:

    randonner pied, en vlo;se diriger en voiture sur des grands axes, sur des axes secondaires;voler en avion de tourisme, en avion de ligne;naviguer sur fleuve, sur mer;tudier les frontires d'une rgion, d'un pays, de la terre;tudier la dmographie, l'conomie...;...

    partir de cet exemple on notera que:

    Un modle est orient par un usage.

    Complment : Numrisation et abstraction: Toute information numrique a t code selon un modle donn

    Attention

    Exemple : La carte et le territoire

    Fondamental

    http://aswemay.fr/co/tropism-pres.html

  • Introduction au diagramme de classes UML: classes et associations

    6

    -

    -

    1.

    2.

    3.

    Chacune de ces cartes est trs diffrente selon ce que l'on veut faire.Un modle ne cherche pas tre proche de la ralit.Chacune de ces cartes est trs diffrente de la ralit qu'elle reprsente.Un modle adresse un niveau d'information qui existe mais qui n'est pas accessible dans la ralit.Chacune de ces cartes permet quelque chose que ne permet pas l'accs direct la ralit.

    La mthode de raisonnement connue sous le nom de rasoir d'Ockham (du nom du philosophe ponyme) consiste prfrer les solutions les plus simples aux plus complexes, lorsqu'elles semblent permettre galement de rsoudre un problme donn; entre deux thories quivalentes, toujours prfrer la plus simple.

    Ce principe s'applique trs bien la modlisation: tant donn un objectif et plusieurs modles possibles, il ne faut pas choisir a priori celui qui reprsente le plus de choses, mais prfrer le plus simple ds qu'il couvre le besoin.

    C'est un principe d'conomie (il cote moins cher produire) et d'efficacit (car les lments inutiles du modle plus fourni nuiront l'efficacit de la tche).

    Ainsi, pour naviguer en voiture, il est plus simple de ne avoir sur la carte les chemins de randonnes qui ne passont pas praticables en voiture.

    2. Introduction au diagramme de classes UML: classes et associationsObjectifs

    Savoir faire un modle conceptuel.

    Savoir interprter un modle conceptuel.

    2.1. Exercice: Lab IDescription du problme

    [15 min]

    Un laboratoire souhaite grer les mdicaments qu'il conoit.

    Un mdicament est dcrit par un nom, qui permet de l'identifier. En effet il n'existe pas deux mdicaments avec le mme nom. Un mdicament comporte une description courte en franais, ainsi qu'une description longue en latin. On gre aussi le conditionnement du mdicament, c'est dire le nombre de pilules par bote (qui est un nombre entier). chaque mdicament on associe une liste de contre-indications, gnralement plusieurs, parfois aucune. Une contre-indication comporte un code unique qui lidentifie, ainsi qu'une description. Une contre-indication est toujours associe un et un seul mdicament.

    Exemple de donnes

    Afin de matrialiser notre base de donnes, nous obtenons les descriptions suivantes:

    Mthode : Le rasoir d'Ockham: Entre deux modles donns le meilleur modle est-il toujours le plus fourni ?

    Exemple

  • Prsentation d'UML

    7

    -

    -

    - -

    - Le a pour description courte et pour description longueChourix Mdicament contre la chute des choux Vivamus fermentum semper porta. Nunc diam velit, adipiscing ut tristique vitae, sagittis vel odio.

    . Il est conditionn en bote de 13.Maecenas convallis ullamcorper ultricies. Curabitur ornare.Ses contre-indications sont:

    CI1: Ne jamais prendre aprs minuit.CI2: Ne jamais mettre en contact avec de l'eau.

    Le a pour description courte et pour Tropas Mdicament contre les dysfonctionnements intellectuels description longue Suspendisse lectus leo, consectetur in tempor sit amet, placerat quis neque. Etiam

    . Il est conditionn en bote de 42.luctus porttitor lorem, sed suscipit est rutrum non.Ses contre-indications sont:

    CI3: Garder l'abri de la lumire du soleil

    Question 1

    Question 2

    2.2. Prsentation d'UML

    est un langage de reprsentation destin en particulier la modlisation objet. UML est devenu une UML*

    norme en 1997.OMG*

    UML propose un formalisme qui impose de "penser objet" et permet de rester indpendant d'un langage de programmation donn. Pour ce faire, UML normalise les concepts de l'objet (numration et dfinition exhaustive des concepts) ainsi que leur notation graphique. Il peut donc tre utilis comme un moyen de communication entre les tapes de spcification conceptuelle et les tapes de spcifications techniques.

    Le diagramme de classes est un sous ensemble d'UML qui s'attache la description statique d'un modle de donnes reprsentes par des classes d'objets.

    Dans le domaine des bases de donnes, UML peut tre utilis la place du modle pour modliser le E-A*

    domaine. De la mme faon, un schma conceptuel UML peut alors tre traduit en schma logique (relationnel ou relationnel-objet typiquement).

    Raliser le modle conceptuel de donnes en UML du problme.[ ]solution n2 *[ ] p.28

    tendre le modle conceptuel UML afin d'ajouter la gestion des composants. Un composant est identifi par un code unique et possde un intitul. Tout mdicament possde au moins un composant, souvent plusieurs. Tout composant peut intervenir dans la fabrication de plusieurs mdicaments. Il existe des composants qui ne sont pas utiliss pour fabriquer des mdicaments et que l'on veut quand mme grer.

    [ ]solution n3 *[ ] p.28

    Fondamental : Diagramme de classe

    Remarque

  • Attributs

    8

    - - - - -

    2.3. Classes

    Une classe est un type abstrait caractris par des proprits (attributs et mthodes) communes un ensemble d'objets et permettant de crer des instances de ces objets, ayant ces proprits.

    Reprsentation UML d'une classe

    Exemple de classe reprsente en UML

    L'objet V1 est une instance de la classe Voiture.

    V1 : Voiture

    Marque : 'Citron'Type : 'ZX'Portes : 5Puissance : 6Kilomtrage : 300000

    La modlisation sous forme de diagramme de classes est une modlisation statique, qui met en exergue la structure d'un modle, mais ne rend pas compte de son volution temporelle. UML propose d'autres types de diagrammes pour traiter, notamment, de ces aspects.

    Dfinition: Classe

    Syntaxe

    Exemple : La classe Voiture

    Exemple : Une instance de la classe Voiture

    Complment

  • Attributs

    9

    -

    -

    - - -

    2.4. Attributs

    Un attribut est une information lmentaire qui caractrise une classe et dont la valeur dpend de l'objet instanci.

    : Le domaine des valeurs que peut prendre l'attribut est fix a priori.Un attribut est typ

    : Il peut prendre plusieurs valeurs distinctes dans son domaine.Un attribut peut tre multivalu: Sa valeur alors est une fonction sur d'autres attributs de la classeUn attribut peut tre driv

    (ou composite): Il joue alors le rle d'un groupe d'attributs (par exemple une Un attribut peut tre composadresse peut tre un attribut compos des attributs numro, type de voie, nom de la voie). Cette notion renvoie la notion de variable de type dans les langages de programmation classiques.Record

    En UML on prfre l'usage de mthodes aux attributs drivs. On utilisera toujours des mthodes ds que la valeur de l'attribut driv dpend d'autres attributs extrieurs sa classe.En UML on prfre l'usage de compositions aux attributs composs. On utilisera toujours des compositions pour les attributs composs et multivalus.

    1 attribut:type2 attribut_multivalu[nbMinValeurs..nbMaxValeurs]:type3 /attribut_driv:type4 attribut_compos5 - sous-attribut1:type6 - sous-attribut2:type7 - ...

    Reprsentation d'attributs en UML

    Dans cet exemple, les attributs Nom, Prnom sont de type , l'un de 20 caractres et l'autre de 10, tandis stringque DateNaissance est de type et Age de type . Prnom est un attribut multivalu, ici une personne date integerpeut avoir de 1 3 prnoms. Age est un attribut driv, il est calcul par une fonction sur DateNaissance.

    Dfinition: Attribut

    Attention : On utilise peu les attributs drivs et composs en UML

    Syntaxe

    Exemple : La classe Personne

    attribut:type

    attribut_multivalu[nbMinValeurs..nbMaxValeurs]:type

    /attribut_driv:type

    attribut_compos

    - sous-attribut1:type

    - sous-attribut2:type

    - ...

  • Reprage des cls

    10

    - -

    Mthodes (cf. p.11)

    Composition * (cf. p.22)

    2.5. Reprage des cls

    Un attribut ou un groupe d'attributs peut tre annot comme tant s'il permet d'identifier de faon unique un clobjet de la classe.

    On ajoute le symbole ct du ou des attributs concerns.{key}

    Cl en UML

    Cl compose de deux attributs

    Le reprage des cls n'est pas systmatique en UML (la dfinition des cls se fera essentiellement au niveau logique). On cherchera nanmoins reprer les cls rendues videntes par la phase de clarification.

    On n'ajoutera jamais de au niveau du MCD. Si aucune cl n'est vidente, on laisse la classe sans cl artificielle*

    cl.

    On trouvera dans ce cours des exemples d'attributs souligns ou prcds de # pour exprimer l'unicit. Ce n'est pas une pratique standard et la notation devrait lui tre substitue.{key}

    Un attribut soulign est normalement un attribut de classe, ou , en UML,staticUn attribut prcd de # est normalement un attribut protg en UML.

    Mais les concepts d'attribut de classe et d'attribut protg ne sont pas utiliss dans le cadre des bases de donnes.

    Complment : Voir aussi

    Exemple

    Mthode

    Attention

    Attention : Attribut soulign et #

  • Associations

    11

    2.6. Mthodes

    Une mthode (ou opration) est une fonction associe une classe d'objet qui permet d'agir sur les objets de la classe ou qui permet ces objets de renvoyer des valeurs (calcules en fonction de paramtres).

    1 methode(paramtres):type

    Pour la modlisation des bases de donnes, les mthodes sont surtout utilises pour reprsenter des donnes calcules ( l'instar des attributs drives) ou pour mettre en exergue des fonctions importantes du systme cible. Seules les mthodes les plus importantes sont reprsentes, l'approche est moins systmatique qu'en modlisation objet par exemple.

    Lors de la transformation du modle conceptuel UML en modle logique relationnel, les mthodes ne seront . Leur reprage au niveau conceptuel sert donc surtout d'aide-mmoire pour gnralement pas implmentes

    l'implmentation au niveau applicatif.

    Au contraire, un modle logique relationnel-objet permettra l'implmentation de mthodes directement associes des tables. Leur reprage au niveau conceptuel est donc encore plus important.

    Transformation des mthodes par des vues * (cf. p.24)

    2.7. Associations

    Une association est une relation logique entre deux classes (association binaire) ou plus (association n-aire) qui dfinit un ensemble de liens entre les objets de ces classes.

    Une association est , gnralement par un verbe. Une association peut avoir des proprits ( l'instar nommed'une classe). Une association dfinit le nombre minimum et maximum d'instances autorise dans la relation (on parle de cardinalit).

    Notation de l'association en UML

    Dfinition: Mthode

    Syntaxe

    Remarque : Mthodes et modlisation de BD

    Remarque : Mthodes, relationnel, relationnel-objet

    Complment

    Dfinition: Association

    Syntaxe

    methode(paramtres):type

  • Cardinalit

    12

    - - - -

    Le nom de l'association (verbe qui la dcrit) est obligatoire, au mme titre que le nom d'une classe ou d'un attribut.

    Une association est gnralement bidirectionnelle (c'est dire qu'elle peut se lire dans les deux sens). Les associations qui ne respectent pas cette proprit sont dites unidirectionnelles ou navigation restreinte.

    Reprsentation d'association en UML

    L'association Conduit entre les classes Conducteur et Voiture exprime que les conducteurs conduisent des voitures.

    Cardinalit (cf. p.12)Explicitation des associations * (cf. p.24)Associations ternaires * (cf. p.24)Contraintes sur les associations * (cf. p.25)

    2.8. Cardinalit

    La cardinalit d'une association permet de reprsenter le nombre minimum et maximum d'instances qui sont autorises participer la relation. La cardinalit est dfinie pour les deux sens de la relation.

    Si min (resp. max ) est le nombre minimum (resp. maximum) d'instances de la classe A autorises participer a a l'association, on note sur la relation, ct de la classe A : min ..max .a a

    Si le nombre maximum est indtermin, on note n ou *.

    Attention

    Remarque

    Exemple : L'association Conduit

    Complment : Voir aussi

    Dfinition: Cardinalit d'une association

    Syntaxe

  • Cardinalit

    13

    - - -

    -

    - - - -

    -

    - - - -

    -

    - - - -

    La notation de la cardinalit en UML est oppose celle adopte en E-A. En UML on note gauche (resp. droite) le nombre d'instances de la classe de gauche (resp. de droite) autorises dans l'association. En E-A, on note gauche (resp. droite) le nombre d'instances de la classe de droite (resp. de gauche) autorises dans l'association.

    Les cardinalits les plus courantes sont :

    0..1 (optionnel)1..1 ou 1 (un)0..n ou 0..* ou * (plusieurs)1..n ou 1..* (obligatoire)

    Reprsentation de cardinalit en UML

    Ici un conducteur peut possder plusieurs voitures (y compris aucune) et une voiture n'est possde que par un seul conducteur.

    On appelle association 1:1 les associations de type:

    0..1:0..10..1:1..11..1:0..11..1:1..1

    On appelle association 1:N les associations de type:

    0..1:0..N0..1:1..N1..1:0..N1..1:1..N

    On appelle association N:M (ou M:N) les associations de type:

    0..N:0..N0..N:1..N1..N:0..N

    Attention

    Remarque

    Exemple : La cardinalit de l'association Possde

    Fondamental : Terminologie

  • Classe d'association

    14

    - 1..N:1..N

    2.9. Classe d'association

    On utilise la notation des classes d'association lorsque l'on souhaite ajouter des proprits une association.

    Notation d'une classe d'association en UML

    On rserve en gnral les classes d'association aux associations N:M.

    Il est toujours possible de rduire une classe d'association sur une association 1:N en migrant ses attributs sur la classe ct N, et c'est en gnral plus lisible ainsi.

    Emplois

    Selon le standard UML une classe d'association est une classe et ce titre elle peut tre mobilise dans d'autres associations ou dans des hritages. Nous dconseillons nanmoins ces notations qui ont tendance complexifier la lecture et la transformation du diagramme.

    Dfinition: Classe d'association

    Syntaxe : Notation d'une classe d'association en UML

    Mthode

    Exemple : Exemple de classe d'association

    Conseil

  • Classe d'association

    15

    Nous conseillons donc de ne jamais associer une classe d'association.

  • Exercices

    16

    ExercicesII

  • Exercice : Tennis

    17

    1. Exercice : Lire l'UML[15 min]

    1.1. Exercice : Tennis

    1.2. Exercice : Journal

    [ ]solution n4 *[ ] p.29

    Le schma suivant reprsente les rencontres lors d'un tournoi de tennis. Quelles sont les assertions vraies selon ce schma ?

    On peut jouer des matchs de double.

    Un joueur peut gagner un match sans y avoir particip.

    Il peut y avoir deux matchs sur le mme terrain la mme heure.

    Connaissant un joueur, on peut savoir sur quels terrains il a jou.

    Voici le schma conceptuel du systme d'information (trs simplifi) d'un quotidien. Quelles sont les assertions vraies selon ce schma ?

  • Exercice : Logistique

    18

    - - -

    2. Exercice: Gestion d'une cooprative viticole[20 minutes]

    Cet exercice a t inspir par .Bases de donnes : objet et relationnel*

    On considre une base "Cooprative" qui possde les caractristiques suivantes :

    Un vin est caractris par un numro entier unique , un cru, une anne de production et un degr.nvUn viticulteur est caractris par un numro entier unique , un nom et une ville.nvtUn viticulteur produit plusieurs vins, chaque vin n'est produit que par un viticulteur.

    1.3. Exercice : Logistique

    Un article peut tre rdig par plusieurs journalistes.

    Un article peut tre publi plusieurs fois dans le mme journal.

    Un article peut tre publi dans un journal par un journaliste qui ne travaille pas pour ce journal.

    Il peut y avoir plusieurs articles sur le mme sujet.

    Un journaliste peut interviewer une personnalit sans faire d'article ce propos.

    Une socit de transport routier veut installer un systme d'information pour rendre plus efficace sa logistique. Embauch au service informatique de cette compagnie, vous tes donc charg de reprendre le travail dj effectu (c'est dire le schma suivant).

    Quelles sont les assertions vraies selon ce schma ?

    Un conducteur peut conduire plusieurs camions.

    Un conducteur peut conduire un camion sans y tre autoris.

    Il peut y avoir plusieurs conducteurs pour le mme camion.

    Un conducteur peut livrer sa propre ville

  • Exercice: Cours et intervenants

    19

    - - -

    -

    - Les buveurs sont caractriss par un numro de buveur , un nom, prnom et une adresse (limite la nbville pour simplifier).Un buveur consomme des vins et peut passer des commandes pour acheter des vins.

    Question 1

    Question 2

    Question 3

    3. Exercice: Cours et intervenants[20 min]

    On souhaite raliser une base de donnes pour grer les cours dispenss dans une cole d'ingnieur, ainsi que les personnes qui interviennent dans ces cours.

    Chaque cours est identifi par une anne et un numro. Chaque cours a donc un numro unique localement chaque anne. Un cours possde un titre et un type ('C' pour Cours, 'TD' ou 'TP'). Un cours possde galement une date de dbut, et une date de fin, qui est toujours de 5 jours aprs la date de dbut.

    Chaque intervenant est identifi par son nom (deux intervenants ne peuvent pas avoir le mme nom). Il a un prnom, un bureau, un ou plusieurs numros de tlphones (jusqu' trois numros) et des spcialits. Un bureau est dfini par un centre ('R' pour Royallieu, 'BF' pour Benjamin Franklin et 'PG' pour Pierre Guillaumat), un btiment (une lettre de A Z), et un numro (infrieur 1000). Les spcialits sont des couples de chanes de caractres dsignant un domaine (par exemple 'BD') et une spcialit (par exemple 'SGBDRO').

    Chaque cours est donn par un unique intervenant.

    Voici un exemple : Le cours 'Machines universelles', n21 de l'anne 2014 est donn par Alan Turing entre le 05/01/2014 et le 10/01/2014. C'est un cours de type 'C'. Alan Turing a le bureau 666 au btiment X de PG. Il a les numros de tlphone 0666666666 et 0766666666. Il possde les spcialits suivantes:

    Domaine: Mathmatique; Spcialit: CryptographieDomaine: Informatique ; Spcialit: AlgorithmieDomaine: Informatique; Spcialit: Intelligence Artificielle

    Question

    Lister tous les types d'objet considrer, les attributs associs et les domaines de valeurs de ces attributs. Reprer les ventuelles cls.

    [ ]solution n5 *[ ] p.31

    Lister toutes les associations considrer et indiquer leurs cardinalits.[ ]solution n6 *[ ] p.31

    Donner le diagramme UML de cette situation.[ ]solution n7 *[ ] p.32

    Raliser le modle UML de la base de donnes. Prciser les cls et les types des attributs.[ ]solution n8 *[ ] p.32

  • Exercice: Gestion mthodique du personnel

    20

    -

    - - - - -

    -

    -

    - -

    -

    - - -

    4. Exercice: Gestion mthodique du personnel[30 minutes]

    Le service de gestion du personnel d'une entreprise dsire s'quiper d'un outil lui permettant de grer informatiquement ses employs, leurs salaires et leurs congs. Les spcifications suivantes ont pu tre mises en exergue par une analyse des besoins ralise auprs des utilisateurs du service du personnel.

    Gnralits :

    tout employ est identifi par un nom, un prnom et une date de naissance;tout employ remplit une fonction et appartient un service;pour chaque employ on gre 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 gre l'historique de ses salaires dans l'entreprise, chaque salaire tant affect une priode de temps;un salaire est compos d'un salaire brut, de charges patronales et de charges salariales;on cherchera partir des ces donnes 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 congs :

    pour chaque employ, on mmorise chaque cong pris (posant qu'un cong concerne toujours une ou plusieurs journes entires);chaque employ a le droit aux jours de congs 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 passs dans l'entreprise donne droit 1 jour supplmentaire,les employs de plus de 40 ans ont un jour supplmentaire, et ceux de plus de 50 ans deux.

    pour chaque employ on cherchera connatre le nombre total de jours de congs autoriss, le nombre de jours pris et le nombre de jours restants sur l'anne en cours.

    Question

    Raliser le diagramme de classes permettant de modliser ce problme.

    Indice :

    On fera apparatre les mthodes pertinentes tant donn le problme pos.

    Mthodes (cf. p.11)

    [ ]solution n9 *[ ] p.33

  • Devoirs

    21

    1. Exercice: Attrapez les tous![30 minutes]

    La Ligue Pokmon souhaite que vous conceviez la prochaine gnration du Pokdex. Le Pokdex est une base de donnes rpertoriant diffrentes espces de petits monstres combattants appels Pokmon. Il devra galement garder trace des plus grands combats de Pokmon de l'Histoire.

    Pokmons

    Une est identifie par un nom unique. Elle est dcrite par diffrentes caractristiques espce de Pokmonmorphologiques (couleur et taille moyenne), et un ou deux (jamais zro) (feu, eau, acier, ...). Il existe typesnaturellement plusieurs espces de mme type. Une espce peut tre l' d'une autre espce. Par volutionexemple, est l'volution de . On considre qu'une espce ne peut voluer, au plus, qu'en une Raichu Pikachuseule autre espce, et que deux espces diffrentes ne peuvent jamais voluer en une mme espce.

    Un est un monstre d'une espce prcise. Il est identifi par un numro unique distribu par la Ligue PokmonPokmon. Il est caractris par un surnom affectif (pas ncessairement unique), un niveau (un entier compris entre 1 et 100 qui mesure ses aptitudes au combat), et un nombre de points de pouvoir (un entier positif qui limite ses capacits magiques).

    Un Pokmon connat des . Une attaque est identifie par un nom unique. Elle est galement attaquescaractrise par sa valeur de puissance (un entier positif), et un ou deux (jamais zro) types. Chaque attaque require un nombre donn de points de pouvoir pour tre lance. On notera qu'un Pokmon peut apprendre des attaques d'un type diffrent du sien.

    Dresseurs de Pokmon et tournois

    Chaque de Pokmon est identifi par un numro unique distribu par la Ligue Pokmon. Il est dresseurcaractris par un nom, un prnom, et un de rattachement. Il peut dresser plusieurs Pokmon, d'espces centreet de niveaux diffrents. Un Pokmon n'a qu'un seul dresseur (son matre).

    Un centre est identifi par un numro de certification unique, galement distribu par la Ligue Pokmon.

    Un est la rencontre de deux dresseurs Pokmon. Il a lieu une date prcise, dans un centre combat de Pokmoncertifi par la Ligue (les combats de rue sont interdits). Un vainqueur est proclam l'issu de chaque combat. Les combats sont parfois organiss dans le cadre de . Chaque tournoi est identifi par un numro tournoisd'homologation unique distribu par la Ligue. Ils sont organiss par un centre certifi (mais tous les combats d'un tournoi n'ont pas forcment lieu dans le centre organisateur).

    Question

    DevoirsIII

    Ralisez un diagramme UML rpondant aux besoins de la Ligue Pokmon.

  • Contenus annexes

    22Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)

    -

    - -

    -

    -

    -

    > Composition

    On appelle composition une association particulire qui possde les proprits suivantes :

    La composition associe une classe composite et des classes parties, tel que tout objet partie appartient un et un seul objet composite. C'est donc une association 1:N (voire 1:1).La composition n'est pas partageable, donc un objet partie ne peut appartenir qu' un seul objet composite la fois.Le cycle de vie des objets parties est li celui de l'objet composite, donc un objet partie disparat quand l'objet composite auquel il est associ disparat.

    La composition est une association particulire (binaire de cardinalit contrainte).La composition n'est pas symtrique, une classe joue le rle de conteneur pour les classes lies, elle prend donc un rle particulier a priori.La composition est une agrgation avec des contraintes supplmentaires (non partageabilit et cycle de vie li).

    Notation de la composition en UML

    La cardinalit ct composite est toujours de exactement 1.

    Ct partie la cardinalit est libre, elle peut tre 0..1, 1, * ou bien 1..*.

    Contenus annexes

    Dfinition: Association de composition

    Remarque

    Syntaxe : Notation d'une composition en UML

    Attention : Composition et cardinalit

  • Contenus annexes

    23Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)

    - -

    -

    -

    Un livre

    On voit bien ici qu'un chapitre n'a de sens que faisant partie d'un livre, qu'il ne peut exister dans deux livres diffrents et que si le livre n'existe plus, les chapitres le composant non plus.

    La composition permet d'exprimer une association analogue celle qui relie une entit faible une

    entit identifiante en modlisation . L'entit de type faible correspond un objet partie et l'entit E-A*

    identifiante un objet composite.

    Une composition avec une classe partie dote d'un seul attribut peut s'crire avec un attribut multivalu.Un attribut compos et multivalu peut s'crire avec une composition.

    Attributs (cf. p.9)Agrgation * (cf. p.23)

    > Agrgation

    L'agrgation est une association particulire utilise pour prciser une relation tout/partie (ou ensemble/lment), on parle d'association .mrologique

    Notation de l'agrgation en UML

    La cardinalit, peut tre exprime librement, en particulier les instances de la classe lment peuvent tre associes plusieurs instances de la classe Ensemble, et mme de plusieurs classes.

    Exemple : Exemple de composition

    Remarque : Composition et entits faibles

    Conseil : Composition et attribut multivalu

    Rappel : Voir aussi

    Dfinition: Association d'agrgation

    Syntaxe

  • Contenus annexes

    24Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)

    L'agrgation garde toutes les proprits d'une association classique (cardinalit, cycle de vie, etc.), elle ajoute simplement une terminologie un plus prcise via la notion de tout/partie.

    > Transformation des mthodes par des vues

    Lorsqu'une mthode est spcifie sur un diagramme UML pour une classe C, si cette mthode est une fonction relationnelle (elle renvoie une unique valeur et elle peut tre rsolue par une requte SQL), alors on cre une vue qui reprend les attributs de la classe C et ajoute des colonnes calcules pour les mthodes.

    Les attributs drivs tant apparents des mthodes, ils peuvent galement tre grs par des vues.

    > Explicitation des associations (sens de lecture et rle)

    Il est possible d'ajouter le sens de lecture du verbe caractrisant l'association sur un diagramme de classe UML, afin d'en faciliter la lecture. On ajoute pour cela un signe ou (ou un triangle noir) ct du < >nom de l'association

    Il est possible de prciser le rle jou par une ou plusieurs des classes composant une association afin d'en faciliter la comprhension. On ajoute pour cela ce rle ct de la classe concerne (parfois dans un petit encadr coll au trait de l'association.

    Rle et sens de lecture sur une association

    Attention

    Mthode

    Remarque : Attributs drivs

    Syntaxe : Sens de lecture

    Syntaxe : Rle

    Exemple

  • Contenus annexes

    25Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)

    > Associations ternaires

    Notation d'une association ternaire

    Il est toujours possible de rcrire une association ternaire avec trois associations binaires, en transformant l'association en classe.

    En pratique on n'utilise jamais en UML d'association de degr suprieur 3.

    > Transformation des agrgations

    Les associations de type agrgation se traitent de la mme faon que les associations classiques.

    Agrgation 1:N

    Classe1(#a,b)

    Classe2(#c,d,a=>Classe1)

    Agrgation N:M

    Classe1(#a,b)

    Classe2(#c,d)

    Syntaxe

    Conseil : Ne pas abuser des associations ternaires

    Conseil : Pas de degr suprieur 3

    Rappel : Agrgation

  • Contenus annexes

    26Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)

    Assoc(#a=>Classe1,#c=>Classe2)

  • Questions de synthse

    27Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)

    Quels sont les principaux lments du diagramme de classes UML ?

    .........................................................................................................................................................................................................................................................

    .........................................................................................................................................................................................................................................................

    .........................................................................................................................................................................................................................................................

    .........................................................................................................................................................................................................................................................

    .........................................................................................................................................................................................................................................................

    .........................................................................................................................................................................................................................................................

    .........................................................................................................................................................................................................................................................

    Quelles sont les diffrences et points communs entre la diagramme de classe UML et le modle E-A tendu ?

    .........................................................................................................................................................................................................................................................

    .........................................................................................................................................................................................................................................................

    .........................................................................................................................................................................................................................................................

    .........................................................................................................................................................................................................................................................

    .........................................................................................................................................................................................................................................................

    .........................................................................................................................................................................................................................................................

    .........................................................................................................................................................................................................................................................

    Questions de synthse

  • Solutions des exercices

    28Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)

    Exercice p. 7> Solution n2

    Exercice p. 4> Solution n1

    [5 min]

    Soit le modle conceptuel suivant reprsentant des visites dans un centre mdical. Quelles sont les assertions vraies selon ce schma ?

    Un patient peut effectuer plusieurs visites.

    Tous les patients ont effectu au moins une consultation.

    Un mdecin peut recevoir plusieurs patients pendant la mme consultation.

    Un mdecin peut prescrire plusieurs mdicaments lors d'une mme consultation.

    Deux mdecins diffrents peuvent prescrire le mme mdicament.

    Solutions des exercices

  • Solutions des exercices

    29Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)

    Exercice p. 17> Solution n4

    Exercice p. 7> Solution n3

    Exercice : Tennis

    Le schma suivant reprsente les rencontres lors d'un tournoi de tennis. Quelles sont les assertions vraies selon ce schma ?

    On peut jouer des matchs de double.

    Un joueur peut gagner un match sans y avoir particip.

    Il peut y avoir deux matchs sur le mme terrain la mme heure.

    Connaissant un joueur, on peut savoir sur quels terrains il a jou.

    Exercice : Journal

    Voici le schma conceptuel du systme d'information (trs simplifi) d'un quotidien. Quelles sont les assertions vraies selon ce schma ?

  • Solutions des exercices

    30Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)

    Un article peut tre rdig par plusieurs journalistes.

    Un article peut tre publi plusieurs fois dans le mme journal.

    Un article peut tre publi dans un journal par un journaliste qui ne travaille pas pour ce journal.

    Il peut y avoir plusieurs articles sur le mme sujet.

    Un journaliste peut interviewer une personnalit sans faire d'article ce propos.

    Exercice : Logistique

    Une socit de transport routier veut installer un systme d'information pour rendre plus efficace sa logistique. Embauch au service informatique de cette compagnie, vous tes donc charg de reprendre le travail dj effectu (c'est dire le schma suivant).

    Quelles sont les assertions vraies selon ce schma ?

  • Solutions des exercices

    31Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)

    Exercice p. 19> Solution n6

    -

    -

    -

    Exercice p. 19> Solution n5

    Un conducteur peut conduire plusieurs camions.

    Un conducteur peut conduire un camion sans y tre autoris.

    Il peut y avoir plusieurs conducteurs pour le mme camion.

    Un conducteur peut livrer sa propre ville

    BuveursNb:Entier (cl), Nom:Char, Ville:Char)VinsNv:Entier (cl), Cru:Char, Millsime:Entier(4), Degr:DcimalViticulteursNvt:Entier (cl), Nom:Char, Rgion:Char

    Entit Association Entit Cardinalit

    Buveur Consommation Vin N:M

    Viticulteur Production Vin 1:N

    Buveur Commande Vin N:M

    Concernant l'association , la cardinalit minimale (cot Vins) peut tre aussi bien 0 ou 1 en Productionfonction de la conception de la base : il se peut qu'il y ait des Vins imports et que l'entit Viticulteur ne concerne que les producteurs franais, ou plus gnralement qu'il y ait des vins pour lesquels on ne connat pas le producteur et rciproquement des viticulteurs pour lesquels on ne connat pas les vins produits.

    Remarque

  • Solutions des exercices

    32Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)

    -

    -

    -

    Exercice p. 19> Solution n8

    Exercice p. 19> Solution n7

    En d'autres termes les cardinalits dpendent fortement des hypothses considres concernant la situation qu'on doit modliser.

    Certaines cardinalits peuvent tre discutes, par exemple, rien n'indique que les bureaux sont partags, et donc on pourrait adopter une association 1:1.La proposition d'une unique classe est alternative au couple de classes Specialite Domaine-

    .SpecialiteLa date de fin peut tre pose en attribut driv ou en mthode.

  • Solutions des exercices

    33Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)

    Exercice p. 20> Solution n9

    - Composition (cf. p.)

    Complment : Solution alternative

    Exemple

  • Solutions des exercices

    34Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)

    - -

    - -

    - -

    On prfrera la notation plutt que # pour reprer les cls.{key}

    On remarquera les mthodes et qui modlisent des oprations courantes dont la prendreConges changerSalairecomplexit (elles concernent plusieurs tables) et l'importance dans l'nonc justifient une mise en exergue.

    Bien entendu, il n'existe pas de solution unique ce problme. Par exemple si seul le salaire en cours est rellement intressant, on pourra affecter les mthodes et la classe plutt salaireCharge salaireNet Employeque .Salaire

    Pour rendre l'UML plus explicite, la mthode est alors une technique d'annotationPour montrer qu'elles sont importantes et s'en souvenir au moment du dveloppement de l'application (on met ainsi en exergue certaines fonctions nonces lors de la clarification)Parce qu'elle peuvent donner lieu des intressantes en relationnelvuesParce que si on fait une BD en relationnel-objet (par exemple) on pourra implmenter ces mthodes dans le modle.

    Diagramme de classes de gestion du personnel

    Explicitation des associations (cf. p.)Composition (cf. p.)

    Conseil

    Remarque

    Mthode : Pourquoi reprsenter des mthodes en UML en base de donnes?

    Complment : Exemple avec composition et explicitation des associations

  • Glossaire

    35Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)

    Cl artificielle (surrogate key)

    En relationnel une cl artificielle est un attribut artificiel (qui ne reprsente aucune donne) ajout la relation pour servir de cl primaire. On mobilise cette technique lorsque l'on n'a pas pu ou voulu choisir une cl naturelle pour cl primaire.

    Glossaire

  • Signification des abrviations

    36Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)

    BD : Base de Donnes

    E-A : Entit-Association

    OMG : Object Management Group

    SGBD : Systme de Gestion de Bases de Donnes

    UML : Unified Modeling Language

    Abrviations

  • Bibliographie

    37Stphane Crozat (Contributions: Benjamin Lussier, Antoine Vincent)

    Arribe Thibaut. . 2014 Conception des chanes ditoriales : documentariser l'activit et structurer le graphe . documentaire pour amliorer la matrise de la rditorialisation Universit de Technologie de Compigne,

    . .Mmoire de Doctorat http://ics.utc.fr/~tha

    . . , Gardarin Georges Bases de donnes : objet et relationnel Eyrolles 1999.

    Rothenberg Jeff, Widman Lawrence E, Loparo Kenneth A, Nielsen Norman R. . 1989 The nature of modeling. . vol.3027.Rand

    Bibliographie

    http://ics.utc.fr/~tha

    CoursNotion de modleExercice : Centre mdicalQu'est ce qu'un modle?Qu'est ce qu'un modleen informatique ?Qu'est ce qu'un bon modle ?

    Introduction au diagramme de classes UML: classes et associationsExercice: Lab IPrsentation d'UMLClassesAttributsReprage des clsMthodesAssociationsCardinalitClasse d'association

    ExercicesExercice : Lire l'UMLExercice : TennisExercice : JournalExercice : Logistique

    Exercice: Gestion d'une cooprative viticoleExercice: Cours et intervenantsExercice: Gestion mthodique du personnel

    DevoirsExercice: Attrapez les tous!

    Contenus annexesQuestions de synthseSolutions des exercicesGlossaireAbrviationsBibliographie