Spécialisation / généralisation évolutive



Documents pareils
CONCEPTION Support de cours n 3 DE BASES DE DONNEES

Dossier I Découverte de Base d Open Office

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

Personnalisation Fiche Annuaire

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

Freeway 7. Nouvelles fonctionnalités

Module d échange de données INTERLIS v1.0 GeoConcept Manuel d'utilisation

MAÎTRISE DE L ENVIRONNEMENT WINDOWS VISTA

MEDIAplus elearning. version 6.6

Guide d'utilisation. OpenOffice Calc. AUTEUR INITIAL : VINCENT MEUNIER Publié sous licence Creative Commons

PMI PLACE DE MARCHE INTERMINISTERIELLE GUIDE D'UTILISATION UTILISATEUR OPERATEUR ECONOMIQUE

Préambule. Sommaire. Ouverture de votre Service Client. Configuration de La Solution Crypto. Activation. Paramètres PagesIMMO

Parcours FOAD Formation EXCEL 2010

La Clé informatique. Formation Excel XP Aide-mémoire

Interface PC Vivago Ultra. Pro. Guide d'utilisation

Didacticiel de mise à jour Web

Utilisation du logiciel ModellingSpace

Guide pour la réalisation d'un document avec Open Office Writer 2.2

COURS WINDEV NUMERO 3

Création d'un site neutre et présentation des éléments de la page d'accueil

Bases de Données. Plan

MODE D EMPLOI

Compte-rendu de projet de Système de gestion de base de données

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

PROJET DE PORTAIL INTRANET YNNA

Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8

Guide de prise en main. Yourcegid SOLOS. Devis-Factures. 12/08/2013 Page 1 / 38

SAP Lumira Version du document : Guide de l'utilisateur de SAP Lumira

LibreOffice Calc : introduction aux tableaux croisés dynamiques

Le modèle de données

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

Si vous décidez d utiliser un autre chemin, c est ce nouveau chemin qu il faudra prendre en compte pour la sauvegarde. Cf. : Chapitre 9 Sauvegarde

«Manuel Pratique» Gestion budgétaire

PAGE 1. L écran du logiciel d Open Office Draw. Barre de menu: Les commandes du logiciel

Automatisation d'une Facture 4. Liste Déroulante Remises Case à cocher Calculs

2 Grad Info Soir Langage C++ Juin Projet BANQUE

Description des pratiques à adopter pour la mise à jour du layout en utilisant le gestionnaire de conception de Sharepoint 2013

Travaux pratiques avec RapidMiner

Manuel d utilisation de la plate-forme de gestion de parc UCOPIA. La mobilité à la hauteur des exigences professionnelles

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

Manuel d utilisation du site web de l ONRN

CREG : versailles.fr/spip.php?article803

Évaluation des compétences. Identification du contenu des évaluations. Septembre 2014

Créer un tableau avec LibreOffice / Calc

Business Intelligence simple et efficace

Qlik Sense Cloud. Qlik Sense Copyright QlikTech International AB. Tous droits réservés.

Correction des Travaux Pratiques Organiser son espace de travail

Utilisation de la clé USB et autres supports de stockages amovibles

Utilisateur. Auteurs. Laurent project engineer

PARAMETRAGE DU STOCKAGE/DESTOCKAGE DES ARTICLES & MOUVEMENTS DE STOCKS

GUIDE D UTILISATION DE L ISU SEPTEMBRE 2013 GUIDE D UTILISATION DU NAVIGATEUR UIS.STAT (VERSION BÊTA)

Créer le schéma relationnel d une base de données ACCESS

A - Créer une Base de données au format dbase

Formation > Développement > Internet > Réseaux > Matériel > Maintenance

Cours Access 1) INTRODUCTION AU SGBD...4 2) LES TABLES...4

Introduction : présentation de la Business Intelligence

Utilisation du client de messagerie Thunderbird

Cours Modélisation et Programmation avec tableur

1. Création d'un état Création d'un état Instantané Colonnes Création d'un état Instantané Tableau... 4

Conférence. Comment améliorer le taux de conversion de votre boutique en ligne grâce au design sous Prestashop? Réalisé par ECOMIZ

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

OpenOffice Base Gestionnaire de Base de Données

Bases de données cours 1

Mon Compte Epargne Temps (CET) : manuel utilisateur

COMMENT TROUVER VOS FUTURS CLIENTS À L INTERNATIONAL? 05/03/2015 Creditsafe France

Méthodologies de développement de logiciels de gestion

Publipostage avec Open Office Writer et Open Office Calc

