Vous êtes sur la page 1sur 36

IUT MONTPELLIER LICENCE PROFESSIONNELLE ASSISTANT CHEF DE PROJET INFORMATIQUE

Représentation graphique des processus métiers de l’ERP SIMAX et théorie des graphes

IUT MONTPELLIER LICENCE PROFESSIONNELLE ASSISTANT CHEF DE PROJET INFORMATIQUE Représentation graphique des processus métiers de l’ERP

Rapport de stage

Effectué à

NOUT S.A.S Du 7 mars au 17 juin 2010 par

IUT MONTPELLIER LICENCE PROFESSIONNELLE ASSISTANT CHEF DE PROJET INFORMATIQUE Représentation graphique des processus métiers de l’ERP

killruana Directeur de stage : Mlle Nathalie DINDINAUD

Je tiens à remercier les dirigeants de la société Nout, Mlle Miren Lafourcade et M. Jérôme Olivares, qui m’ont permis d’effectuer un stage au sein de leur entreprise. J’adresse également un grand merci à Nathalie Dindinaud, ma tutrice de stage pour son encadrement à travers les missions de développement qu’elle m’a confiée. Je souhaite également saluer la bonne humeur quotidienne et les responsabilités qui m’ont été confiées. Je suis reconnaissant envers l’IUT de Montpellier qui a accepté ce stage.

2

Table des matières

Introduction............................................................................................................4

Présentation de la Société NOUT............................................................................5

Généralités..........................................................................................................5

Historique et partenaires de la société................................................................5 Organisation de l’équipe.....................................................................................5

SIMAX..................................................................................................................7

A qui sont-ils destinés ?...................................................................................7 Quelles fonctionnalités proposent-ils ?.............................................................8 Quelles sont les innovations techniques ?......................................................11 Cadre de travail....................................................................................................13

Organisation......................................................................................................13

Les formations...............................................................................................13 Les réunions...................................................................................................13 Une politique qualité......................................................................................13 Un travail d’équipe.........................................................................................13 Outils utilisés.....................................................................................................14 Microsoft Visual Studio 2010..........................................................................14

Subversion.....................................................................................................15

Graphviz.........................................................................................................16

Travail personnel..................................................................................................17 Premiers pas dans le développement de SIMAX...............................................17 Conversion chiffres romains <-> chiffres arabes...........................................17 Fonctions de hachage....................................................................................18 Visualisation des arbres de dépendances de calcul..........................................20 Analyse du travail à faire...............................................................................20 Traduction des dépendances en langage DOT...............................................20 Exportations de toutes les dépendances de calcul........................................22 Interface utilisateur........................................................................................23 Visualiser les exécutions d’automatismes.........................................................24 Tâche à accomplir..........................................................................................24 Travail réalisé.................................................................................................24 Amélioration des temps de calcul des routages................................................25

3

Recherche de chemin....................................................................................25 Représentation du paramétrage sous forme de graphe.................................25

Dijkstra...........................................................................................................26

Résultat..........................................................................................................27

Conclusion............................................................................................................28

Annexes...............................................................................................................29

Dépendance de calcul.......................................................................................29 Compte rendu d’automatisme sous forme de graphe.......................................30 Compte rendu d’automatisme sous forme de graphe

4

Introduction

Afin de valider ma licence professionnelle d’Assistant Chef de Projet Informatique, j’ai effectué un stage d’une durée de 15 semaines dans la société NOUT implantée dans la zone du Millénaire à Montpellier. Lors de ma recherche de stage, mon objectif était de trouver un stage en informatique et plus particulièrement un sujet me permettant de faire du développement logiciel. Je voulais profiter de ce stage pour accroître rapidement mes compétences avant d’arriver sur le marché de l’emploi.

Parmi les différentes offres de stage, j’ai accepté l’offre que proposait la société NOUT car durant l’entretien j’ai compris que ce stage me permettrait de réaliser un travail varié, intéressant et utile au sein de l’entreprise.

Le premier objectif de ce stage était de mettre en pratique les connaissances techniques que j’avais pu acquérir au cours de ma formation. En effet, j’ai suivi beaucoup de cours théoriques que je n’avais pas encore pu appliquer à des situations concrètes. Le second objectif était de me confronter au monde de l’entreprise et à son mode de fonctionnement afin de préparer mon insertion dans le monde professionnel.

