Anda di halaman 1dari 36

IUT MONTPELLIER LICENCE PROFESSIONNELLE ASSISTANT CHEF DE PROJET INFORMATIQUE

Reprsentation graphique des processus mtiers de lERP SIMAX et thorie des graphes Rapport de stage
Effectu NOUT S.A.S Du 7 mars au 17 juin 2010 par killruana Directeur de stage : Mlle Nathalie DINDINAUD

Je tiens remercier les dirigeants de la socit Nout, Mlle Miren Lafourcade et M. Jrme Olivares, qui mont permis deffectuer un stage au sein de leur entreprise. Jadresse galement un grand merci Nathalie Dindinaud, ma tutrice de stage pour son encadrement travers les missions de dveloppement quelle ma confie. Je souhaite galement saluer la bonne humeur quotidienne et les responsabilits qui mont t confies. Je suis reconnaissant envers lIUT de Montpellier qui a accept ce stage.

Table des matires


Introduction............................................................................................................4 Prsentation de la Socit NOUT............................................................................5 Gnralits..........................................................................................................5 Historique et partenaires de la socit................................................................5 Organisation de lquipe.....................................................................................5 SIMAX..................................................................................................................7 A qui sont-ils destins ?...................................................................................7 Quelles fonctionnalits proposent-ils ?.............................................................8 Quelles sont les innovations techniques ?......................................................11 Cadre de travail....................................................................................................13 Organisation......................................................................................................13 Les formations...............................................................................................13 Les runions...................................................................................................13 Une politique qualit......................................................................................13 Un travail dquipe.........................................................................................13 Outils utiliss.....................................................................................................14 Microsoft Visual Studio 2010..........................................................................14 Subversion.....................................................................................................15 Graphviz.........................................................................................................16 Travail personnel..................................................................................................17 Premiers pas dans le dveloppement de SIMAX...............................................17 Conversion chiffres romains <-> chiffres arabes...........................................17 Fonctions de hachage....................................................................................18 Visualisation des arbres de dpendances de calcul..........................................20 Analyse du travail faire...............................................................................20 Traduction des dpendances en langage DOT...............................................20 Exportations de toutes les dpendances de calcul........................................22 Interface utilisateur........................................................................................23 Visualiser les excutions dautomatismes.........................................................24 Tche accomplir..........................................................................................24 Travail ralis.................................................................................................24 Amlioration des temps de calcul des routages................................................25 3

Recherche de chemin....................................................................................25 Reprsentation du paramtrage sous forme de graphe.................................25 Dijkstra...........................................................................................................26 Rsultat..........................................................................................................27 Conclusion............................................................................................................28 Annexes...............................................................................................................29 Dpendance de calcul.......................................................................................29 Compte rendu dautomatisme sous forme de graphe.......................................30 Compte rendu dautomatisme sous forme de graphe

Introduction
Afin de valider ma licence professionnelle dAssistant Chef de Projet Informatique, jai effectu un stage dune dure de 15 semaines dans la socit NOUT implante dans la zone du Millnaire Montpellier. Lors de ma recherche de stage, mon objectif tait de trouver un stage en informatique et plus particulirement un sujet me permettant de faire du dveloppement logiciel. Je voulais profiter de ce stage pour accrotre rapidement mes comptences avant darriver sur le march de lemploi. Parmi les diffrentes offres de stage, jai accept loffre que proposait la socit NOUT car durant lentretien jai compris que ce stage me permettrait de raliser un travail vari, intressant et utile au sein de lentreprise. Le premier objectif de ce stage tait de mettre en pratique les connaissances techniques que javais pu acqurir au cours de ma formation. En effet, jai suivi beaucoup de cours thoriques que je navais pas encore pu appliquer des situations concrtes. Le second objectif tait de me confronter au monde de lentreprise et son mode de fonctionnement afin de prparer mon insertion dans le monde professionnel. La premire phase du stage ft de me familiariser avec le logiciel dvelopp par lentreprise : lERP SIMAX ainsi quavec les outils utiliss. La seconde phase du stage a consist limplmentation dun systme permettant dextraire une reprsentation graphique des processus mtiers. Enfin, lors de la dernire partie, jai travaill sur loptimisation des temps de calcul grce la thorie des graphes. Dans ce rapport, je vais commencer par prsenter lentreprise puis le travail que jai effectu et enfin mon bilan personnel.

Prsentation de la Socit NOUT


