• Aucun résultat trouvé

Intégration au sein du programme "CE-WifiLan"

Introduction :

Cette étape représentait la dernière ligne droite de mon projet, mais aussi, l'objectif principal de ma mission de stage : fournir un logiciel pour PDA complet et optimisé servant à collecter les données lors de la pesée des animaux.

Pour rappel, le programme CE-WifiLan est le fruit du travail de plusieurs informaticiens. Ce dernier permet de répondre à tout un ensemble de besoins grâce à ces modules. Chaque créateur s'occupe de la création et du suivie d'un ou plusieurs modules, mais un module n'est lié qu'a un seul créateur.

Il existait une esquisse du module de pesée au sein de ce logiciel, mais celle-ci, bien que fonctionnelle, était incomplète.

Le besoin :

Mon tuteur de stage m'a fait part des ses besoins, qui étaient les suivants :

-Intégration de la DLL SQL précédemment codée. Celle-ci doit remplacer, grâce à ses méthodes, le code SQL en " dur " du module de pesée déjà existant du programme CE-WifiLan.

- Ajout de nombreuses fonctionnalités manquantes. Citons entre autre: la gestion de la base de données locale SQLCE, un bouton permettant l'affichage des animaux déjà pesés, l'amélioration de l'interface de la pesée...

- Rendre un module fonctionnel, et débogué. Il doit être prêt à l'emploi à la fin de mon stage.

Concep

Conception et intégration de modules C# pour la pesée des animaux. Page 33

Réflexion :

Reprise d'un programme colossal :

Reprendre le programme d'une personne n'est jamais chose aisée : il y a tellement de manière d'arriver au même résultat que chacun possède ses propres habitudes de programmation. Cela complique encore plus la tâche d'avoir plusieurs personnes ayant codé sur un même projet, surtout lorsque le code s'entrecroise en quasi-permanence.

J'allais devoir prendre mon temps d'analyser le code, de repérer celui qui était associé à mon module, et les autres dont je ne devais rien modifier.

La difficulté de la tâche serait accentuée par la taille du programme : la partie sur laquelle j'allais travailler dépassait allégrement les 12 000 lignes de code.

J'avais déjà eu un projet de stage impliquant la reprise d'un projet informatique déjà commencé, je me devais de mettre à profit mon expérience dans ce domaine là.

Garder son sang froid :

Malgré ma maigre expérience, je savais déjà que j'allais devoir garder mon sang-froid, et mon calme, surtout les premiers jours d'étude du programme CE-WifiLan.

En effet, passer plusieurs jours à lire, et à essayer de comprendre un programme peut s'avérer particulièrement frustrant, la motivation s'effritant petit à petit, nuisant grandement à l'efficacité.

Il faut non seulement prendre chaque échec avec philosophie, que chaque tentative infructueuses de comprendre une portion de code nous rapproche d'autant plus de sa compréhension, mais aussi être

Concep

Conception et intégration de modules C# pour la pesée des animaux. Page 34

rigoureusement organisé afin d'éviter la perte de temps, et le syndrome du "tourner en rond".

Ne pas se disperser :

Un projet aussi vaste est synonyme de nombreuses tâches variées à accomplir pour le mener à terme. C'est à la fois un atout, du fait que rester coincé sur un problème ne signifie pas être bloqué dans

l'avancement du projet, car on peut effectuer d'autres tâches en parallèle, mais aussi un inconvenant, car à trop s'éparpiller on finit très souvent par se perdre, et rendre un travail bâclé et mal fini. Il est très difficile de se remettre à travailler sur un module un mois après l'avoir laissé à l'abandon plusieurs semaines.

Je décidai de partir sur une base simple : l'élaboration de deux fonctions, en parallèle, au maximum. A la fin d'une des deux, j'en rajouterai une, et essayerai de terminer en priorité la plus ancienne. Cela me permettrait de garder cette diversité, limitant ma lassitude, mais aussi de toujours avoir l'opportunité d'avancer sur le projet. De plus, me limiter à deux fonctions en parallèle me permettrait de

toujours travailler, ou du moins penser, à la fonction sur laquelle je ne codais pas, ne la laissant jamais en total abandon.

Concep

Conception et intégration de modules C# pour la pesée des animaux. Page 35

Elaboration :

Du 17/06/2013 au 28/06/2013 : Une analyse longue et éprouvante. Les premiers jours de mon analyse du logiciel CE-WifiLan allait être révélateur de la véracité de mon planning prévisionnel : Avais-je prévu suffisamment de temps pour cette partie finale ?