La première phase du stage fût de me familiariser avec le logiciel développé par l’entreprise : l’ERP SIMAX ainsi qu’avec les outils utilisés. La seconde phase du stage a consisté à l’implémentation d’un système permettant d’extraire une représentation graphique des processus métiers. Enfin, lors de la dernière partie, j’ai travaillé sur l’optimisation des temps de calcul grâce à la théorie des graphes.

Dans ce rapport, je vais commencer par présenter l’entreprise puis le travail que j’ai effectué et enfin mon bilan personnel.

5

Présentation de la Société NOUT

Généralités

La société NOUT est une start-up innovante dans le domaine de l’édition de logiciel de gestion. Elle a été créée en Février 2006 dans le cadre d’une incubation dans la pépinière d’entreprises de Montpellier Agglomération : Cap Oméga. Expert en gestion de données et systèmes d'information, la société NOUT commercialise des logiciels de gestion intégrés ERP sans programmation.

Historique et partenaires de la société

Avec plusieurs années d'expérience dans le domaine des logiciels de gestion sur mesure, la société NOUT a travaillé sur plusieurs projets d'envergure dont l'outil de PC Soft : WinDev. Par la suite, afin de réduire les coûts et les délais informatiques, elle a imaginé une nouvelle façon de réaliser des logiciels de gestion sur mesure et adaptables.

Ainsi, la société NOUT est éditrice de SIMAX, son logiciel de gestion globale de type ERP entièrement et facilement paramétrable. L’innovation technologique proposée au travers du logiciel SIMAX constitue une véritable révolution comparée aux précédentes approches de développement et d’intégration de logiciels de gestion. De ce fait, SIMAX a été :

Lauréat du concours Tremplin-Recherche du Sénat 2006,

Lauréat du concours du Ministère de la Recherche pour la création

d’entreprises innovantes, catégorie Création-Développement en 2006, Gagnant du coup de cœur 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 l’ERP 2008. D'ores et déjà, de nombreuses entreprises font confiance à NOUT et sont entièrement satisfaites des capacités et des performances de son logiciel SIMAX.

NOUT travaille en partenariat avec un laboratoire du CNRS, le LIRMM, pour la recherche appliquée en Intelligence artificielle. NOUT a également eu la chance de bénéficier des soutiens de l'agglomération de Montpellier, de la région Languedoc Roussillon, de l'État Français et de la Communauté Européenne.

Organisation de l’équipe

L’équipe dirigeante de NOUT est composée de Miren LAFOURCADE et de Jérôme OLIVARES. Miren LAFOURCADE est ingénieur en informatique IIE et titulaire d’un MBA effectué à l’ESC de Montpellier. Avec plus de dix ans d’expérience professionnelle dans le domaine de l’édition logicielle, elle est responsable de la gestion de l’entreprise et de son développement commercial. Jérôme OLIVARES, après sa maîtrise en informatique, a obtenu le titre d’ingénieur en informatique à PC Soft par valorisation de compétences. Avec lui aussi plus de

6

dix ans d’expérience professionnelle dans le domaine de l’édition logicielle, il dirige l’axe Recherche et Développement de la société.

Miren et Jérôme 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 société française d’édition de logiciels basée à Montpellier. Créée en 1984, cette société est spécialisée dans les environnements de développement professionnels, en particulier les Ateliers de Génie Logiciel (AGL). WinDev est l’AGL numéro un en France, il est commercialisé dans une cinquantaine de pays à travers le monde.

Grâce à la conception de WinDev, les fondateurs de NOUT ont acquis des compétences de développement et une bonne expérience du marché des logiciels de gestion sur mesure. Cinq années de réflexion ainsi qu’une discussion impromptue dans un train sont à l’origine du concept présent dans le logiciel SIMAX.

Une équipe de développeurs, de paramétreurs et de commerciaux épaule les deux fondateurs de l’entreprise. Après seulement quatre ans d’activité, NOUT compte déjà une vingtaine de collaborateurs.

Chez NOUT, l’organigramme l’entreprise :

officiel positionne le client au centre de

dix ans d’expérience professionnelle dans le domaine de l’édition logicielle, il dirige l’axe Recherche et Développement

La cartographie suivante est l’illustration du fonctionnement des processus chez NOUT. L’entreprise est certifiée ISO 9001 : V2000.

7

Le processus commence par la prise en compte des besoins et des exigences des clients. Les

