• Aucun résultat trouvé

Développement de l'Application MARGAU Bovins Mobile

N/A
N/A
Protected

Academic year: 2021

Partager "Développement de l'Application MARGAU Bovins Mobile"

Copied!
47
0
0

Texte intégral

(1)

HAL Id: hal-02809743

https://hal.inrae.fr/hal-02809743

Submitted on 6 Jun 2020

HAL is a multi-disciplinary open access

archive for the deposit and dissemination of sci-entific research documents, whether they are pub-lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

Mobile

Anne-Laure Sabadel

To cite this version:

Anne-Laure Sabadel. Développement de l’Application MARGAU Bovins Mobile. Sciences du Vivant [q-bio]. 2012. �hal-02809743�

(2)

Rapport de stage

Développement de l'Application

MARGAU Bovins Mobile

                 

(3)

                                                   

(4)

Remerciements

Dans le cadre de mon stage de fin de licence Système d'information à l’IUT de Valence, je tiens à remercier tout d’abord l'entreprise INRA de Toulouse pour m’avoir accueillie et accompagnée durant ces semaines de stage.

Je remercie tout particulièrement M. Hervé Lagant, mon tuteur de stage qui a pris le temps de m'expliquer tous les aspects du métier nécessaires à la réalisation de ma mission.

Merci également à toute l'équipe de la SAGA qui a été disponible à tout moment pour m'aider et m'aiguiller tout au long de mon stage.

Merci enfin à l’IUT de Valence, qui m’a permis d’acquérir les bases nécessaires me permettant de réaliser ce stage dans de bonnes conditions, et tout particulièrement a M. Sébastien Jean, mon enseignant tuteur.

(5)

PLAN :

Introduction ...3

I) Présentation de l’entreprise…….………...………4 

 

A) L’entreprise...……….……….………..…4 

 

 

1) Généralités………..4 

2) Historique ……….………..…4 

3) Situation actuelle……….………..4 

4) Missions………..………..5 

 

B) Organisation………..….…6 

 

 

1) Implantation………...6 

 

 

2) Gouvernance………..…...……6 

 

 

3) Organigramme………...……..…7 

 

 

4) Structure et moyens………..……..…7 

 

C) Le centre INRA de Toulouse………..………..…8 

 

 

1) Généralités………..……8 

 

 

2) Les activités de recherche du centre………....8 

 

D) L’unité de recherche SAGA……….………....9 

 

 

1) Présentation de la SAGA………..………..………..9 

 

 

2) Organigramme……….………..10 

 

 

3) Mon rôle dans l’unité……….………..10 

II) Mission confiée…….……….……….………11 

 

 

A) Le Système d’Information (SI) MARGAU Bovins...11 

(6)

B) Matériel fourni…….……….……….……….…13 

 

 

1) Le poste de travail…….………..………13 

 

 

2) Les logiciels………….…….………14 

 

 

3) Langages et méthodes………….……….………16 

 

C) Les fonctionnalités du projet…….………..………17 

1) L’écran d’accueil..……….17 

 

 

2) Module Œstrus..…….………..18 

3) Module de comportement à la pesée.……….….22 

 

 

4) Synchronisation…….………25 

 

D) Les problèmes rencontrés…….……….………28 

 

 

1) Prise en compte de la taille du PDA……….………28 

 

 

2) Le test de la classe LINQ…….……….29 

 

 

3) Les formats de date…….……….………….………30 

 

 

4) La synchronisation…….……….31 

III) Bilan technique et humain…….……….…32 

 

A) L’environnement de travail…….………..…………32 

 

B) Nouvelles compétences…….………..………32 

 

 

1) Compétences de programmation…….…………..……….…32 

 

 

2) Compétences d’analyse et de réflexion……...……….………33 

 

C) Evolution possible pour le projet…….………..………..33 

 

 

1) Implémentation des modules MARGAU BOVINS Mobile………….……33 

 

 

2) Passage à un OS différent pour le PDA…….……….…………..……34 

Conclusion…….………...35 

(7)

Introduction 

 

Etudiante en licence système d'information à l'institut universitaire de technologie de Valence, j’ai été amenée à réaliser un stage en entreprise afin de pouvoir valider mon diplôme. Ce stage devait être réalisé dans le service informatique d’une entreprise et durer au minimum dix semaines. L’entreprise INRA, Institut National de la Recherche Agronomique, m’a donc accueillie du 10 avril 2012 au 27 juillet 2012 inclus, me confiant la mission d’implémenter une application sur PDA permettant la saisie de données sur le terrain concernant les Unités Expérimentales bovines du département de Génétique Animale.

L’application cliente en question dispose d'un grand nombre de modules. Il s'agit en fait de la version mobile d'une application de saisie client-serveur déjà existante. Dans ce rapport de stage, nous traiterons seulement des trois modules de l'application réalisés à l'heure actuelle.

- Un module d’enregistrement des œstrus (chaleurs).

- Un module d’observation du comportement lors de pesées.

- Un module de synchronisation entre la base de données centrale et celle du PDA.

Pour réaliser ces modules, je devais utiliser l'environnement de développement Microsoft Visual Studio 2008 et programmer en C#, un langage objet compatible avec l'OS Windows Mobile présent sur le PDA.

Dans une première partie, je procèderai à la présentation de l’entreprise et de ses principaux atouts et services. Dans un second temps, je présenterai plus en détail la mission qui m’a été confiée. Enfin, dans une dernière partie, je ferai un bilan technique et humain de tout ce que ce stage m’a apporté, tant en terme de compétence informatique qu’en terme d’expérience en entreprise.

(8)

I) Présentation de l’entreprise et du projet 

 

 

A) L’entreprise

1) Généralités

L'INRA (Institut National de la Recherche Agronomique) est un établissement public à caractère scientifique et technologique (E.P.S.T). Il est placé sous la double tutelle du ministère de l’enseignement supérieur et de la recherche et du ministère de l’alimentation, de l'agriculture et de la pêche. C'est le deuxième institut de recherche publique française et le premier institut de recherche agronomique européen. C'est également l’un des trois premiers organismes mondiaux dans les domaines de l'agriculture, de l'alimentation, et de l'environnement.