GUIDE Excel (version débutante) Version 2013

Importation des données dans Open Office Base

Documentation module hosting

LE TABLEUR OPENOFFICE CALC : CONTRÔLES DE FORMULAIRES ACCÈS AUX BASES DE DONNÉES

La sauvegarde (backup) de votre comptabilité a pour but de vous permettre de retrouver vos données si un incident est survenu.

HP Data Protector Express Software - Tutoriel 3. Réalisation de votre première sauvegarde et restauration de disque

HERAKLES Page 1 sur 11 PARAMETRAGE DE GSI FICHE PARAMETRAGE DE GSI

Cours 420-KEG-LG, Gestion de réseaux et support technique. Atelier No2 :

Gérer ses fichiers et ses dossiers avec l'explorateur Windows. Février 2013

Installation et paramétrage. Accès aux modèles, autotextes et clip- art partagés

Géographie CM2. Guide pédagogique. Ressources vidéoprojetables & 14 animations interactives. Jacques Arnaud Nicole Darcy Daniel Le Gal

Tapez le titre de la page «BASTIA ville méditerranéenne», puis allez deux fois à la ligne à l aide de la touche Entrée.

Service intervenant. Version 6.3

Introduction : Cadkey

Table des matières ENVIRONNEMENT

OSIRIS/ Valorisation des données PORTAIL BO MANUEL UTILISATEUR

Découverte et prise en main de SWEET HOME 3D

La gestion des serveurs de mail

EXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version /11/05

les Formulaires / Sous-Formulaires Présentation Créer un formulaire à partir d une table...3

GESTION DU LOGO. 1. Comment gérer votre logo? Format de l image Dimensions de l image Taille de l image 9

Une fois votre tableau excel complet, cliquer sur fichier enregistrer sous type de fichier (menu déroulant) csv (séparateur : point virgule).

Ville et Eurométropole de Strasbourg - Service communication numérique. Mode d emploi

Débuter avec OOo Base

Maarch V1.4

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

Utiliser Access ou Excel pour gérer vos données

Gestion du parc informatique des collèges du département du Cher. Manuel d utilisation de la solution de gestion de Parc