Gnralits
La socit NOUT est une start-up innovante dans le domaine de ldition de logiciel de gestion. Elle a t cre en Fvrier 2006 dans le cadre dune incubation dans la ppinire dentreprises de Montpellier Agglomration : Cap Omga. Expert en gestion de donnes et systmes d'information, la socit NOUT commercialise des logiciels de gestion intgrs ERP sans programmation.

Historique et partenaires de la socit


Avec plusieurs annes d'exprience dans le domaine des logiciels de gestion sur mesure, la socit NOUT a travaill sur plusieurs projets d'envergure dont l'outil de PC Soft : WinDev. Par la suite, afin de rduire les cots et les dlais informatiques, elle a imagin une nouvelle faon de raliser des logiciels de gestion sur mesure et adaptables. Ainsi, la socit NOUT est ditrice de SIMAX, son logiciel de gestion globale de type ERP entirement et facilement paramtrable. Linnovation technologique propose au travers du logiciel SIMAX constitue une vritable rvolution compare aux prcdentes approches de dveloppement et dintgration de logiciels de gestion. De ce fait, SIMAX a t : Laurat du concours Tremplin-Recherche du Snat 2006, Laurat du concours du Ministre de la Recherche pour la cration dentreprises innovantes, catgorie Cration-Dveloppement en 2006, Gagnant du coup de cur technologique du salon Progiforum 2007 (salon du logiciel de gestion), Remarqu sur le plateau du CNIT (Centre des Nouvelles Industries et Technologies) lors du salon de lERP 2008. D'ores et dj, de nombreuses entreprises font confiance NOUT et sont entirement satisfaites des capacits et des performances de son logiciel SIMAX. NOUT travaille en partenariat avec un laboratoire du CNRS, le LIRMM, pour la recherche applique en Intelligence artificielle. NOUT a galement eu la chance de bnficier des soutiens de l'agglomration de Montpellier, de la rgion Languedoc Roussillon, de l'tat Franais et de la Communaut Europenne.

Organisation de lquipe
Lquipe dirigeante de NOUT est compose de Miren LAFOURCADE et de Jrme OLIVARES. Miren LAFOURCADE est ingnieur en informatique IIE et titulaire dun MBA effectu lESC de Montpellier. Avec plus de dix ans dexprience professionnelle dans le domaine de ldition logicielle, elle est responsable de la gestion de lentreprise et de son dveloppement commercial. Jrme OLIVARES, aprs sa matrise en informatique, a obtenu le titre dingnieur en informatique PC Soft par valorisation de comptences. Avec lui aussi plus de 6

dix ans dexprience professionnelle dans le domaine de ldition logicielle, il dirige laxe Recherche et Dveloppement de la socit. Miren et Jrme travaillent ensemble depuis dix ans, dont cinq sur un autre projet de grande envergure : le projet WinDev de chez PC Soft. PC Soft est une socit franaise ddition de logiciels base Montpellier. Cre en 1984, cette socit est spcialise dans les environnements de dveloppement professionnels, en particulier les Ateliers de Gnie Logiciel (AGL). WinDev est lAGL numro un en France, il est commercialis dans une cinquantaine de pays travers le monde. Grce la conception de WinDev, les fondateurs de NOUT ont acquis des comptences de dveloppement et une bonne exprience du march des logiciels de gestion sur mesure. Cinq annes de rflexion ainsi quune discussion impromptue dans un train sont lorigine du concept prsent dans le logiciel SIMAX. Une quipe de dveloppeurs, de paramtreurs et de commerciaux paule les deux fondateurs de lentreprise. Aprs seulement quatre ans dactivit, NOUT compte dj une vingtaine de collaborateurs. Chez NOUT, lorganigramme officiel positionne le client au centre de lentreprise :

La cartographie suivante est lillustration du fonctionnement des processus chez NOUT. Lentreprise est certifie ISO 9001 : V2000.

Le processus commence par la prise en compte des besoins et des exigences des clients. Les processus commerciaux et de ralisation sont mis en place avec lappui des supports. Le processus se termine dun ct avec la satisfaction des clients, et de lautre avec un feed-back qui permet de prendre des mesures correctives si ncessaire et de positionner lentreprise dans un cycle damlioration continue. Les processus de direction et damlioration englobent cette cartographie et viennent en soutien.