2) Historique 

Fondé en 1946 dans le contexte de reconstruction nationale de l’après-guerre, l’INRA avait pour but de mettre la science et la technologie au service du développement de l'agriculture afin de répondre à une demande sociale très importante à savoir « nourrir les foyers français ». En effet, la France était en situation de pénurie alimentaire et accusait d’un trop gros retard en termes d’agriculture par rapport aux autres pays développés.

3) Situation actuelle

Depuis sa création, l’INRA a accompagné les transformations du monde agricole, des filières alimentaires ainsi que des territoires. Aujourd’hui, les défis scientifiques et sociétaux ont bien changé et n’ont plus seulement une dimension

(9)

domaines fortement liés : l’alimentation, l’agriculture et l’environnement. L’INRA a effectivement pour ambition de produire une agriculture qui se veut compétitive, respectueuse de l'environnement, des territoires et des ressources naturelles et qui soit mieux adaptée aux besoins nutritionnels de l'homme ainsi qu'aux nouvelles utilisations des produits agricoles.

4) Missions 

L’INRA est avant tout un établissement de recherche publique. Il est chargé d'organiser et d'exécuter toute la recherche scientifique concernant l'agriculture avec pour différentes missions :

- la production et la diffusion des connaissances scientifiques - la conception des innovations et des savoir-faire pour la société

- l’éclairage des décisions des acteurs publics et privés de par son expertise, - le développement de la culture scientifique et technique

- la participation au débat science/société - la formation à la recherche et par la recherche

- une recherche réalisée pour et avec la société ainsi qu’avec de plusieurs partenariats

- la perspective du développement durable dans les domaines de l’agriculture, l’alimentation et l’environnement

- l’interdisciplinarité entre sciences de la vie, sciences de la matière et sciences sociales

(10)

L’INRA possède également des enjeux pour l’avenir. Il souhaite contribuer au renforcement et à l'évolution du dispositif de recherche français, être un acteur dans la construction d’une Europe de la recherche et parcourir les nouvelles questions de recherche.

B) Organisation 

 

1) Implantations 

L’INRA est présent dans toutes les régions françaises et possède des représentants à l’étranger. En effet, l'INRA possède une délégation régionale dans chaque région et 19 centres régionaux. A l’étranger, les représentants de l’INRA, les cellules et laboratoires mixtes sont localisés en Chine, au Brésil et en Inde.

2) Gouvernance 

 

L’institut est dirigé par une présidente directrice générale assistée de deux directeurs généraux délégués, nommés après avis du conseil d’administration, et de cinq directeurs scientifiques nommés après avis du conseil scientifique.

Le conseil d’administration définit l’orientation et la politique de recherche de l’institut tout en assurant sa gestion humaine, financière, ses activités et ses programmes.

Quant au conseil scientifique, il propose des axes de réflexion en matière de politique scientifique et évalue les activités de recherche

(11)

3) Organigramme 

4) Structures et moyens 

Effectifs : 8488 agents titulaires dont 1837 scientifiques, 2590 ingénieurs et 4061 techniciens et administratifs.

Près de 2000 doctorants.

Les femmes représentent 49,6% des effectifs, l’INRA est donc un établissement très mixte.

Structures : 19 centres de recherche régionaux, 14 départements scientifiques, 213 unités de recherche, près de 150 sites de recherche et d’expérimentation

(12)

C) Le centre de recherche INRA de Toulouse 

1) Généralités 

Le Centre de recherche INRA de Toulouse est l’un des 19 centres de l’INRA répartis sur l’ensemble du territoire national. Il possède près de 950 agents dont 300 chercheurs et se situe parmi les cinq grands centres en dehors de la région parisienne. Sa création remonte à 1970 et depuis, il n’a cessé d’avoir une croissance soutenue.

2) Activités de recherche du centre 

Les activités du centre se regroupent autour de plusieurs domaines de recherche :

– Génome et Biotechnologies : génie génétique et enzymatique des micro-organismes, relations entre les plantes et les micro-micro-organismes, méthodes de transformation génique des plantes, élaboration de la carte génique de plantes et d'animaux.

– Sécurité des aliments : apporter aux pouvoirs publics des éléments objectifs d'information nécessaires à l'exercice de leur pouvoir réglementaire, accroître la protection des consommateurs, fournir aux industriels concernés les éléments analytiques de contrôle.

– Territoire et Produits : élaboration de produits de qualité (amélioration génétique des races animales), occupation de l'espace rural et aménagement du territoire (relation entre les activités agricoles, l'utilisation de l'espace et de l’environnement).

(13)

D) L’unité de recherche SAGA 

1) Présentation de la SAGA 

La SAGA, Station d'Amélioration Génétique des Animaux, a été créée en 1970 suite à la décentralisation du département de Génétique Animale (dGA) et à la création du Centre de Toulouse.

L’unité est constituée d’environ 64 agents permanents, répartis dans 4 équipes thématiques (suivant les espèces étudiées) et interagissant à travers plusieurs axes transversaux :

Équipes thématiques : - Lapins

- Palmipèdes Gras

- Petits ruminants allaitants ou laitiers (Ovins et Caprins) - Grand ruminants allaitants ou laitiers (Bovins)

Axes transversaux :

- Informatique et automatismes - Reproduction

- Résistance aux maladies - Phanères

La SAGA a pour mission principale de contribuer à la connaissance du déterminisme génétique des caractères et de développer des méthodes de gestion de populations animales concernant les espèces décrites ci-dessus.

(14)

- élaborer la méthodologie et les outils de la génétique quantitative - la caractérisation de la variabilité génétique des caractères d'intérêt - la formation et l’encadrement de thésards et de stagiaires

2) Organigramme 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3) Mon rôle dans l’unité 

Etant stagiaire au sein de l’unité SAGA, j’ai été affectée dans un bureau que l’équipe de la SAGA a réservé aux stagiaires, en compagnie d’un autre stagiaire informatique qui s’occupait d’un projet différent du mien.