Le processus commence par la prise en compte des besoins et des exigences des clients. Les processus commerciaux et de réalisation sont mis en place avec l’appui des supports. Le processus se termine d’un côté avec la satisfaction des clients, et de l’autre avec un feed-back qui permet de prendre des mesures correctives si nécessaire et de positionner l’entreprise dans un cycle d’amélioration continue. Les processus de direction et d’amélioration englobent cette cartographie et viennent en soutien.

SIMAX

Nout commercialise un ERP généraliste souple pour les petites entreprises, SIMAX ODERP8 ainsi qu’un ERP pour les entreprises à activité originale, SIMAX APPLICATIF (cf. Annexe FIG. 1 et 2 les plaquettes de présentation). Nout propose aussi des solutions de gestion sectorisées pour les métiers de l’immobilier, de la formation professionnelle, de l’assurance, des boutiques et du secteur médical.

Le slogan de ses logiciels est : “La gestion de toute votre entreprise selon VOS méthodes et VOS besoins”.

Les entreprises petites ou grandes utilisent des outils pour stocker et analyser les informations liées à 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. C’est un produit de substitution à la fois pour l’utilisation de tableaux Excel, les solutions sur mesure et les ERP.

8

A qui sont-ils destinés ?

A l’origine, les ERP étaient uniquement dédiés aux grandes entreprises. Aujourd’hui les éditeurs de solutions d’ERP ont pris conscience du fait que les besoins des PME9 en matière de gestion sont les mêmes que ceux des grandes entreprises mais que leur budget informatique ne s’apprécie 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 destinés aux PME. La technologie SIMAX, testée par des entreprises depuis fin 2004, permet entre autres de gérer des formations en langues, de suivre la production de salades en sachet, de gérer une boutique de luxe, une agence immobilière et d’effectuer des surveillances péridurales.

Quelles fonctionnalités proposent-ils ?

Les logiciels SIMAX ont été conçus dans le but d’offrir aux entreprises un outil de travail complet, fiable, facile d’utilisation et surtout un outil leur permettant de gagner un temps précieux dans leurs tâches quotidiennes. Par exemple, SIMAX ODERP est livré avec un système de gestion initial offrant les fonctionnalités suivantes : messagerie électronique, gestion commerciale, gestion de la relation client, des achats, des stocks, gestion des ressources humaines, sauvegarde automatique de données et journal comptable.

La fenêtre principale

Elle se compose d’une barre de menu paramétrable, de la liste des actions

les plus récemment exécutées et surtout d’une messagerie intégrée. En s’agrandissant, la fenêtre principale devient une messagerie électronique particulièrement simple d’utilisation qui permet de faire circuler l’information au sein de la société et vers l’extérieur.

9

Les plannings La force de ce système réside dans sa capacité à déterminer quelles sont les

Les plannings

La force de ce système réside dans sa capacité à déterminer quelles sont les informations les plus pertinentes, les calculs intéressants et les représentations des informations à proposer. Par exemple, le système proposera une représentation sous forme d’agenda pour une liste d’éléments disposant d’une date de début ou d’une date de fin.

C’est le cas de ce planning affichant l’agenda des collaborateurs de l’entreprise :

10

L’affichage des données SIMAX permet de visualiser, de modifier donnée grâce à des formulaires de saisie.

L’affichage des données

SIMAX permet de visualiser, de modifier donnée grâce à des formulaires de saisie.

et de créer n’importe quelle

L’affichage des données SIMAX permet de visualiser, de modifier donnée grâce à des formulaires de saisie.

11

L’utilisateur peut aussi visualiser ses données sous forme de liste et demander un affichage des calculs récapitulatifs sur les éléments de la liste.

L’utilisateur peut aussi visualiser ses données sous forme de liste et demander un affichage des calculs

12

Les droits d’accès Les fonctionnalités disponibles dépendent des droits d’accès donnés à l’utilisateur SIMAX. Les superviseurs

Les droits d’accès

Les fonctionnalités disponibles dépendent des droits d’accès donnés à l’utilisateur SIMAX. Les superviseurs ont tous les droits et peuvent modifier l’ensemble des menus et de la base de données. La configuration des droits d’accès s’applique à un seul utilisateur ou à un groupe d’utilisateurs. Elle permet d’autoriser ou d’interdire certain type d’action ou des actions particulières.

Quelles sont les innovations techniques ?

