windev

banniere

EXEMPLES DE RECHERCHE


POUR LE SUJET: L'homme est-il réellement libre ?
TAPEZ LES MOTS-CLES: homme libre

POUR LE SUJET: En quel sens la société libère-t-elle l'homme de la nature ?
TAPEZ LES MOTS-CLES: homme nature ou homme nature société
»Créer un compte Devoir-de-philo
»
»125895 inscrits
<< WinDev, WebDev, WinDev Mobile Apprenez à déve ... le developement windev >>
Partager

windev

Cours

Aperçu du corrigé : windev



document rémunéré

Document transmis par : M1984B-197553


Publié le : 26/1/2013 -Format: Document en format HTML protégé

Sources détectées par CopyScape © :

Aucune source détectée - Document original
windev
Zoom

WinDev, WebCe livre est destiné aux développeurs qui souhaitent disposer d’une offre de développement globale grâce à l'atelier de génie logiciel de PC SOFT
(développeurs débutants, étudiants en BTS Informatique de Gestion, IUT Informatique, écoles d’ingénieurs...).
Son ambition est de permettre au lecteur de progresser au fur et à mesure des chapitres de façon simple et régulière dans le développement
d’une application monoposte, puis client/serveur avec WinDev, d'un frontal Web avec WebDev et mobile (Windows Mobile et Android) avec
WinDev Mobile.
L'ouvrage guide le lecteur à l'installation du moteur de bases de données HyperFile sur un serveur 2008, au paramétrage d'IIS 7 (Internet
Information Services) et à la configuration du moteur de déploiement WebDev.
Le cas traité est conceptuellement simple, mais riche de notions qui permettent d’aborder la méthode MERISE, les bases de données et SQL de
façon à traiter la majorité des cas simples ou élaborés de liaison aux données. Les points théoriques sont expliqués et aussitôt mis en oeuvre.
Les nombreux outils qui composent WinDev permettent au lecteur de gérer le cycle de développement sans avoir recours à des logiciels de
sociétés tierces. De plus, le langage de programmation commun à WinDev, WinDev Mobile et WebDev, le Wlangage est très algorithmique, ce qui
permet d’acquérir plus facilement la logique nécessaire à tout développement.
Le livre a été conçu avec la version 15 de l'atelier de génie logiciel. L’auteur est néanmoins resté générique et les composants et leurs codes
associés fonctionnent à partir de la version 12 sans modifications, hormis le changement de l’interface de programmation.
Les exemples présentés dans l’ouvrage sont en téléchargement sur le site www.editions-eni.fr.
Les chapitres du livre :
Avant-propos – Étude du projet et présentation de la méthode Merise – Étude du projet – WinDev et Merise – L’interface Homme-Machine – La
programmation et l’accès aux données – Le mode Client Serveur – La mobilité – Développement pour Android – Développement Web avec
WebDev – Conclusion – Annexe
Ce livre numérique a été conçu et est diffusé dans le respect des droits d’auteur. Toutes les marques citées ont été déposées par leur éditeur respectif. La loi du 11 Mars
1957 n’autorisant aux termes des alinéas 2 et 3 de l’article 41, d’une part, que les “copies ou reproductions strictement réservées à l’usage privé du copiste et non destinées
à une utilisation collective”, et, d’autre part, que les analyses et les courtes citations dans un but d’exemple et d’illustration, “toute représentation ou reproduction intégrale,
ou partielle, faite sans le consentement de l’auteur ou de ses ayants droit ou ayant cause, est illicite” (alinéa 1er de l’article 40). Cette représentation ou reproduction, par
quelque procédé que ce soit, constituerait donc une contrefaçon sanctionnée par les articles 425 et suivants du Code Pénal. Copyright Editions ENI
Ce livre numérique intègre plusieurs mesures de protection dont un marquage lié à votre identifiant visible sur les principales images.
WinDev, WebDev, WinDev Mobile
Apprenez à développer à l'aide d'un cas concret
Jean Luc BAPTISTE
Résumé
L'auteur
Ancien responsable informatique et développeur d'applications stratégiques, Jean-Luc Baptiste a également créé et géré une société de
services en informatique pendant plusieurs années. Il est aujourd'hui professeur certifié en informatique de gestion, en filière BTS, au Lycée
Jean Lurçat de Perpignan. Très proche des interrogations des apprenants et fort de son expérience pédagogique et de ses compétences
techniques, il propose au lecteur un ouvrage très efficace pour s'initier au développement d'applications avec WinDev, WebDev et WinDev
Mobile.
© ENI Editions - All rigths reserved - Moha Anisa - 1 -
Avantpropos
Ce livre est destiné aux étudiants et aux développeurs débutants dans l’utilisation de WinDev et WinDev Mobile et
WebDev. L’ambition de cet ouvrage est de permettre aux lecteurs de progresser au fur et à mesure des chapitres de
façon simple et régulière.
Le cas traité est conceptuellement simple, mais riche de notions qui permettent d’aborder la méthode MERISE, la
manipulation de données via les bases de données de type monoposte et Client/serveur, et la mobilité via la création
d’une application pour Pocket PC et pour Android. Certains points théoriques seront abordés et aussitôt intégrés.
L’apprentissage sera itératif, les notions importantes sont abordées plusieurs fois au cours du déroulement de
l’ouvrage. Les composants visuels essentiels (combobox,
tables mémoires, tables fichiers, listes...) seront étudiés et
mis en oeuvre. Cet ouvrage sera axé en priorité sur l’étude des bases de données et permettra donc ainsi aux lecteurs
de traiter la majorité des cas simples ou élaborés de liaison aux données.
WinDev sera le support d’apprentissage, car les nombreux outils qui le composent permettront aux lecteurs de gérer le
cycle de développement sans avoir recours à des logiciels de sociétés tierces.
Le langage de programmation de WinDev, le Wlangage est très algorithmique. Cette façon de coder permet d’acquérir
plus facilement la logique nécessaire à tout développeur.
Ce livre a été conçu avec la version 15 de WinDev, mais l’auteur s’est efforcé de rester générique. Les composants et
leurs codes associés devraient fonctionner depuis la version 9 de WinDev sans nécessiter de grandes modifications.
1. Télécharger certains éléments constitutifs du projet
Les exemples présentés dans l’ouvrage sont en téléchargement sur le site de l’éditeur.
© ENI Editions - All rigths reserved - Moha Anisa - 1 -
Présentation du projet
Pour permettre une immersion totale, rien de mieux qu’un projet à réaliser de bout en bout. C’est ce que vous propose
ce livre au fil des pages. De façon simple et progressive, une étude de cas sera construite pas à pas. Des points plus
théoriques seront intégrés au projet et appliqués de façon pratique.
Le cas de départ est le suivant : un restaurateur souhaite rationaliser sa carte pour connaître le coût de chaque menu
et de chaque plat. Donc, rien de difficile pour démarrer. Il désire juste un petit logiciel qui, en plus, lui imprime
automatiquement la liste des serveurs.
Ceci va être notre premier challenge. Premier car le restaurateur, satisfait du programme, va demander quelques
ajouts dont le plus important sera de gérer le chiffre d’affaires généré par les serveurs et serveuses, mais nous y
reviendrons... Chaque chose en son temps !
© ENI Editions - All rigths reserved - Moha Anisa - 1 -
Méthode d’analyse : la méthode Merise
Tout projet se doit de commencer par une analyse préalable, surtout lorsqu’il met en oeuvre des bases de données. Il
existe plusieurs méthodes, nous allons nous aider d’une partie de l’une d’elles, qui est assez bien implémentée sous
WinDev : Merise.
Ce livre n’a pas pour ambition d’être exhaustif sur la méthode Merise, juste l’essentiel sera vu, permettant ainsi d’être
à l’aise avec l’éditeur d’analyse de WinDev. Pour tous ceux qui désirent aller plus loin, il existe d’excellents ouvrages
traitant de façon globale la méthode Merise.
1. Présentation
MERISE est un acronyme signifiant Méthode d’Étude et de Réalisation Informatique par les SousEnsembles
ou pour
les Systèmes d’Entreprises.
La méthode Merise a comme objectif d’aider, de guider les Ssii, dans leurs phases d’analyses, de conception et dans
le développement de l’applicatif.
Nous devons la création, l’étude et la mise en place de cette méthode à une équipe de chercheurs et d’ingénieurs
Aixois (JeanLouis
le Moigne, Hubert Tardieu, Dominique Nancy, Henry Heckenroth, Daniel Pasco, Bernard Espinasse)
qui en posèrent les bases dans le milieu des années 1970.
Le ministère de l’industrie vit en cette méthode un excellent moyen pour standardiser et rationaliser les rapports
existant entre les administrations et ses soustraitants.
C’est pourquoi il finança quelque temps les recherches sur la
méthode Merise. Le challenge était de pouvoir proposer des outils ou méthodologies permettant aux donneurs
d’ordre et aux développeurs de se comprendre et ainsi de mieux appréhender chacun de leurs côtés, avec leur
propre culture professionnelle, l’ensemble du Système d’Information (ou SI).
La méthode Merise présente comme avantage indéniable de permettre une définition claire, précise, de l’ensemble du
Système d’Information et d’en définir correctement le périmètre.
Cette méthode est actuellement enseignée aux étudiants se dirigeant vers des études informatiques, mais aussi aux
étudiants voulant faire des études comptables. Nous retrouvons là le besoin qui avait poussé le ministère de
l’Industrie à investir dans cette méthode. En effet, dans les petites et moyennes entreprises, qui n’ont souvent pas
de services informatiques, c’est le comptable qui est l’interlocuteur privilégié entre l’entreprise et le prestataire de
services informatiques.
Dominique Nancy, Henry Heckenroth rejoignirent Bernard Cohen créateur de la société Cécima, distributrice du logiciel
Win’Désign qui permet de concevoir les différentes phases d’un projet piloté par la méthode Merise.
2. Principes
Merise permet de modéliser le Système d’Information (un projet en l’occurrence) par une approche globale de celuici,
tant en ce qui concerne les données que les traitements. Merise segmente et propose une description du système
informatique par niveau.
Ce niveau permet de décrire le “Quoi” sans se soucier de la technique ni d’aucune autre contrainte. Le modèle utilisé,
pour la représentation des données, se nomme le Modèle Conceptuel des Données (MCD). Le modèle utilisé, pour
représenter les traitements, est le Modèle Conceptuel des Traitements (MCT).
Ce niveau permet de décrire le “Qui fait quoi et où”. Il modélise le type de fonctionnement (temps réel ou différé), la
répartition des traitements entre l’utilisateur et l’ordinateur, l’implantation des données et des traitements par unité
fonctionnelle.
Pour les données, le modèle Merise se nomme le Modèle Organisationnel des Données (MOD).
Pour les traitements, c’est le Modèle Organisationnel des Traitements (MOT).
Merise décrit le système informatique du plus abstrait (MCD) au plus concret (le niveau logique et physique).
Le niveau logique permet de décrire, de la manière la plus fiable, les fichiers de données tels qu’ils seront utilisés par
les différents moteurs de base de données. C’est le “comment”.
Le niveau conceptuel
Le niveau organisationnel
Le niveau logique et physique
© ENI Editions - All rigths reserved - Moha Anisa - 1 -
Le modèle retenu s’appelle le Modèle Logique des Données (MLD) ou aussi le Modèle Relationnel des Données
(MRD).
Pour le côté physique, aucun formalisme n’existe puisqu’il dépend du système de base de données qui va
implémenter les informations.
Voici un tableau récapitulatif :
3. Mise en oeuvre
WinDev permet de modéliser en merise, avec les deux modèles principaux le MCD et le MLD (modifié pour intégrer
certaines contraintes ou règles). Nous n’utiliserons que ces deux modèleslà.
Nous commencerons par l’abstrait (le
MCD) pour finir par le concret (la génération physique des données) en passant par le MLD.
Niveaux Données Traitements
Conceptuel Modèle Conceptuel des Données Modèle Conceptuel des Traitements
Organisationnel Modèle Organisationnel des Données Modèle Organisationnel des Traitements
Logique Modèle Logique des Données Modèle Logique des Traitements
Physique Modèle Physique des Données Modèle Opérationnel et Physique des
Traitements
- 2 - © ENI Editions - All rigths reserved - Moha Anisa
Le modèle conceptuel des données
Le MCD introduit la notion d’entités, de relations et de propriétés.
1. Les propriétés
Les propriétés sont les informations de base du Système d’Information.
Un client possède un numéro de client, un nom, un prénom, habite à une adresse précise, etc. Ces informations
essentielles élémentaires sont des propriétés.
Les propriétés disposent d’un type. Elles peuvent être numériques, représenter une date ; leur longueur peut être
aussi définie, par exemple : le nom est une propriété de type alphabétique et de longueur 50, c’estàdire
que la
valeur saisie ne comportera aucun chiffre et ne dépassera pas cinquante caractères.
Les types ne sont pas décrits au niveau conceptuel, car ce niveau est trop proche de la définition du système
physique. Nous y reviendrons plus tard.
2. Les entités ou objets
Comme il est aisé de le constater, les clients sont définis par certaines propriétés (numéro, nom, prénom...). Le fait de
les regrouper amène naturellement à créer une entité Clients. Le symbolisme retenu est le suivant :
L’une de ces propriétés a un rôle bien précis, c’est l’identifiant nommé aussi la clé.
L’identifiant permet de connaître de façon sûre et unique l’ensemble des propriétés qui participent à l’entité. Par
exemple, le fait de connaître la ville d’un client permetil
de connaître son nom ? La réponse est non. La connaissance
du nom du client permetelle
de connaître sa ville ? La réponse est toujours non, car en cas d’homonymie la confusion
entre un Durand Max et un Durand Raymond est totale.
Il faut donc trouver, ou inventer, une propriété qui lorsque sa valeur est connue permet la connaissance de
l’ensemble des valeurs qui s’y rattache de façon formelle.
Ainsi, lorsque le numéro du client est connu, son nom, son prénom et toutes les valeurs des autres propriétés qui s’y
rattachent sont connues de façon sure et unique.
Au niveau du formalisme, cette propriété se souligne. Voici le schéma de l’entité Clients modifié.
3. Les relations ou associations
L’identifiant
© ENI Editions - All rigths reserved - Moha Anisa - 1 -
Nous avons vu que les entités regroupaient un ensemble d’informations élémentaires. Les entités sont souvent liées
entre elles. Par exemple : Un client peut commander des articles. Si nous analysons cette phrase, on distingue deux
entités (clients et articles) et un verbe (commander) qui indique un lien entre clients et articles. Formalisons cette
phrase avec Merise.
Voilà la première étape ; première, car la lecture du schéma doit être améliorée en incorporant une notion
importante : les cardinalités.
Elles expriment le nombre de fois où l’occurrence d’une entité participe aux occurrences de la relation.
Dans notre exemple, on peut se poser les questions suivantes :
l Combien de fois au minimum un client peut commander un article ?
l Combien de fois au maximum un client peut commander un article ?
À la première question, nous pouvons répondre qu’un client, pour être client, doit commander au moins un article.
À la deuxième question, nous pouvons répondre qu’un client peut commander plusieurs articles.
Voici comment symboliser cet état :
Le “n” représente la notion de “plusieurs”, ici nous avons représenté le fait qu’un client peut commander un ou
plusieurs articles.
Il faut que nous nous posions les mêmes questions pour l’article :
l Combien de fois au minimum un article peut être commandé par un client ?
l Combien de fois au maximum un article peut être commandé par un client ?
Pour le minimum, nous pouvons l’interpréter de la façon suivante :
l Aton
des articles qui ne peuvent jamais être commandés ?
Les cardinalités
- 2 - © ENI Editions - All rigths reserved - Moha Anisa
Si nous répondons oui, dans ce cas la cardinalité minimale est 0.
Pour le maximum :
l Aton
des articles qui peuvent être commandés plusieurs fois ?
Nous pouvons espérer que oui, dans ce cas la cardinalité maximale sera N.
Voici le schéma finalisé :
La cardinalité minimale (0 ou 1) exprime le nombre de fois minimum qu’une occurrence d’une entité participe aux
occurrences d’une relation.
La cardinalité maximale (1 ou N) exprime le nombre de fois maximal qu’une occurrence d’une entité participe aux
occurrences de la relation.
Si le maximum est connu, il faut inscrire sa valeur. Par exemple, si le client n’a le droit, dans les règles de
gestion, de commander qu’un maximum de 3 articles en tout et pour tout, dans ce caslà
les cardinalités
s’exprimeront de cette façon : 1,3.
Modélisons le fait qu’une mère élève des enfants.
Nous avons deux entités Mères et Enfants :
Une relation “Elever” :
Des cardinalités :
l Une mère peut élever un ou plusieurs enfants.
l Un enfant peut être élevé par une et une seule mère.
Définitions
Autre exemple
© ENI Editions - All rigths reserved - Moha Anisa - 3 -
Bien sûr, tout est question d’interprétation. Au sein d’une équipe de développement, il peut y avoir des
divergences de point de vue. Pour les cardinalités, il faut être le plus logique possible, se référer aux règles
de gestion édictées par le commanditaire de l’application et se rappeler la maxime suivante : qui peut le plus, peut
le moins.
4. Relations porteuses
Une relation est dite porteuse lorsqu’elle contient des propriétés.
Imaginons que l’on veuille connaître la quantité d’articles commandés par client, nous nous rendons compte qu’il faut
utiliser une nouvelle propriété Quantité. Cette nouvelle propriété dépend de clients, d’articles ou des deux ? La
bonne réponse est que Quantité dépend des deux entités. Voici le modèle conceptuel correspondant :
Nous pouvons interpréter ce schéma de la façon suivante : le client X a commandé la quantité Y d’articles Z. Si nous
désirons connaître la date d’achat, il nous suffit de créer une entité Date à la relation commander.
5. Relations réflexives
Une relation réflexive est une relation d’une entité sur ellemême.
Par exemple, on désire modéliser le fait qu’un employé peut diriger d’autres employés.
Définition
Définition
- 4 - © ENI Editions - All rigths reserved - Moha Anisa
À la lecture de ce schéma, nous interprétons donc qu’un employé peut diriger zéro ou plusieurs personnes et qu’un
employé est dirigé par un et un seul autre employé.
6. Règles d’usages
l Toute entité doit comporter un identifiant.
l Toutes les propriétés de l’entité dépendent fonctionnellement de l’identifiant, c’estàdire
que, connaissant la
valeur de l’identifiant, nous connaissons de façon sûre et unique la valeur des propriétés associées. Si nous
recherchons le client numéro 5, nous devons récupérer les propriétés correspondantes, soit le nom et le
prénom du client numéro 5, et pas celles d’une autre personne.
l Le nom d’une propriété ne doit apparaître qu’une seule fois dans le modèle conceptuel des données. Si nous
établissons une entité Clients et une nommée Prospects, nous ne devons pas retrouver la propriété Nom
dans les deux entités. Il faut préférer la dénomination suivante nom_client et nom_prospect.
l Les propriétés résultantes d’un calcul ne doivent pas apparaître dans le modèle conceptuel des données.
© ENI Editions - All rigths reserved - Moha Anisa - 5 -
Le modèle logique des données
Le Modèle Logique des Données (MLD) est la suite normale du processus Merise. Son but est de nous rapprocher du
modèle physique. Pour cela, nous partons du Modèle Conceptuel des Données et nous lui enlevons les relations, mais
pas n’importe comment. Voici la procédure à suivre.
1. Cas (0,N), (1,1) ou (1,N), (0,1)
Modèle Conceptuel de départ :
Nous devons supprimer la relation Élever, cela se réalise de façon tout à fait mécanique. L’entité ayant la cardinalité
de type 1,1 ou 0,1 absorbe l’identifiant de l’entité la plus forte (0,N ou 1,N). Cet identifiant est alors appelé la clé
étrangère.
Modèle Logique des données découlant du Mcd précédent :
Illustrons par un cas concret
Béatrice BAPTISTE a trois enfants : Amandine, Cédric, Sylvain.
Patricia AUGUY a deux enfants : Mathilde et Lucie.
Sandrine BAPTISTE a quatre enfants : Ophélie, Olivia, Lucie et Tom.
Voici le contenu du fichier de données Mères.
Maintenant, illustrons le fichier de données Enfants.
© ENI Editions - All rigths reserved - Moha Anisa - 1 -
Si nous désirons connaître les enfants de Patricia AUGUY, il nous faut concevoir une procédure qui réalise une
recherche dans le fichier Mères, qui récupère l’identifiant de la mère recherchée. Ensuite, la procédure parcourt le
fichier Enfants et, chaque fois qu’elle rencontre l’identifiant de la mère, dans la rubrique clé étrangère
#Numéro_Mère, affiche la ligne correspondante.
Comme nous le voyons, le principe général est très simple à comprendre.
2. Cas (0,N), (0,N) ou (1,N), (1,N)
Reprenons le modèle conceptuel des données suivant :
Dans le cas où la cardinalité maximale est N de chaque côté de la relation, celleci
se transforme en entité et absorbe
les identifiants de chaque entité reliée. Les identifiants ainsi absorbés forment la nouvelle clé de l’entité. Cette
nouvelle clé est donc formée par la concaténation des clés étrangères des entités reliées.
Voici la représentation des fichiers de données :
La concaténation des deux clés étrangères doit être unique. Les couples de clés sont donc (1,1), (2,2),
(2,3).... Nous arrivons donc à la conclusion suivante : le client 1 qui adore le Roquefort ne pourra pas en
acheter plusieurs fois. Cette situation est anormale, je vous rappelle que “qui peut le plus, peut le moins”.
- 2 - © ENI Editions - All rigths reserved - Moha Anisa
Modifions le Modèle conceptuel des données.
Le modèle logique des données qui en découle sera :
La nouvelle représentation du fichier commande est maintenant ainsi :
Nous avons apporté une solution à notre problème initial. Cependant, le même client ne pourra pas acheter deux fois
le même fromage le même jour. Nous verrons par la suite comment régler ce point conceptuel dans la pratique.
3. Modèle logique des données sur une relation réflexive
Reprenons ce MCD :
Les règles de passage du MCD au MLD s’appliquent toujours aussi mécaniquement.
© ENI Editions - All rigths reserved - Moha Anisa - 3 -
Regardons la représentation du fichier de données.
Règles simples de passage du MCD au MLD :
l L’entité, qui possède la cardinalité maximale égale à 1, recevra l’identifiant ou les identifiants des entités
ayant les cardinalités maximales les plus fortes.
l Les relations, ayant toutes leurs entités reliées avec des cardinalités maximales supérieures à 1, se
transformeront en entité en absorbant les identifiants des entités jointes.
l Toute relation porteuse de propriétés se transformera en entité et absorbera comme clé étrangère les
identifiants des entités qui lui sont liées.
- 4 - © ENI Editions - All rigths reserved - Moha Anisa
Conclusion
Nous venons d’étudier les bases essentielles nous permettant d’aborder sereinement le développement de logiciels,
s’appuyant sur des bases de données. Au prochain chapitre, nous rentrerons de façon plus concrète dans l’étude du
projet.
© ENI Editions - All rigths reserved - Moha Anisa - 1 -
Étude du projet
Le projet, les restaurateurs nous excuseront, sera très simplifié par rapport à de vrais besoins informatiques qu’ils
auraient pu exprimer. Il n’a qu’une valeur pédagogique et permettra de nous immerger progressivement dans la
gestion et la manipulation des données.
1. Présentation
Nous voulons gérer les recettes d’un restaurant. À la fin du service, le restaurateur souhaite saisir toutes les fiches
papier des serveurs pour les archiver. Les serveurs prennent les commandes de tables. Chaque commande peut
porter sur des plats, des menus et contenir des boissons. Un plat possède un type, ce type indique si le plat est une
entrée, un plat de résistance ou un dessert. Les boissons aussi possèdent un type : apéritifs, eau minérale, vin
rouge, vin rosé... Les menus sont une association de plats existants et de boissons référencées.
© ENI Editions - All rigths reserved - Moha Anisa - 1 -
Réalisation du modèle conceptuel
1. Détermination des entités
Ce cas est relativement simple, notre première étape va être de déterminer les entités.
À la lecture du sujet, nous pouvons extraire les entités suivantes :
l Serveurs
l Tables
l Commandes
l Plats
l Type des plats
l Boissons
l Type des boissons
l Menus
Voici représentées les entités nécessaires au fonctionnement de notre projet. Nous installerons les propriétés
ensuite.
Nous pouvons, dès à présent, réfléchir sur les propriétés constituantes de l’entité serveur. Elle aura un identifiant
que nous nommerons Idserveur, un nom, un prénom, une adresse, un code postal, une ville et un numéro de
téléphone. Nous pourrions bien sûr rajouter des informations concernant le serveur telle sa date d’embauche, son
mail, mais nous n’en n’inscrirons pas plus volontairement.
Les tables sont repérées par un identifiant : Idtable, une désignation, une capacité.
L’entité serveurs
L’entité tables
© ENI Editions - All rigths reserved - Moha Anisa - 1 -
Les boissons auront ellesaussi
un identifiant : Idboissons, une désignation, nous rajouterons un prix d’achat
unitaire et un prix de vente unitaire.
Cette entité comportera un identifiant : IdTypeBoisson et une désignation.
Les plats auront un identifiant : Idplats, un libellé, un prix de revient, un prix de vente.
Cette entité comprendra un identifiant : IdTypePlat et une désignation.
Cette entité sera constituée des propriétés suivantes : Idmenu qui sera l’identifiant, le libellé, le prix de vente.
Cette entité ne comporte que l’identifiant de la commande : Idcommande et sa date.
Voici une représentation graphique de notre ébauche du modèle conceptuel. Il est à noter que certains noms de
propriétés ont été modifiés pour ne pas être redondants.
2. Détermination des relations
Nos entités étant définies, penchonsnous
sur la représentation des relations. Nous sentons bien qu’entre Boissons
et Type de boisson, il existe un lien très fort d’appartenance. Nous pouvons dire, qu’une boisson possède un et un
seul type de boissons et qu’à un type de boissons précis, il existe aucune ou plusieurs boissons correspondantes.
Voyons entre Plats et Type de plat ; en fait, nous nous retrouvons devant le même cas de figure qu’entre Boissons
et Type de boisson. Nous pouvons donc dire qu’un plat possède un et un seul type de plats et qu’à un type de plats
précis, il existe aucun ou plusieurs plats correspondants.
L’entité boissons
L’entité type de boisson
L’entité plats
L’entité type de plat
L’entité menus
L’entité Commandes
- 2 - © ENI Editions - All rigths reserved - Moha Anisa
Les menus sont composés de plats et de boissons, il existe alors une relation entre menus et plats et entre menus et
boissons. Un menu peut comporter au minimum aucune boisson et au maximum plusieurs, une boisson peut faire
partie d’aucun ou de plusieurs menus. Un menu peut comporter au minimum aucun plat (que des boissons...) et au
maximum plusieurs, un plat peut faire partie d’aucun ou de plusieurs menus.
Le noeud central de l’application est l’entité Commandes. En effet, elle est en relation avec beaucoup d’autres
entités.
Une commande est réalisée par un serveur : il y aura donc une relation entre Commandes et Serveurs.
La commande concerne une table. Cela génère une relation entre Commandes et Tables.
La commande peut comporter des boissons, des menus, des plats en différentes quantités. Notre Modèle conceptuel
comportera de ce fait des liens entre Commandes et Boissons, Commandes et Menus, Commandes et Plats.
Modélisons ces relations pas à pas.
© ENI Editions - All rigths reserved - Moha Anisa - 3 -
Une commande est réalisée par un et un seul serveur. Un serveur peut réaliser zéro ou plusieurs commandes. En
effet, un serveur peut, pour diverses raisons, ne pas prendre de commandes un jour donné. La logique voudrait qu’il
existe une cardinalité de type 1,n. Un serveur n’ayant comme objectif que celui de la prise de commandes. Or, brider
l’analyse empêche les évolutions futures du Système d’Information. Il est aussi notable que les logiciels de génie
logiciel, tel WinDev, intègrent des mécanismes natifs contrôlant la gestion des données telles que décrites dans
l’analyse. Ces mécanismes sont "débrayables" mais s’ils sont actifs, dans notre exemple, cela va produire l’effet
suivant :
Nous ne pourrons pas ajouter de serveur dans notre base de données car, au même instant, ils n’auront pas de
commandes associées ! Avouez que cela est fortement gênant !
Donc, pour pallier ce désagrément, nous positionnerons une cardinalité de type 0,n.
Une commande ne concerne qu’une et une seule table et une table peut concerner zéro ou plusieurs commandes.
Notez, qu’ici, nous employons le même principe du "Qui peut le plus, peut le moins" en ne bloquant pas la cardinalité
de l’entité Table vers Commande à 1,n.
- 4 - © ENI Editions - All rigths reserved - Moha Anisa
Une commande peut être constituée de zéro ou de plusieurs boissons dans des quantités à définir. Une boisson peut
être présente dans une commande, au minimum zéro fois ou au maximum plusieurs fois dans des quantités
différentes.
Une commande peut être formée de zéro ou de plusieurs menus dans des quantités précises. Un menu peut faire
partie de zéro ou plusieurs commandes dans des quantités à définir.
© ENI Editions - All rigths reserved - Moha Anisa - 5 -
Une commande peut contenir zéro ou plusieurs plats avec certaines quantités. Un plat peut être contenu zéro fois ou
plusieurs fois dans un menu avec des quantités définies lors de la commande.
Voici une vue totale du modèle conceptuel de notre application :
- 6 - © ENI Editions - All rigths reserved - Moha Anisa
Réalisation du modèle logique
À partir du modèle conceptuel, il va nous être facile d’aller jusqu’au modèle logique. Voici pour rappel les règles
élémentaires :
l Toute relation porteuse de propriétés absorbe les identifiants des entités qui lui sont liées.
l Toute relation, dont les cardinalités maximum sont à n, absorbe les identifiants des entités générant le n.
l Toute association, ayant une cardinalité maximum égale à un, absorbe comme clé étrangère l’identifiant des
entités reliées ayant une cardinalité maximale supérieure à un.
Transformons pas à pas notre modèle conceptuel, en commençant par cette partie de notre modèle conceptuel des
données.
Dans ce cas, l’identifiant IdTypeBoisson va être absorbé par l’entité Boissons.
Pour cette partie, nous nous retrouvons dans le même cas que précédemment.
Le résultat sera :
Pour ce casci
:
© ENI Editions - All rigths reserved - Moha Anisa - 1 -
La relation Comporter va devenir une entité et intégrer les identifiants des entités reliées, voici le résultat :
Le processus est simple à comprendre et sera le même pour la relation Composer, voici le modèle logique complet de
notre projet.
- 2 - © ENI Editions - All rigths reserved - Moha Anisa
© ENI Editions - All rigths reserved - Moha Anisa - 3 -
Conclusion
Notre application comportera treize fichiers de données. Maintenant que la phase d’analyse est réalisée, nous allons
transposer le résultat de notre réflexion dans WinDev. Il est bien évident que notre programmation ne doit pas être
statique par rapport à notre analyse. L’analyse est une base de travail qui peut être modifiée ou étendue au fur et à
mesure de notre développement, de notre réflexion ou des impératifs de développement.
© ENI Editions - All rigths reserved - Moha Anisa - 1 -
L’éditeur d’analyse de WinDev
L’éditeur d’analyse de WinDev est le centre névralgique de nos données. C’est dans l’éditeur d’analyse qu’est décrite
la structure des fichiers qui vont être utilisés par l’application. L’éditeur d’analyse permet de réfléchir à la structure des
données, en offrant un espace vierge où seront décrit les fichiers. Toute modification dans l’éditeur d’analyse peut être
répercutée au niveau physique sur les fichiers de données, mais aussi dans le code de l’application. Ainsi, si le
programmeur décide de changer le nom d’une propriété, cette modification sera répercutée sur le fichier physique et
WinDev parcourra tout le code du projet pour le synchroniser avec l’analyse.
Si, par exemple, dans le processus de développement, la rubrique nomcli est utilisée et que, sous l’éditeur d’analyse,
une modification qui change le nom de la rubrique nomcli en nom_client est apportée ; toutes les occurrences de
nomcli trouvées dans les lignes de code seront modifiées en nom_client. Peu d’outils de développement permettent
une aussi grande aisance et une aussi grande intégration dans la manipulation des données, du domaine concret
jusqu’au domaine physique.
WinDev permet de commencer par la conception du modèle conceptuel des données ou par la conception d’un pseudomodèle
logique des données. Ce dernier est mieux intégré à WinDev. De plus, il faut savoir qu’il est possible de passer
du mcd au mld et du mld au diagramme des classes UML.
La modélisation de l’analyse choisie par PC SOFT est un mélange entre le Modèle conceptuel des données et le
modèle logique. En effet, les liens et les cardinalités entre les entités sont gardés dans l’analyse.
1. Création de l’analyse du projet
Pour créer l’analyse du projet, deux possibilités s’offrent à nous, soit démarrer par la création du modèle conceptuel
des données, soit créer l’analyse proprement dite c’estàdire
décrire nos fichiers et leurs relations selon un modèle
propre à WinDev et ressemblant à un modèle conceptuel avec des liens.
Dans la première partie (Du modèle conceptuel du projet à l’analyse), sera exposé le processus de création de
l’analyse en débutant par le modèle conceptuel des données. La deuxième partie étudiera la conception de l’analyse
avec l’éditeur d’analyse WinDev. Le choix est laissé au lecteur de débuter soit par un mcd soit directement, en créant
un modèle d’analyse directement dans l’éditeur d’analyse WinDev. L’expérience prouve que très peu de développeurs
démarrent par le modèle conceptuel. En général, c’est le pseudomodèle
logique qui a leurs faveurs, il est donc
conseillé de préférer la méthode décrite dans la deuxième partie (Création du pseudomodèle
logique (l’analyse)).
2. Du modèle conceptuel du projet à l’analyse
Nous allons entrer dans le vif du sujet et commencer à créer le modèle conceptuel des données. Cette étape peut
être remplacée par la création du pseudomodèle
logique des données. Au risque de faire une répétition, avec
l’expérience, les développeurs démarrent directement avec le modèle d’analyse proposé par WinDev.
Nous allons lancer WinDev. Cette fenêtre devrait apparaître à l’écran :
© ENI Editions - All rigths reserved - Moha Anisa - 1 -
Nous allons créer un nouveau projet, il faut donc sélectionner : Créer un projet.
Un assistant se déclenche et va nous guider tout au long de la phase d’initialisation du projet.
- 2 - © ENI Editions - All rigths reserved - Moha Anisa
Notre projet doit avoir un nom, nous allons le nommer RestoCaisse. Nous pouvons mettre une description qui servira
dans le dossier que WinDev peut imprimer. Ce dossier est précieux, car il contient toutes les informations de notre
projet : l’analyse, les fenêtres, les codes, les requêtes, les états... Il est paramétrable et peut être donné à un
nouveau programmeur pour l’immerger plus rapidement dans un développement, à un commanditaire pour le tenir
informé de l’avancement d’un projet ou servir de maquette pour un appel d’offres.
Nous pouvons valider cet écran en cliquant sur le bouton nous permettant de passer à la fenêtre suivante.
© ENI Editions - All rigths reserved - Moha Anisa - 3 -
Cet écran permet de constituer une base documentaire liée au projet. Ceci peut être utile si, lors de la phase
d’analyse des notes manuscrites, des documents particuliers ont été collectés et que vous souhaitiez les centraliser.
Pour notre projet, nous n’utiliserons pas de documents annexes, vous pouvez donc cliquer sur le bouton permettant
d’aller à l’écran suivant.
- 4 - © ENI Editions - All rigths reserved - Moha Anisa
Avec WinDev il est possible de générer :
l un programme exécutable Windows,
l un programme Java,
l une bibliothèque de fonctions ou de procédures,
l un composant (application WinDev intégrable dans une autre application),
l un service Web,
l un assemblage ou un exécutable .Net.
L’applicatif que nous allons développer sera un exécutable autonome Windows, nous allons sélectionner Exécutable
et cliquer sur le bouton Suivant.
© ENI Editions - All rigths reserved - Moha Anisa - 5 -
Comme vous le constatez, il est tout à fait possible avec WinDev de développer des exécutables destinés aux platesformes
fonctionnant sous Linux. Nous, nous développons pour Windows, gardez le choix par défaut et allez sur
l’écran suivant.
- 6 - © ENI Editions - All rigths reserved - Moha Anisa
Cette fenêtre peut, en fonction de vos réponses, précalibrer l’environnement de développement et proposer des
choix stratégiques par défaut. Dans notre cas, laissons les choix par défaut et passons à l’écran suivant.
Vous pouvez indiquer une date de livraison prévue de votre projet, cette date de fin est utile pour les chefs de
projets. Ils peuvent ainsi avoir des repères fiables sur l’avancement du projet, grâce à l’ensemble des outils de
profilage de projets et de gestion d’équipes inclus avec WinDev. Dans notre cas, comme nous ne sommes pas
pressés, contentonsnous
de passer à l’écran suivant.
© ENI Editions - All rigths reserved - Moha Anisa - 7 -
WinDev intègre une gestion de travail collaboratif. Dans certaines entreprises, il est possible de rencontrer des cas
où certains développeurs travaillent in situ, d’autres travaillent chez eux et certains dans des filiales. WinDev peut
permettre à toutes ces personnes de travailler ensemble, en synchronisant le projet, grâce à ses outils collaboratifs.
Pour notre projet, laissons les options par défaut sur cette fenêtre et passons à la fenêtre d’après.
- 8 - © ENI Editions - All rigths reserved - Moha Anisa
Imaginons que vous soyez chef de projets et que vous souhaitiez éclater le projet sur plusieurs équipes de
développements, ayant chacune des tâches bien précises, datées et quantifiées à réaliser. Dans ce caslà,
vous
pourriez définir ces rôles par équipe et, ainsi, avoir un suivi d’une granularité plus fine. Dans notre cas, nous
choisirons l’option Non, ne pas décrire l’équipe et passerons à l’écran suivant.
© ENI Editions - All rigths reserved - Moha Anisa - 9 -
Le Gestionnaire de sources ou GDS est une fonctionnalité qui peut s’avérer très vite indispensable. Imaginez le
scénario suivant : vous travaillez à plusieurs sur le même projet, vous développez des parties différentes et parfois
empiétez sur une partie du projet d’un de vos collègues. Imaginez les risques de désynchronisations que cela peut
engendrer dans le cas où, au moment où vous enregistrez le code de votre fenêtre celleci
est écrasée par celle que
votre collègue enregistre ensuite ! Imaginons aussi qu’un des développeurs travaille de façon itinérante, il peut
développer dans vos locaux, chez lui ou chez le client. Comment faire pour qu’il ait accès aux sources, qu’il puisse
réintégrer les modifications et tout cela depuis n’importe quel endroit et sans problème. Tout cela est possible avec le
GDS. Le GDS centralise les sources du projet, gère les extractions de portions de codes, les réintégrations, les
différentes versions, etc. Pour notre projet nous n’utiliserons pas le GDS, nous pouvons donc passer à l’écran suivant.
- 10 - © ENI Editions - All rigths reserved - Moha Anisa
La charte de programmation permet de préfixer les champs et variables créés dans le projet. Nous n’allons pas
utiliser de charte de programmation, il faut donc modifier le choix proposé par défaut et aller sur l’écran suivant.
© ENI Editions - All rigths reserved - Moha Anisa - 11 -
La charte graphique permet d’homogénéiser l’ensemble des objets graphiques. L’avantage est de proposer une
interface agréable et esthétique sans efforts de graphisme. Choisissez une charte qui vous convienne et passez à
l’écran suivant.
WinDev vous permet de préfixer et de contrôler la taille des fenêtres composant votre projet. Dans notre cas, nous
allons laisser les choix par défaut et passer à l’écran suivant.
- 12 - © ENI Editions - All rigths reserved - Moha Anisa
WinDev permet d’internationaliser un projet facilement. Si un développeur désire vendre son programme dans
plusieurs pays, il coche les langues correspondantes. À chaque libellé d’un bouton par exemple, il pourra l’écrire dans
les différentes langues choisies. S’il ne connaît que le français, PC SOFT propose un logiciel qui extrait les libellés
français. Le traducteur n’a qu’à les traduire dans l’outil et ils seront ensuite réinjectés dans le projet.
Comme notre projet ne comprendra que du texte en français et n’est pas destiné à être distribué dans un pays
étranger, nous nous contenterons de cliquer sur .
© ENI Editions - All rigths reserved - Moha Anisa - 13 -
L’analyse est le centre névralgique des données. C’est là que sont décrits les fichiers de données. Attention, l’éditeur
d’analyse ne conçoit pas physiquement les fichiers de données, il ne permet que leur description. Par contre, une fois
les fichiers de données créés, il est capable de répercuter les modifications de structures établies dans l’analyse sur
ceuxci.
Aussi surprenant que cela puisse paraître, nous allons sélectionner l’item Non, ne pas utiliser de base de données.
En fait, si l’on avait sélectionné le premier choix Oui, créer une nouvelle base de données, WinDev ne nous aurait
pas donné le choix et aurait démarré sur un modèle logique des données. Passons à l’écran suivant.
- 14 - © ENI Editions - All rigths reserved - Moha Anisa
WinDev utilise souvent les assistants. Dans cet ouvrage, les assistants seront menés à terme. Il faut savoir que
régulièrement le bouton Terminer apparaît avant la fin de l’assistant. Cela signifie que l’on peut directement sortir de
la procédure d’assistanat, WinDev finira la création de l’objet avec la configuration la plus courante.
Finissons cette série de questions en cliquant sur l’icône .
© ENI Editions - All rigths reserved - Moha Anisa - 15 -
L’enveloppe du projet est maintenant définie. Nous allons aller directement dans l’éditeur de projets et choisir
Editeur de WinDev.
Maintenant, le projet est correctement configuré, nous allons pouvoir commencer le modèle conceptuel des données.
Pour cela, il faut cliquer sur le menu Fichier puis sur Nouveau. Une fenêtre de choix apparaît.
En passant la souris sur la zone Données, vous verrez surgir Analyse (MCD) dans la marguerite, cliquez sur Analyse
(MCD), un nouvel assistant apparaît.
- 16 - © ENI Editions - All rigths reserved - Moha Anisa
Nous allons passer à l’écran suivant.
Sur cet écran, nous allons donner un nom à l’analyse (RestoCaisse), modifier le répertoire proposé par défaut par
celuici
: C:\Mes Projets\RestoCaisse\Analyse et donner une description.
© ENI Editions - All rigths reserved - Moha Anisa - 17 -
Sur cette fenêtre, nous pouvons nous rendre compte que WinDev accorde plus d’importance au modèle logique des
données qu’au modèle conceptuel. Cela est tout à fait compréhensible, car le modèle conceptuel est abstrait
contrairement au modèle logique qui lui est concret et donc plus facilement compréhensible par un système
informatique. Cliquons sur Suivant.
Voilà, l’assistant a fini son travail et nous propose de créer notre première entité, nous entrons maintenant vraiment
dans l’analyse. Dans la rubrique Nom, saisissons Serveurs, idem pour Libellé et nous décocherons Identifiant
automatique, car nous allons gérer nousmêmes
les identifiants de toutes les entités.
Il ne faut pas oublier de valider en cliquant sur le bouton de validation .
Création des entités
- 18 - © ENI Editions - All rigths reserved - Moha Anisa
Maintenant, nous allons créer les propriétés de l’entité Serveurs. La colonne Id nous sert à indiquer si la propriété est
un identifiant, nous indiquerons qu’Idserveur sera de type identifiant automatique. L’intérêt de faire ceci et de nous
décharger de la gestion des identifiants, qui seront gérés par l’application de façon automatique et transparente. Les
identifiants automatiques sont des compteurs qui nous garantissent que nous n’aurons jamais deux fois le même
numéro dans ce champ. Les numéros de lignes supprimées sont considérés “brûlés”. Ils n’apparaîtront plus dans le
champ identifiant.
Nous allons donc créer l’entité avec les valeurs présentées cidessus
et valider.
Le code postal est déclaré comme une chaîne, car comme on ne fait pas de calculs sur les codes postaux, il
est inutile de les formater en numérique. De plus, rien ne nous dit que les codes postaux ne peuvent pas
contenir des lettres (voir certains pays).
Pour créer une nouvelle entité, il suffit de cliquer sur l’icône .
Ou cliquez sur le menu Entité puis Nouvelle entité.
Voici la représentation de l’entité Tables :
© ENI Editions - All rigths reserved - Moha Anisa - 19 -
Passons à l’entité Boissons :
Voici l’entité Type_de_boisson :
- 20 - © ENI Editions - All rigths reserved - Moha Anisa
Créons maintenant l’entité Plats.
Puis l’entité Type_de_plat.
© ENI Editions - All rigths reserved - Moha Anisa - 21 -
Passons à l’entité Menus.
Et enfin, l’entité Commandes.
- 22 - © ENI Editions - All rigths reserved - Moha Anisa
Nous devrions avoir cette représentation graphique de nos entités dans l’éditeur d’analyse :
Maintenant, il est temps de passer à la représentation des associations. La création des associations se réalise en
les dessinant. Cela est faisable en cliquant sur l’icône .
Une nouvelle fenêtre apparaît pour créer la première association, nous allons réaliser l’association entre Boissons et
Type_de_boisson :
Définitions des associations
© ENI Editions - All rigths reserved - Moha Anisa - 23 -
Validons par Ok et positionnons l’association entre ses deux entités comme représenté ici :
Nous allons maintenant tracer les relations, pour cela il est nécessaire de cliquer sur l’icône .
Pour réaliser la relation, il est nécessaire de positionner le crayon dans boissons, de cliquer et tenir appuyé. Ensuite,
il faut tirer le trait jusqu’à’à l’association Détenir et relâcher la souris. Voilà le résultat :
Comme il est visible, la cardinalité par défaut n’est pas celle dont nous avons besoin. Pour corriger en 1,1, il faut
réaliser un double clic sur 0,n. Cette fenêtre de choix apparaît :
Conception des relations et des cardinalités
- 24 - © ENI Editions - All rigths reserved - Moha Anisa
Inscrivons les mêmes choix qu’indiqués cidessus
puis validons. La cardinalité doit maintenant être modifiée.
De la même façon, créons un lien entre l’entité Type_de_boisson et l’entité Détenir.
Le résultat doit ressembler à ceci :
Maintenant que le principe est acquis et en se basant sur le modèle conceptuel étudié au chapitre précédent,
réalisons les associations entre les entités Boissons et Menus, Menus et Plats, Plats et Type_de_Plat, Tables et
Commandes, Serveurs et Commandes. Pour rappel, voici le modèle conceptuel :
Nous allons faire ensemble la relation entre Menus et Commandes. Créons une association identique à cellelà
:
© ENI Editions - All rigths reserved - Moha Anisa - 25 -
Nous validons, l’association est créée, positionnonsla
entre l’association Menus et Commandes. Cette association
est porteuse de propriétés, il faut donc la modifier en conséquence. Réalisons un clic droit dessus, le menu suivant
apparaît :
Sélectionnons l’item Propriétés de l’association. Cet écran apparaît, remplissonsle
comme indiqué puis validons.
- 26 - © ENI Editions - All rigths reserved - Moha Anisa
Le résultat doit être comme ceci :
Maintenant que nous avons vu comment créer des associations non porteuses de propriétés, des associations
porteuses, des cardinalités, nous avons suffisamment de connaissances pour finir notre modèle. Le résultat final
devra être comme ciaprès.
© ENI Editions - All rigths reserved - Moha Anisa - 27 -
n Il est grand temps d’enregistrer notre travail. Pour ceux qui ne l’auraient pas encore fait, il faut choisir l’option de
menu Fichier puis Enregistrer ou cliquer sur l’icône .
Il est extrêmement important que nous ayons exactement les mêmes informations au niveau du modèle
conceptuel des données ; car toute la suite va dépendre de ce que l’on vient de saisir. Donc, il est judicieux,
arrivé à ce point, d’être bien sûr que ce qui est inscrit dans l’éditeur d’analyse est identique à ce qui est représenté
sur le schéma cidessus.
L’étape la plus importante de notre cycle de développement vient d’être réalisée. Dégrader le modèle conceptuel en
pseudomodèle
logique, va être, pour l’éditeur d’analyse WinDev, un jeu d’enfants. Les règles que nous avons
étudiées dans les chapitres précédents vont être appliquées. Nous n’avons rien à réaliser si ce n’est que de donner
l’ordre à WinDev de construire le modèle logique des données, et à visionner le résultat obtenu.
Avant de lancer l’ordre de génération du Mcd, nous pouvons demander à WinDev de vérifier notre travail.
Comme illustré cidessus,
dans l’option de menu Analyse, activons le choix Vérifier le modèle conceptuel.
Logiquement, nous devrions avoir un message nous avertissant que le modèle a été vérifié avec succès.
Il est temps de générer le modèle logique. Retournons dans l’option de menu Analyse et cliquons sur Générer le
modèle logique (analyse).
Une fenêtre apparaît :
Création de l’analyse du projet
- 28 - © ENI Editions - All rigths reserved - Moha Anisa
Cliquons sur le bouton de validation. Après une brève phase de travail, WinDev annonce que la création du pseudo
modèle logique des données s’est bien déroulée.
Après mise en forme, nous devrions avoir ce résultat :
© ENI Editions - All rigths reserved - Moha Anisa - 29 -
Les liens contiennent des règles de gestion des données, si nous réalisons un double clic sur le lien entre Serveurs
et Commandes, voici ce qui apparaît :
Les règles de gestion
- 30 - © ENI Editions - All rigths reserved - Moha Anisa
Nous avons ici, la possibilité de modifier les cardinalités en répondant à des questions simples. Cliquons sur le bouton
permettant le passage à la fenêtre suivante, sans rien modifier, jusqu’à cet écran :
Les règles d’intégrité nous permettent de définir le comportement de WinDev face à certaines situations. Dans notre
cas, nous allons laisser les choix proposés par défaut, mais il est bon de savoir que nous pouvons intervenir sur les
comportements par défaut pour les adapter à nos besoins. Il ne faut pas hésiter à cliquer sur les deux combobox
pour voir les choix proposés. Cliquons sur pour terminer cette visite.
Nous pouvons le constater, le modèle logique généré par WinDev est identique à celui que nous avions réalisé au
chapitre précédent. Nous pouvons sauvegarder notre pseudomld.
© ENI Editions - All rigths reserved - Moha Anisa - 31 -
n Les données et les traitements sont séparés. Les données se gèrent grâce à l’éditeur d’analyse et les traitements
dans l’éditeur de fenêtres de WinDev. Pour pouvoir synchroniser les deux, il nous faut générer l’analyse. Ainsi, la
structure des fichiers sera visible sous l’éditeur de fenêtres. Nous allons donc générer l’analyse. Pour cela il faut
cliquer sur .
Ou Analyse et ensuite Génération.
Maintenant que l’analyse est générée, nous pouvons nous consacrer à l’élaboration de l’applicatif.
Enregistrons notre travail, nous pouvons fermer la fenêtre du pseudo mld et du mcd.
Nous allons vérifier que notre analyse est bien rattachée à notre projet. Comme nous avons démarré par un mcd,
nous avions indiqué à WinDev que notre projet ne contenait aucune analyse. Il va falloir maintenant lui associer notre
modèle logique. Pour cela, cliquons sur le menu Projet puis Description du projet.
Nous avons une fenêtre à onglets nous permettant d’avoir une vue globale sur la gestion des options relatives à
notre projet :
Cliquons sur l’onglet Analyse.
- 32 - © ENI Editions - All rigths reserved - Moha Anisa
Cliquons ensuite sur Utiliser l’analyse existante cidessous,
lançons une recherche de notre analyse en appuyant
sur le bouton contenant les trois petits points. Logiquement, vous devriez trouver le fichier RestoCaisse.wda en
suivant ce chemin : C:\Mes Projets\RestoCaisse\Analyse.wd10\RestoCaisse.wda. Une fois le chemin déterminé,
validons en cliquant sur le bouton OK.
3. Création directe du pseudoModèle
logique (l’analyse)
Cette partie va étudier la création de l’analyse telle qu’elle est préconisée par PC SOFT. En effet, le processus
d’analyse de WinDev n’est pas très optimisé pour ceux qui souhaitent démarrer par le modèle conceptuel des
données. Il faut considérer le modélisateur de mcd plus comme un outil de conception de modèles (pour illustrer un
dossier technique), qu’une étape vers la conception de l’analyse proprement dite. Voici donc illustré la conception de
l’analyse de notre application.
Cette partie est redondante avec la partie précédente. Si vous avez conçu l’analyse en suivant les
instructions données dans la partie précédente et que vous souhaitiez essayer en suivant les instructions
données dans cette partie, le plus simple est de supprimer le projet et de tout recommencer.
Pour débuter, le processus de création est identique à celui employé au début de ce chapitre concernant la partie Du
modèle conceptuel du projet à l’analyse.
Nous devons reprendre les indications de création de projet telles qu’indiquées jusqu’à ce que WinDev vous
questionne sur l’analyse.
© ENI Editions - All rigths reserved - Moha Anisa - 33 -
Dans cet écran, nous devons cliquer sur Oui, créer une nouvelle base de données et ensuite sur le bouton
.
- 34 - © ENI Editions - All rigths reserved - Moha Anisa
Les modifications réalisées, passons à l’écran d’après.
Pour cet écran, cliquons juste sur le bouton .
© ENI Editions - All rigths reserved - Moha Anisa - 35 -
Comme vous pouvez le constater WinDev est capable de fonctionner avec une grande variété de bases de données,
et souvent de façon native, c’estàdire
sans l’adjonction de programme tiers faisant la passerelle entre le logiciel et
la base de données. Nous allons travailler sur HyperFileSQL Classic qui est le choix proposé par défaut. Passons à
l’écran suivant qui logiquement nous indique que c’est terminé.
- 36 - © ENI Editions - All rigths reserved - Moha Anisa
L’assistant propose soit de créer une nouvelle description de fichier, soit de sélectionner une description parmi
certaines déjà prédéfinies ou d’utiliser des fichiers d’une base déjà existante. Pour notre application nous allons tout
créer, donc utiliser l’option Créer une nouvelle description de fichier. Cliquons ensuite sur le bouton Suivant.
L’assistant va nous aider pour la création du premier fichier, il est impératif de remplir les champs comme présentés
cidessus
et cliquer ensuite sur Suivant.
© ENI Editions - All rigths reserved - Moha Anisa - 37 -
La base de données employée sera du type HyperFileSQL Classic (Réseau ou Monoposte). Une base de données
de ce type concerne souvent un programme monoposte possédant les données sur son disque dur. Une fois la base
sélectionnée, cliquons sur Suivant.
Les fichiers ne dépasseront pas la taille de 2 gigaoctets et ne seront pas dupliqués. Passons à l’écran Suivant.
- 38 - © ENI Editions - All rigths reserved - Moha Anisa
La description du type de fichier est terminée, nous pouvons cliquer sur le bouton Terminer.
Voici le centre de description des rubriques composant le fichier. C’est ici qu’elles sont définies.
Le fichier des serveurs est constitué des rubriques suivantes :
Remplissons l’ensemble des rubriques à l’identique et cliquons sur le bouton Valider.
Création des fichiers de l’analyse
© ENI Editions - All rigths reserved - Moha Anisa - 39 -
Comme présenté dans le choix cidessus,
nous allons nous affranchir de l’assistant en cliquant sur Retourner sous
l’éditeur de WinDev puis sur le bouton Terminer.
Après une phase de travail et avoir fermé la dernière fenêtre de l’assistant, WinDev nous repositionne sur l’éditeur
d’analyse et nous donne une vision de la description des fichiers.
Pour créer une nouvelle description de fichier, nous devons cliquer sur cette icône : .
Dans la fenêtre qui apparaît, choisissons Créer une nouvelle description de fichier et cliquons sur Suivant.
- 40 - © ENI Editions - All rigths reserved - Moha Anisa
Donnons comme nom et libellé Tables et cliquons sur l’option Le fichier possède un identifiant automatique. Ainsi,
c’est WinDev qui va gérer les identifiants et non le programmeur. Nous pouvons maintenant cliquer sur le bouton
Terminer.
La fenêtre de description des rubriques apparaît. Le processus de description de fichier est maintenant vu et connu. À
partir de maintenant, nous avons juste besoin de connaître les éléments essentiels à la création des fichiers pour
pouvoir les décrire.
Voici la description du fichier Tables :
Voici la description du fichier Type_de_boisson :
Le fichier Type_de_plat :
© ENI Editions - All rigths reserved - Moha Anisa - 41 -
Le fichier Menus :
Le fichier Plats :
Le fichier Boissons :
Le fichier Commandes :
- 42 - © ENI Editions - All rigths reserved - Moha Anisa
Maintenant que toutes les descriptions de fichier sont finies, voici une vue du résultat attendu :
L’analyse n’est pas encore complètement terminée, les liaisons interfichiers
ne sont pas créées. C’est la dernière
étape dans le processus de conception de l’analyse. Pour réaliser les liaisons, il faut cliquer sur cette icône : .
Le curseur de la souris se transforme en stylo. Pour débuter, la première liaison que nous allons réaliser sera entre la
description du fichier Boissons et Type_de_boisson.
Avec la souris, cliquons sur Boissons et sur Type_de_boisson. Un lien entre les deux descriptions se crée et une
fenêtre s’ouvre :
Création des liaisons
© ENI Editions - All rigths reserved - Moha Anisa - 43 -
Grâce à quatre questions simples, ressemblant à des définitions de cardinalités, ces deux fichiers vont être liés.
Positionnons chaque choix comme il est indiqué dans l’exemple cidessus
et passons à l’écran suivant.
Par rapport à la définition des cardinalités, l’éditeur d’analyse se rend compte qu’une des clés primaires doit devenir
clé étrangère dans le fichier lié. L’éditeur d’analyse propose de choisir l’identifiant du fichier Type_de_boisson comme
clé étrangère du fichier Boissons. Comme ce choix est correct, nous n’avons qu’à cliquer sur Suivant.
- 44 - © ENI Editions - All rigths reserved - Moha Anisa
Ici, l’éditeur d’analyse demande de confirmer la mise en liaison des deux fichiers en exportant, dans le fichier
Boissons, la clé primaire du fichier Type_de_boisson. Cliquons sur le bouton Suivant.
Là, sont présentées les règles d’intégrité référentielle inhérentes aux deux fichiers. Doiton
interdire la suppression
d’un type_de_boisson alors qu’il lui reste des boissons liées ? Peuton
modifier l’identifiant d’un type_de_boisson
alors qu’il y a des boisons liées ?
Pour respecter des règles de gestion cohérentes, nous laisserons les choix proposés par défaut et cliquerons sur le
bouton Suivant.
L’écran suivant nous annonce que la description de la liaison est terminée. Nous pouvons cliquer sur le bouton
Terminer.
© ENI Editions - All rigths reserved - Moha Anisa - 45 -
Voici une représentation graphique de la création de la liaison.
Le processus sera identique pour créer une liaison entre Plats et Type_de_plat.
Voici l’écran principal de la création du lien entre ces deux descriptions de fichiers.
Nous pouvons directement cliquer sur le bouton Terminer, car les autres options seront mises, par défaut, par
l’éditeur d’analyse de WinDev.
Voici la liaison réalisée.
Intéressonsnous
maintenant à la liaison qui intervient entre le serveur et la commande en créant la liaison et en
suivant ces règles de cardinalitéslà
:
- 46 - © ENI Editions - All rigths reserved - Moha Anisa
Voici la liaison entre tables et commandes :
Voici la représentation graphique de ces deux liens :
© ENI Editions - All rigths reserved - Moha Anisa - 47 -
Notre analyse comporte des descriptions de fichiers de liaison, par exemple entre le fait qu’un menu comporte des
boissons. Réalisons une liaison entre les descriptions de Menus et Boissons et choisissons les mêmes options que ciaprès.
En répondant comme cidessus,
l’éditeur d’analyse se rend compte qu’il est nécessaire de créer un fichier
intermédiaire. Passons à l’écran suivant.
Les fichiers de liaisons
- 48 - © ENI Editions - All rigths reserved - Moha Anisa
Si un fichier de liaison déjà créé existait, l’éditeur pourrait l’utiliser. Ici, nous allons lui demander de le créer. Cochons
l’option Créer automatiquement le fichier de relation et cliquons sur .
Par défaut, l’éditeur va vouloir intégrer, dans le fichier de liaison, les clés identifiantes des deux fichiers liés.
Acceptons le choix proposé et cliquons sur le bouton .
© ENI Editions - All rigths reserved - Moha Anisa - 49 -
L’éditeur nous demande confirmation pour créer la nouvelle clé dans le fichier de relation. Cliquons sur .
Les règles d’intégrité proposées étant correctes, nous pouvons passer à l’écran suivant.
- 50 - © ENI Editions - All rigths reserved - Moha Anisa
Le processus de liaison reprend pour le lien entre menus et le fichier de liaison. Comme il vient d’être vu pour la
liaison entre Boissons et le fichier de liaison, cliquons directement sur le bouton .
Voici le résultat généré par l’éditeur, nous allons modifier quelques points, comme le nom du fichier de relation.
Remarquons la différence de couleur pour signifier que c’est un fichier de liaison.
© ENI Editions - All rigths reserved - Moha Anisa - 51 -
Le nom proposé par défaut n’est pas en cohérence avec celui déterminé dans notre modèle conceptuel de données.
Nous allons donc le modifier en réalisant un clic droit sur la description du fichier de liaison Boissons_Menus, et en
choisissant Description du fichier dans le menu contextuel.
Nous pouvons maintenant modifier le nom du fichier ainsi que le nom sur disque en Comporter, tel que présenté cidessus,
et cliquer ensuite sur Valider et sur Fermer.
Voici la nouvelle représentation :
- 52 - © ENI Editions - All rigths reserved - Moha Anisa
Une autre modification doit être réalisée au niveau des propriétés de cette description. Réalisons un double clic sur
Comporter.
Pour rester en cohérence avec le modèle généré dans la première partie, nous devons enlever la rubrique identifiante
IdBoissons_Menus. C’est un identifiant automatique qui a été ajouté automatiquement par l’assistant. La
suppression de la rubrique peut être effectuée en cliquant sur le bouton ou en appuyant sur la touche de
suppression du clavier.
Nous devons créer de la même façon une liaison entre menus et plats. Cette liaison générera un fichier qui sera
nommé ensuite Composer.
© ENI Editions - All rigths reserved - Moha Anisa - 53 -
Cliquons directement sur le bouton Terminer. Le résultat obtenu doit être le suivant :
Le fichier de liaison doit être nommé Composer et la rubrique identifiante IDMenus_Plats supprimée. Référonsnous
aux manipulations déjà décrites pour réaliser cette action.
- 54 - © ENI Editions - All rigths reserved - Moha Anisa
Voici le changement de nom de la description de fichier.
Le résultat final doit correspondre à la capture de l’écran précédent.
D’autres liaisons vont être créées qui généreront des descriptions de fichier porteuses de propriétés.
Voici une liaison entre Boissons et Commandes :
Cliquons sur le bouton et modifions la nouvelle description du fichier de liaison de la manière suivante : son
nouveau nom sera : Constituer et voici ces propriétés :
© ENI Editions - All rigths reserved - Moha Anisa - 55 -
Une propriété QuantitéB est rajoutée à la description.
Une autre liaison doit être créée entre Menus et Commandes, elle comportera une description de fichier nommée
Former.
Voici les propriétés de la description Former :
Il ne reste plus qu’à créer, toujours sur le même modèle, la dernière liaison entre Plats et Commandes qui se
nommera Contenir et dont voici un descriptif.
- 56 - © ENI Editions - All rigths reserved - Moha Anisa
Voici le résultat attendu dans l’éditeur :
Soyons très attentifs et rigoureux car la programmation se basera sur les noms des rubriques indiquées, si une
différence existe entre le support et votre réalisation, nous risquons de ne pas retrouver les rubriques à manipuler.
Voici l’analyse dans sa globalité :
© ENI Editions - All rigths reserved - Moha Anisa - 57 -
L’analyse étant finie, il ne reste plus qu’à la générer pour la mettre en phase avec l’éditeur de fenêtres de WinDev.
Pour cela, cliquons sur l’icône .
N’oublions pas d’enregistrer notre travail.
- 58 - © ENI Editions - All rigths reserved - Moha Anisa
Conclusion
Ce chapitre nous a familiarisé avec l’éditeur d’analyse, il va de soi que toutes les options n’ont pas été étudiées, mais
l’essentiel est acquis. Le chapitre suivant va nous faire entrer dans la conception de l’Interface HommeMachine.
© ENI Editions - All rigths reserved - Moha Anisa - 1 -
L’éditeur de fenêtres de WinDev
Maintenant que tous les fichiers du projet sont décrits, nous allons utiliser l’éditeur de fenêtres de WinDev et nous
concentrer sur l’Interface HommeMachine.
1. L’interface HommeMachine
L’interface HommeMachine
doit rationaliser les interactions entre l’humain et l’ordinateur. Ceci doit nous permettre
de réaliser des programmes ergonomiques, agréables et surtout faciles à utiliser. Grand nombre de logiciels, souvent
très pointus techniquement, déçoivent par la rudesse de leur interface. On pardonne plus à un logiciel soigné en
apparence qu’à un logiciel ayant une interface bâclée.
2. Les fenêtres de l’application
Nous allons commencer par poser le décor, c’estàdire
concevoir les fenêtres, nous nous intéresserons au code plus
tard.
L’application va s’organiser autour d’une fenêtre principale, c’est la première à être lancée à l’ouverture du
programme.
Voici la liste des fenêtres que nous allons créer et manipuler :
Cette fenêtre sera le centre névralgique de toute l’application. C’est à partir d’elle que les autres fenêtres seront
ouvertes, les états lancés, les tables remplies, les commandes gérées.
Nous allons commencer à construire cette fenêtre, placer à l’intérieur les objets nous intéressant et, une fois le décor
mis en place, nous nous i...


Signaler un abus

administration
Ajouter au panierAbonnementEchange gratuit

Corrigé : windev Corrigé de 49139 mots (soit 68 pages) directement accessible

Le corrigé du sujet "windev" a obtenu la note de : aucune note

Cacher les ressources gratuites

Problématique

Plan détaillé

Textes / Ouvrages de référence

Citations

Quelle est la couleur de la tomate ?

Avertissement de respect de copyright. Respect des règles orthographique (pas de langage SMS).



Ressource précédenteRessource suivante

windev

 Maths
 Philosophie
 Littérature
 QCM de culture générale
 Histoire
 Géographie
 Droit
Podcast philo