• Aucun résultat trouvé

Correction

Dans le document RAPPORT DE PROJET (Page 21-0)

3. Evolution du progiciel

3.2. Correction

Le logiciel est muni d’un module de traitement des erreurs qui empêche l’utilisateur de voir se lancer le débuggeur d’Access. Le gestionnaire d’erreur enregistre les erreurs dans un fichier Excel nommé « Erreurs.xls » qui se trouve dans le dossier racine du logiciel. Nous avons dû mettre de côté le gestionnaire d’erreur afin de pouvoir accès au code lorsque les problèmes survenaient.

Les problèmes indiqués par ce gestionnaire d’erreurs ne nous permettaient pas tout le temps de nous indiquer la direction dans laquelle il nous fallait chercher, étant donné qu’il nous indiquait des formulaires différents de celui où le problème était situé.

Pour le problème de la modification de numéro de dossier, nous avons observé le fonctionnement général de la modification d’un dossier. Elle consiste en fait à l’ouverture des mêmes formulaires mais avec un mode d’ouverture différent, ce mode d’ouverture est modélisé dans le code par une variable numérique (0 : mode création, 1 : mode modification et 2 : mode consultation). Modifier le numéro de dossier représentait une difficulté étant donné que les autres données s’affichent en fonction de celui-ci, d’où la création d’une variable contenant le numéro de dossier initial et d’une autre pour le nouveau numéro. Après

une étude, nous avons trouvé que le problème venait du fait que dans la plupart des formulaires des dossiers en institution et au domicile, il y avait un inversement de ces deux variables. Nous avons donc modifié le code afin d’utiliser les bonnes variables à chaque formulaire.

Un autre problème grave que nous avons rencontré était l’impossibilité d’enregistrer le commentaire du dossier lors de sa modification. Nous avons analysé le fonctionnement du bouton ‘Enregistrer’ et nous avons donc vu que le code pour l’enregistrement du commentaire était inexistant. Nous l’avons donc rajouté et après test cela fonctionnait.

Nous nous sommes attaqué ensuite au problème de « disparition » des commentaires lors de l’édition ou la modification d’un dossier dès que l’on navigue entre les formulaires. En voyant qu’il s’agissait des commentaires nous avons tout d’abord cru à une omission de code.

En regardant de plus près nous nous sommes aperçu que le problème était dû à l’essence même du fonctionnement du logiciel concernant les dossiers. La navigation entre les formulaires se faisait par le biais d’ouverture successive de chacun des formulaires.

Lors que l’on se trouve dans le menu dossier et que l’on fait nouveau dossier, cela ouvrait le premier formulaire du type choisit (institution ou domicile), ce formulaire était vierge, il nous fallait alors le remplir et cliquer sur ‘Suivant’. Le bouton ‘Suivant’ ouvrait le second formulaire et rendait invisible le premier et ainsi de suite jusqu’au dernier. Pour revenir en arrière lors de l’édition il fallait cliquer sur précédent, ce bouton ne faisait que mettre en invisible le formulaire courant et rendre visible le précédent. Le retour en arrière dans la navigation suivit de l’avancement jusqu’au dernier formulaire faisait disparaître les données rentrées à cause de la réouverture des formulaires. Nous avons donc dû modifier le fonctionnement de la navigation entre les formulaires afin d’optimiser la navigation et éviter de nombreuses erreurs. Nous développerons cette modification dans une partie ultérieure.

Lors de l’utilisation du logiciel nous avons été confronté à d’autres problèmes que ceux dont nous a fait pars M. Chbeir. Nous avons rencontré des problèmes lors de la modification des informations sur un écoutant et un référent. Le problème se manifestait lorsque l’on validait la modification alors qu’aucun centre n’était sélectionné. Le RecordSet ne contenait rien et donc était EOF (End Of File) en conséquence le logiciel plantait sur le ligne :

RqtNumCentre.Fields(« NumCentre »)

Nous avons donc modifié pour que l’on récupère la valeur que si elle existe :

RqtNumCentre.Open "Select NumCentre from Centre where Centre.NomCentre = '"