SIMAX
Nout commercialise un ERP gnraliste souple pour les petites entreprises, SIMAX ODERP8 ainsi quun ERP pour les entreprises activit originale, SIMAX APPLICATIF (cf. Annexe FIG. 1 et 2 les plaquettes de prsentation). Nout propose aussi des solutions de gestion sectorises pour les mtiers de limmobilier, de la formation professionnelle, de lassurance, des boutiques et du secteur mdical. Le slogan de ses logiciels est : La gestion de toute votre entreprise selon VOS mthodes et VOS besoins. Les entreprises petites ou grandes utilisent des outils pour stocker et analyser les informations lies leur activit : Post-it, cahier, tableau Excel, logiciel de gestion du march, base Access, solution maison, intranet. Le plus souvent, elles utilisent plusieurs de ces solutions la fois. La gamme SIMAX offre une solution informatique qui ne ressemble aucune autre. Cest un produit de substitution la fois pour lutilisation de tableaux Excel, les solutions sur mesure et les ERP.

A qui sont-ils destins ? A lorigine, les ERP taient uniquement ddis aux grandes entreprises. Aujourdhui les diteurs de solutions dERP ont pris conscience du fait que les besoins des PME9 en matire de gestion sont les mmes que ceux des grandes entreprises mais que leur budget informatique ne sapprcie pas dans des proportions identiques. Des solutions cl-en-main et modulables arrivent donc sur le march. Le logiciel SIMAX fait partie de ces nouveaux ERP destins aux PME. La technologie SIMAX, teste par des entreprises depuis fin 2004, permet entre autres de grer des formations en langues, de suivre la production de salades en sachet, de grer une boutique de luxe, une agence immobilire et deffectuer des surveillances pridurales. Quelles fonctionnalits proposent-ils ? Les logiciels SIMAX ont t conus dans le but doffrir aux entreprises un outil de travail complet, fiable, facile dutilisation et surtout un outil leur permettant de gagner un temps prcieux dans leurs tches quotidiennes. Par exemple, SIMAX ODERP est livr avec un systme de gestion initial offrant les fonctionnalits suivantes : messagerie lectronique, gestion commerciale, gestion de la relation client, des achats, des stocks, gestion des ressources humaines, sauvegarde automatique de donnes et journal comptable. La fentre principale Elle se compose dune barre de menu paramtrable, de la liste des actions les plus rcemment excutes et surtout dune messagerie intgre. En sagrandissant, la fentre principale devient une messagerie lectronique particulirement simple dutilisation qui permet de faire circuler linformation au sein de la socit et vers lextrieur.

Les plannings La force de ce systme rside dans sa capacit dterminer quelles sont les informations les plus pertinentes, les calculs intressants et les reprsentations des informations proposer. Par exemple, le systme proposera une reprsentation sous forme dagenda pour une liste dlments disposant dune date de dbut ou dune date de fin. Cest le cas de ce planning affichant lagenda des collaborateurs de lentreprise :

10

Laffichage des donnes SIMAX permet de visualiser, de modifier et de crer nimporte quelle donne grce des formulaires de saisie.

11

Lutilisateur peut aussi visualiser ses donnes sous forme de liste et demander un affichage des calculs rcapitulatifs sur les lments de la liste.

12

Les droits daccs Les fonctionnalits disponibles dpendent des droits daccs donns lutilisateur SIMAX. Les superviseurs ont tous les droits et peuvent modifier lensemble des menus et de la base de donnes. La configuration des droits daccs sapplique un seul utilisateur ou un groupe dutilisateurs. Elle permet dautoriser ou dinterdire certain type daction ou des actions particulires. Quelles sont les innovations techniques ? A partir de ces fonctionnalits, le logiciel est capable de sauto-modifier pour rpondre aux spcificits de lentreprise. Cest dire quil fait crotre le nombre de ses fonctionnalits la demande. La base de donnes SIMAX En plus de la base de donnes de lentreprise, SIMAX possde une seconde base de donnes, le langage. Le langage contient la description des besoins et des mthodes de lentreprise. SIMAX utilise une seule fentre dynamique intelligente qui affiche linformation demande par lutilisateur en se rfrant au langage. Les crans de saisie et de visualisation sont crs dynamiquement par le systme.

13

