Offre de stage ingénieur en développement informatique

développement informatique. « Développement d'un logiciel multi-plateforme de consultation d'une base de données ». Entreprise d'accueil. Cirad (Centre ...
548KB taille 8 téléchargements 95 vues
Offre de stage ingénieur en développement informatique « Développement d’un logiciel multi-plateforme de consultation d’une base de données »

Entreprise d’accueil Cirad (Centre international de recherche agronomique pour le développement) TA B-DIR / 09 Avenue Agropolis 34398 Montpellier Cedex 5 France www.cirad.fr

Contexte et problématique Le Cirad est un organisme de recherche agronomique qui, en partenariat avec les pays du Sud, produit et transmet de nouvelles connaissances pour accompagner leur développement agricole et contribuer au débat sur les grands enjeux mondiaux de l’agronomie. Il mène des activités de coopération avec plus de 90 pays et développe des pôles scientifiques à vocation régionale dans l’outre-mer français. L’Unité de Recherche BioWooEB (Biomasse, Bois, Energie, Bioproduits) étudie depuis plusieurs années de nombreuses caractéristiques technologiques des bois tropicaux : propriétés physiques et mécaniques, anatomie, durabilité et préservation, etc. Au fil du temps plusieurs bases de données à usage interne ont ainsi été constituées, à partir desquelles est réalisée une extraction focalisée sur les essences dont nous avons mesuré une quantité suffisante de propriétés. Ce sous-ensemble de données permet de générer des fiches technologiques suffisamment complètes pour les proposer à des professionnels ou autres utilisateurs du matériau bois. Ces fiches sont diffusées en libre téléchargement (voir lien cidessous) ; mais les données sont également diffusées au sein d’un logiciel commercial dénommé Tropix, qui propose en outre des fonctionnalités de recherche par critère, comparaison entre essences, visualisation graphique de certaines propriétés, etc. Le logiciel Tropix est commercialisé depuis la fin des années 90. Il a toujours été développé pour fonctionner sous Windows uniquement ; or aujourd’hui de nombreux clients réclament de pouvoir utiliser le logiciel sur leurs appareils mobiles (tablettes et smartphones), ou ordinateurs fonctionnant sous d’autres systèmes d’exploitation (macOS, Linux). Vous trouverez davantage d’informations sur l’UR BioWooEB et le logiciel Tropix au sein des pages suivantes :

Site de l’UR BioWooEB Bases de données bois de l'UR BioWooEB Page du logiciel Tropix Fiches technologiques proposées en libre téléchargement

Objectifs généraux du stage et résultats attendus Le but du stage est de développer une nouvelle version multi plateforme du logiciel Tropix. L'intérêt de ce stage réside dans le fait que le stagiaire assurera la gestion complète d'un projet informatique de développement d'une application, de la phase de conception jusqu'à la phase de mise en production.

Objectifs techniques •



Maximiser la réutilisabilité des développements effectués, afin de limiter la complexité globale et faciliter la maintenabilité du code. Plusieurs technologies proposent aujourd’hui une compilation multi-plateforme à partir d’un code source unique (voir plus bas). Faciliter les mises à jour de la base de données et de ses divers clients : le moins de mises à jour à reporter en différents endroits, d’où l’intérêt d’une couche métier universelle par exemple.

Situation de départ La base de données existe déjà, son modèle est conçu de façon à la rendre multilingue (actuellement français et anglais). Du code source Delphi est potentiellement réutilisable, en particulier les requêtes SQL de consultation de la base et des algorithmes de data visualisation (histogrammes). L’interface utilisateur de la nouvelle version pourra largement s’inspirer de l’actuelle, en particulier pour l’organisation des données.

Fonctionnalités des clients logiciels •