& LibelCentreRattachement & "';", MaDb, adOpenDynamic, adLockReadOnly

If Not RqtNumCentre.EOF Then

NumCentre = RqtNumCentre.Fields("NumCentre") End If

Nous avons également trouvé des erreurs dans le formulaire appel, certaines options ne pouvaient être sélectionnées. L’erreur provenait de la propriété d’activation des cases à cocher, elle était à faux donc elle ne permettait pas la modification.

3.3. Les améliorations

Un des objectifs de notre projet était d’améliorer les capacités du logiciel. C’est donc cette partie que nous allons vous présentez maintenant.

Les premières améliorations effectuées correspondaient à des besoins de stockage de données. Nous avons donc rajouté la possibilité d’enregistrer plusieurs numéros de téléphone et d’email pour tous les centres. Concernant les écoutants et les référents, nous avons rajoutés une option permettant d’indiquer si ils ne travaillent plus pour Alma et depuis quand.

Dans la première version, le nombre d’écoutant était limité à deux par dossier. Ce nombre s’étant avéré être trop juste, nous avons donc instauré cinq écoutant par dossier.

Concernant les référents, leur nombre était de sept, nous l’avons réduit à cinq étant donné que cela s’avérait suffisant. Nous en avons également profité pour changer l’interface graphique de ces sélections, afin de la rendre plus belle et plus pratique.

Aperçu de la version 1 :

Aperçu de la version 2 :

Le Docteur Girardier nous a également fait part d’une volonté d’intégrer les couples homosexuels dans l’Etat Civil. Nous avons donc remplacé le choix "Couple" par "Couple Hétérosexuel" et "Couple Homosexuel". Bien entendu il a fallu modifier tous les codes utilisant cette variable (enregistrement dans les tables, chargement dans les formulaires...)

Pour des raisons de praticité, nous avons également marqués les champs obligatoires d’une *, afin de permettre aux utilisateurs de remplir plus rapidement les dossiers, et de surtout, bien collecter ces données qui sont indispensables au bon enregistrement du dossier.

Nous avons aussi ajouté une option concernant les appelants. En effet, nous avons rajouté une option qui leur permet de rester Anonyme. La première version n’offrait que la possibilité de le qualifier d’Inconnu et il a été reconnu que ce n’était pas suffisant.

Par ailleurs, nous avons rajouté, dans la première étape de l’évaluation d’un dossier, la possibilité de dire que l’activité réalisée est une simple demande de conseils. Cette option s’accompagne d’un commentaire afin de détailler ce qui a été dit.

Pour une plus grande facilité de saisie, nous avons également copié les champs de l’adresse de l’institution dans les champs d’adresse de la victime.

La mise à jour voir Annexe

Le premier module que nous avons décidé de réaliser était le module de mise à jour.

En effet, il était bien sûr impensable de déployer une nouvelle version du logiciel où il faut ressaisir tous les dossiers présents sur la première version.

Pour effectuer cette mise à jour, il nous faut bien entendu le chemin de la base source. Nous le récupérerons dans une étiquette qui recevra le fichier sélectionné grâce à la boite de dialogue

‘Parcourir’. Pour des raisons de praticité, nous avons mis un chemin par défaut à cette base qui correspond à l’installation standard du logiciel.

Avant d’effectuer la mise à jour, nous supprimons d’abord toutes les valeurs qui auraient pu être saisies dans la nouvelle base. Cette suppression s’effectue grâce à une boucle for qui

parcoure les éléments d’un tableau contenant les noms des tables de la base. Dans cette boucle nous avons mis une requête de suppression. Il nous a fallu faire attention à l’ordre des tables à causes des dépendances fonctionnelles.

Pour la mise à jour proprement dite, nous allons utiliser le même principe, c'est-à-dire boucler dans un tableau et insérer les valeurs. Avant l’insertion, nous allons nous servir d’une connexion à la base source afin de lister ses tables. Après vérification de l’existence de la table dans l’ancienne base, nous insérons ces données dans la nouvelle. Cette précaution est nécessaire car sinon, on demande d’insérer des données à partir d’une table inexistante.