Numbers sur ipad. Atelier Formation Numbers sur ipad. [Notes extraitres de l'aide en ligne]

Les calques supplémentaires. avec Magix Designer 10 et autres versions

inviu routes Installation et création d'un ENAiKOON ID

Transcription:

Spécialisation / généralisation évolutive Comparaison de complexité avec une solution statique conventionnelle Créé: Juin 2005 Rédigé : Léonard Sandoz Modifié: Dirigé : Pierre-André Sunier Laboratoire de Génie Logiciel HEG NE Index Préambule Modélisation classique Modélisation évolutive Discussion des deux approches de modélisation o Modélisation classique o Modélisation évolutive L'application classique o Le détail de l'application Entité CONTENEUR - Cassette Entité CONTENEUR - Classeur L'application évolutive o Le détail de l'application Entité TYPE_ATTRIBUTS Entité DOMAIN Entité VALEUR_REF Entité ATTRIBUT Entité TYPE_CONTENEUR Entité TYCON_ATTRIBUT Entité CONTENEURS Entité VALEUR

Préambule Ce document traite d'une problématique courante dans le monde actuel qui est en perpétuelle mutation, l'évolutivité des systèmes d'information. Ce changement permanent entraîne la transformation, l'adaptation des systèmes d'information selon des nouveaux besoins, des nouvelles règles. Donc la qualité des logiciels ne se limite plus à leur conformité à un cahier des charges initial, mais à leur potentialité d'évolutivité, ainsi la capacité de réactivité des SII aux changements de règles de gestion devient un critère essentiel. Le but est de passer d'une solution figée de modélisation à une solution évolutive de modélisation pour répondre au besoin de réactivité des futurs systèmes d'information. Pour illustrer la capacité d'évolutivité ou non d'un modèle de donnée, nous utiliserons l'exemple du conteneur d'objet, dont ses attributs varient selon le type de conteneur défini. Par exemple un conteneur, peut être un carton avec un attribut renseignant sa dimension, ou un conteneur peut aussi être un classeur, d'un certain type ou encore une cassette avec une durée d'enregistrement variable. L'objectif de ce document est de fournir un jeu de valeurs test pour évaluer la complexité de la solution de modélisation évolutive. Voir notre projet de recherche ISNet - 72 Modélisation classique La modélisation classique permet de régler simplement certains cas discutés lors de la présentation de la problématique à résoudre. Voir le document Elaboration de systèmes d'information informatisés (SSI) évolutifs Prenons l'exemple suivant des conteneurs pour la modélisation classique.

L'entité Conteneur permet de représenter la notion de spécialisation généralisation. Nous observons que le conteneur ici considéré comme une entité "Sur-type" peut être spécialisé en plusieurs autres entités "Sous-type" comme Carton, Classeur, Recueil, Cassette ou encore CD. D'après un tel modèle la première solution consiste à ne créer qu'une seule table. Elle comportera les colonnes relatives aux attributs de l'entité Conteneur et elle comportera aussi toutes les colonnes représentant les classes enfants. Ces colonnes seront forcément optionnelles même si à la base elles avaient un caractère obligatoire. De plus les différentes entités "Sous-type" seront représentées par une colonne intégrée à la table Conteneur. Voir le chapitre 10 du document Designer - Modélisation des données, Niveau conceptuel. Modélisation évolutive Pour dépasser les cas discutés lors de la problématique à résoudre, il faut mettre sur pied une modélisation évolutive. Prenons l'exemple suivant des conteneurs pour la modélisation évolutive. Pour commencer, ce modèle permet de créer dynamiquement des spécialisations grâce à un typage et de plus il permet de créer dynamiquement des attributs spécifiques aux spécialisations. Les entités TYPE_CONTENEUR et CONTENEUR permettent de créer dynamiquement les spécialisations qui sont spécifiées de manière statique dans le modèle classique. Les entités TYPE_ATTRIBUT, ATTRIBUT et VALEUR rendent le modèle évolutif même si les entités enfants de conteneur possèdent des attributs spécifiques. Cette représentation est en fait un méta-modèle, elle permet de modéliser la structure particulière de la généralisation spécialisation.

Discussion des deux approches de modélisation Modélisation classique Le modèle de données utilisé pour la modélisation classique a été illustré précédemment. Son entité "CONTENEUR", est une entité de genre "Sur-type", permettra le stockage des objets à inventorier. La modélisation du concept des domaines de spécialisation des objets est mis en place par l'intermédiaire du concept d'entité "Sous-type". Dans l'entité de genre "Sur-type" sont introduites des entités du genre "Sous-type" qui spécialisent un genre de conteneur. Ces "Sous-type" d'entités définissent le type de conteneur. Chaque "Sous-type" d'entité possède ses propres attributs. Nous pouvons remarquer que ce modèle classique est beaucoup moins riche que le modèle évolutif, mais qu'il est plus facile à comprendre. Modélisation évolutive Le modèle de données utilisé pour la modélisation évolutive est celui présenté à la page précédente. L'entité "CONTENEUR" permettra le stockage des objets à inventorier. L'entité " TYPE_CONTENEUR " modélise le concept de spécialisation des objets. En effet, chaque objet pourra, selon sa nature, être rattaché à une spécialisation pour lequel des attributs spécifiques auront été définis. L'entité "ATTRIBUT" est prévue pour le stockage des attributs. L'entité associative " TYCON_ATTRIBUT" permet de faire le lien entre les attributs et les spécialisations. C'est à ce niveau que les attributs sont rattachés aux spécialisations. Pour chaque couple spécialisation - attribut une valeur propre à un objet pourra être définie au sein de l'entité "VALEUR". L'entité "TYPE_ATTRIBUT" permettra le stockage des différents types de données standards tels que les numériques, les chaînes de caractères ou encore les dates mais également la définition d'autres types plus évolués comme le formatage d'une adresse e-mail, d'un numéro de téléphone, etc. L'entité "DOMAIN" reprend le concept de domaine de valeurs ("Domains") prévu par Oracle Designer, car un attribut peut ou non être lié à un domaine de valeurs de référence. L'entité "VALEUR_REF" permet le stockage des valeurs de référence d'un domaine de valeurs. Pour le domaine "TY_SEXE" (Sexe), les valeurs de référence seront "Homme" et "Femme" par exemple. C'est au sein de l'entité "VALEUR" que seront stocké les valeurs des attributs pour un objet. Comme expliqué ci-avant, la nouvelle structure de données prévoit la définition de la longueur et du nombre de décimales des valeurs de référence d'un domaine de valeur au niveau de ce dernier (entité "DOMAIN"). L'association liant les entités "VALEUR_REF" et "TYPE_ATTRIBUT" est remplacée par l'association "estde" liant les entité "TYPE_ATTRIBUT" et "DOMAIN" pour que la définition du type de donnée des valeurs de référence d'un domaine se fasse au niveau du domaine.

L'application classique L'application classique, est basée comme son nom l'indique, sur la modélisation classique et le modèle proposé précédemment. Cette application est figée, elle permet à l'utilisateur de saisir des objets de type conteneur qui correspondent à un des quatre types prédéfinis soit Cassette, CD, Classeur ou encore Recueil. Par figée il faut aussi comprendre qu'il n'est pas possible de créer de nouveaux types d'attributs, ainsi que changer la structure des différents conteneurs. Nous remarquons que cette application liste les différents conteneurs dans le cadre de gauche et le détail de chacun d'entre eux est affiché dans le cadre de droite, mais avec les attributs appartenant à tous les types de conteneur, ce qui n'est pas idéal.

Lorsqu'un utilisateur veut créer un nouveau conteneur appartenant à un type de conteneur existant, voici le formulaire qui lui est proposé. Lors de la saisie des différents conteneurs, une attention particulière doit être mise sur les différents champs à remplir selon le type de conteneur auquel appartient le nouveau conteneur créé. Effectivement rien n'empêche l'utilisateur de saisir une valeur pour le champ "Taille", bien qu'il est en train de créer un conteneur de type Classeur. Nous illustrons cet exemple en créant le "Classeur 003", avec une "Epaisseur" de 8 et une "Taille" de 10, normalement ce champ est réservé pour les type des conteneur de style CD.

Le détail de l'application Pour gérer ce problème, l'application doit être modifiée pour n'afficher que les champs concernant le type de conteneur saisi. On peut remarquer qu'une modélisation classique est bien moins complexe et moins longue à mettre en œuvre, mais elle ne résout pas tous les problèmes de gestion, ce qui implique après coup la modification de l'application découlant de cette modélisation. Pour répondre à ces nouveaux besoins, il faut mettre en place un module par type de conteneur, et ainsi chaque module gérera un type de conteneur. Ensuite un menu devra permettre à l'utilisateur de choisir quel type de conteneur il veut gérer. Pour illustrer ce propos, nous avons mis au point une application de gestion de deux types de conteneurs soit les Classeurs et les Cassettes. La suite de ce chapitre illustre la gestion des cassettes ainsi que la gestion des classeurs. Pour chacune de ces spécialisations, un zoom est effectué sur chaque entité du modèle, montrant d'une manière répétitive l'entité dans son environnement immédiat, un jeu de valeurs de test, ainsi qu'une copie écran illustrant les concepts mis en place. La correspondance entre le jeu de valeurs de test et la copie écran est réalisée par la mise en gras du ou des tuples correspondants. Pour mieux saisir la fonction précise de l'entité, elle est intégrée à son environnement immédiat, mais pour ne pas perdre le lecteur, elle est toujours entourée d'un cercle.

Entité CONTENEUR - Cassette CONTENEURS COTE DESCRIPTION TYPE_ CONTENEUR CLASSEUR_ EPAIS. LARG. PROF. TAILLE CASSETTE_ EPAIS. 003.001 Cassette longue CAS 90 durée 003.002 Cassette durée CAS 60 moyenne 003.003 Cassette 003 CAS 001.001 Classeur 001 CLA 001.002 Classeur 002 CLA 5 40 Pour la gestion des différentes cassettes l'écran suivant est proposé à l'utilisateur Cet écran de saisie est propre à la saisie d'information concernant les conteneurs de type cassette et seules les informations concernant les cassettes peuvent être saisies.

Lorsque l'utilisateur presse sur le bouton nouveau, cette fenêtre de saisie apparaît, ainsi il ne peut plus se tromper de champs lors de sa saisie. Entité CONTENEUR - Classeur CONTENEURS COTE DESCRIPTION TYPE_ CONTENEUR CLASSEUR_EPAIS. LARG. PROF. TAILLE CASSETTE_ EPAIS. 003.001 Cassette longue CAS 90 durée 003.002 Cassette durée CAS 60 moyenne 003.003 Cassette 003 CAS 001.001 Classeur 001 CLA 001.002 Classeur 002 CLA 5 40

Le même concept a été déployé pour la gestion des classeurs Et voici l'écran de saisie conçu pour l'entrée d'information concernant les classeurs. Cet écran de saisie est dédié à la saisie d'information concernant les conteneurs de type classeur et seules les informations concernant les classeurs peuvent être saisies.

L'application évolutive A partir du modèle de données évolutif présenté, voici le menu de l'application qui a été développé. Depuis ce menu principal toute l'évolutivité de l'application est visible. On peut créer des nouveaux types d'attribut, donc créer de nouveaux types de données basés sur les type de données SQL Ensuite la gestion des domaines de valeurs de références permet de gérer les différents domaines de valeurs qui peuvent être utilisés par certains attributs. Dans ce même formulaire, un lien "Gestion des domaines de valeurs de références" a été introduit pour permettre à l'utilisateur de gérer les valeurs de références d'un domaine particulier. En exemple sont montrés les valeurs de références pour le domaine TY_POLITESSE.

Sinon la gestion des attributs nous permet de créer des attributs répondant à certains besoins, et de les affecter aussi avec les nouveaux types d'attributs définis précédemment. Une fois les nouveaux types d'attributs et attributs créés, ainsi que les différents domaines de valeurs, des nouveaux type de conteneurs peuvent être ajoutés, grâce à la gestion des types de conteneurs. La dernière fonctionnalité du menu permet la gestion des différents conteneurs utilisés. Le détail de l'application L'articulation de la suite de ce document se calque sur l'ordre des différentes manipulations à effectuer pour saisir un conteneur. Un zoom est effectué sur chaque entité du modèle, montrant d'une manière répétitive l'entité dans son environnement immédiat, un jeu de valeur de test, ainsi qu'une copie écran illustrant les concepts mis en place. La correspondance entre le jeu de valeurs de test et la copie écran est réalisée par la mise en gras du ou des tuples. Pour mieux saisir la fonction précise de l'entité, elle est intégrée à son environnement immédiat, mais pour ne pas perdre le lecteur, elle est toujours entourée d'un cercle.

Entité TYPE_ATTRIBUTS TYPES_ATTRIBUT CODE TYPE_SQL FORMAT EXPR_REGULIERE Caractère VARCHAR2 ^.*$ Date DATE jj.mm.aaaa ^[[:digit:]]{2}\.[[:digit:]]{2}\.[[:digit:]]{4}$ E-Mail VARCHAR2 jean.dupont@he-arc.ch ^.+\@.+\.[[:alpha:]]{2,3}$ Numérique NUMBER ^[[:digit:]]+$ ^[[:digit:]]+\.[[:digit:]]+$ ^[[:digit:]]{1,5}\/[[:digit:]]{3}\.[[:digit:]]{2}\.[[:digit:]]{2} Téléphone VARCHAR2 032/724.24.24 $

Entité DOMAIN DOMAIN TYPE_ATTRIBUT ( fk ) CODE LIBELLE LENGTH DECIMALE Caractère TY_OUINON Oui / Non 3 0 Caractère TY_POLITESSE Politesse 10 0 Caractère TY_SEXE Sexe 5 0

Entité VALEUR_REF VALEURS_REF DOMAIN ( fk ) TY_OUINON TY_OUINON TY_POLITESSE TY_POLITESSE TY_POLITESSE TY_SEXE TY_SEXE DONNEE Oui Non Famille Monsieur Madame Homme Femme

Entité ATTRIBUT ATTRIBUTS TYPE_ATTRIBUT ( fk ) CODE NOM LENGTH DECIMALE Numérique EPAISSEUR Epaisseur 5 2 Numérique LARGEUR Largeur (cm) 5 2 Numérique PROFONDEUR Profondeur (cm) 5 2 Numérique DUREE Durée (en minutes) 5 2 Numérique TAILLE Taille 5 2

Entité TYPE_CONTENEUR TYPE_CONTENEUR CODE CAS CD CLA REC LIBELLE Cassette CD Classeur Recueil

Entité TYCON_ATTRIBUT TYCON_ATTRIBUTS ATTRIBUT ( fk ) TYPE_CONTENEUR ( fk ) EPAISSEUR EPAISSEUR LARGEUR PROFONDEUR PROFONDEUR CLA REC CLA CD CLA

Entité CONTENEURS CONTENEURS TYPE_CONTENEUR ( fk ) COTE DESCRIPTION CLA 001.001 Classeur 001 CLA 001.002 Classeur 002 REC 002.001 Recueil 001 CAS 003.001 Cassette longue durée CAS 003.002 Cassette durée moyenne

Entité VALEUR VALEUR CONTENEUR ( fk ) TYPE_CONTENEUR ( fk ) TYCON_ATTRIBUT ( fk ) DONNEE CLASSEUR 001 CLA EPAISSEUR 6 CLASSEUR 001 CLA LARGEUR 3 CLASSEUR 001 CLA PROFONDEUR 1 CLASSEUR 002 CLA EPAISSEUR 5 CLASSEUR 002 CLA LARGEUR 40 CLASSEUR 002 CLA PROFONDEUR RECUEIL 001 REC EPAISSEUR