(15)

La mission confiée portait sur les bovins. Il s’agissait d’implémenter différents modules pour une application sur PDA de type TDS Nomad. Ces modules permettront aux agents sur le terrain de saisir des informations à leur source, de manière optimale et efficacement.

II) Mission Confiée 

 

 

 

 

A) Le Système d’Information (SI) MARGAU Bovins 

 

MARGAU Bovins est un système d’information développé par et pour le département de Génétique Animale de l’INRA, dont le but premier est de récolter des informations dans les unités expérimentales (UE) bovines de l’institut, afin les unités de recherches (UR) associées puissent menées des recherches sur le thème de la génétiques.

Le projet a démarré en 2001, et continue d’évoluer, en ajoutant de nouvelles fonctionnalités d’amélioration ou liées aux nouveaux protocoles scientifiques mis en place sur les UE par les UR.

Le système d’information (SI) MARGAU Bovins est composé d’une base de données centrale de type Oracle 10g. Le serveur est hébergé et administré par une unité de service informatique du département de Génétique Animal, le CTIG (Centre de traitement de l’information Génétique) basé à Jouy-en-Josas (78).

Un second composant de ce SI est une application cliente, déployée sur des PC dans les UE bovines (5 élevages), permettant ainsi la saisie de données, mais aussi permettre une certaine gestion technique de l’élevage. Le logiciel principal a été développé en Visual Basic 6 à partir de 2001. D’autres composants (MARGAU Lait,

(16)

MARGAU Sanitaire) plus récents ont été développés en C# sous Visual Studio (Framework .NET 2.0).

Les scientifiques sont utilisateurs du SI au travers du logiciel SAS (Statistical Analysis System), installé sur des serveurs de calcul du CTIG. Ce logiciel leur permet de réalisé des extractions dans la base de données Oracle, puis de faire des analyses statistiques « simples » ou de mettre en forme leurs données pour des analyses plus complexes.

Le dernier composant du SI est la partie saisie sur le terrain. Cette composante est d’autant plus importante qu’elle possède de nombreux avantages : meilleure fiabilité des données enregistrée, gain de temps à la saisie, évite les recopies (papier), possibilité d’une meilleure traçabilité de l’information, possibilité de consulter des données technique sur le terrain, …

Si 2 modules ont déjà été développés (mensuration et contrôle alimentaire des animaux), une application cohérente et complète reste encore à déployer.

(17)

B) Matériel fourni 

 

1) Le poste de travail 

a)

L’ordinateur

Affin de mener a bien mon projet, je disposais en tout premier lieu d’un poste de travail muni d’un ordinateur tournant sous l’OS Windows XP.

b) Le PDA

J’ai également pu disposer d’un PDA de type TDS Nomad fonctionnant avec l’OS Microsoft Windows Mobile 6. Cela m’a permis de tester en temps réel l’avancée de mon application en l’émulant directement sur le TDS.

c) L’automate de pesée

Enfin, dans le cadre d’un de mes modules, j’ai été amenée à utiliser un automate de pesée de type BALEA et de son plateau de pesage, équivalant à ceux utilisées pour peser les animaux dans les élevages.

(18)

2) Les logiciels 

 

a) Microsoft Visual Studio 2008

L’environnement de développement intégré (IDE) qui m’a été proposé pour coder mon application est le logiciel Microsoft Visual Studio 2008. En effet, ce logiciel se prête très bien au codage du C# qui est le langage dans lequel le programme devait être codé.

La version du Framework utilisé est le 3.5. Le dernier Framework compatible avec le codage pour l’OS Windows Mobile.

b) Microsoft ActivSync

Microsoft ActivSync est un petit logiciel qui permet la synchronisation entre un PDA fonctionnant sous Windows Mobile (et antérieur) et un ordinateur fonctionnant sous Windows. C’est un programme très léger et facile d’utilisation.

c) PowerAMC

Pour Modéliser la base de données, je me suis servie d’un logiciel déjà utilisé par mon maître de stage : PowerAMC 7.5. Ce logiciel distribué par Sybase permet de créer des modèles conceptuels de données et de générer ensuite le Modèle Physique de données en suivant la méthode Merise. Il permet enfin de générer la base de données en créant un fichier contenant les requêtes SQL (« CREATE TABLE » et « ALTER TABLE »). Ce logiciel est simple d’utilisation et proche du logiciel StarUML, que j’ai eu l’occasion d’utiliser durant mon projet de licence. Cependant, la possibilité de créer les requêtes de la base de données rapidement et simplement pour une dizaine de SGBD différents lui donne un avantage certain.

(19)

d) CompactView

CompactView est un petit logiciel permettant de visualiser le contenu d’une base de données de type .sdf qui correspond à une base de données Microsoft SQL Server CE utilisée pour l’application dans le PDA. (Cf. Chapitre 3) Langages et méthodes). Contrairement à un SGBD de type MySQL qui propose une interface graphique afin de visualiser le contenu de ses tables, les tables SQL CE ne sont visibles qu’à condition d’utiliser un logiciel prévu à cet effet. CompactView est loin d’être parfait dans sa version gratuite mais permet cependant de tester des requêtes et de visualiser le contenu des tables.

e) Bizagi

Bizagi est un logiciel gratuit permettant de créer facilement des diagrammes d’activité. Ce logiciel m’avait déjà été présenté lors de cours sur la modélisation et l’intégration de processus, et j’ai donc décidé de le réutiliser ainsi pour mieux cerner chaque étape des différents modules à créer. Les diagrammes sont clairs et facilement exportables sous forme de dossiers ou d’images .jpg.

f) Gimp

Gimp est un logiciel de retouche d’image libre et gratuit. Il est souvent présenté comme l’équivalent gratuit de Photoshop. Ce logiciel m’a servi à créer les éléments graphiques de l’application afin de la rendre plus attractive pour ses futurs utilisateurs.

 

 

 

 

(20)

3) Langages et méthodes

a) Le C#