Afin d’expliciter cette mise à jour, nous avons ajouter une barre de progression qui est basée sur l’indice de parcours des tableaux contenant le nom des tables. Un message vient confirmer que la mise à jour s’est bien déroulée.

Pour plus de renseignements, vous pouvez consulter le manuel de maintenance.

La sauvegarde Voir Annexe

Le second module que nous avons développés est un module de sauvegarde (on est jamais trop prudent, surtout dans l’informatique). Ce module permet donc de réaliser une sauvegarde de la base à n’importe quel moment. A cette sauvegarde est associée un numéro, une date et un commentaire, tout cela afin de permettre une meilleure identification.

Tout d’abord, il faut affecter un numéro à la sauvegarde, cela s’effectue grâce à une requête qui renvoie le numéro maximal dans la table. Puis, nous enregistrons dans la table ce numéro, la date et le commentaire associés à cette sauvegarde.

Ensuite, nous allons réaliser la copie de la base (celle-ci s’effectuera dans le répertoire courant). Pour cela, nous créons un fichier de commande .bat de copie :

‘déclarations

Dim fs As FileSystemObject Dim f As TextStream

‘affectations

Set fs = CreateObject("Scripting.FileSystemObject")

Set f = fs.OpenTextFile(CurrentProject.Path & "\CopyDB.bat", 2, True)

f.Write "copy " & """" & BaseASauvegarder & """" & " " & """" & AdrBaseNouv & """"

f.Close

La copie s’effectue, et, pour gérer l’évolution de la barre de progression, nous faisons une boucle conditionnelle qui a pour condition une taille de la base initiale différente de la copie.

Nous avons également intégrer une fonction d’attente dans la boucle, afin de ne pas surcharger le programme inutilement. Cette fonction nous permet d’attendre 4000 millisecondes entre chaque test. La barre de progression est donc à son maximum lorsque les deux bases font la même taille, c'est-à-dire lorsque la copie est terminée. Un message confirmera le bon déroulement de la sauvegarde.

Pour plus de renseignements, vous pouvez consulter le manuel de maintenance.

Les liens vers des fichiers externes voir Annexe

Une des nouveautés de la version deux est l’ajout d’un formulaire permettant d’enregistrer des liens vers des fichiers externes pour chaque dossier. Ces liens peuvent par exemple concerné des lettres écrites aux différents organismes, des emails d’actions lancées...

Cet enregistrement se fait de façon très intuitive, grâce à la présence de boîtes de dialogue

‘Parcourir’ qui permettent de directement sélectionner son fichier. Le chemin d’accès de ce fichier s’inscrit dans l’étiquette correspondante.

Les utilisateurs peuvent également consulter directement ces fichiers grâce aux boutons illustrés par une flèche. L’exécution de l’application correspondant au fichier sélectionné se fait de façon très facile :

 Tout d’abord, il faut créer une fonction ShellExecute

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _

(ByVal hwnd As Long,

ByVal lpOperation As String, ByVal lpFile As String,

_ByVal lpParameters As String, ByVal lpDirectory As String,

ByVal nShowCmd As Long) As Long

 Ensuite, il ne reste plus qu’ à l’appeler

ShellExecute Me.hwnd, "open", Me.LibelLien1, "", CurrentProject.Path, 1

Depuis ce formulaire, l’utilisateur peut également ouvrir un nouveau document word ou texte.

Cette fonctionnalité est accessible au travers de deux boutons qui exécutent word et le notepad. Bien sûr, l’utilisateur ne doit pas oublier, après la création de son document (courrier...) d’insérer son lien dans le formulaire.

Pour enregistrer ces liens, nous avons donc créés deux tables : LiensFichiers et LienFichiersInst. Ce formulaire est accessible via une option du dernier formulaire d’un dossier.

Les frères et sœurs voir Annexe

Il est également apparu, lors l’utilisation du logiciel par les bénévoles, le besoin de pouvoir, pour chaque victime, lui associer un frère ou une sœur, les maltraitances étant souvent communes. Pour cela, nous avons créés une table FamilleVictime qui nous permet de stocker les coordonnées de celle-ci (ces informations ne sont bien entendues pas obligatoires pour l’enregistrement du dossier).