Lassistant virtuel : Max Les logiciels daujourdhui proposent souvent un nombre important de fonctionnalits mais lutilisateur ne sait pas toujours les retrouver sans parcourir les menus un un. A linverse, SIMAX permet de communiquer avec un employ virtuel, appel MAX travers un champ de saisie de la fentre principale. Les mots quil connat sont ceux du langage de SIMAX, cest dire ceux dcrivant les donnes manipules, les termes propres au vocabulaire de lentreprise ainsi que leurs synonymes. Il peut donc comprendre des requtes en langage naturel. Lorsque lutilisateur dit par exemple MAX : Jai un nouveau produit , le systme analyse la phrase et en dduit une action de cration darticle. La fentre dynamique affiche alors un formulaire de cration darticle avec les champs dfinis par le superviseur lors de la cration du formulaire. Lauto-modification Chaque version de SIMAX est unique et adapte lentreprise : Menus, formulaires, listes, requtes, automatismes, contrles de validit. Tout utilisateur peut faire voluer le logiciel par une mthode simple sans programmation. Concrtement, en bas des menus, des formulaires, des filtres avant les listes etc... On retrouve un lien Plus...Moins qui permet de modifier llment en cours.

14

Ci-dessous, le lien Plus...Moins permet daccder la description du menu et de modifier les libells, rordonner, ajouter ou enlever des actions.

Un utilisateur peut donc facilement et tout moment, selon ses droits daccs, modifier la description des mthodes et des besoins de lentreprise. Ceci entrane un ajustement automatique de la structure de la base de donnes, des crans et des traitements. La base de donnes est donc prenne. Toutes les actions effectues dans SIMAX sont enregistres. Vous avez donc disposition un historique complet par date et par personne de toutes les modifications. Un systme dannuler-refaire vous permet de revenir en arrire.

15

Cadre de travail
Organisation
Les atouts principaux de la socit sont un fort travail dquipe et une politique qualit bien dtermine. Pour cela, la socit a mis en place un mode de fonctionnement claire et efficace. Les formations La socit estime que toutes les personnes travaillant de prs ou de loin en rapport avec le projet SIMAX doivent tre capable de manipuler au moins les fonctionnalits basiques du logiciel. Cest pour cela que toutes les personnes intgrant la socit suivent une formation dune journe avec cours et exercices afin de se familiariser avec cet outil. Les runions Les runions permettent de faire un bilan du travail ralis par chacun puis de rflchir aux prochaines tapes et la rpartition des tches. Peu contraignantes, les runions ont lieux par quipe chaque semaine, ainsi que toutes les fois o lquipe ressent un besoin de mise au point. Les dirigeants font en sorte que lensemble de lquipe concerne soit prsent afin dimpliquer tout le monde dans le projet. Ces runions sont loccasion dchanger des ides, de poser des questions et de trouver les meilleures solutions possibles Une politique qualit La socit Nout pratique la politique de la tolrance zro pour les bugs, cest dire quelle corrige tous les bugs dtects ou signals. De plus elle a mis en place des mthodes rigoureuses de prvention. Lquipe de dveloppement utilise une version Debug qui leur permet de faire des contrles chaque tape de lexcution ainsi quune version Release plus rapide. Un serveur de sources et des sauvegardes rgulires permettent une traabilit complte de toutes les modifications. Des normes de programmation assurent une uniformit du code de tous les logiciels qui est compos 30% de commentaires ce qui amliore la lisibilit. Les tests se droulent ensuite en 3 tapes. La premire, les dveloppeurs de chez Nout vrifient la qualit de leur travail. Dans un deuxime temps, des programmes de tests automatiques dvelopps par la socit pour leurs logiciels effectuent des tests exhaustifs. Pour finir, la socit est elle-mme le premier utilisateur de ses produits et elle fait appel des clients testeur Un travail dquipe Jai pu constater ds le premier jour que lquipe de Nout tait une quipe soude et polyvalente. Chaque personne doit raliser les tches qui lui ont t confies, mais personne nhsite conseiller son collgue, ni lui venir en aide lorsque celui-ci rencontre des problmes de tous genres. Ceci ma dailleurs permis dintgrer rapidement lquipe. Au quotidien, les dirigeants ne font pas de diffrences de statut, le but premier tant que le projet avance et avance bien. 16

Pour cela, aucune ide nest mise de ct, des runions et des dbats improviss rythment les journes.

17

Outils utiliss
Microsoft Visual Studio 2010 Visual C++ est un environnement de dveloppement pour le langage de programmation C++ conu par Microsoft. Cet outil puissant permet de concevoir, dvelopper et debugger des applications robustes pour Microsoft Windows. Il facilite le travail des dveloppeurs en mettant disposition des fonctionnalits habituelles comme le dbogage, lauto-indentation, etc...

