Devoir de Philosophie

windev

Publié le 26/01/2013

Extrait du document

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...

Liens utiles