Ce formulaire est accessible via une case à cocher ou un bouton du deuxième formulaire.

Liens entre les appels et les dossiers

Ouverture Chemin du fichier Localisation de l’exécution

Dans le menu appel existait une fonctionnalité qui permettait d’associer un dossier à un appel. Nous avons donc décidé d’ajouter un bouton qui permet de consulter directement ce dossier depuis l’appel correspondant. Cette fonctionnalité n’a pas été difficile à réaliser étant donné que nous avions déjà mis en place la nouvelle gestion des liens, gestion que nous allons aborder maintenant.

Les liens sur les étapes des dossiers

Afin de faciliter grandement la navigation dans un dossier, nous avons mis en place un système qui est placé sur la gauche du formulaire, sur les anciens indicateurs de position. Pour ces liens, nous nous sommes tout d’abord basés sur le fonctionnement des boutons ‘Suivant’

et ‘Précèdent’ qui consistaient à ouvrir chaque formulaire. Après avoir rencontrés plusieurs problèmes de disparition de données et d’erreurs diverses, nous avons décidés de repenser complètement la navigation dans les dossiers.

Dans la version une, comme nous l’avons déjà dit précédemment, les formulaires étaient ouverts à chaque fois. Nous allons voir comment notre nouveau système fonctionne :

 en mode création : dans ce cas, les formulaires sont créés à chaque fois qu’ils sont ouverts. En effet, il n’y a pas de problème vu qu’il n’y a pas de données à charger dedans.

 En mode modification : les formulaires sont tous ouverts à la validation du choix d’ouverture en modification. Seul le premier formulaire est visible, les autres le deviennent lorsque l’on le demande (que ce soit par les boutons

‘Suivant’, ‘Précédent’ ou les liens sur le côté)

 En mode consultation : c’est le même fonctionnement que le mode modification, sauf que les champs de tous les formulaires sont verrouillés Le déplacement de la fenêtre grâce à la molette de la souris

Nous nous sommes rendu compte que le déplacement vertical du formulaire était impossible. Nous avons donc essayé de l’ajouter, ceci afin d’accélérer les vitesses de saisies, mais après de nombreuses tentatives, nous n’avons pas réussis. Le formulaire arrivait à se déplacer mais cela nous apportait de nombreuses erreurs que nous n’avons réussis à résoudre.

Nous ne nous sommes pas trop attardé sur cette fonctionnalité "gadget" donc nous avons abandonné pour nous consacrer à des choses plus importantes.

Modification du numéro d’appel

Nous avons également changé le numéro d’appel, plus précisément, nous l’avons agrandit. Dans la première version, il était sur deux chiffres, donc limité à 99 appels par an.

Nous sommes donc passés sur quatre chiffres, ce qui nous laisse une grande progression.

Chapitre 4 La mise en service de Logalma

4 La mise en service de Logalma

La mise en service du logiciel fut une partie très enrichissante pour nous, étant donné que ce fut la première fois que nous rencontrions un « client » en tant que « professionnel ».

L’une des premières difficultés rencontrées est d’arriver à comprendre les désirs du client, en effet, il faut réussir à faire un compromis entre ce que l’on veut faire et ce qui est possible de faire.

4.1. Les réunions de projets

C’est au cours d’une réunion de projet que nous avons rencontré pour la première fois le Dr Girardier. Nous avons tout d’abord discuté avec le Docteur des activités de l’association, afin de mieux comprendre le domaine d’application du logiciel, ainsi que pour mieux cerner le point de vue des utilisateurs. C’est également lors de la première réunion que le Docteur nous a mis au courant de l’extrême confidentialité des données.

Ces rencontres nous permettaient de partager nos avancées et de posez différentes questions sur le fonctionnement de l’association et du traitement des maltraitances, ceci afin de mieux cerner leurs besoins, et donc d’y répondre dans les meilleures conditions. Le docteur, qui utilisait la première version du logiciel, nous exposait ses volontés de changements et les erreurs qu’il rencontrait, ce qui nous permettait d’avancer rapidement car nous avions en parallèle ses impressions et désirs ainsi que le résultats de nos observations.