A partir de ces fonctionnalités, le logiciel est capable de s’auto-modifier pour répondre aux spécificités de l’entreprise. C’est à dire qu’il fait croître le nombre de ses fonctionnalités à la demande.

La base de données SIMAX

En plus de la base de données de l’entreprise, SIMAX possède une seconde base de données, le langage. Le langage contient la description des besoins et

des méthodes de l’entreprise.

SIMAX utilise une seule fenêtre dynamique intelligente qui affiche l’information demandée par l’utilisateur en se référant au langage. Les écrans de saisie et de visualisation sont créés dynamiquement par le système.

13

L’assistant virtuel : Max Les logiciels d’aujourd’hui proposent souvent un nombre important de fonctionnalités mais l’utilisateur

L’assistant virtuel : Max

Les logiciels d’aujourd’hui proposent souvent un nombre important de fonctionnalités mais l’utilisateur ne sait pas toujours les retrouver sans parcourir les menus un à un. A l’inverse, SIMAX permet de communiquer avec un employé virtuel, appelé MAX à travers un champ de saisie de la fenêtre principale. Les mots qu’il connaît sont ceux du langage de SIMAX, c’est à dire ceux décrivant les données manipulées, les termes propres au vocabulaire de l’entreprise ainsi que leurs synonymes. Il peut donc comprendre des requêtes en langage naturel.

Lorsque l’utilisateur dit par exemple à MAX : « J’ai

un

nouveau produit », le

système analyse la phrase et en déduit une action de création d’article. La

fenêtre dynamique affiche alors un formulaire de création d’article avec les champs définis par le superviseur lors de la création du formulaire.

L’auto-modification

Chaque version de SIMAX est unique et adaptée à l’entreprise : Menus,

formulaires, listes, requêtes, automatismes, contrôles de validité. Tout utilisateur peut faire évoluer le logiciel par une méthode simple sans programmation.

Concrètement, en bas des menus, des formulaires, des filtres avant les listes

etc

...

On retrouve un lien Plus

...

Moins

qui permet de modifier l’élément en cours.

14

Ci-dessous, le lien Plus

...

Moins

permet d’accéder à la description du menu et de

modifier les libellés, réordonner, ajouter ou enlever des actions.

Ci-dessous, le lien Plus ... Moins permet d’accéder à la description du menu et de modifier

Un utilisateur peut donc facilement et à tout moment, selon ses droits d’accès, modifier la description des méthodes et des besoins de l’entreprise. Ceci entraîne un ajustement automatique de la structure de la base de données, des écrans et des traitements. La base de données est donc pérenne.

Toutes les actions effectuées dans SIMAX sont enregistrées. Vous avez donc à disposition un historique complet par date et par personne de toutes les modifications. Un système d’annuler-refaire vous permet de revenir en arrière.

15

Cadre de travail

Organisation

Les atouts principaux de la société

sont un fort travail

d’équipe et une

politique qualité bien déterminée. Pour cela, la société a mis en place un mode

de fonctionnement claire et efficace.

Les formations

La société estime que toutes les personnes travaillant de près ou de loin en rapport avec le projet SIMAX doivent être capable de manipuler au moins les fonctionnalités basiques du logiciel. C’est pour cela que toutes les personnes intégrant la société suivent une formation d’une journée avec cours et exercices afin de se familiariser avec cet outil.

Les réunions

Les réunions permettent de faire un bilan du travail réalisé par chacun puis de réfléchir aux prochaines étapes et à la répartition des tâches. Peu contraignantes, les réunions ont lieux par équipe chaque semaine, ainsi que toutes les fois où l’équipe ressent un besoin de mise au point. Les dirigeants font en sorte que l’ensemble de l’équipe concernée soit présent afin d’impliquer tout le monde dans le projet. Ces réunions sont l’occasion d’échanger des idées, de poser des questions et de trouver les meilleures solutions possibles

Une politique qualité

La société Nout pratique la politique de « la tolérance zéro » pour les bugs, c’est à dire qu’elle corrige tous les bugs détectés ou signalés. De plus elle a mis en place des méthodes rigoureuses de prévention. L’équipe de développement utilise une version “Debug” qui leur permet de faire des contrôles à chaque étape de l’exécution ainsi qu’une version “Release” plus rapide. Un serveur de sources et des sauvegardes régulières permettent une traçabilité complète 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 améliore la lisibilité. Les tests se déroulent ensuite en 3 étapes. La première, les développeurs de chez Nout vérifient la qualité de leur travail. Dans un deuxième temps, des programmes de tests automatiques développés par la société pour leurs logiciels effectuent des tests exhaustifs. Pour finir, la société est elle-même le premier utilisateur de ses produits et elle fait appel à des clients testeur