Je me suis rapidement senti submergé par la tâche à accomplir, et cela s'est accentué lorsque j'ai voulu m'appuyer sur les commentaires

laissés par les informaticiens : leur façon de commenter n'était que très globale et superficielle. J'ai même eu le droit à un moment à des

échanges de commentaires sur le programme entre deux

informaticiens pour le moins cocasses : aucun des deux ne comprenait la portion de code, et encore moins son utilité.

J'ai passé trois jours à analyser le programme dans sa globalité, grâce des lectures successives. Cela m'a permis de vite me retrouver dans le code, de connaître le nom des principales parties, facilitant mon

déplacement au sein de ma lecture du logiciel.

Plus le temps avancé, plus que je me concentrai sur des parties

spécifiques, correspondant à mon module de pesée. J'ai procédé à de nombreux tests grâce à mon PDA, afin de bien cerner chaque ligne de code.

Je me suis mis à annoter des commentaires supplémentaires sur les lignes de codes en rapport direct avec mon projet, que ce soit pour me rappeler du résultat de mes tests, ou pour les futurs utilisateurs.

Après deux semaines de lectures, d'analyses, et de tests, je

commençais à connaître de manière satisfaisante le programme CE-WifiLan. Je cernais à présent bien mieux le travail et les tâches à accomplir pour mener à bien mon projet.

Concep

Conception et intégration de modules C# pour la pesée des animaux. Page 36

Du 01/07/2013 au 04/07/2013 : L’intégration de la DLL SQL. Je commençai par la première étape de l'amélioration du programme CE-WifiLan : l'intégration de ma DLL SQL au sein du module de pesée.

Il me suffisait de remplacer les lignes de codes SQL par les méthodes de ma DLL, et le tour était joué. Le débogage de la DLL ayant été déjà fait, l'intégration s'est déroulée sans incident, et très rapidement, malgré le nombre de lignes de code à remplacer.

J'ai très vite constaté des gains en remplaçant le code déjà présent sur le programme par celui de ma DLL, comme un allégement du code et une aération de celui-ci, le rendant bien plus lisible, mais aussi, un léger gain de chargement lors de l'exécution des requêtes SQL.

Du 05/07/2013 au 19/07/2013 : L’ajout des fonctionnalités

supplémentaires.

Dernière ligne droite de mon stage, les nouvelles fonctionnalités allaient permettre aux futurs utilisateurs de récupérer et traiter les données avec encore plus de finesse et de précision.

La principale difficulté venait du fait que je ne devais coder que pour le module de pesée : tout les boutons, et portions de code que

j'ajouterai ne devrait être totalement invisible pour les autres modules. Or, le code des différents modules s'entrecroisait très fréquemment, rendant l'ajout de tout code spécifique assez délicat. Pour identifier à coup sur le module de pesée, je devais me fier à la variable "ind_prg". Si cette dernière avait pour valeur "4", alors l'utilisateur se servait du module de pesée.

Afin de garder une interface homogène, j'ai gardé la charte graphique du programme lors de mes ajouts : bouton gris, fond jaune foncé,

Concep

Conception et intégration de modules C# pour la pesée des animaux. Page 37

écriture en gras, taille des boutons. Cela m'a permis d'intégrer au mieux mes ajouts, tout en gardant l'esprit original du programme. Ces deux dernières semaines se déroulèrent sans encombre, l'ajout de ces fonctionnalités, purement graphique pour la plupart, semblait presque dérisoire par rapport au reste de mon stage, car il mêlait l'ensemble des connaissances que je venais d'acquérir depuis le début de mon stage.

Résultat :

La principale difficulté résidait dans la compréhension d'un

programme étrange, codé par plusieurs personnes, et de nature plutôt complexe. C'est d'ailleurs l'étape qui m'a pris le plus de temps, et celle-ci n'a cessé de se parfaire tout au long de ces cinq dernières semaines. Il fallait, à chaque ajout, vérifier ce qu'il me semblait comprendre, et des fois, se rendre compte que j'avais mal cerné ce qu'était sensé faire cette portion de code.

Cette remise en question permanente, bien qu’éprouvante pour les nerfs, m'a permis de vite corriger les erreurs que je rencontrais, et de ne pas rester obnubiler sur une idée fausse. Grâce à cela, j'ai

parfaitement respecté mon planning prévisionnel.

La fin de l'amélioration du programme CE-WifiLan signifia par la même occasion la fin de mon projet, qui, après validation par mon maître de stage, aller être mis en production dans les semaines à venir.

Concep

Conception et intégration de modules C# pour la pesée des animaux. Page 38

Documents relatifs