Le C# est un langage de programmation orienté objet créé par Microsoft pour sa plateforme .NET. Bien que ce langage soit très proche du Java on lui retrouve aussi des similitudes avec les langages C et C++ dont il est largement inspiré. L’un des avantages par rapport au langage Java est la possibilité de surcharger les méthodes., possibilité que l’on retrouve dans le C++.

b) Sql Ce

Microsoft SQL Serveur Compact Edition ou SQL CE est une version allégée et compact du SGBD SQL Server de Microsoft. Il est particulièrement adapté à des appareils mobiles ne possédant pas beaucoup mémoire RAM comme le TDS Nomad utilisé par l’INRA. J’ai donc installé un ce SGBD sur l’appareil mobile afin de pouvoir sauvegarder les informations saisies par l’utilisateur.

c) Oracle Database

Pour gérer les données du SI MARGAU Bovins, l’INRA utilise une base de données Oracle. J’ai donc du interagir sur cette base afin d’y sélectionner et insérer les données enregistrées sur le PDA.

d) MCD / MPD

Le Sytème d’Information disposais bien évidemment déjà d’une analyse sous forme d’un Modèle conceptuel de données (ou MCD) concernant ses élevages Bovins et mon travail a été de reprendre cette analyse afin de l’adapter au fonctionnement de l’application mobile. En outre, beaucoup de tables considérées comme des table « actives » (c'est-à-dire qu’elles subissaient des requêtes de type INSERT, UPDATE ou DELETE) dans l’application MARGAU Bovins sont devenu des tables « paramètres » (des tables ne nécessitant qu’une sélection) dans l’application MARGAU Bovins Mobiles.

(21)

e) La base de registres

La base de registres est une base de données utilisée par le système d’exploitation et les applications installée sur le PC.

Afin de conserver les chemins d’accès aux différentes bases de données dans le module de synchronisation, je me suis servie des registres de l’OS. Ce choix a été motivé par le fait que les registres sont déjà utilisés dans MARGAU Bovins. Le module de synchronisation étant un module qui lie MARGAU Bovins et MARGAU Bovins Mobile, le choix des registres à la place d’un fichier XML par exemple me semblait plus adapté.

C) Les fonctionnalités du projet

1) L’écran d’accueil 

Avant de commencer un quelconque module, il me fallait proposer une page d’accueil regroupant certains paramètres nécessaires aux modules de l’application, comme la date de travail et l’identification de l’agent enregistrant les données.

Voici à quoi ressemble la page d’accueil en question. L’agent (ici nommé Technicien 2) sélectionne simplement son nom et saisit la date de travail, celle-ci ne pouvant être qu’égale à celle du jour ou antérieure. Après validation, les informations remplies par l’agent sont enregistrées dans une classe de paramètres dans des variables statiques, disponible à n’importe quel moment dans toute l’application.

(22)

Après validation, le bouton « Valider » devient bleu et l’agent peut alors parcourir le menu afin d’atteindre le module dans lequel il souhaite travailler.

Les différents modules sont regroupés sous trois grands groupes, la Reproductions, les Mesures et le Sanitaire.

 

2) Module Œstrus 

a) Généralités

Le Module Œstrus est le premier module sur lequel j’ai travaillé après l’étude du modèle conceptuel de données. Ce module fait partie du groupe Reproduction. Il s’agit en fait d’un module qui permet aux agents de l’élevage de noter les signes d’œstrus potentiels au sein d’un groupe de vaches en campagne de reproduction.

En premier lieu, le technicien doit identifier la vache observée : deux types de numéros sont possibles, le N° INRA qui correspond à une numérotation interne des animaux ou le N° de travail qui est le numéro le plus utilisé par les éleveurs et qui correspond aux 4 derniers chiffres du numéro national (14 caractères).

L’heure est proposée au technicien, arrondie à 5min de l’heure courante. Celle-ci est également validée grâce à une expression régulière, ce qui fait que si le technicien entre à 9h30 dans le champ, la perte de focus entrainera une correction automatique vers 09:30. Si l’heure n’est pas validée, par exemple si le technicien entre 988, un message d’erreur averti le technicien et le champ devient rouge. Vous trouverez en annexe le

(23)

date du jour validée sur l’écran d’accueil et insérée dans la base de données SQL CE. Le technicien choisit ensuite le mode d’observation et active ainsi d’autres onglets en fonction de son choix.

b) les observations « de base » des œstrus

L’onglet observation que l’on peut voir sur la copie d’écran de la page précédente est l’onglet principal. En effet, même si l’œstrus observé est de type visuel, un œstrus « de base » sera dans tout les cas enregistré.

Comme on peut le voir sur le schéma ci-dessus, il ne peut y avoir qu’une seule observation d’œstrus par vache pour un élevage et une date/heure donnée et l’œstrus visuel est rattache a un œstrus « de base ».

(24)

c) Le Visuel

L’onglet « Visuel » permet de noter le comportement ou l’état des certaines vaches qui trahiraient leurs œstrus, comme par exemple de fait de se frotter à une

autre vache avec insistance.

Le technicien note l’intensité de l’observation et coche si d’autres vaches sont connues comme étant en chaleur lors de cette observation.

L’énumération complète des signes pouvant traduire un œstrus étant tellement varié qu’il était impossible de traiter au cas par cas ces phénomène. Il a donc fallu que je les rassemble sous forme d’une liste déroulante. Les signes d’œstrus sont ainsi validés un par un.

La possibilité de préciser la vache « secondaire » est encore d’autres précisons sont affiché ou masqué selon l’option choisie dans la liste déroulante.

(25)

d) Récapitulatif

L’onglet « Recap. » est un récapitulatif des signes d’œstrus visuels enregistrés. Le technicien peut ainsi vérifier simplement les observations en se rendant sur l’onglet.

Deux boutons, « Actualiser » et « Supprimer » viennent compléter cet onglet. En effet, l’œstrus enregistré étant défini en fonction de la vache et de l’horodatage, si le technicien désire revoir les observations déjà enregistrées, il n’a qu’à modifier le champ heure et actualiser pour charger l’œstrus. De même, s’il souhaite supprimer un signe qu’il a observé, il lui suffit de sélectionner ce signe et de cliquer sur le bouton adéquat.