Un travail d’équipe

J’ai pu constater dès le premier jour que l’équipe de Nout était une équipe soudée et polyvalente. Chaque personne doit réaliser les tâches qui lui ont été confiées, mais personne n’hésite à conseiller son collègue, ni à lui venir en aide lorsque celui-ci rencontre des problèmes de tous genres. Ceci m’a d’ailleurs permis d’intégrer rapidement l’équipe. Au quotidien, les dirigeants ne font pas de différences de statut, le but premier étant que le projet avance et avance bien.

16

Pour cela, aucune idée n’est mise de côté, des réunions et des débats improvisés rythment les journées.

17

Outils utilisés

Microsoft Visual Studio 2010

Visual C++ est un environnement de développement pour le langage de

programmation C++ conçu par Microsoft. Cet outil puissant permet de concevoir, développer et debugger des applications robustes pour Microsoft Windows. Il facilite le travail des développeurs en mettant à disposition des fonctionnalités habituelles comme le débogage, l’auto-indentation, etc ...

Outils utilisés Microsoft Visual Studio 2010 Visual C++ est un environnement de développement pour le langage

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 développeurs de travailler sur les mêmes fichiers en même temps. A chaque fois que l’utilisateur veut modifier un nouveau fichier la fonction d’édition “Edit” lui permet d’avoir les droits d’écriture sur celui-ci. Le logiciel se charge de fusionner les différentes versions de chaque fichier lors des mises à jour “update” et des validations “Commit”. Ce fonctionnement permet à l’ensemble de l’équipe de développement de profiter des dernières modifications à chaque mise à jour. Le Subversion originel est un logiciel fonctionnant en ligne de commande. Afin d’en simplifier l’utilisation, nous utilisons un client graphique dérivé : TortoiseSVN.

Subversion Subversion est un logiciel libre de gestion de versions. Cet outil est indispensable pour le

19

Graphviz

Graphviz est une suite d’outils créée par les laboratoires de recherche de l’entreprise AT&T. Il s’agit d’un langage de descriptions de graphes appelé langage DOT et de divers scripts permettant de générer des images à partir de graphes décrit en langage DOT. Graphviz permet l’export vers de nombreux formats tel que des images bitmaps (GIF, JPG, PNG…) ou vectorielles (SVG). Il permet aussi d’exporter les graphes sous forme de fichiers PDF ou PostScript afin d’en simplifier l’impression. Il dispose de différents moteurs de rendu, chacun étant spécialisé dans un type de graphes : alors que dot est dédié aux graphes représentant une hiérarchie, neato est spécialisé dans les graphes représentant d’interconnexion tel que les réseaux de télécommunications.

Graphe en langage DOT

graph {

A -- B -- C -- A;

}

Graphe exporté avec dot

Graphviz Graphviz est une suite d’outils créée par les laboratoires de recherche de l’entreprise AT&T. Il

Graphe exporté avec neato

Graphviz Graphviz est une suite d’outils créée par les laboratoires de recherche de l’entreprise AT&T. Il

20

Travail personnel

Premiers pas dans le développement de SIMAX

Avant de me lancer dans le vif du sujet, j’ai dû au préalable passer par une étape de découverte des pratiques de développement de l’entreprise et du code source de SIMAX en y ajoutant de petites fonctionnalités.

Conversion chiffres romains <-> chiffres arabes

Mon premier travail fut d’étendre le langage de SIMAX afin d’y ajouter

deux fonctions permettant respectivement de convertir un nombre en arabes en chiffres romains, et réciproquement.

Les algorithmes utilisés pour mener à bien ces objectifs sont les suivants :

Fonction ChiffresArabesVersChiffresRomains Paramètres nombreArabe : entier à convertir en chiffres romains Pré-requis nombreArabe doit être compris entre 1 et 4999 inclus Retourne Une chaine de caractère représentant nombreArabe en chiffres Debut nombreRomain := ""

romains

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 Paramètres nombreRomain : chaine de caractère à convertir en chiffres arabes Pré-requis nombreRomain représente un nombre romain valide Retourne un entier étant l'équivalant en chiffres arabes de nombreRomain Début nombreArabe = 0