18

Subversion Subversion est un logiciel libre de gestion de versions. Cet outil est indispensable pour le travail en quipe. En effet, il permet aux dveloppeurs de travailler sur les mmes fichiers en mme temps. A chaque fois que lutilisateur veut modifier un nouveau fichier la fonction ddition Edit lui permet davoir les droits dcriture sur celui-ci. Le logiciel se charge de fusionner les diffrentes versions de chaque fichier lors des mises jour update et des validations Commit. Ce fonctionnement permet lensemble de lquipe de dveloppement de profiter des dernires modifications chaque mise jour. Le Subversion originel est un logiciel fonctionnant en ligne de commande. Afin den simplifier lutilisation, nous utilisons un client graphique driv : TortoiseSVN.

19

Graphviz Graphviz est une suite doutils cre par les laboratoires de recherche de lentreprise AT&T. Il sagit dun langage de descriptions de graphes appel langage DOT et de divers scripts permettant de gnrer des images partir de graphes dcrit en langage DOT. Graphviz permet lexport vers de nombreux formats tel que des images bitmaps (GIF, JPG, PNG) ou vectorielles (SVG). Il permet aussi dexporter les graphes sous forme de fichiers PDF ou PostScript afin den simplifier limpression. Il dispose de diffrents moteurs de rendu, chacun tant spcialis dans un type de graphes : alors que dot est ddi aux graphes reprsentant une hirarchie, neato est spcialis dans les graphes reprsentant dinterconnexion tel que les rseaux de tlcommunications. Graphe en langage DOT graph { A -- B -- C -- A; } Graphe export avec dot Graphe export avec neato

20

Travail personnel
Premiers pas dans le dveloppement de SIMAX
Avant de me lancer dans le vif du sujet, jai d au pralable passer par une tape de dcouverte des pratiques de dveloppement de lentreprise et du code source de SIMAX en y ajoutant de petites fonctionnalits. Conversion chiffres romains <-> chiffres arabes Mon premier travail fut dtendre le langage de SIMAX afin dy ajouter deux fonctions permettant respectivement de convertir un nombre en arabes en chiffres romains, et rciproquement. Les algorithmes utiliss pour mener bien ces objectifs sont les suivants :
Fonction ChiffresArabesVersChiffresRomains Paramtres nombreArabe : entier convertir en chiffres romains Pr-requis nombreArabe doit tre compris entre 1 et 4999 inclus Retourne Une chaine de caractre reprsentant nombreArabe en chiffres Debut nombreRomain := "" pour i de 0 taille(TableauChiffresArabes) faire tant que nombreArabe >= TableauChiffresArabes[i] faire nombreRomain.ajoute(TableauChiffresRomains[i]) nombreArabe := nombreArabe - TableauChiffresArabes[i] fin tant que fin pour retourn nombreRomain Fin Fonction ChiffresRomainsVersChiffresArabes Paramtres nombreRomain : chaine de caractre convertir en chiffres arabes Pr-requis nombreRomain reprsente un nombre romain valide Retourne un entier tant l'quivalant en chiffres arabes de nombreRomain Dbut nombreArabe = 0 pour i de 0 taille(TableauChiffresRomains) faire tant que nombreRomain commence par tableauChiffreRomain[i] faire nombreArabe := nombreArabe + TableauChiffresArabes[i] nombreRomain.SupprimerPremireOccurence(TableauChiffreRomains[i])

romains

21

fin tant que fin pour retourn nombreArabe Fin

Les tableaux TableauChiffresRomains et TableauChiffresArabes sont dfinis de la manire suivante :