e) La recherche d’anciens œstrus

Il est possible de faire une recherche, par vache, des précédents œstrus enregistrés.

Pour cela, il lui suffit de rentrer un numéro de vache et de cliquer sur le point d’interrogation (entouré de rouge, ici).

L’action aura pour effet d’ouvrir une nouvelle fenêtre récapitulant tous les œstrus présents dans la base de données pour cette vache.

(26)

A partir de cette fenêtre, le technicien peut choisir de sélectionner l’un des œstrus passé, de le supprimer ou de retourner à l’écran précédent en cliquant simplement sur le bouton « Annuler »

s.

Un rappel de la vache utilisée et fait pour que le technicien puisse vérifier qu’il ne s’est pas trompé et n’efface par mégarde le mauvais œstru

3) Module de comportement à la pesée 

 

a) L’écran de sélection du lot 

 

Le module de comportement à la pesée comprend l’utilisation d’un automate de pesée. Le PDA sera ainsi connecté en Bluetooth cet automate et en récupèrera le

poids d’un simple clic.

Pour commencer, le technicien choisi le lot d’animaux qui sera observé. Le nombre d’individu du lot s’inscrit dans l’encadré blanc lorsque le lot est sélectionné.

Le technicien choisi ensuite le site de la bascule utilisé et va connecter l’automate de pesée en liaison Bluetooth en cliquant sur le bouton « Connexion ». Il ne reste plus qu’a choisir le stade physiologique du groupe observé et de valider en cliquant sur le bouton prévu à cet effet.

(27)

b) Connexion à l’automate de pesée

Pour la connexion à l’automate de pesée, je me suis inspiré d’un module existant dans d’autres applications qui utilisent elles aussi ce type de liaison

Bluetooth. Les fonctionnalités ont été développées par des stagiaires passés précédemment et réunies dans une classe spécifique.

Voici la page que l’on obtient lorsque l’on clique sur le bouton « Connexion ».du module de pesée. Ce petit module de connexion est prévu pour être réutiliser dans d’autres modules. C’est pour cela qu’il comporte aussi une possibilité de connexion à une douchette de lecture des codes barres.

Les deux premières lignes nous indiquent donc si la douchette ou la balance sont connectés à l’appareil mobile. Le bouton de recherche sert à détecter tout les appareils à proximité ayant activé leurs Bluetooth. Il ne reste ensuite qu’a entrer le code pin de l’appareil, choisir le type (balance ou douchette), et indiquer le nombre de valeurs prise pour la stabilisation

et l’amplitude (si c’est une balance).

On peut voir sur la figure ci-contre tout les appareils détectés par la fonction de recherche.

Une fois connecté, le libellé « Non connecté » passe à « Connecté » et s’affiche en vert.

Pour cet écran, je n’ai modifié que l’apparence afin de préserver la cohérence avec les autres applications utilisant la classe.

(28)

c) Pesée et comportement sur la bascule

Une fois que la sélection du lot observé a été validée, le technicien se retrouve sur une nouvelle fenêtre où il pourra peser et noter le comportement de certains individus du lot.

le comportement sur ou en sortie de balance.

n

hnicien puisse « sauter » ce

des informations complémentaires sur l’individu observé. 

 

On retrouves certains champs déjà présent dans le module oestrus, comme le numéro de l’animal et l’heure, fonctionnant de manière similaire. Ajouté a cela, on trouve un bouton permettant de déclancher la pesée sur l’automate et d’autres observations concernant

On ne cherche pas a évaluer le comportement de tout les veaux, étant d déjà les mesures pour tout le lot, ce module

là sert simplment a noter le comportement d’une partie des animaux du lot. C’est pour cela que, bien que l’ordre de passage soit proposé au technicien et auto-incrémenté lors de la validation, le champ ordre reste un champ texte afin que le tec

donnée que l’automate de pésée pre

rtains individus.

Enfin, l’onglet « observation » contient simplement deux champs permettant au technicien de saisir

(29)

 

4) Sychronisation 

Le module de sychronisation est, contairement aux deux autres accessible via l’application cliente MARGAU Bovins, sur l’ordinateur. Ce module sert a faire la connexion entre la base de donnée (BD) centrale Oracle et la BD SQL CE du PDA. Il permet d’ajouter et/ou de modifier les informations enregistrées sur le PDA sur la base de

it en 6 étapes :

‐ actives » de la

port USB) a l’ordinateur. Si ce n’est pas le cas, un message d’erreur apparait et l’aplication laisse le temps a l’utilisateur de connecter l’appareil

 

données centrale. La synchronisation se fa ‐ Connexion au PDA

‐ Transfert du fichier de la BD SQL CE du PDA vers le PC ‐ Traitement des nouvelles données enregistrées sur le PDA

‐ Création d’une BD SQL CE vierge (permet d’intéger d’éventuelles modifications de structure)

Remplissage de la nouvelle BD SQL CE avec les données « base de données centrale

‐ Transfert du fichier de la BD SQL CE du PC vers le PDA

Tous les échanges entre le PC et le PDA utilisent des classes contenues dans la DLL OpenCF En premier lieu, l’application dois vérifier que le PDA est connexté de manière fillaire (via son

(30)

Dans un 2ème temps, l’appreil copie le fichier de la BD de l’appareil mobile vers l’odinateur. Le path de la BD sur le PDA est contenu dans un registre portant le nom « bd_path_pda ».

On effectue ensuite un transfert de la base de données du PDA vers l’ordinateur. Pour cela, on utilise un « try – catch ».

    

Le chemin vers lequel la nouvelle base de donnée est transféré est aussi écrit dans un registre portant le nom «bd_path »

Les données sont ensuite insérées, modifiées ou supprimées dans la BD selon la valeur du champ C_MODIF des tables modifiables. En effet, la colonne est a « 0 » (valeur par défaut au chargement du PDA) si la ligne n’a pas été modifiée, a pour valeur « A » si la ligne est insérée dans la BD centrale, a « U » pour une modification et « D » pour une suppression.

Une nouvelle BD SQL CE vierge est ensuite crée à l’aide d’un scripte SQL stocké dans le dossier program Files de l’application cliente, et mis à jour quand nécessaire.

(31)

Cette base de donnée vierge est ensuite remplie avec toutes les table « paramètres » de la BD (tables de couleur dans le MDC en annexe), Ainsi que les données de la dernières compagne en ce qui concerne les tables modifiables.

On retransfert ensuite la nouvelle base de données allégée dans le PDA et la synchronisation est terminée.

(32)

D) Les problèmes rencontrés