pour i de 0 à taille(TableauChiffresRomains) faire tant que nombreRomain commence par tableauChiffreRomain[i] faire nombreArabe := nombreArabe + TableauChiffresArabes[i] nombreRomain.SupprimerPremièreOccurence(TableauChiffreRomains[i])

21

fin tant que fin pour

retourn nombreArabe Fin

Les tableaux TableauChiffresRomains et TableauChiffresArabes sont définis de la manière 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 l’employé virtuel MAX, ou en tant que formule dans un formulaire SIMAX.

fin tant que fin pour retourn nombreArabe Fin Les tableaux TableauChiffresRomains et TableauChiffresArabes sont définis de

Fonctions de hachage

Une fonction de hachage est une fonction permettant à partir d’une donnée fournie en entrée de générer une empreinte (ou condensat). Les fonctions de hachages sont très utilisées en sécurité informatique pour s’assurer de l’intégrité de fichiers ou en tant que fonction de chiffrement non réversibles. Deux fichiers différents donnent deux empreintes différentes. Cette particularité permet de s’assurer qu’un fichier n’a pas été modifié par exemple lors de son téléchargement en comparant l’empreinte de référence avec celle du fichier téléchargé. Dans l’image ci-dessous, vous pouvez voir l’usage de la fonction de hachage MD5 pour s’assurer de l’intégrité du fichier bzip2-1.0.6.tar.gz.

22

L’autre grand intérêt des fonctions de hachage est leur côté irréversible. En effet, s’il est très

L’autre grand intérêt des fonctions de hachage est leur côté irréversible. En effet, s’il est très facile de calculer l’empreinte d’une donnée, il est très complexe de trouver quelle donnée a pu donner tel empreinte. C’est pour cela que généralement, plutôt que de stocker le mot de passe de l’utilisateur « en clair », on préférera stocker son empreinte. Pour identifier l’utilisateur, il suffit de calculer l’empreinte du mot de passe utilisé à la connexion et la comparer à celle enregistré lors de l’inscription : si elles sont identiques, l’utilisateur a donné le bon mot de passe. Par contre, si jamais une personne malveillante arrivait à récupérer les empreintes des mots de passes, il ne pourrait pas retrouver le mot de passe d’origine.

SIMAX possédait déjà dans son cœur le code des fonctions de hachage MD5 et SHA1. Mon travail a consisté à rendre ces fonctions utilisables par l’utilisateur pour calculer dans SIMAX l’empreinte de fichiers ou de données. Cela m’a permis de comprendre comment fonctionnaient les interactions entre le cœur de SIMAX et l’utilisateur.

23

Visualisation des arbres de dépendances de calcul

La plus part des logiciels de gestions ont leur logique programmée : 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é paramétrage : c’est l’utilisateur qui paramètre SIMAX pour qu’il réponde à ses besoins. Un paramétrage SIMAX comporte de nombreux formulaires représentant les objets nécessaires à son fonctionnement. Un formulaire est constitué de colonnes qui sont les données caractérisant ce formulaire. Par exemple, le formulaire Adresse, qui représente une adresse, contient les colonnes n° de rue, nom de rue, ville, code postale, pays… Une colonne peut être un type de base tel qu’un entier ou une chaîne de caractères. Mais une colonne peut aussi être un formulaire. Ainsi le formulaire client contient les colonnes nom et prénom qui sont des chaines de caractères 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 manière, si le prix HT ou le taux TVA venait à être modifié, le prix TTC serait automatiquement recalculé. Un calcul peut très bien contenir le résultat d’un autre calcul : dans le formulaire Stock, on trouve la colonne valeur stock TTC qui est le résultat 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 première partie de mon stage fût de mettre en place un système permettant de visualiser ces dépendances de calcul.

Analyse du travail à faire

SIMAX possède un système pour calculer les dépendances de calculs et des structures de données pour les exploiter, mais rien n’avait était prévu pour que l’utilisateur puisse facilement les voir. Il fallait donc trouver un système permettant à partir de ces données produire un résultat graphique facilement compréhensible.

Pour parvenir à ce résultat, il a été décidé de traduire les dépendances de calculs en langage DOT, et d’utiliser les outils GraphViz pour les convertir en images.

Traduction des dépendances en langage DOT

Une

dépendance