TableauChiffresArabes := {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1} TableauChiffresRomains := {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"}

Ces fonctions sont utilisables directement dans la messagerie aux travers de lemploy virtuel MAX, ou en tant que formule dans un formulaire SIMAX.

Fonctions de hachage Une fonction de hachage est une fonction permettant partir dune donne fournie en entre de gnrer une empreinte (ou condensat). Les fonctions de hachages sont trs utilises en scurit informatique pour sassurer de lintgrit de fichiers ou en tant que fonction de chiffrement non rversibles. Deux fichiers diffrents donnent deux empreintes diffrentes. Cette particularit permet de sassurer quun fichier na pas t modifi par exemple lors de son tlchargement en comparant lempreinte de rfrence avec celle du fichier tlcharg. Dans limage ci-dessous, vous pouvez voir lusage de la fonction de hachage MD5 pour sassurer de lintgrit du fichier bzip2-1.0.6.tar.gz.

22

Lautre grand intrt des fonctions de hachage est leur ct irrversible. En effet, sil est trs facile de calculer lempreinte dune donne, il est trs complexe de trouver quelle donne a pu donner tel empreinte. Cest pour cela que gnralement, plutt que de stocker le mot de passe de lutilisateur en clair , on prfrera stocker son empreinte. Pour identifier lutilisateur, il suffit de calculer lempreinte du mot de passe utilis la connexion et la comparer celle enregistr lors de linscription : si elles sont identiques, lutilisateur a donn le bon mot de passe. Par contre, si jamais une personne malveillante arrivait rcuprer les empreintes des mots de passes, il ne pourrait pas retrouver le mot de passe dorigine. SIMAX possdait dj dans son cur le code des fonctions de hachage MD5 et SHA1. Mon travail a consist rendre ces fonctions utilisables par lutilisateur pour calculer dans SIMAX lempreinte de fichiers ou de donnes. Cela ma permis de comprendre comment fonctionnaient les interactions entre le cur de SIMAX et lutilisateur.

23

Visualisation des arbres de dpendances de calcul


La plus part des logiciels de gestions ont leur logique programme : pour modifier le comportement du logiciel, il faut modifier son code, ce qui entraine une certaine rigidit. Pour apporter une grande flexibilit, SIMAX est orient paramtrage : cest lutilisateur qui paramtre SIMAX pour quil rponde ses besoins. Un paramtrage SIMAX comporte de nombreux formulaires reprsentant les objets ncessaires son fonctionnement. Un formulaire est constitu de colonnes qui sont les donnes caractrisant ce formulaire. Par exemple, le formulaire Adresse, qui reprsente une adresse, contient les colonnes n de rue, nom de rue, ville, code postale, pays Une colonne peut tre un type de base tel quun entier ou une chane de caractres. Mais une colonne peut aussi tre un formulaire. Ainsi le formulaire client contient les colonnes nom et prnom qui sont des chaines de caractres et la colonne adresse qui est de type formulaire Adresse. Mais une colonne peut aussi tre un calcul : le formulaire Produit contient la colonne prix HT de type nombre, et la colonne prix TTC qui est un calcul utilisant le prix HT et le taux TVA. De cette manire, si le prix HT ou le taux TVA venait tre modifi, le prix TTC serait automatiquement recalcul. Un calcul peut trs bien contenir le rsultat dun autre calcul : dans le formulaire Stock, on trouve la colonne valeur stock TTC qui est le rsultat de la multiplication du prix TTC du Produit par la quantit de Produits dans le stock. Ainsi, si la quantit de produit, le prix HT ou le taux TVA venait changer, la valeur stock TTC serait automatiquement mise jour. La premire partie de mon stage ft de mettre en place un systme permettant de visualiser ces dpendances de calcul. Analyse du travail faire SIMAX possde un systme pour calculer les dpendances de calculs et des structures de donnes pour les exploiter, mais rien navait tait prvu pour que lutilisateur puisse facilement les voir. Il fallait donc trouver un systme permettant partir de ces donnes produire un rsultat graphique facilement comprhensible. Pour parvenir ce rsultat, il a t dcid de traduire les dpendances de calculs en langage DOT, et dutiliser les outils GraphViz pour les convertir en images. Traduction des dpendances en langage DOT Une dpendance de calcul est modlise avec les classes CDependanceCalcul et CNoeudDependanceCalcul dont voici une reprsentation simplifie :

24

Comme nous pouvons le voir, une dpendance de calcul est compose dune racine qui contient un nud de dpendance qui contient lui-mme 0 N nuds de dpendance. Il suffit donc de parcourir cet arbre, et pour chaque nud que nous croisons, il suffit de cre un sommet en langage DOT et de le relier son pre. Cette est ralise par les algorithmes suivants :

25

Fonction ExporterDependanceCalcul Paramtres dependanceCalcul : un objet CDependanceCalcul dossierDestination : une chaine contenant chermin vers un dossier dans lequel crire le fichier DOT Retourne l'adresse du fichier contenant la dpendance de calcul au format DOT Dbut nomFichier := dependanceCalcul.Calcul.id + ".dot" cheminFichier := dossierDestination + nomFichier fichier := CreerEtOuvrir(cheminFichier) ajouter fichier le dbut d'un graphe DOT AjouterDepedanceCalcul(dependanceCalcul, fichier) ajouter fichier la fin d'un graphe DOT Fermer(fichier) retourne cheminFichier Fin Procedure AjouterDependanceCalcul Paramtres noeudDependanceCalcul : un objet CNoeudDependanceCalcul fichier : un fichier ouvert dans lequel crire Rsultat Ajoute dans fichier un sommet correspondant CNoeudDependanceCalul et ses fils Debut ajouter dans fichier un sommet correspondant noeudDependanceCalcul pour chaque element de TabFils faire AjouterDependanceCalcul(element, fichier) Ajouter dans fichier une arte entre noeudDependanceCalcul et element fin faire Fin

Exemple de fichier DOT produit :


digraph { 1 [label="Demande de prix client\n(Prix fournisseur demander)", color=purple, fillcolor="#66CCFF", style=filled, shape=box, peripheries=1]; 2 [label="Liste prix fournisseur demander\n(CBN DP)", color=black, fillcolor="#DDDDDD", style=filled, shape=box, peripheries=1]; 1 -> 2; 3 [label="Prix fournisseur demander existante\n(CBN DP)", color=black, fillcolor="#DDDDDD", style=filled, shape=ellipse, peripheries=1]; 2 -> 3; }

26

Exportations de toutes les dpendances de calcul Maintenant que nous pouvons exporter une dpendance de calcul, il suffit dexporter toutes les dpendances de calcul, et de transformer chaque fichier DOT gnr en une image grce GraphViz. Fonction ExporterDependancesCalcul
Paramtres ParametresConversion : les paramtres de conversion des fichiers DOT en image (dossier destination, format d'image) ListeDependancesCalcul : la liste des dpendances exporter Retourne une liste contenant l'ensemble des images gnres Debut ListeImages := [] pour chaque DependanceCalcul dans ListeDependancesCalcul faire CheminImage = ExporterDependanceCalcul( DependanceCalcul, AdresseDossierTemporaire() ) ConvertirImage(CheminImage, ParametresConversion) ListeImages.Ajouter(CheminImage) fin pour retourne ListeImages Fin

Voici un exemple dune dpendance de calcul exporte :

Nous pouvons voir que la modification de Demande de prix client va mettre jour Liste Prix fournisseur demander qui va mettre jour Prix fournisseurs demander existantes . 27

Dans certains paramtrages trs complexes, nous avons pu constater lexistence de dpendances comportant plusieurs dizaines de nuds. Vous pourrez en trouver un exemple en annexe. Interface utilisateur Maintenant que nous sommes capables dexporter des dpendances de calcul, il ne nous reste plus qu faire une interface utilisateur. Cette interface permet lutilisateur de choisir quelles dpendances il souhaite exporter (toutes ou une en particulier), dans quel dossier et dans quel format dimage.

28

Visualiser les excutions dautomatismes


SIMAX implmente un mcanisme permettant lexcution dactions lors de la survenue de certains vnements : les automatismes. Les automatismes sont dclenchs par des vnements des vnements temporels (tous les jours midi) que des actions (Ajout dun nouveau client). Les automatismes permettent de simplifier le travail de lutilisateur, que ce soit en excutant des actions quil pourrait oublier de faire sans ou lexcution de fastidieuses faire la main. Par exemple, dans le cadre dun paramtrage de SIMAX pour limmobilier, la suppression dun immeuble entraine automatique la suppression des diffrents tages qui le compose, et la suppression de ces mmes tages va entrainer la suppression des appartements les composants. Tche accomplir Lexcution dun automatisme peut par effet de ricochets provoquer lexcution de nombreux autres automatismes. Afin de sassurer du bon fonctionnement des automatismes, un compte rendu peut-tre gnr la demande de lutilisateur. Seulement, celui-ci est affich sous forme tabulaire, et sa comprhension peut sen retrouver difficile pour une personne peu habitue. Voici un court extrait du compte rendu dautomatisme suite la cration dune facture :

29

Mon travail a consist implmenter une solution utilisant la suite doutils GraphViz pour gnrer des graphes reprenant les donnes du tableau ci-dessus, mais prsent sous une forme plus facilement comprhensible. Travail ralis Comme les structures de donnes contenant les rsultats dexcutions des automatismes ressemblaient fortement aux structures du projet prcdant, jai utilis la mme approche consistant en un parcours rcursif de larbre avec lajout dans un fichier au format DOT des informations de tous les nuds rencontrs, pour ensuite finir par la conversion de ce fichier en image. Vous pourrez trouver en annexe lquivalent graphique du compte rendu si dessus. Un manuel dutilisation expliquant comment lire le graphe a aussi t rdig.

30

Amlioration des temps de calcul des routages


Pour fonctionner, SIMAX a couramment besoin de trouver le chemin reliant 2 formulaires. Les routages permettent de trouver ces chemins. Par exemple voici le chemin permettant de trouver un client donn, la liste des produits quil a achet :

Bien quefficace, le systme de routage possde quelques faiblesses au niveau du temps dexcution. Par exemple, il lui faut prs dune minute pour dterminer quil nexiste pas de chemin entre deux formulaires donns. Mon travail a consist voir sil ntait pas possible de diminuer les temps de calculs afin de rendre SIMAX plus ractif. Recherche de chemin En cours dalgorithmie et complexit, il nous a t prsent lalgorithme de Dijkstra. Il sagit dun algorithme de recherche de chemin publi en 1958 par linformaticien Edsger Dijkstra en 1959 et a possde les particularits de toujours trouver le meilleur chemin sil existe et dtre le plus rapide dans sa catgorie. Seulement, lalgorithme de Dijkstra ne travaille quavec des graphes. Il a donc fallu modliser le paramtrage de SIMAX sous forme de graphe. Reprsentation du paramtrage sous forme de graphe En cours, nous avons vu deux manires diffrentes de reprsenter un graphe. Mais aucune des deux ne convenaient cause des contraintes intrinsques aux donnes manipules. Dans SIMAX, deux formulaires sont relis si ils possdent un lien dhritage (lun est le pre de lautre) ou si ils ont un lien de type conteneur/contenu exprim par les colonnes. Dans cet exemple, une Socit possde un PDG qui est un Collaborateur, et Collaborateur hrite de Personne.

31

Les structures de donnes retenues pour constituer le graphe sont :

Dijkstra Lalgorithme de Dijkstra a d subir quelques modifications pour pouvoir correspondre nos besoins. Ces modifications portent sur les points suivants : Longueur maximum du chemin Dans SIMAX, seul les chemins de longueurs 6 ou moins nous intressent. Il a donc fallu modifier lalgorithme de Dijkstra pour quil tienne compte de cette spcification. Priorit des artes Lorsque Dijkstra cherche son chemin, il teste tous les sommets sans prjuger de leur valeur. Alors que pour SIMAX, il est plus intressant de suivre une arte contenant des colonnes quune arte dhritage. De plus, les colonnes en sens direct sont plus intressantes que les colonnes en sens indirect. Des modifications ont ts apports pour que Dijkstra puisse tenir compte de ces priorits. Rgles de parcours Enfin, le routage ne peut pas passer par nimporte quelles artes. Larte suivante empruntable dpend de celle quon vient demprunter. Ces rgles sont modlisables par lautomate fini suivant :

32

Rsultat Au moment de lcriture de ce rapport, je nai malheureusement pu terminer ce projet. Le code est fonctionnel mais pas encore exploitable en ltat : les chemins retourns par Dijkstra ne sont pas toujours les mmes que ceux de lanciens systme. Je nai pas non plus eu le temps de faire des mesures de performances pour voir si le nouveau systme est plus rapide que lancien, mais il possde un code beaucoup plus clair et concis, ce qui devrait faciliter sa maintenance et volutions futures.

33

Conclusion
Ce stage a t trs bnfique pour moi, il ma permis dapprendre : manier la suite doutils GraphViz ainsi que la thorie des graphes le logiciel Microsoft Visual Studio, qui permet de dvelopper des programmes crits en C++, travailler dans une vritable quipe de dveloppement avec tout ce que cela implique

Je suis globalement satisfait des rsultats finaux qui ont parfaitement su rpondre aux attentes de lentreprise, bien que de nombreuses amliorations soient encore possibles telles que lajout de filtres par exemple. Lapprentissage lIUT ma permis lacquisition de nombreuses connaissances grce un enseignement de qualit.

34

Annexes
Dpendance de calcul

35

Compte rendu dautomatisme sous forme de graphe

36

Anda mungkin juga menyukai