1) Prise en compte de la taille du PDA 

L’un des premiers problèmes rencontrés quand on travaille sur un appareil mobile, est la taille de l’écran. En effet, la taille de l’écran d’un PDA et bien plus réduite que la taille d’un écran d’ordinateur. Il faut à la fois penser à créer une interface ergonomique tout en essayant de rentrer un maximum d’informations dans un écran. Les cours d’IHM suivis pendant mes études m’ont appris qu’il était préférable pour l’utilisateur de ne pas avoir à cliquer plus de trois fois pour trouver les informations qu’il souhaite. Il faut donc trouver des astuces pour faire tenir un grand nombre d’informations dans un petit espace. Pour cela, j’ai souvent au recours à l’utilisation d’onglet.

 

De plus, au niveau de l’intégration des éléments graphiques, la taille en pixel sur l’émulateur et celle sur le TDS ne correspondaient pas. En effet, sur le PDA, les images insérées apparaissaient deux fois plus petites. Il a donc fallu multiplier par deux la taille de chaque élément graphique.

(33)

 

2) Le test de la Classe LINQ 

La Classe LINQ est une classe permettant de lier simplement une base de données à un projet et d’utiliser toute sorte de méthodes simplifiant grandement la communication avec la base de données. Cette classe est très intéressante du point de vue de ses méthodes, mais pas encore utilisée pas MARGAU Bovins ni MARGAU Porcins et MARGAU Porcins Mobile. C’est pour cela qu’Hervé Lagant, mon tuteur de stage, m’avait demandé de faire quelques recherches afin de l’utiliser. Je me suis heurtée à plusieurs difficultés. En effet, la classe LINQ a commencé à être intégrée au Framework 3.5 mais n’est cependant pas complète pour le Compact Framework, utilisé pour les développements pour Windows Mobiles : elle n’est capable, entre autre, de gérer des bases de données simples. Elle n’accepte notamment pas la liaison (1,1) identifiant.

(34)

Pour palier a ce problème, il me faillait utiliser le Compact Framework 4, compatible qu’à partir de Windows Phone 7. L’utilisation de la classe LINQ a donc du être abandonnée.

3) Les formats de date

Les dates posent également un problème de compatibilité entre SQL CE et Oracle. De plus, il faut aussi changer le format de la date pour qu’il soit facilement compréhensible par l’utilisateur.

Finalement, voici comment sont gérés les différents formats de date par SQL CE et Oracle (jj étant le jour, MM le mois, aaaa l’année, hh les heurs et mm les minutes).

- Format de date utilisateur : jj/MM/aaaa hh:mm

- Format de date SQL CE (pour les requêtes) : aaaaMMdd hh:mm - Format de date SQL CE (dans la base) : jj/MM/aaaa hh:mm

-Format de date ORACLE (pour les requêtes): jj/MM/aaaa hh24:MM Voici la fonction qui a été implémentée pour changer le format de date afin qu’il soit compatible avec les requêtes vers SQL CE.

(35)

4) La synchronisation 

Toutes les tables de la BD étant liées (contraintes), on ne peut pas créer et insérer des données dans la base dans n’importe quel ordre. Par exemple, si on essaye de remplir la table OESTRUS avant de remplir la table ANIMAL, la requête ne marchera pas. Pour information, la BD MARGAU Bovins possède 96 tables.

(36)

III) Bilan technique et humain 

 

 

 

A) L’environnement de travail 

 

L’ambiance de travail à l’INRA était particulièrement conviviale, autant entre les stagiaires qu’avec le reste de l’équipe de la SAGA. Il n’y a pas de barrière de statut et il est très simple d’aller vers les différents membres de l’équipe. De nombreuses conférences sont organisées tout au long de l’année, pour nous tenir au courant des avancées technologiques, nous sensibiliser sur certains sujets ou simplement pour nous donner de la culture générale.

Des structures sportives sont mises à notre disposition sur tout le site, comme par exemple des terrains de tennis. Nous avons également la possibilité de prendre des cours de gymnastique certains jours entre 12h et 14h.

 

  

B) Nouvelles compétences 

 

 

 

 

 

1) Compétences de programmation 

Tout au long de ce stage, j’ai pu perfectionner ma connaissance du langage C#. Langage objet proche du JAVA que j’avais eu l’occasion d’apprendre lors de ma 2ème année de DUT Informatique a l’IUT de Valence.

Ce stage fut également l’occasion pour moi de travailler avec un langage plus logiciel. En effet, que ce soit au cours de mes projets ou de mon stage de fin de DUT, je n’avais jusqu'à présent choisi de ne travailler que sur des langages de programmation web que je trouvais plus agréable. Cependant, avec la montée en force des smartphones, beaucoup de sites web possèdent également leur propre application. De plus, la programmation logicielle ne souffre pas de compatibilité de navigateur. Il y a bien une différence entre les OS (Androïd, Apple et Windows

(37)

Phone). Cependant le problème se règle en proposant trois applications différentes, une par OS.

 

 

 

2) Compétences d’analyse et de réflexion 

 

Durant ce stage, j’ai également eu l’occasion de me pencher sur un vrai problème « métier ». En effet, la gestion des élevages bovins est quelque chose que je ne connaissais pas et beaucoup de concepts m’échappaient complètement. J’ai donc fait un effort d’apprentissage du métier avant de me lancer dans l’application elle-même. Pour cela, j’ai passé une semaine à étudier le MCD de MARGAU Bovins afin de m’imprégner de tous ces concepts.