Consultation de la base de données : navigation parmi une liste d’essences de bois et affichage de leurs caractéristiques correspondantes ; • Génération de rapports au format PDF ; • Exploitation de certaines données et restitution sous forme de data visualisation ; • Algorithme de recherche full-text au sein des données. Contraintes non fonctionnelles • Interfaces utilisateur simples et ergonomiques • Téléchargement et application des mises à jour selon un processus léger et transparent (le moins de notifications/actions pour l’utilisateur) • Système d’enregistrement du logiciel (1 licence accordée à 1 appareil) ; • Log de bugs ou d’autres actions.

Tâches Au sein d’une équipe pluridisciplinaire et sous la responsabilité d’un ingénieur en informatique, le candidat retenu aura pour principales missions :

• • •

• • •

Définition de la pile technologique qui sera utilisée, après étude des contraintes recensées et de la typologie des utilisateurs (un sondage a été effectué) ; Développement de la couche d’accès aux données ; Développement de clients graphiques pour les plateformes Windows, macOS, iOS, Linux et Android : o Maquettes d’interfaces graphiques ; o Adaptation du contenu au format des appareils ciblés. Développement de tests logiciels ; Packaging et distribution des différents clients ; Rédaction d’un jeu complet de documentation incluant : un dossier technique (technologies et librairies utilisées pour le développement, sources commentées, guide de déploiement) et un guide utilisateur.

Précisions technologiques Le choix de la pile technologique à mettre en œuvre n’est pas encore arrêté, le stagiaire pourra participer aux réflexions. Architecture Plusieurs choix architecturaux sont envisageables : 1. Une base de données unique distante + une couche d’accès aux données (modèle de données et requêtes SQL) en PHP sur un serveur Cirad + une API REST à développer + applications clientes pour chaque plateforme cible, qui utiliseront cette API ; 2. Une base de données locale embarquée sur chaque client + une couche métier réutilisable + différentes applications clientes pour chaque plateforme cible ; 3. Une solution mixte : base de données « principale » sur un serveur et ET bases de données embarquées, la base de données serveur pouvant synchroniser ses modifications avec les bases de données embarquées lorsqu’une connexion est disponible (synchronisation monodirectionnelle serveur  clients). Base de données MySQL si hébergement sur un serveur, ou SQLite dans le cas d’une base de données embarquée. Dans le cas de MySQL : administration avec phpMyAdmin ou MySQL Workbench. Clients Les pistes envisagées, par ordre de préférence dû à diverses raisons (code legacy, pérennité technologique, etc.) sont : 1. Delphi (langage Pascal Objet) : la version 10.2 (Tokyo) permet de compiler un même code vers différentes plateformes cibles. Technologies FireDAC pour la couche d’accès aux données, FireMonkey pour l’interface utilisateur. 2. Xamarin (langage C#) 3. Electron (HTML + CSS + JavaScript NodeJS)

Compétences requises Profil • •

Master 2 ou ingénieur informatique ; Intérêt pour l’agronomie et la gestion de projet ;



Qualités relationnelles.

Compétences techniques • • • • •

Maitrise de la POO et mise en œuvre des design patterns ; Ecriture de code de qualité : concis, documenté, répondant aux préceptes KISS, SOLID, DRY ; Maitrise du langage SQL ; Compétences en architecture logicielle ; Maitrise de git.

Informations pratiques Indemnisation Cirad Indemnité proposée selon la règlementation en vigueur pour 2017 : 554 € par mois (soit sur 6 mois : 3324 €).

Lieu de stage Dans les locaux du Cirad à Montpellier.

Durée et période souhaitées 6 mois, avec idéalement un démarrage début septembre 2017.

Autres avantages proposés • •

Restauration : cantine d’entreprise avec subvention ramenant le repas au tarif du Restaurant Universitaire Transports : remboursement des frais de transport en commun prévu à 50%.

Contact maitre de stage Cirad Nom et fonction du responsable à contacter Sébastien Paradis, ingénieur en développement logiciel [email protected] 04 67 61 44 21

Adresse postale Cirad 73 rue JF Breton TA B-114/16 34398 Montpellier Cedex 5