de

calcul

est

modélisée

avec

les classes

CDependanceCalcul et CNoeudDependanceCalcul dont voici une représentation

simplifiée :

24

Comme nous pouvons le voir, une dépendance de calcul est composée d’une racine qui contient un

Comme nous pouvons le voir, une dépendance de calcul est composée d’une racine qui contient un nœud de dépendance qui contient lui-même 0 à N nœuds de dépendance. Il suffit donc de parcourir cet arbre, et pour chaque nœud que nous croisons, il suffit de crée un sommet en langage DOT et de le relier à son père. Cette est réalisée par les algorithmes suivants :

25

Fonction ExporterDependanceCalcul Paramètres 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 dépendance de calcul au format DOT Début nomFichier := dependanceCalcul.Calcul.id + ".dot" cheminFichier := dossierDestination + nomFichier fichier := CreerEtOuvrir(cheminFichier) ajouter à fichier le début d'un graphe DOT AjouterDepedanceCalcul(dependanceCalcul, fichier) ajouter à fichier la fin d'un graphe DOT Fermer(fichier) retourne cheminFichier Fin

Procedure AjouterDependanceCalcul Paramètres noeudDependanceCalcul : un objet CNoeudDependanceCalcul fichier : un fichier ouvert dans lequel écrire Résultat 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 arête 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 dépendances de calcul

Maintenant que nous pouvons exporter une dépendance de calcul, il suffit

d’exporter toutes les dépendances de calcul, et de transformer chaque fichier DOT généré en une image grâce à GraphViz.

Fonction ExporterDependancesCalcul

