Étude de cas détaillée
Étude des besoins
Il est demandé de modéliser le système d’information nécessaire à la gestion de la cave coopérative des vignerons de Terrats, en vue d’une informatisation. Dans ce but, la chef de projet, Mme Jeanne Alize, a interviewé la directrice de la cave coopérative, Mme Carry Ghnan. Voici un extrait de leurs échanges :
Bonjour, madame Ghnan. Pour pouvoir faire une analyse correcte de vos futurs besoins, il me faudrait quelques renseignements concernant votre activité.
Bien sûr, par quoi voulez-vous que je débute ?
Pouvez-vous me décrire votre activité ?
Tout d’abord, je vais vous expliquer notre histoire récente, cela va vous aider. Depuis très longtemps, chaque commune disposait d’une cave coopérative où chaque viticulteur habitant la commune portait sa production. La cave était responsable de sa production et prenait des options commerciales et qualitatives qui étaient décidées par les vignerons coopérateurs.
Si j’ai bien compris, dans toutes les communes, il y avait des caves coopératives qui décidaient de la typicité de leurs productions et qui se chargeaient d’en faire la promotion, c’est ça ?
Exactement, mais le nombre de viticulteurs baissant depuis des années, certaines coopératives eurent l’idée de se regrouper. Ce fut le cas des caves de Thuir, Terrats et Fourques. Ce regroupement a comme avantage de mutualiser les ressources, de réduire les frais de gestion, de communication, de promotion, etc.
Et bien sûr, nous restons dans un terroir possédant des appellations d’origine contrôlée comme les Côtes du Roussillon rouge, blanc, rosé, le Muscat de Rivesaltes et le Rivesaltes.
Le fait de fédérer les caves coopératives a donc dû entraîner des modifications importantes pour les viticulteurs ?
Effectivement, il a fallu revoir toute la stratégie de communication en recréant une marque commerciale unique. Ensuite, nous avons décidé d’implanter un lieu de vente à côté des anciennes caves coopératives. Le travail au sein des caves a été repensé. Celle de Terrats collecte les raisins et élève les vins, celle de Fourques stocke dans ses cuves les gros volumes vendus à la citerne, enfin celle de Thuir conditionne et stocke les Bag in Box. Nous avons aussi dû intégrer les employés des différentes coopératives.
L’intégration des employés au sein d’une même entité commerciale n’a pas été trop dure ?
Non ! Les employés ont des qualifications reconnues (maître de chai, technicien qualité, chef d’équipe, commercial). Nous avons ainsi pu créer des équipes très complémentaires et efficaces.
Si je comprends bien, tous vos employés ont des qualifications bien particulières et certains d’entre eux en dirigent d’autres.
Oui, c’est exactement ça. En plus, certains employés exercent soit dans une cave, soit dans plusieurs, selon les jours et leurs tâches. Nous aimerions donc, à des fins statistiques, avoir un suivi mensuel de leurs affectations.
Tout est clair. Parlez-moi maintenant du travail des viticulteurs.
Les viticulteurs exploitent des parcelles de terre sur lesquelles ils cultivent des vignes. Ces vignes correspondent à certains cépages. Par exemple, ils peuvent planter des cépages de carignan, grenache noir, syrah, mourvèdre, muscat… Les prix de vente à la coopérative sont bien sûr différents selon le cépage.
Lors des vendanges, les viticulteurs nous portent le raisin correspondant à une parcelle, nous vérifions la qualité...
Analyse des besoins
Lors de la lecture de l’interview, il faut s’attacher à repérer les propriétés et à déterminer les entités. Certains conseillent de traiter les entités après avoir collecté les propriétés. En fait, rien n’empêche de mixer les deux ; c’est ce que nous allons faire.
Nous allons procéder pas à pas. Les premiers échanges nous expliquent le contexte. Les informations glanées sont diffuses. Cela devient prégnant dans ce passage :
« Effectivement, il a fallu revoir toute la stratégie de communication en recréant une marque commerciale unique. Ensuite, nous avons décidé d’implanter un lieu de vente à côté des anciennes caves coopératives. Le travail au sein des caves a été repensé. Celle de Terrats collecte les raisins et élève les vins, celle de Fourques stocke dans ses cuves les gros volumes vendus à la citerne, enfin celle de Thuir conditionne et stocke les Bag in Box. Nous avons aussi dû intégrer les employés des différentes coopératives. »
La lecture de cette phrase nous apprend qu’il va falloir gérer plusieurs points de vente, plusieurs caves coopératives et plusieurs employés.
Il est nécessaire de créer deux entités. Voici le dictionnaire simplifié :
Entité Cave Coopérative :
Nom de la donnée |
Format |
Longueur |
Type |
Règle de calcul |
|
E |
C |
||||
Code de la cave Dénomination de la cave Adresse de la cave Code postal Ville Téléphone Fax |
Alphanumérique Alphabétique Alphanumérique Alphanumérique Alphanumérique Alphanumérique Alphanumérique Alphanumérique |
15 30 40 5 40 15 15 30 |
X X X X X X X X |
|
|
L’entité Cave Coopérative comporte une propriété Code de la cave qui est un identifiant. Cet identifiant est nécessaire car il y a trois caves à gérer. Les autres propriétés sont déduites. Dans la vie réelle, il ne faut pas hésiter à ajouter des propriétés qui semblent indispensables même si elles ne sont pas explicitement citées. En effet, souvent les personnes qui travaillent tous les jours depuis très longtemps dans une entreprise oublient de parler des détails qui composent leur quotidien. Pour elles, ces détails-là font tellement partie de leurs activités journalières qu’ils deviennent insignifiants. Pour le prestataire de services, ne pas les intégrer est fatal, car il lui faudra le faire par la suite en risquant des effets de bord (les effets de bord, c’est le fait de casser un peu plus loin lorsque vous réparez à un endroit !).
Qui peut le plus peut le moins !
Il vaut mieux trop en mettre, quitte à supprimer par la suite, plutôt que ne pas en mettre assez et devoir ajouter des champs, modifier des structures de fichiers, etc.
Entité Points de vente :
Nom de la donnée |
Format |
Longueur |
Type |
Règle de calcul |
|
E |
C |
||||
Code point de vente Nom de l’enseigne Adresse Code postal Ville Téléphone Fax |
Alphanumérique Alphabétique Alphanumérique Alphanumérique Alphanumérique Alphanumérique Alphanumérique Alphanumérique |
15 30 40 5 40 15 15 30 |
X X X X X X X X |
|
|
Entité Employés :
Nom de la donnée |
Format |
Longueur |
Type |
Règle de calcul |
|
E |
C |
||||
Code employé Nom Prénom Adresse Code postal Ville Téléphone Fax Embauché le Type de contrat Taux horaire brut |
Alphanumérique Alphabétique Alphabétique Alphanumérique Alphanumérique Alphanumérique Alphanumérique Alphanumérique Alphanumérique Date Alphanumérique Numérique |
15 30 30 40 5 40 15 15 30 10 30 |
X X X X X X X X X X X X |
|
|
Pour l’entité Employés, il est judicieux d’ajouter la propriété Embauché le : si jamais les caves coopératives décident de donner des primes d’ancienneté, le calcul sera plus aisé et c’est une donnée importante qui caractérise un employé.
La propriété Type de contrat permet de savoir si la personne est en CDD ou CDI ou autre.
La propriété Taux horaire brut est utile pour divers calculs liés à la paye. Poursuivons la lecture des échanges :
« Les employés ont des qualifications reconnues (maître de chai, technicien qualité, chef d’équipe, commercial). Nous avons ainsi pu créer des équipes très complémentaires et efficaces.
Si je comprends bien, tous vos employés ont des qualifications bien particulières et certains d’entre eux en dirigent d’autres.
Oui, c’est exactement ça. »
Nous savons maintenant que les employés possèdent des qualifications et que certains en dirigent d’autres. Nous pouvons déterminer une nouvelle entité.
Entité Qualifications :
Nom de la donnée |
Format |
Longueur |
Type |
Règle de calcul |
|
E |
C |
||||
Code qualification Désignation |
Alphanumérique Alphabétique |
15 30 |
X X |
|
|
Pour modéliser le fait que certains employés en dirigent d’autres, nous créerons une relation réflexive sur l’entité Employés lors de la modélisation.
Continuons la lecture :
« En plus, certains employés exercent soit dans une cave, soit dans plusieurs, selon les jours et leurs tâches. Nous aimerions donc, à des fins statistiques, avoir un suivi mensuel de leurs affectations. »
Ici, nous ne découvrons pas de nouvelles entités, mais une règle de gestion que nous appliquerons à la création du modèle conceptuel des données.
« Les viticulteurs exploitent des parcelles de terre sur lesquelles ils cultivent des vignes. Ces vignes correspondent à certains cépages. Par exemple, ils peuvent planter des cépages de carignan, grenache noir, syrah, mourvèdre, muscat… Les prix de vente à la coopérative sont bien sûr différents selon le cépage. »
De cela, nous retenons que les viticulteurs exploitent plusieurs parcelles de vignes correspondant à des cépages.
Nous allons donc définir trois entités :
Entité Viticulteur :
Nom de la donnée |
Format |
Longueur |
Type |
Règle de calcul |
|
E |
C |
||||
Code viticulteur Nom Prénom Adresse Code postal Ville Téléphone Fax |
Alphanumérique Alphabétique Alphabétique Alphanumérique Alphanumérique Alphanumérique Alphanumérique Alphanumérique Alphanumérique |
15 30 30 40 5 40 15 15 30 |
X X X X X X X X X |
|
|
L’entité Viticulteur est composée de propriétés classiques.
Entité Parcelles :
Nom de la donnée |
Format |
Longueur |
Type |
Règle de calcul |
|
E |
C |
||||
Code parcelle Localisation Hectare Plantée le |
Alphanumérique Alphabétique Numérique Date |
15 30
10 |
X X X X |
|
|
L’entité Parcelle a une propriété Localisation qui permet de saisir un lieu exact. Cette information peut aider à déterminer un terroir. Connaître les hectares plantés peut aider aux calculs des rendements. Savoir à quelle date est plantée une vigne peut donner de bonnes indications sur la qualité des raisins.
Entité Cépage :
Nom de la donnée |
Format |
Longueur |
Type |
Règle de calcul |
|
E |
C |
||||
Code cépage Dénomination Prix d’achat au kilo |
Alphanumérique Alphabétique... |
Le dictionnaire des données complet
Nom de la donnée |
Format |
Longueur |
Type |
Règle de calcul |
|
E |
C |
||||
Code de la cave Dénomination de la cave Adresse de la cave Code postal Ville Téléphone Fax |
Alphanumérique Alphabétique Alphanumérique Alphanumérique Alphabétique Alphanumérique Alphanumérique Alphanumérique |
15 30 40 5 40 15 15 30 |
X X X X X X X X |
|
|
Code point de vente Nom de l’enseigne Adresse Code postal Ville Téléphone Fax |
Alphanumérique Alphabétique Alphanumérique Alphanumérique Alphabétique Alphanumérique Alphanumérique Alphanumérique |
15 3040 5 40 15 15 30 |
X X X X X X X X |
|
|
Code employé Nom Prénom Adresse Code postal Ville Téléphone fixe Téléphone mobile Embauché le Type de contrat Taux horaire brut |
Alphanumérique Alphabétique Alphabétique Alphanumérique Alphanumérique Alphabétique Alphanumérique Alphanumérique Alphanumérique Date Alphabétique Numérique |
15 30 30 40 5 40 15 15 30 10 30
|
X X X X X X X X X X X X |
|
|
Code qualification Désignation |
Alphanumérique Alphabétique |
15 30 |
X X |
|
|
Code viticulteur Nom Prénom Adresse Code postal Ville Téléphone Fax |
Alphanumérique Alphabétique Alphabétique Alphanumérique Alphanumérique Alphabétique Alphanumérique Alphanumérique Alphanumérique |
15 30 30 40 5 40 15 15 30 |
X X X X X X X X X |
|
|
Code parcelle Localisation Hectare Plantée le |
Alphanumérique Alphabétique Numérique Date |
15 30
10 |
X X X X |
|
|
Code cépage Dénomination Prix d’achat au kilo |
Alphanumérique Alphabétique Numérique |
15 30 |
X X |
|
|
Code produit Nom commercial Millésime Prix de vente |
Alphanumérique Alphabétique Numérique Numérique |
15 30 |
X X X X |
|
|
Code de conditionnement Désignation Prix unitaire d’achat |
Alphanumérique Alphabétique Numérique |
15 30 |
X X X |
|
|
Propriétés isolées Somme Kilogramme Date Quantité produite Quantité vendue Heure |
Numérique Numérique Date Numérique Numérique Heure |
30
10
4 |
X X X X X X |
|
|
Les dépendances fonctionnelles
Le dictionnaire des données étant terminé, nous allons créer l’ensemble des dépendances fonctionnelles.
Lorsque le dictionnaire est complet, la détermination des dépendances est un jeu d’enfant.
Lorsque l’on connaît un code ou un identifiant, on connaît de façon sûre et unique une et une seule propriété.
1. Dépendances fonctionnelles élémentaires et directes
Lorsque nous connaissons le code du viticulteur, nous pouvons connaître de façon sûre et unique son nom, son prénom, son adresse, etc.
Nous allons le symboliser de cette façon :
Code viticulteur ->(Nom, Prénom, Adresse, Code postal, Ville, Téléphone, Fax, Mail)
Voici l’ensemble des dépendances fonctionnelles :
Code parcelle ->(Localisation, Hectare, Plantée le)
Code cépage ->(Dénomination, Prix d’achat au kilo)
Code employé ->(Nom, Prénom, Adresse, Code postal, Ville, Téléphone fixe, Téléphone mobile, Mail, Embauché le, Type de contrat, Taux horaire brut)
Code qualification ->(Désignation)
Code de la cave ->(Dénomination de la cave, Adresse de la cave, Code postal, Ville, Téléphone, Fax, Mail)
Code point de vente ->(Nom de l’enseigne, Adresse, Code postal...
Création du modèle conceptuel des données avec WinDesign
WinDesign, de la société CECIMA, est un environnement modulaire articulé autour d’un référentiel partagé pour la modélisation des systèmes d’information. La version 11 comprend trois modules autonomes et communicants, permettant de concevoir, de modéliser et de spécifier chaque angle de vue des systèmes d’information :
-
Le module Database : destiné aux analystes et aux administrateurs de bases de données, il permet de concevoir, de générer, de modifier, de (re)documenter les bases de données.
-
Le module Object : destiné aux chefs de projet et aux développeurs, il permet de spécifier les points de vue statique et dynamique, d’une application ou d’un système au travers des diagrammes et des langages préconisés par UML.
-
Le module Business Process : destiné aux utilisateurs métier pour la cartographie métier et aux services informatiques pour la cartographie fonctionnelle, applicative et infrastructure, il permet de représenter tous les angles de vue des systèmes d’information et d’analyser tout impact local ou transverse, à tous les niveaux.
1. Conception du modèle conceptuel des données
Ouvrez WinDesign et cliquez sur Nouveau dans le menu Fichier. Une fenêtre s’affiche et vous demande de sélectionner un module.
Choisissez le module DataBase.
Ensuite, sélectionnez comme type de diagramme Modèle Conceptuel des Données.
Comme nom de diagramme Terrassou et choisissez Diagramme vide.
Votre espace de travail est prêt.
Vous allez travailler avec seulement cette barre d’outils :
Commencez par créer l’entité Viticulteur. Cliquez sur l’icône permettant de générer une entité et positionnez-vous en haut et à gauche de votre espace de travail. Renseignez le nom de l’entité.
L’entité est créée et elle est vide.
Vous allez maintenant y insérer les propriétés. Pour cela, faites un clic droit sur l’entité, et dans le sous-menu, choisissez Détail.
Voici la fenêtre permettant de saisir les propriétés :
Saisissez l’identifiant Code viticulteur, cochez la case Identifiant, laissez Alphanumérique pour le Type par défaut, et passez la Longueur à 15. Cliquez sur le bouton Créer pour finaliser la création de cette propriété.
Une fois finie, l’entité ressemble à ceci :
Créez de la même façon l’entité Parcelle.
Créez la relation entre les deux entités. En ce sens, cliquez sur l’icône et positionnez-vous entre les deux entités. Nommez la relation Possède.
Vous allez à présent générer les liens, puis vous indiquerez les cardinalités de la relation.
Cliquez sur l’icône et liez Parcelle à Possède, puis Viticulteur à Possède.
Concernant ces liens, vous pouvez affirmer qu’un viticulteur possède une ou plusieurs parcelles et qu’une parcelle n’appartient qu’à un et un seul viticulteur.
Faites un double clic sur le lien entre Viticulteur et Possède :
Dans la fenêtre qui apparaît, choisissez 1,n dans la zone Cardinalités et cliquez sur pour fermer la fenêtre.
Pour le lien entre Parcelle et Possède, créez une cardinalité 1,1. Voilà le résultat :
Il ne vous reste plus qu’à modéliser l’ensemble des dépendances fonctionnelles. Le modèle conceptuel des données final ressemble à ceci :
2. Conception du modèle logique des données
Une fois le MCD réalisé, WinDesign va être très efficace pour réaliser le modèle logique des données.
Cliquez sur l’option de menu Modèle, puis sur le sous-menu Générer modèle logique. Acceptez les choix par défaut et cliquez sur le bouton OK.
WinDesign génère automatiquement le MLD. Cependant, la mise en forme est un peu brouillonne, il faut l’harmoniser manuellement. Voici le résultat :
Vous allez maintenant générer le script SQL permettant de porter le modèle sur un SGBD.
Cliquez sur l’option de menu Base de données, puis sur le sous-menu...