J’ai également reçus beaucoup d’explications de mon tuteur de stage Hervé Lagant concernant les notions que je n’arrivais pas a saisir.

Enfin, j’ai épluché les différents rapports présent sur la « Forge » un serveur de dépôt où sont stockés toutes les informations relatives aux applications du département de Génétique Animale et notamment la documentation de l’application MARGAU Bovins et MARGAU Porcins.

 

 

C) Evolution possible pour le projet 

 

1) Implémentation des modules MARGAU Bovins Mobile 

 

Dans les évolutions possibles de l’application, il y a bien entendu les autres modules en attente de développement. En effet, ces trois modules ne sont que les premiers d’une longue série qui attendent d’être réalisés. Par exemple, le module de mensurations des animaux, permettrait de suivre l’évolution de la croissance des veaux. Un module Sanitaire permettrait de suivre les évènements sanitaires des animaux « malade » et d’enregistrer leurs traitements, tache fastidieuse sur l’application cliente. Ou encore un module d’enregistrement des mises bas qui permettrait d’identifier les veaux avec plus d’efficacité.

(38)

2) Passage à un OS différent pour le PDA 

 

Le passage à un OS plus actuel permettrait de l’INRA de profiter des nouvelles avancées technologiques dans le domaine mobile. En effet, l’OS Windows mobile est un OS « désuet » qui ne sera plus mis à jour par Microsoft. Le passage au nouvel OS Windows Phone permettrait, par exemple, aux techniciens d’utiliser leurs Smartphones pour afin d’utiliser l’application MARGAU Bovins Mobile. Cependant, il est à noter que les PDA actuels sont « durcis » et qu’il faudrait trouver un appareil du même type que les TDS Nomad équipé du nouvel OS.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(39)

Conclusion 

A la fin des dix semaines initiales de stage, j’ai pu terminer les trois modules obligatoires demandés par mon tuteur de stage, à savoir le module œstrus permettant de saisir des information concernant les observations d’œstrus sur le terrain, le module de comportement lors des pesées, qui permet de noter le comportement des individus lors des chantiers de pesée des veaux et des vaches et le module de synchronisation entre la base de données du PDA et la base Oracle centrale.

Le sujet de ce stage et l’application développée tout au long de ces dix semaines était très intéressant, d’une part car le langage utilisé m’a beaucoup plu et d’autre part car j’ai dû faire l’effort de rentrer dans le métier afin de modéliser au mieux l’application. Il y avait beaucoup de termes techniques dont je n’avais jamais entendu parler, ce qui m’a posé quelques difficultés au départ. Cependant, le travail de maîtrise d’ouvrage, c'est-à-dire le fait de faire le lien entre la partie métier et la partie informatique au sein d’une entreprise, fait partie intégrante de mon projet professionnel. Je suis donc très contente d’avoir pu effectuer ce stage.

Enfin, il me reste actuellement un mois de stage pour continuer à implémenter d’autres modules pour l’application mobile de MARGAU Bovins, et même si je ne pourrai pas tous les réaliser, je suis fière d’avoir fait parti de ce projet.

(40)

 

Annexes 

 

(41)

 

Code Gestion de l’heure 2. 

(42)

                                                MCD du module Œstrus  

(43)

ANIMAL C_PROPRIO N_IPG C_LIGNEE C_ELEV_NAIS C_SORT C_ELEV_DET N_TRAV N_INRA NOM_ANIM D_NAIS P_NAIS SEXE N_PERE N_MERE N_MEREP FILIATION GEMEL D_ENT CAMP_NAIS GENER OBS1_ANIM OBS2_ANIM D_CRE D_MAJ C_UTIL C_MODIF D_SORT_PREV D_SORT TYP_SORT nchar(3) nchar(14) nchar(8) nchar(10) nchar(3) nchar(10) nchar(4) nchar(6) nvarchar(30) datetime int nchar(1) nchar(14) nchar(14) nchar(14) nchar(1) int datetime nchar(5) int nvarchar(60) nvarchar(60) datetime datetime nchar(1) nchar(1) datetime datetime nchar(1) <pk,fk5> <pk> <fk1> <fk2> <fk3> <fk4> C_PROPRIO = C_PROPRIO N_IPG = N_IPG

C_TECH = C_TECH M_DETECT = M_DETECT C_PROPRIO = C_PROPRIO N_IPG = N_IPG D_OEST = D_OEST OESTRUS C_PROPRIO N_IPG D_OEST C_TECH M_DETECT RES_OEST TYP_OEST SUIT_OEST nchar(3) nchar(14) datetime nchar(8) nchar(2) nchar(1) nchar(1) nchar(10) <pk,fk1> <pk,fk1> <pk> <fk2> <fk3> TECHN C_TECH C_PROPRIO NOM_TECH PN_TECH SOCIETE SERVICE DROIT_TECH C_ACTIF C_UTIL nchar(8) nchar(3) nvarchar(30) nvarchar(30) nvarchar(30) nvarchar(30) nchar(1) nchar(1) nchar(1) <pk> <fk> M_DETECT_OEST M_DETECT L_DETECT nchar(2) nvarchar(30) <pk> OESTRUS_VISUEL C_PROPRIO N_IPG D_OEST INTENSITE AUTRE_VACHE CHEV CHEV_N EST_CHEV EST_CHEV_N MENTON MENTON_N REN_VULVE REN_VULVE_N FROTTE FROTTE_N AGITEE MEUGL BAISSE_PL GLAIRE MARQUEUR SANG nchar(3) nchar(14) datetime numeric(3) numeric(3) numeric(3) nchar(14) numeric(3) nchar(14) numeric(3) nchar(14) numeric(3) nchar(14) numeric(3) nchar(14) numeric(3) numeric(3) numeric(3) numeric(3) numeric(3) numeric(3) <pk,fk> <pk,fk> <pk,fk> Modèle : MARGAU_MOBILE Package : Diagramme : Oestrus  