Paramètres ParametresConversion : les paramètres de conversion des fichiers DOT en image (dossier destination, format d'image) ListeDependancesCalcul : la liste des dépendances à exporter Retourne une liste contenant l'ensemble des images générées 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 d’une dépendance de calcul exportée :

Exportations de toutes les dépendances de calcul Maintenant que nous pouvons exporter une dépendance de calcul,

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 paramétrages très complexes, nous avons pu constater l’existence de dépendances comportant plusieurs dizaines de nœuds. Vous pourrez en trouver un exemple en annexe.

Interface utilisateur

Maintenant que nous sommes capables d’exporter des dépendances de calcul, il ne nous reste plus qu’à faire une interface utilisateur. Cette interface permet à l’utilisateur de choisir quelles dépendances il souhaite exporter (toutes ou une en particulier), dans quel dossier et dans quel format d’image.

28

Visualiser les exécutions d’automatismes SIMAX implémente un mécanisme permettant l’exécution d’actions lors de la survenue de

Visualiser les exécutions d’automatismes

SIMAX implémente un mécanisme permettant l’exécution d’actions lors de la survenue de certains événements : les automatismes. Les automatismes sont déclenchés par des événements des événements temporels (tous les jours à midi) que des actions (Ajout d’un nouveau client). Les automatismes permettent de simplifier le travail de l’utilisateur, que ce soit en exécutant des actions qu’il pourrait oublier de faire sans ou l’exécution de fastidieuses à faire à la main. Par exemple, dans le cadre d’un paramétrage de SIMAX pour l’immobilier, la suppression d’un immeuble entraine automatique la suppression des différents étages qui le compose, et la suppression de ces mêmes étages va entrainer la suppression des appartements les composants.

Tâche à accomplir

L’exécution d’un automatisme peut par effet de ricochets provoquer l’exécution de nombreux autres automatismes. Afin de s’assurer du bon fonctionnement des automatismes, un compte rendu peut-être généré à la demande de l’utilisateur. Seulement, celui-ci est affiché sous forme tabulaire, et sa compréhension peut s’en retrouver difficile pour une personne peu habituée. Voici un court extrait du compte rendu d’automatisme suite à la création d’une facture :

29

Mon travail a consisté à implémenter une solution utilisant la suite d’outils GraphViz pour générer des

Mon travail a consisté à implémenter une solution utilisant la suite d’outils GraphViz pour générer des graphes reprenant les données du tableau ci-dessus, mais présenté sous une forme plus facilement compréhensible.

Travail réalisé

Comme les structures de données contenant les résultats d’exécutions des automatismes ressemblaient fortement aux structures du projet précédant, j’ai utilisé la même approche consistant en un parcours récursif de l’arbre avec l’ajout dans un fichier au format DOT des informations de tous les nœuds rencontrés, pour ensuite finir par la conversion de ce fichier en image. Vous pourrez trouver en annexe l’équivalent graphique du compte rendu si dessus. Un manuel d’utilisation expliquant comment lire le graphe a aussi été rédigé.

30

Amélioration 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 qu’il a acheté :

Amélioration des temps de calcul des routages Pour fonctionner, SIMAX a couramment besoin de trouver le

Bien qu’efficace, le système de routage possède quelques faiblesses au niveau du temps d’exécution. Par exemple, il lui faut près d’une minute pour déterminer qu’il n’existe pas de chemin entre deux formulaires donnés. Mon travail a consisté à voir s‘il n’était pas possible de diminuer les temps de calculs afin de rendre SIMAX plus réactif.

Recherche de chemin

En cours d’algorithmie et complexité, il nous a été présenté l’algorithme de Dijkstra. Il s’agit d’un algorithme de recherche de chemin publié en 1958 par l’informaticien Edsger Dijkstra en 1959 et a possède les particularités de toujours trouver le meilleur chemin s’il existe et d’être le plus rapide dans sa catégorie.

Seulement, l’algorithme de Dijkstra ne travaille qu’avec des graphes. Il a donc fallu modéliser le paramétrage de SIMAX sous forme de graphe.

Représentation du paramétrage sous forme de graphe

En cours, nous avons vu deux manières différentes de représenter un graphe. Mais aucune des deux ne convenaient à cause des contraintes intrinsèques aux données manipulées. Dans SIMAX, deux formulaires sont reliés si ils possèdent un lien d’héritage (l’un est le père de l’autre) ou si ils ont un lien de type conteneur/contenu exprimé par les colonnes. Dans cet exemple, une Société possède un PDG qui est un Collaborateur, et Collaborateur hérite de Personne.

Amélioration des temps de calcul des routages Pour fonctionner, SIMAX a couramment besoin de trouver le

31

Les structures de données retenues pour constituer le graphe sont :

Les structures de données retenues pour constituer le graphe sont : Dijkstra L’algorithme de Dijkstra a

Dijkstra

L’algorithme 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 intéressent. Il a donc fallu modifier l’algorithme de Dijkstra pour qu’il tienne compte de cette spécification.

Priorité des arêtes

Lorsque Dijkstra cherche son chemin, il teste tous les sommets sans préjuger de leur valeur. Alors que pour SIMAX, il est plus intéressant de suivre une arête contenant des colonnes qu’une arête d’héritage. De plus, les colonnes en sens direct sont plus intéressantes que les colonnes en sens indirect. Des modifications ont étés apportés pour que Dijkstra puisse tenir compte de ces priorités.

Règles de parcours

Enfin, le routage ne peut pas passer par n’importe quelles arêtes. L’arête

suivante empruntable dépend de celle qu’on vient d’emprunter. Ces règles sont modélisables par l’automate fini suivant :

32

Résultat Au moment de l’écriture de ce rapport, je n’ai malheureusement pu terminer ce projet. Le

Résultat

Au moment de l’écriture de ce rapport, je n’ai malheureusement pu terminer ce projet. Le code est fonctionnel mais pas encore exploitable en l’état : les chemins retournés par Dijkstra ne sont pas toujours les mêmes que ceux de l’anciens système. Je n’ai pas non plus eu le temps de faire des mesures de performances pour voir si le nouveau système est plus rapide que l’ancien, mais il possède un code beaucoup plus clair et concis, ce qui devrait faciliter sa maintenance et évolutions futures.

33

Conclusion

Ce stage a été très bénéfique pour moi, il m’a permis d’apprendre :

à manier la suite d’outils GraphViz ainsi que la théorie des graphes

le

logiciel

Microsoft

Visual Studio, qui permet de développer des

programmes écrits en C++, à travailler dans une véritable équipe de développement avec tout ce que cela implique

Je suis globalement satisfait des résultats finaux qui ont parfaitement su répondre aux attentes de l’entreprise, bien que de nombreuses améliorations soient encore possibles telles que l’ajout de filtres par exemple. L’apprentissage à l’IUT m’a permis l’acquisition de nombreuses connaissances grâce à un enseignement de qualité.

34

Annexes

Dépendance de calcul

Annexes Dépendance de calcul 35

35

Compte rendu d’automatisme sous forme de graphe

Compte rendu d’automatisme sous forme de graphe 36

36