Nous avons également rencontré Marie Lombard lors de l’une de ces réunions, elle nous a également donné ses impressions sur le logiciel et ses diverses observations. Nos contacts avec les bénévoles de l’association ne se sont pas limités à de simples réunions avec Mr Chbeir, nous avons également eu des contacts par mail et nous nous sommes également déplacés à l’antenne de Dijon.

4.2. Les visites à l’antenne Alma Dijon

Le XXXXXXXX , nous nous sommes donc rendus à l’antenne de Dijon, dont nous ne pouvons vous communiquez l’adresse pour des raisons de sécurité et de confidentialité.

Cette première visite s’est déroulée après notre semaine de projet, nous sommes donc arrivés avec notre cd de la version 2.

Cette première visite fut pour nous l’occasion de découvrir l’environnement de travail des bénévoles, et, principalement, leur ordinateur (PC équipé de Microsoft Windows 98 et de la suite Office 2000). Cette découverte ne se fit pas sans douleur étant donné que l’installation bloqua pour cause de « mémoire insuffisante ». Nous avons résolus ce problème sur place afin de pouvoir faire une démonstration au docteur. Ce problème venait de la version d’Excel présente sur sa machine, qui ne correspondait pas à la nôtre. Une fois résolu, nous avons donc pu réaliser la mise à jour de la base, c'est-à-dire importer les données de l’ancienne base dans la nouvelle.

Nous avons ensuite rencontrés différents problèmes concernant la modification et la consultation des dossiers. Ceux-ci étaient dus à la redondance de déclarations de variables nécessaires à l’utilisation des requêtes. Ces erreurs nous ne les avions pas rencontrées auparavant, étant donné que nos tests ne portaient pas sur la totalité des possibilités de saisies d’informations, celle-ci étant trop vaste. A la suite de cet entretien, nous avons pu récupéré la base de l’antenne de Dijon, avec l’autorisation du Docteur, afin de réaliser une nouvelle phase de test avec cette fois ci, des dossiers réels.

La deuxième rencontre à l’antenne de Dijon s’est déroulée le jeudi 2 mars 2006 en fin d’après midi. Nous avons donc réinstallé la base sans aucun problème et effectué la mise à jour. Après avoir rencontré un problème, nous nous sommes rendu compte qu’il y avait eu différents problèmes lors de l’enregistrement des données avec la version 1. En effet, en observant les tables, nous avons découvert qu’il existait des dossiers sans victime. Nous avons donc décidé de reprendre avec le docteur les deux dossiers en question. Nous les avons donc supprimé et réenregistré correctement. Nous ne savons toujours pas d’où vient ce problème.

Suite à la demande du Docteur, nous avons vérifié les statistiques et nous lui avons expliqués comment les générer.

A l’issue de cette rencontre, nous lui avons laissé notre base afin qu’il travaille dessus et nous fasse part des problèmes rencontrés. Ceci ne tarda pas, car, une semaine après, nous recevions un coup de téléphone nous indiquant quelques problèmes et modification à effectués. Le principal problème concernait les numéros d’appel, étant donné que ceux de la première version étaient sur deux chiffres et ceux de la deuxième version sur quatre, il y avait des problèmes lors des traitements. Nous avons donc résolu ce problème à la mise à jour, en effectuant une requête qui ajoute « 00 » au numéros d’appels avant de les insérer dans la table.

La troisième rencontre se déroula le 16 mars 2006 en fin de journée. Le Docteur nous a expliqué qu’il avait travaillé sur la base. Il n’a rencontré aucun problème concernant la

La troisième rencontre se déroula le 16 mars 2006 en fin de journée. Le Docteur nous a expliqué qu’il avait travaillé sur la base. Il n’a rencontré aucun problème concernant la

Dans le document RAPPORT DE PROJET (Page 21-0)

Documents relatifs