(44)

C_PROPRIO = C_PROPRIO N_IPG = N_IPG C_PROPRIO = C_PROPRIO N_IPG = N_IPG C_DIST_APPR = C_DIST_APPR C_TECH = C_TECH C_TECH = C_TECH C_DEPLAC = C_DEPLAC C_STAD = C_STAD C_STAD = C_STAD C_SITE_BASC = C_SITE_BASC ANIMAL C_PROPRIO N_IPG C_LIGNEE C_ELEV_NAIS C_SORT C_ELEV_DET N_TRAV N_INRA NOM_ANIM D_NAIS P_NAIS SEXE N_PERE N_MERE N_MEREP FILIATION GEMEL D_ENT CAMP_NAIS GENER OBS1_ANIM OBS2_ANIM D_CRE D_MAJ C_UTIL C_MODIF D_SORT_PREV D_SORT TYP_SORT nchar(3) nchar(14) nchar(8) nchar(10) nchar(3) nchar(10) nchar(4) nchar(6) nvarchar(30) datetime int nchar(1) nchar(14) nchar(14) nchar(14) nchar(1) int datetime nchar(5) int nvarchar(60) nvarchar(60) datetime datetime nchar(1) nchar(1) datetime datetime nchar(1) <pk,fk5> <pk> <fk1> <fk2> <fk3> <fk4> COMP_BASCULE C_PROPRIO N_IPG D_COMP C_STAD C_TECH C_SITE_BASC AGE_M ORDRE NB_ANIM_LOT NB_MOUV UNITE_TMP TMP_S_BASC OBS1_COMP OBS2_COMP C_MODIF nchar(3) nchar(14) datetime nchar(2) nchar(8) nchar(6) numeric(3) numeric(3) numeric(3) numeric(3) numeric(3) nvarchar(30) nvarchar(30) nvarchar(30) nchar(1) <pk,fk1> <pk,fk1> <pk> <fk2> <fk3> <fk4> COMP_POINT C_PROPRIO N_IPG D_COMP C_STAD C_TECH C_DEPLAC C_DIST_APPR ORDRE NB_ANIM_LOT OBS1_COMP OBS2_COMP C_MODIF nchar(3) nchar(14) datetime nchar(2) nchar(8) nchar(2) nchar(6) numeric(3) numeric(3) nvarchar(30) nvarchar(30) nchar(1) <pk,fk1> <pk,fk1> <pk> <fk2> <fk3> <fk4> <fk5> COMP_DEPLAC C_DEPLAC L_DEPLAC ORDRE nchar(2) nvarchar(30) int <pk> DIST_APPROCHE C_DIST_APPR L_DIST_APPR ORDRE nchar(6) nvarchar(30) int <pk> TECHN C_TECH C_PROPRIO NOM_TECH PN_TECH SOCIETE SERVICE DROIT_TECH C_ACTIF C_UTIL nchar(8) nchar(3) nvarchar(30) nvarchar(30) nvarchar(30) nvarchar(30) nchar(1) nchar(1) nchar(1) <pk> <fk> SITE_BASC C_SITE_BASC L_SITE_BASC nchar(6) nvarchar(30) <pk> STAD_ANIM C_STAD L_STAD EVEN nchar(2) nvarchar(30) nchar(1) <pk> Modèle : MARGAU_MOBILE Package : Diagramme : Comportement                  

(45)

   

(46)

   

     

(47)

Résumé 

Le rapport de stage présent concerne mon stage de 3ème année de Licence système d’information. Durant celui-ci j’ai implémenté une application en C# pour des PDA sous « Windows Mobile ». L’application est à destination de l’INRA, l’institut national de la recherche agronomique et sert à la saisie d’informations sur le terrain. Elle se présente sous forme de plusieurs modules, un module pour l’observation d’œstrus, un module pour l’observation du comportement lors de la pesée des animaux et un dernier module de synchronisation. Les informations saisies sur le terrain sont dans un premier temps stockées dans une base SQL CE présente dans le PDA avant d’être synchronisées avec la base Oracle centrale du système d’information.

Abstract 

This document concerns my 3rd year internship in computer science. During this internship, I was told to create an application in C#. This application was asked to me by the INRA, the national institute of agronomic research and it had to be developed for mobile devices. To reach my goal, I work with Microsoft Visual Studio 2008, an IDE (integrated development environment) using the Framework 3.5. I also have to use two databases, one on the PDA, and the other one on a server which is the central database of the INRA. At the end, I manage to create tree part of the application, one about reproductive observations, one about the behaviour on the balance. The third one is the part of synchronisation which is a link between the local database SQL CE and the central database Oracle.

Mots‐clés :  

Stage Licence Système d’information, INRA, Application Windows Mobile, MARGAU 

Bovins, C# 

Références

Documents relatifs

Access to file systems for resource connection, network browsing, and for Access to file systems for resource connection, network browsing, and for remote file and device I/O

If an application does not care what address is assigned to it, it may specify an If an application does not care what address is assigned to it, it may specify an Internet

Notification window receives FD_READ or FD_OOB events Notification window receives FD_READ or FD_OOB events Respond by calling ReadFile(), read(), recv(), or recvfrom() Respond

Windows Server comes with a tool named Network Monitor that lets you capture packets that flow through one or more NDIS miniport drivers on your system by. installing an

Windows supports static round-robin scheduling policy for Windows supports static round-robin scheduling policy for threads with priorities in real-time range (16-31). threads

Interix replaces the original POSIX subsystem on Windows Interix replaces the original POSIX subsystem on Windows NT, Windows 2000, Windows XP, and Windows Server 2003 NT,

Le rocher prend une grande part dans la constitution de la partie latérale de l’étage moyen de la base du crâne et constitue en partie le. bord antérieur de l’étage

Cette vérification est importante, parce que si vous commencez une plongée dans un mode erroné (par exemple Apnée FREE au lieu de OC-SCUBA), vous n’avez pas des informations