• Aucun résultat trouvé

Développement d'applications. Programmation orientée objet avec Architecture Client/Serveur

N/A
N/A
Protected

Academic year: 2021

Partager "Développement d'applications. Programmation orientée objet avec Architecture Client/Serveur"

Copied!
66
0
0

Texte intégral

(1)

HAL Id: hal-02805440

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

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

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

Développement d’applications. Programmation orientée

objet avec Architecture Client/Serveur

Gaëtan Thierry-Laumont

To cite this version:

Gaëtan Thierry-Laumont. Développement d’applications. Programmation orientée objet avec Archi-tecture Client/Serveur. [Stage] Université de Lorraine (UL), FRA. 2012, 63 p. �hal-02805440�

(2)
(3)

UFR Math´ematiques et Informatique 13 rue Michel Ney

case officielle n˚ 40075 54037 Nancy cedex

D´eveloppement d’Applications

Gaetan THIERRY-LAUMONT

2012

Rapport de stage Licence MIAGE INRA de Mirecourt

(4)
(5)

UFR Math´ematiques et Informatique Universit´e de Lorraine

13 rue Michel Ney 54037 Nancy Cedex D´ept. Informatique

Programmation orient´ee objet avec Architecture

Client/Serveur

Rapport de stage Licence MIAGE INRA de Mirecourt

Unit´es ASTER Station S.A.D. Domaine du Joly

662, avenue Louis Buffet 88500 Mirecourt

Ga¨etan THIERRY-LAUMONT

Tuteur : Jean-Franc¸ois MARI Parrain : Laurent VIGNERON

(6)
(7)

Remerciements

Je tiens `a remercier tout particuli`erement Jean-Franc¸ois Mari de m’avoir renouvel´e sa confiance et propos´e une nouvelle fois un stage des plus int´eressants, Laurent Vigneron et Jean Malhomme pour m’avoir suivi au nom de l’universit´e de Lorraine ainsi que pour la flexibilit´e dont ils ont fait preuve face aux contraintes que Jean-Franc¸ois et moi pouvions avoir. Catherine Mignolet, notre chef de service, pour son ´ecoute et sa bienveillance. Les utilisateurs Ying, C´eline et Davide pour avoir jou´e `a la perfection le rˆole de bons clients qui savent d´efinir leurs besoins et comprendre les contraintes techniques. Aux stagiaires de mon bureau qui, de par leur bonne humeur, ont contribu´e `a rendre ce stage des plus agr´eables. Aux agriculteurs de l’exploitation exp´erimentale qui m’ont permis de d´ecouvrir un monde que je ne connaissais pas au cours d’un apr`es-midi. Et enfin `a tout le personnel de l’Inra pour la bonne humeur qui r`egne au sein de cet institut.

(8)

Table des mati`eres

1 Introduction 7 2 Environnement 8 2.1 L’INRA . . . 8 2.1.1 Pr´esentation g´en´erale . . . 8 2.1.2 Unit´e ASTER . . . 9 2.2 L’´equipe . . . 10 2.2.1 Les D´eveloppers . . . 10 2.2.2 Les utilisateurs . . . 11 2.3 Poste de travail . . . 13 2.3.1 Ubuntu . . . 13 2.3.2 Qt . . . 15 3 CarottAge 19 3.1 Les diff´erents ex´ecutables . . . 19

3.1.1 ter2indice-tempo . . . 19

3.1.2 editmodel . . . 20

3.1.3 fwtInra . . . 21

3.1.4 gviewgraph . . . 21

3.1.5 gviewmod . . . 22

3.2 Une interface utilisateur unique . . . 22

4 Le developpement 24 4.1 Ergonomie . . . 24 4.2 Teruti-miner et Lucas-miner . . . 26 4.3 Architecture Client/Serveur . . . 28 4.3.1 D´efinitions . . . 28 4.3.2 Application `a CarottAge . . . 29

(9)

4.4 Int´egration des fonctionnalit´esminer. . . 33 5 Perspectives d’am´eliorations 36 5.1 Fonctionnalit´es . . . 36 5.2 Ergonomie . . . 37 5.3 Fiabilit´e . . . 37 6 Conclusion 39 7 Annexes 40 7.1 Model de Markov . . . 40

7.2 Interface de CarottAge version I . . . 52

7.3 Interface de CarottAge version II . . . 57

7.4 Analyse de Teruti-miner . . . 61

(10)

1

Introduction

Ce stage a lieu dans le cadre du stage de fin d’´etude de licence MIAGE (M´ethodes Informatique Appliqu´ees `a la Gestion d’Entreprises). Il est la continuation de celui effectu´e l’ann´ee pr´ec´edente. L’an pass´e j’ai pos´e les fondements du logiciel CarottAge. C’est une interface graphique Qt qui r´ealise des traitements de donn´ees directs ou indirects sur des espaces g´eographiques.

En effet le logiciel r´ealise certains calculs, et en sous-traite d’autres, par l’interm´ediaire d’applica-tions tiers. A l’issue de ce premier stage, les bases et la conception ont ´et´e effectu´ees, mais le programme n’´etait ni fonctionnel ni ergonomique. C’est `a partir de ce constat que j’ai demand´e `a mon ancien maˆıtre de stage s’il en proposait un nouveau cette ann´ee, dans le but d’am´eliorer CarottAge.

Au d´ebut, j’ai repris en main l’application qui avait subi de nombreuses modifications. L’applica-tion a ´et´e d´ebogu´ee et donc rendue focnL’applica-tionnelle. Un probl`eme subsistait pour la diffusion de l’applicaL’applica-tion et des mises `a jour des ex´ecutables interm´ediaires.

Ainsi ce stage se propose pour mission d’am´eliorer l’ergonomie de l’aplication mais surtout de mettre en place une architecture ”client/serveur”. En effet le but est de mettre les applications tiers sur le serveur et CarottAge en faisant appel directement `a leur service.

Dans une premi`ere partie je d´ecrirai mon environnement de travail `a l’INRA. Puis je pr´esenterai carottAge tel qu’il existait `a mon arriv´ee pour resituer le contexte. Et enfin je d´evelopperai les diff´erentes tˆaches r´ealis´ees au cours de ce stage.

(11)

2

Environnement

2.1

L’INRA

2.1.1

Pr´esentation g´en´erale

L’Institut national de la recherche agronomique (INRA ou Inra) est un organisme de recherche en agro-nomie fond´e en 1946, plac´e sous le statut d’ ´Etablissement public `a caract`ere scientifique et technologique (EPST), et sous la double tutelle du minist`ere charg´e de la Recherche et du minist`ere charg´e de l’Agricul-ture.

Premier institut de recherche agronomique en Europe et deuxi`eme dans le monde en nombre de publica-tions en sciences agricoles et en sciences de la plante et de l’animal, l’Inra m`ene des recherches finalis´ees pour une alimentation saine et de qualit´e, pour une agriculture durable et comp´etitive, et pour un environ-nement pr´eserv´e et valoris´e. Depuis juillet 2004, sa pr´esidente directrice g´en´erale est Marion Guillou.

Les recherches men´ees par l’Inra sont guid´ees par l’´evolution des questionnements scientifiques et orient´ees par les d´efis plan´etaires pos´es par l’alimentation, l’environnement et la valorisation des territoires, que l’agriculture et l’agronomie ont `a relever. Changement climatique, nutrition humaine, comp´etition entre cultures alimentaires et non alimentaires, ´epuisement des ressources fossiles, ´equilibre dans la gestion des territoires sont autant d’enjeux qui positionnent l’agronomie comme fondatrice d’un d´eveloppement harmo-nieux sur les plans ´economique, social et environnemental. L’Inra produit des connaissances fondamentales et construit, grˆace `a elles, des innovations et des savoir-faire pour la soci´et´e. Il met son expertise au service de la d´ecision publique.

Les grandes missions confi´ees `a l’Inra sont les suivantes : – Produire et diffuser des connaissances scientifiques

(12)

– Concevoir des innovations et des savoir-faire pour la soci´et´e

– ´Eclairer, par son expertise, les d´ecisions des acteurs publics et priv´es

– D´evelopper la culture scientifique et technique et participer au d´ebat science-soci´et´e – Former `a la recherche et par la recherche

L’Inra est compos´ee de 1 828 chercheurs dans le domaine des sciences du vivant, des sciences de la mati`ere et des sciences humaines, 2 427 ing´enieurs, 4 249 techniciens et administratifs. Par ailleurs, 1 784 doctorants et 1000 stagiaires et chercheurs ´etrangers sont accueillis chaque ann´ee par l’Inra.Les recherches de l’Inra s’articulent autour de diff´erentes th´ematiques r´eparties au sein de 14 d´epartements scientifiques. L’Inra met en œuvre des dispositifs originaux et des bases de donn´ees ouverts `a la communaut´e scientifique :

– observatoires de recherche en environnement – centres de ressources g´en´etiques

– plateformes exp´erimentales

L’Inra est pr´esent sur vingt centres r´egionaux, y compris l’outre-mer. L’Inra entretient des partenariats scientifiques avec les grands instituts de recherche scientifique dans le monde, les universit´es, l’enseigne-ment agronomique et v´et´erinaire, et s’engage dans la construction de l’espace europ´een de la recherche. L’Institut d´eveloppe de multiples collaborations et ´echanges avec la communaut´e scientifique internatio-nale dans de nombreux pays en Europe, Am´erique, Asie et Afrique.

2.1.2

Unit´e ASTER

Unit´e de l’Inra bas´ee `a Mirecourt et dont le projet 2007-2011 visait `a comprendre les dynamiques de changement des syst`emes techniques agricoles dans les territoires, dans l’objectif d’accompagner les tran-sitions de ces syst`emes vers une meilleure prise en compte des ressources territoriales. Leur prise en compte est abord´ee tant du point de vue de la valorisation des ressources offertes par le milieu que du point de vue de la limitation des impacts n´egatifs de l’activit´e agricole sur ces ressources.

Le projet quinquennal 2013-2017, qui se place dans la continuit´e de celui d´evelopp´e lors du quadriennal pr´ec´edent, r´eaffirme les trois missions principales de l’unit´e :

– produire des connaissances scientifiques et des m´ethodes g´en´eriques pour analyser et accompa-gner les transitions agricoles n´ecessaires dans les territoires ruraux

– d´evelopper des instruments mis `a la disposition de communaut´es scientifiques, mobilisant no-tamment le dispositif d’exp´erimentation long terme d´evelopp´e sur l’IE de Mirecourt

– produire des connaissances op´erationnelles voire des outils pour accompagner le changement en agriculture dans le cadre de parteneriats diversifi´es avec des agriculteurs, des collectifs d’acteurs

(13)

h´et´erog`enes (organismes de d´eveloppement agricole, gestionnaires de ressources naturelles) et pouvoirs publics (minist`eres, collectivit´es territoriales).

Comme le quadriennal ant´erieur, le projet s’appuie sur le constat de la n´ecessit´e de transformer de mani`ere radicale les fac¸ons de produire en agriculture pour r´epondre aux multiples enjeux, environnemen-taux, alimentaires, ´energ´etiques, face auxquels elle est plac´ee dans un contexte de changement global (chan-gement climatique, grands ´equilibres d´emographiques et ´economiques mondiaux). Le projet sera centr´e sur trois enjeux soci´etaux qui placent les relations agricultures-territoires au coeur des questionnements :

– l’enjeu portant sur la restauration et le pr´eservation de la qualit´e de l’eau – l’enjeu portant sur le d´eveloppement de la biomasse `a vocation ´energ´etique – l’enjeu portant sur l’autonomie des exploitations agricoles

2.2

L’´equipe

2.2.1

Les D´eveloppers

Jean-Franc¸ois Mari

Jean-Franc¸ois est enseignant-chercheur au LORIA1, et est mon maˆıtre de stage. Il est issu de l’´equipe Orpailleur dirig´ee par Amedeo Napoli. Cette ´equipe comprend une quarantaine de personnes, dont une dizaine de chercheurs et enseignants-chercheurs permanents et une dizaine de doctorants.

Le th`eme principal de l’´equipe est l’extraction de connaissances dans les bases de donn´ees, en suivant tout le processus, des donn´ees brutes aux syst`emes de connaissances, et en mettant en œuvre des techniques de fouilles vari´ees, aussi bien symboliques que num´eriques. Ceci explique le nom Orpailleur qui est une m´etaphore o`u les connaissances sont compar´ees avec de l’or.

Le travail de l’´equipe Orpailleur ne se limite pas `a l’extraction d’informations. Les nouvelles connais-sances acquises lors de cette premi`ere ´etape subissent ensuite un travail de repr´esentation formalis´ee et de classification.

L’´equipe participe `a plusieurs projets au plan national et international (dont un r´eseau d’excellence). De nombreux syst`emes logiciels sont d´evelopp´es par des membres de l’´equipe, g´en´eralement en lien avec une application bien particuli`ere. Ils ont obtenu plusieurs distinctions locales et nationales ces derni`eres ann´ees.

(14)

C’est dans ce contexte que Jean-Franc¸ois fut amen´e `a travailler avec l’INRA qui a besoin de stocker d’immenses quantit´es de donn´ees. Ces donn´ees concernent par exemple l’occupation du sol de la France enti`ere sur une vingtaine d’ann´ees. Mais ces donn´ees ont ensuite besoin d’ˆetre exploit´ees sous forme de tableau de statistique, graphique etc ... C’est ici qu’interviennent les diff´erents ex´ecutables que l’on peut utiliser de mani`ere transparente `a travers CarottAge.

Ga¨etan Thierry-Laumont

J’ai suivi le DUT Informatique `a l’IUT Charlemagne. C’est ici, lors de ma deuxi`eme ann´ee que j’ai rencontr´e Jean-Franc¸ois. Il fut notre tuteur de projet o`u nous avons, trois ´etudiants et moi, d´ecouvert Qt. Jean-Franc¸ois m’a ensuite propos´e de concevoir CarottAge pour mon stage de fin d’ann´ee.

J’ai ensuite suivi la formation MIAGE, une troisi`eme ann´ee dans le but d’obtenir une licence. Apr`es un parcours atypique dˆu au programme d’´echange cr´epuq qui m’a permis d’effectuer le semestre d’automne `a l’UQAM `a Montr´eal, j’ai contact´e Jean-Franc¸ois pour prendre des nouvelles du projet.

Un lourd travail de d´eboguage avait ´et´e r´ealis´e. Mais il restait encore beaucoup de travail comme d´ecrit en introduction ce qui donna naissance `a mon stage. Le projet CarottAge r´ealis´e par les membres du LORIA est utilis´e par les chercheurs de l’INRA. Dans le but d’´eviter des erreurs d’ergonomie et de corriger celles de l’an pass´e, il a ´et´e d´ecid´e que mon stage se d´eroulerait `a l’INRA pour me permettre de dialoguer directement avec les utilisateurs.

2.2.2

Les utilisateurs

Catherine Mignolet

Apr`es un diplˆome d’ing´enieur agronome `a l’ENSAIA de Nancy elle int`egre l’INRA en 1993. Dans le cadre de ses recherches elle suit une formation et obtient un DEA de statistique en 1998 `a l’universit´e de Lyon I. Elle publia en 2008 sa th`ese portant sur la mod´elisation de l’organisation spatiale des syst`emes agricoles et de son ´evolution dans des d´emarches d’appui au d´eveloppement. Elle est titulaire d’un poste d’Ing´enieur de recherche et a eu une utilisation de carottAge dans sa version ligne de commande pour sa th`ese. Elle y a eu recours dans le cadre de l’´etude des successions de cultures dans le bassin de la Seine. Plus r´ecemment, elle a utilis´e carottAge dans sa version graphique I pour une ´etude sur la France enti`ere dans le cadre du projet ANR popsy. Cette ´etude a pour but l’analyse de la diversit´e des syt`emes de cultures, de leurs ´evolutions et changements et de leurs diff´erenciations spatiales.

(15)

C´eline

C´eline a une formation de g´eographe sp´ecialis´ee en agronomie-environnement. Recrut´ee au d´epart en CDD `a Mirecourt en 2001 pour travailler sur une enquˆete qui vise les pratiques agricoles sur le bassin de la Seine. Cette enquˆete est financ´ee par l’Agence de l’eau Seine-Normandie. Elle est titularis´ee en 2008 en tant qu’ing´enieur d’´etude. Etant l’une des premi`eres utilisatrices de carottAge, elle a beaucoup utilis´e la version ligne de commande sous linux. Elle est `a l’origine de la plupart des modifications de carottAge et a permis une partie de l’´evolution actuelle du logiciel. Ayant beaucoup de r´egions agricoles `a comparer, elle demande `a un stagiaire de concevoir Teruti-miner qui ´etait cens´e offrir les mˆeme possibilit´es que carottAge et qui au final ne fait que du d´enombrement. Elle utilise de nouveau CarottAge dans le projet popsy auquel elle participe avec Catherine. Elle a encadr´e le CDD qui travailla dessus pendant 1 an. Aujourd’hui elle se tourne vers les pratiques agricoles au lieu des successions de cultures. Elle g`ere ´egalement les sources d’information utilis´ees dans le cadre des ´etudes sur le changement d’usage des sols `a l’´echelle de grands territoires.

Davide Rizzo

Davide est titulaire d’une maitrise et d’un doctorat en agronomie obtenus en Italie. Sa th`ese portait sur l’´evaluation multicrit`eres de la fragilit´e d’un paysage en terrasse. Cette th`ese l’a conduit `a s’int´eresser `a la dimension territoriale en agronomie. Lors d’un premier stage pendant sa th`ese, puis en tant que post-doc `a l’Inra il a pu assimiler les concepts et la th´eorie sous-jacente aux mod`eles de Markov utilis´es dans CarottAge. Grˆace `a des moyens fournis par l’agence de l’eau Rhin-Meuse, il pu se lancer sur un projet bas´e sur l’´evolution des successions de cultures du bassin Meuse et Moselle(Lorraine). Ce projet l’a conduit `a une utilisation courante de CarottAge sous sa premi`ere interface graphique.

Ying

Elle obtient en Chine le titre d’ing´enieure paysagiste en 2010 puis d´emarre en 2011 sa th`ese `a l’Inra, qui vise `a expliquer les changements de sucessions de cultures et leur localisation aux diff´erents niveaux d’organisation. Elle commence par apprendre `a partir de litt´eratures bibliographiques l’utilisation des logi-ciels de statistiques comme SPSS et R ainsi que des logicels de feuilles de donn´ees telles que CarottAge et WEKA. La premi`ere partie de sa th`ese consiste `a ´etudier les successions de cultures `a l’´echelle de la France enti`ere avec CarottAge dans sa version graphique dans un premier temps, puis dans sa version BAT pour automatiser l’´etude d’un grand nombre(430) de r´egions agricoles . La deuxi`eme partie de sa th`ese concerne l’´etude des changements de successions de culture. Pour cela elle a besoin des probabilit´es des transitions qui devraient prochainement pouvoir ˆetre issues de CarottAge.

(16)

2.3

Poste de travail

2.3.1

Ubuntu

Introduction

Ubuntu est un syst`eme d’exploitation libre commandit´e par la soci´et´e Canonical et une marque d´epos´ee par cette mˆeme soci´et´e. Fond´e sur la distribution Linux Debian et utilisant le bureau Unity, Ubuntu se veut

convivial, intuitif et sˆur. Il est constitu´e de logiciels libres, est disponible gratuitement y compris pour

les entreprises, et b´en´eficie d’une nouvelle version tous les six mois.

Avec une utilisation globale estim´ee `a plus de 25 millions d’utilisateurs, il est principalement conc¸u pour une utilisation sur des ordinateurs personnels (portables et fixes), bien que d’autres versions consacr´ees aux netbooks et aux serveurs existent aussi. Depuis Ubuntu 11.04, la version Netbook a fusionn´e avec la version Desktop. Cette derni`ere ´etant pass´ee `a l’interface Unity, il n’y avait plus de raison de maintenir deux branches distinctes.

Philosophie

Ubuntu affiche comme ambition de principe la volont´e que le monde entier puisse ´equitablement profiter du logiciel, et pour ce faire, que tout utilisateur d’ordinateur puisse ˆetre libre de t´el´echarger, d’utiliser, de copier, de distribuer, d’´etudier, de partager, de modifier et d’am´eliorer le logiciel pour toutes utilisations sans payer de droit de licence. Il est stipul´e aussi que l’utilisateur doit pouvoir choisir la langue dans laquelle il l’utilise et avoir l’opportunit´e d’utiliser le logiciel mˆeme s’il est handicap´e.

Canonical poss`edait un service qui permettait l’envoi gratuit de CD de la derni`ere version d’Ubuntu (Desktop ou Serveur, au choix). Ce service ´etait principalement destin´e aux personnes ne disposant pas de ligne `a haut d´ebit. Les frais de port ´etaient pris en charge par Canonical. Cependant, suite `a sa popularit´e croissante, Canonical mit fin au service le 5 avril 2011.

Historique

2004

Le projet est initi´e par le sud-africain Mark Shuttleworth. Devenu multimillionnaire apr`es la vente de sa pr´ec´edente entreprise, cet ancien d´eveloppeur Debian souhaite une version plus facile d’acc`es pour les novices et se consacre `a la r´ealisation de ce projet. Pour le mener `a bien, il cr´ee parall`element Canonical,

(17)

soci´et´e sponsor officiel du syst`eme d’exploitation, et Ubuntu Foundation, une association sans but lucratif charg´ee en cas d’´echec de l’entreprise de p´erenniser le projet communautaire selon ces crit`eres id´eologiques de disponibilit´e pour tous (et dot´ee de 10 millions de dollars bloqu´es `a cette fin).

Avant sa sortie pour le grand public, le projet tr`es secret avait comme nom de code no-name-yet,pas

encore de nom . D`es le d´ebut, les noms des nouvelles distributions s’organisent d’une mani`ere pr´ecise :

[adjectif] [animal]. Il annonce une nouvelle version tous les six mois et des cycles de d´eveloppement de 2 ans. Sur le portail (Launchpad) charg´e entre autres de lister les bugs d’Ubuntu, le premier bug constat´e est rest´e c´el`ebre : Mark Shuttleworth d´enonce le fait que Microsoft ait une part de march´e ´ecrasante, et qu’il soit difficilement possible d’acqu´erir un ordinateur dans un magasin sans Windows pr´e-install´e. Ce bug a ´et´e confirm´e dans de nombreux pays, notamment en Belgique, au Canada, en France et en Suisse, et c’est un des buts d’Ubuntu de le r´eparer, selon les termes mˆemes de Mark Shuttleworth.

2005

Un an apr`es sa cr´eation, Ubuntu suscite l’int´erˆet de nombreux internautes.

2006

Ubuntu 6.06 LTS (de nom de code  Dapper Drake ) est la premi`ere version issue d’un cycle de

d´eveloppement de 2 ans. L’installeur Ubiquity apparaˆıt sur le LiveCD et ´equipe depuis lors l’ensemble des LiveCD. Canonical passe des accords avec Sun Microsystems.

2007

La version Ubuntu 7.04 inaugure les effets 3D avec Compiz (d´esactiv´es par d´efaut) et le rapatriement, via une interface graphique, du dossier  Mes Documents , des fonds d’´ecrans, des favoris Internet et

des contacts (courrier ´electronique et messagerie instantan´ee) depuis un ancien syst`eme d’exploitation. En France, l’Assembl´ee nationale s’´equipe d’ordinateurs Ubuntu. Intel passe un contrat avec Canonical pour d´evelopper une plate forme mobile : Ubuntu Mobile. Dell vend des portables et des ordinateurs avec Ubuntu pr´einstall´e depuis le 24 mai (le support Dell d’Ubuntu est effectu´e via Canonical). Ces ordinateurs sont ´egalement disponibles en France depuis le 8 aoˆut.

2008

En janvier, en France, la gendarmerie nationale annonce son abandon de Windows et la migration de tous ses postes informatiques vers Ubuntu d’ici 2013 (soit environ 70 000 ordinateurs). Ce qui repr´esentait sur la p´eriode 2004 - mars 2009 une ´economie de 50 millions d’euros. En avril sort la deuxi`eme version issue d’un cycle de d´eveloppement de 2 ans, la version Ubuntu 8.04 LTS, nom de code Hardy Heron (le h´eron robuste). En juin, l’int´egration de Gobuntu — version libre d’Ubuntu — `a Ubuntu en tant qu’option d’installation

(18)

est annonc´ee. En septembre, en Suisse, les 9 000 ordinateurs des ´ecoles genevoises auront enti`erement abandonn´e les logiciels Microsoft Office. Dans un deuxi`eme temps, Windows sera ´egalement abandonn´e pour migrer vers Ubuntu. Un autre exemple est le choix d’Ubuntu pour tous les serveurs de Wikip´edia (au total 400, qui g`erent au moment de l’annonce 684 millions de visiteurs par an).

2010

Le 9 avril, Chris Kenyon, vice-pr´esident de Canonical, annonce que le nombre d’utilisateurs d’Ubuntu, qui ´etait estim´e `a 8 millions en 2008, est d´esormais estim´e `a 12 millions.

2011

Le 5 avril, Canonical met fin `a son programme de distribution gratuite d’Ubuntu sur CD via son programme ShipIt (Systeme de distribution de CD-Rom gratuits). D´esormais il sera possible d’utiliser un service cloud offert aux utilisateurs pour pouvoir tester Ubuntu sur Internet sans l’installer. Entre avril et mai, la derni`ere version d’Ubuntu conduit certains utilisateurs `a passer sous Linux Mint et Fedora rebut´es par le choix de l’´equipe de d´eveloppement d’imposer Unity comme gestionnaire de fenˆetres.

2.3.2

Qt

Introduction

Qt est un framework orient´e objet et d´evelopp´e en C++. Il offre des composants d’interface graphique (widgets), d’acc`es aux donn´ees, de connexions r´eseaux, de gestion des fils d’ex´ecution, d’analyse XML, etc. Le projet a ´et´e nomm´e Qt parce que le caract`ereQ ´etait joli dans l’´ecriture Emacs de Ha

Qt permet la portabilit´e des applications qui n’utilisent que ses composants par simple recompilation du code source. Les environnements support´es sont les Unix (dont Linux) qui utilisent le syst`eme graphique X Window System, Windows et Mac OS X.

Le fait d’ˆetre une biblioth`eque logicielle multiplate-forme attire un grand nombre de personnes qui ont donc l’occasion de diffuser leurs programmes sur les principaux OS existants. Qt est notamment connu pour ˆetre la biblioth`eque sur laquelle repose l’environnement graphique KDE, l’un des environnements de bureau les plus utilis´es dans le monde Linux.

(19)

Qt1

Apr`es plusieurs ann´ees de d´eveloppement la version 1.0 est annonc´ee et publi´ee le 24 septembre 1996. En 1997, Matthias Ettrich lance le projet KDE. Ce dernier prend la d´ecision d’utiliser Qt comme biblioth`eque de base. Le fait qu’un projet de cette envergure utilise Qt sera une tr`es bonne publicit´e pour Trolltech et sa biblioth`eque. Depuis, les liens entre Trolltech et KDE n’ont fait que se renforcer.

Qt2

La seconde version majeure de Qt est publi´ee en juin 1999 et une version pour les syst`emes embarqu´es, Qt/Embedded, connue depuis sous le nom de Qtopia, est publi´ee en 2000.

Qt3

Les deux premi`eres versions majeures de Qt sont disponibles uniquement pour X11 et Windows, le support de Mac OS X arrive avec la version 3.0, publi´ee en 2001. Par rapport `a la version 2.0, cette nouvelle version apporte un meilleur support de l’internationalisation, de l’Unicode ou encore des expressions rationnelles comme en Perl.

Qt4

Le 28 juin 2005, la version 4 est publi´ee et am´eliore notamment le moteur de rendu, d´esormais appel´e Arthur, la s´eparation entre donn´ees et pr´esentation. La biblioth`eque est divis´ees en plusieurs modules :

– QtCore : pour les fonctionnalit´es non graphiques utilis´ees par les autres modules – QtGui : pour les composants graphiques

– QtNetwork : pour la programmation r´eseau – QtOpenGL : pour l’utilisation d’OpenGL

– QtSql : pour l’utilisation de base de donn´ees SQL

– QtXml : pour la manipulation et la g´en´eration de fichiers XML

– QtDesigner : pour ´etendre les fonctionnalit´es de Qt Designer, l’assistant de cr´eation d’interfaces graphiques

– QtAssistant : pour l’utilisation de l’aide de Qt – Qt3Support : pour assurer la compatibilit´e avec Qt 3

`

A cela s’ajoute pour la version commerciale sous Windows deux autres modules li´es `a l’utilisation d’Ac-tiveX : QAxContainer et QAxServer. Avec l’´evolution de Qt 4, d’autres modules sont conc¸us.

(20)

Le 28 janvier 2008, Nokia lance une OPA amicale pour racheter Qt et Trolltech. Trolltech, renomm´e en Qt Software, devient une division de Nokia. D`es lors, Nokia prend la d´ecision en janvier 2009 d’abaisser le maximum de barri`eres pour faciliter l’adoption de Qt, qui depuis est utilis´e par leurs d´eveloppements en interne : - ajout d’une licence plus permissive que la GPL, la LGPL ; - ouverture du d´eveloppement `a des d´eveloppeurs externes en rendant accessible le d´epˆot de Qt.

A partir de Qt 4.5, Qt est disponible sous licence LGPL v2.1. Cette licence permet ainsi des d´eveloppements de logiciels propri´etaires, sans n´ecessiter l’achat d’une licence commerciale aupr`es de Qt Development Frameworks. Ce changement, voulu par Nokia pour faire en sorte que Qt soit utilis´e par un maximum de projets, est rendu possible par le fait que Nokia peut se passer des ventes des licences commerciales, contrairement `a Trolltech qui ne pouvait pas se passer de cette source de revenus.

La Structure de Qt

L’API Qt est constitu´ee de classes aux noms pr´efix´es par Q et dont chaque mot commence par une majuscule (ex : QLineEdit), c’est la typographie CamelCase. Ces classes ont souvent pour attributs des types ´enum´er´es d´eclar´es dans l’espace de nommage Qt. Mis `a part une architecture en pur objet, certaines fonctionnalit´es basiques sont impl´ement´ees par des macros (chaˆıne de caract`eres `a traduire avec tr, affichage sur la sortie standard avec qDebug...). Les conventions de nommage des m´ethodes sont assez semblables `a celles de Java : le lowerCamelCase est utilis´e, c’est-`a-dire que tous les mots sauf le premier prennent une majuscule (ex : indicatorFollowsStyle()), les modificateurs sont pr´ec´ed´es par set, en revanche les accesseurs prennent simplement le nom de l’attribut (ex : text()) ou commencent par is dans le cas des bool´eens (ex : isChecked()).

Les objets Qt (ceux h´eritant de QObject) peuvent s’organiser d’eux-mˆemes sous forme d’arbre. Ainsi, lorsqu’une classe est instanci´ee, on peut lui d´efinir un objet parent. Cette organisation des objets sous forme d’arbre facilite la gestion de la m´emoire car avant qu’un objet parent ne soit d´etruit, Qt appelle r´ecursivement le destructeur de tous les enfants . Cette notion d’arbre des objets permet ´egalement de d´ebugger plus facilement, via l’appel de m´ethodes comme QObject : :dumpObjectTree() et Object : :dumpObjectInfo() .

Le moc (pour Meta Object Compiler) est un pr´eprocesseur qui, appliqu´e avant compilation du code source d’un programme Qt, g´en`ere des meta-informations relatives aux classes utilis´ees dans le programme. Ces meta-informations sont ensuite utilis´ees par Qt pour fournir des fonctions non disponibles en C++, comme les signaux et slots. L’utilisation d’un tel outil additionnel d´emarque les programmes Qt du langage C++ standard. Ce fonctionnement est vu par Qt Development Frameworks comme un compromis n´ecessaire pour fournir les m´ecanismes de signaux.

(21)

Les signaux et slots sont une impl´ementation du patron de conception observateur. L’id´ee est de connec-ter des objets entre eux via des signaux qui sont ´emis et rec¸us par des slots. Du point de vue du d´eveloppeur, les signaux sont repr´esent´es comme de simples m´ethodes de la classe ´emettrice, dont il n’y a pas d’impl´ementation. Ces ”m´ethodes” sont par la suite appel´ees, en faisant pr´ec´eder ”emit”, qui d´esigne l’´emission du signal. Pour sa part, le slot connect´e `a un signal est une m´ethode de la classe r´eceptrice, qui doit avoir la mˆeme signature (autrement dit les mˆemes param`etres que le signal auquel il est connect´e), mais `a la diff´erence des signaux, il doit ˆetre impl´ement´e par le d´eveloppeur. Le code de cette impl´ementation repr´esente les actions `a r´ealiser `a la r´eception du signal. C’est le MOC qui se charge de g´en´erer le code C++ n´ecessaire pour connecter les signaux et les slots.

(22)

3

CarottAge

3.1

Les diff´erents ex´ecutables

Je vais dans cette partie d´ecrire ce qui existait avant mon premier stage. Les agronomes avaient `a leur dis-position cinq programmes pour traiter les donn´ees. Je vais d´ecrire ici ces programmes d’un aspect ext´erieur. Je ne vais pas d´ecrire les calculs r´ealis´es car la plupart me d´epassent et je n’ai jamais eu besoin de com-prendre leur fonctionnement dans le d´etail. Ce qui est n´ecessaire de savoir ici est en r´ealit´e les param`etres ainsi que le format des fichiers pass´es en param`etres car ce format est indispensable au bon fonctionnement des ´ex´ecutables.

3.1.1

ter2indice-tempo

Je vais commencer par introduire le premier fichier, celui qui contient l’utilisation des diff´erentes surfaces agricoles. Ce fichier contenait une ligne d’en-tˆete permettant au logiciel d’identifier le contexte. Voici un exemple :

nLignes=6012, annee1=1992, anneen=1999, nAttributs=1 1 88 307 20785 1 19 19 19 19 19 19 19 19

2 88 307 20785 2 19 19 19 19 19 19 19 19

Ceci est le d´ebut du fichier de donn´ees concernant les Vosges. On voit dans la premi`ere ligne qu’il contient 6012 lignes ce qui signifie que les Vosges ont ´et´e d´ecoup´ees en 6012 r´egions agricoles. On peut y lire ´egalement que l’´etude commence de l’ann´ee 1992 et se poursuit jusqu’`a l’ann´ee 1999.

(23)

Voici la commande qui permet de cr´eer le fichier d’indices :

./ter2indice-tempo vosges-92-99.txt -t teruti1.cfg -o bin-teruti1.lst

Ici la commande est simplifi´ee car elle suppose que tous les fichiers sont dans le r´epertoire courant. On comprend tr`es vite que cela n’est pas tr`es pratique surtout que la plupart des utilisateurs travaillent sous windows et que la console windows n’est vraiment pas ergonomique. On aperc¸oit ici cinq arguments. Le premier est le fichier de donn´ees, puis il y a-tqui indique que le prochain argument est le fichier de

configuration. On a donc ensuite ce fichier de configuration, qui doit ˆetre ´ecrit dans un bloc-notes suivant une syntaxe pr´ecise. Enfin on a-opour dire que le prochain argument est le nom du fichier dans lequel

le programme doit ´ecrire les indices.

ter2indice-tempo permet de lire le fichier de donn´ees et de le comparer avec le fichier de configuration. Le fichier de sortie issu de cette comparaison va contenir la liste d’indices pr´esents dans le corpus de donn´ees ainsi que les d´enombrer. En effet le fichier de configuration contient toutes les cat´egories de sols utilis´es possibles et donc peut-ˆetre plus d’indices que le corpus de donn´ees. Cette s´election d’indices n’aura que plus d’importance par la suite car on pourra choisir de travailler seulement sur une partie du corpus.

3.1.2

editmodel

Il existe plusieurs mod`eles. Ces mod`eles diff´erents permettent de faire une ´etude selon diff´erents points de vue. Il en existe en r´ealit´e deux groupes, les mod`eles lin´eaires et ceux en colonnes d’´etats. Pour les mod`eles dits de colonnes d’´etats on a la possibilit´e de choisir les types de teruti (pour terres utilis´ees) que l’on souhaite ´etudier pour chaque ´etat. Un fichier descriptif de ce mod`ele doit ˆetre ´egalement ´ecrit dans un bloc-notes de mani`ere syst´ematique. Il est n´ecessaire ensuite d’utiliser le logiciel editmodel pour l’adapter au contexte.

Le ligne de commande est tr`es similaire pour editmodel : ./editmodel -t teruti1.cfg -d lin3.lst -i bin-teruti1.lst -o lin3.mod

Comme on peut le voir nous n’avons ici r´eellement que quatre arguments car -t, -d, -i et -o ne servent qu’a permettre `a editmodel d’identifier les param`etres qui suivent. Nous avons donc pour ce logiciel le fichier de configuration, puis le fichier descriptif du mod`ele, ensuite le fichier d’indices et enfin le fichier de sortie qui est donc le mod`ele tenant compte du contexte. Ce fichier de sortie est ´ecrit en binaire et est donc illisible pour l’utilisateur. Il ne sert qu’au prochain programme.

(24)

Comme on peut le voir, ce logiciel utilise le fichier de configuration ainsi que le fichier d’indices. En effet le fichier qui d´ecrit le mod`ele contient le label des teruti en clair. Or le prochain logiciel utilise les indices. Ainsi un des rˆoles d’editmodele est de remplacer ces labels par leur indices. Pour plus de d´etails concernant les diff´erents mod`eles et leur utilisations, une page d’annexe est d´edi´ee `a cet effet.

3.1.3

fwtInra

Ce logiciel est l’un des plus importants. Il fait tous les calculs de statistiques en fonction du mod`ele et du fichier de donn´ees. Il fait ce que l’on appelle un apprentissage du mod`ele. Il cr´e´e toute la structure de donn´ees qui permet de mod´eliser les r´esultats. A partir de son fichier de sortie on peut utiliser un des deux logiciels de visualisation. Ce logiciel demande un certain nombre d’it´erations pour apprendre le mod`ele et selon le nombre d’it´erations, le logiciel ressort une valeur dans la console qui permet de d´eterminer si le nombre d’it´erations ´etait suffisant ou non. Voici un exemple d’utilisation :

./fwt3Inra vosges-92-99.txt -t teruti1.cfg lin3.mod1 -n 1 -x 2 -o lin3.mod1

On peut voir ici les fichiers n´ecessaires qui sont : le fichier de donn´ees, de configuration et du mod`ele. Nous avons ensuite le -n qui permet de d´efinir le nombre d’utilisations, le -x qui permet de choisir une m´ethode de calcul et enfin le fichier de sortie identique au premier. Il est n´ecessaire d’appeler deux fois le logiciel avec des param`etres l´eg`erement diff´erents afin d’obtenir le fichier final.

3.1.4

gviewgraph

Une fois toutes les ´etapes pr´ec´edentes termin´ees, les r´esultats peuvent ˆetre affich´es `a l’aide de ce logiciel, qui permet de cr´eer un graphique repr´esentatif des r´esultats obtenus. Voici la ligne de commande qui permet de l’utiliser :

./gviewgraph -t ./teruti1.cfg -f lin3.gph -l lin3.legende -a 1992

Comme on peut le constater il n’y a plus besoin du fichier de donn´ees car les calculs sont d´ej`a fais. La configuration est toujours pr´esente puis nous avons le fichier .gph qui contient le r´esultat de fwtInra, ensuite un fichier qui permet de cr´eer sa propre l´egende afin de remplacer celle des ordonn´ees qui est donn´ee par d´efaut `a l’aide du fichier de configuration. Enfin l’ann´ee de d´epart permet de cr´eer la l´egende des abscisses car on peut retrouver le nombre d’ann´ees `a partir du fichier .gph .

(25)

3.1.5

gviewmod

Enfin le Gviewmod est similaire au Gviewgraph dans son principe. C’est `a dire que son but est toujours d’afficher les r´esultats, mais au lieu de les afficher sous forme de graphique il ´ecrit la probabilt´e de chaque teruti pour chaque ´etat. Il s’utilise toujours `a l’aide d’une ligne de commande et ´ecrit les r´esultats dans un fichier texte que l’on peut lire `a l’aide d’un bloc-notes.

3.2

Une interface utilisateur unique

L’interface est plus complexe qu’un simple formulaire par ex´ecutable o`u ce formulaire poss´ederait un champ par param`etre et un bouton ex´ecuter. En effet l’interface permet ´egalement de construire les fichiers n´ecessaires pour une extraction de donn´ees. Le fichier de donn´ees est achet´e `a une entreprise ext´erieure sous forme de fichier excel o`u il ne reste plus qu’`a exporter en csv. L’interface permet par contre de cr´eer le fichier de configuration ou d’en modifier un d´ej`a existant. Elle permet ´egalement de cr´eer le fichier descriptif du mod`ele `a partir de la configuration choisie.

Le premier onglet permet de s´electionner le fichier de donn´ees avec un explorateur comme n’importe quel logiciel classique. Ensuite, mˆeme si le fichier excel peut-ˆetre export´e en csv, l’utilisateur peut ne pas vouloir ´etudier le corpus dans son int´egralit´e. En effet ces fichiers contiennent les donn´ees sur un certain nombre d’ann´ees comme 92-99 pour les Vosges, or l’utilisateur peut ne vouloir qu’´etudier les ann´ees 93-96. Ainsi l’interface va lire l’ann´ee de d´ebut et l’ann´ee de fin dans le fichier et propose un plage d’ann´ees `a observer. L’interface va cr´eer un nouveau fichier de donn´ees en supprimant les colonnes inutiles afin qu’elles ne soient pas prises en compte dans l’´etude statistique.

Le deuxi`eme onglet quant `a lui permet de cr´eer ou importer un fichier de configuration. Il permet de visualiser sous forme d’arbre lin´eaire les diff´erents teruti et de les regrouper par cat´egories. L’interface permet d’ajouter `a l’aide de boutons de nouveaux regroupements, de les modifier, d’ajouter de nouveaux teruti ou d’en supprimer avec la souris. Le logiciel se chargera ensuite de r´e´ecrire un fichier selon le format n´ecessaire pour ter2indice-tempo. Il permet ´egalement d’appeler ce dernier afin de cr´eer le fichier d’indices.

Un troisi`eme onglet similaire au deuxi`eme dans son fonctionnement permet de faire de mˆeme pour le mod`ele. Le mod`ele est constitu´e par des ´etats et leur description. Chaque ´etat est repr´esent´e par un disque. Ces disques sont num´erot´es et on peut faire un clic gauche dessus pour ouvrir un pop-up contenant la liste des teruti dans laquelle on peut naviguer `a l’aide de scrollbars et cocher les teruti que l’on souhaite utiliser pour cet ´etat. Il est possible de visualiser ce que l’on a choisi `a l’aide d’un clic droit qui va ´egalement ouvrir un pop-up contenant la description de l’Etat. De la mˆeme mani`ere on peut cr´eer, ´editer ou importer un

(26)

mod`ele et construire les deux types de mod`eles possibles. Cet onglet permet ´egalement d’appeler editmodel afin de cr´eer le fichier n´ecessaire `a fwtInra.

Enfin le quatri`eme et dernier onglet est une page contenant trois boutons. Le premier permet de lancer fwtInra afin de r´ealiser l’apprentissage. Pour voir la valeur qui permet de savoir si le nombre d’it´erations est correct il est n´ecessaire d’ouvrir une console. Les deux autres boutons quand `a eux permettent d’utiliser Gviewgraph et Gviewmod afin d’afficher le r´esultat. Lorsque l’on choisit un de ces deux modes, les bou-tons disparaissent pour afficher le r´esultat au sein de l’application. Gviewgraph avait dˆu ˆetre reprogramm´e car il utilisait une biblioth`eque non compatible avec windows. Une fois dans un de ces deux modes de visualisations il ´etait possible de revenir aux trois boutons afin de relancer une nouvelle extraction.

L’interface ´etait d´ej`a en soi une r´evolution mais n´ecessitait encore beaucoup de modifications. A mon d´epart elle boguait encore r´eguli`erement et Jean-Franc¸ois pris beaucoup de temps avant de la rendre dis-tribuable. Pour cela il a dˆu changer l’architecture qui ne respectait pas l’approche Mod`ele-Vue-Contrˆoleur. Il a donc cr´e´e une nouvelle classeContextqui permet d’avoir un objet unique commun `a tous les

on-glets. Ainsi cet objet repr´esente le mod`ele sachant que sous Qt Vue et Contrˆoleur ne font qu’un grˆace au m´ecanisme de signal/slot. Pour la petite histoire CarottAge contient une quinzaine de classes pour plusieurs milliers de lignes de code.

(27)

4

Le developpement

Le d´eveloppement se d´ecompose en quatre ´etapes majeures. Tout d’abord l’ergonomie a ´et´e modifi´ee. Ensuite il m’a ´et´e demand´e par Catherine Mignolet, responsable de l’unit´e, d’´etudier deux programmes Java similaires : Teruti-miner et Lucas-miner. Puis vient le coeur du sujet avec la mise sur serveur des ex´ecutables qui comprend la cr´eation de l’application server1 et la mofication du client2. Et enfin il a ´et´e d´ecid´e d’ajouter `a CarottAge les fonctionnalit´es de Teruti-miner et Lucas-miner.

4.1

Ergonomie

Donn´ees

Comme on a pu le voir dans la pr´esentation de la premi`ere version de CarottAge, on pouvait dans cet onglet, choisir de restreindre le nombre d’ann´ees d’´etude. Au cours de cette ann´ee Jean-Franc¸ois a dˆu permettre ´egalement de restreindre l’´etude `a une surface g´eographique d´efinie. Dans un premier temps il avait cr´e´e deux champs de saisie. Le premier permettait d’entrer le num´ero de colonne sur laquelle on doit appliquer le filtre, puis le deuxi`eme qui permettait d’´ecrire une expression r´eguli`ere afin de filtrer les valeurs souhait´ees. Deux probl`emes survinrent. Le premier est qu’il n’´etait pas ´evident de se rappeler quelle colonne identifie le d´epartement, laquelle identifie la r´egion agricole etc ... Le deuxi`eme est que d´ej`a tous les informaticiens ne sont pas forc´ement familiaris´es avec les expressions r´eguli`eres et donc un utilisateur lambda encore moins.

Pour rem´edier `a ce probl`eme et anticiper la quatri`eme partie de mon travail, il a ´et´e d´ecid´e d’ajouter une deuxi`eme ligne d’en-tˆete au fichier de donn´ees. Celui-ci ressemble dor´enavant `a :

nLignes=6012, annee1=1992, anneen=1999, nAttributs=1, isHeader=1 ID DEP RA PHOTO SID 1992 1993 1994 1995 1996 1997 1998 1999

1. Logiciel ´ex´ecut´e sur le serveur qui lui permet de dialoguer avec les diff´erents clients 2. Logiciel CarottAge que chaque utilisateur(Client) installe sur son ordinateur

(28)

1 88 307 20785 1 19 19 19 19 19 19 19 19 2 88 307 20785 2 19 19 19 19 19 19 19 19

Grˆace `a annee1 et anneen on peut d´eterminer le nombre d’´el´ements dans la deuxi`eme ligne qui d´efinissent des ´el´ements spatiaux et le nombre d’´el´ements teruti. Pour tenir compte de ces modifications et permettre aux ex´ecutables de fonctionner en ne prenant pas cette deuxi`eme ligne d’en-tˆete pour une ligne de donn´ees, l’attribut isHeader a ´et´e ajout´e ´egalement. Ainsi au lieu de demander la colonne souhait´ee, l’utilisateur a une combo-box contenant les diff´erents choix et lieux de l’expression r´eguli`ere CarottAge va proposer la liste des ´el´ements tri´es et sans doublon des ´el´ements pr´esents dans la colonne en question. L’utilisateur n’a plus qu’`a choisir en cochant les cases qu’il souhaite.

mod`ele

Davide et ying m’ont demand´e express´ement de changer la mani`ere d’obtenir la description d’un ´etat. Il ´etait jusque l`a possible de l’obtenir `a l’aide d’un clic droit sur le noeud. Un pop-up contenant la description s’ouvre. Le probl`eme ´etait que parfois le clic gauche ´etait utilis´e. Ceci avait pour cons´equence d’´ecraser l’ancien gabarit pour en red´efinir un nouveau et ils devaient recommencer le travail effectu´e. Je ne voyais pas comment repr´esenter les descriptions des ´etats en dehors d’une fenˆetre pop-up car plusieurs colonnes ´etaient possibles avec pour chaque ´etat une description relativement longue. Au fil des discussions il s’est av´er´e que le mod`ele ergodique `a plusieurs colonnes ´etait inutilis´e car trop complexe `a ´etudier. A partir de ces observations j’ai pu modifier l’application pour ne proposer qu’une seule colonne. Je pouvais d`es lors afficher la description des ´etats `a droite de chacun.

apprentissage

Cette partie consiste `a cr´eer un fichier qui repr´esente les donn´ees selon le mod`ele choisi. Pour cela on doit d´efinir un nombre d’it´erations. Suivant ce nombre, une valeur affich´ee par le logiciel dans la console permet de savoir si l’apprentissage est satisfaisant ou s’il est n´ecessaire de recommencer avec un nombre plus important d’it´erations. Le gros probl`eme est que la valeur est affich´ee, avec d’autres ´el´ements moins importants dans la console. Il a donc ´et´e d´ecid´e de cr´eer un nouvel onglet `a cet effet pour le message console. Pour le r´ecup´erer, j’ai redirig´e la sortie console de l’application fwtInra vers un fichier. Je lis ensuite ce fichier afin de l’afficher dans l’interface et non dans la console.

(29)

Pour les diagrammes, plusieurs petites choses ont ´et´e `a modifier. Tout d’abord il m’a ´et´e demand´e de rajouter un quadrillage pour permettre une lecture plus facile des graphiques. Ensuite j’ai dˆu modifier les l´egendes en ordonn´ees. En effet si l’utilisateur choisit plusieurs gabarits par ´etat, alors il est cens´e d´efinir un fichier de l´egende et l’associer au diagramme afin de choisir ce qu’il souhaite afficher. Or s’il ne le fait pas, toute la description est affich´ee et une partie se retrouve au milieu du graphique. J’ai donc lu chaque valeur de la l´egende afin de la tronqu´er `a un nombre de caract`eres maximal si celle-ci venait `a ˆetre trop longue.

gviewmod

Le Gviewmod contient n tableaux o`u n est le nombre d’Etats du mod`ele. Chacun de ces tableaux poss`ede quatre colonnes. La premi`ere contient le num´ero de ligne, la deuxi`eme la probabilit´e cumul´ee des n-uplets, la troisi`eme la probabilit´e du n-uplet que la ligne repr´esente et la quatri`eme le libell´e de ce n-uplet. Au d´ebut on pouvait choisir le nombre de lignes qui est en r´ealit´e le nombre de n-uplets `a ajouter. Puis pour des raisons pratiques il m’a ´et´e demand´e de choisir plutˆot un pourcentage o`u seuls les n-uplets ayant une probabilit´e sup´erieure seraient affich´es. J’ai dˆu changer l´eg`erement l’interface et parcourir le fichier de r´esultats pour atteindre ce but.

4.2

Teruti-miner et Lucas-miner

Analyse de l’existant

Teruti-miner et Lucas-miner sont des logiciels de d´enombrement qui permettent de r´ealiser des statis-tiques simples. Lucas et Teruti sont des corpus de donn´ees ne repectant pas la mˆeme nomenclature. Ainsi pour lire ces corpus les donn´ees sont stock´ees de mani`ere diff´erente, mais ces deux logiciels ont beaucoup de points communs. Concr`etement ils sont tous deux compos´es de onze classes communes permettant de r´ealiser l’interface et de modifier certains param`etres au besoin, tous deux ont ´egalement neuf classes qui permettent d’adapter la structure de donn´ees au corpus.

Nous avons donc vingt-neuf classes au total. Le code ne contenait aucun commentaire et des noms va-riables pas toujours explicites. Cela m’a donc pris beaucoup de temps `a analyser et surtout pour comprendre la structure de donn´ees, ce qui est n´ecessaire pour comprendre le d´enombrement r´ealis´e. L’interface quant `a elle ´etait des plus classiques et construite selon les mod`eles vus en cours. Un de mes probl`emes fut de comprendre les fichiers n´ec´essaires et o`u les placer pour le fonctionnement du logiciel.

(30)

Une partie de ce logiciel m’inspira pour CarottAge. En effet CarottAge avait pour but de proposer le mˆeme genre de service que ce logiciel, c’est `a dire pouvoir faire plusieurs ´etudes selon un crit`ere g´eographique. Or pour chacun d’eux, il y a beaucoup de valeurs, par exemple pour les d´epartements il y en a une centaine mais il peut y en avoir beaucoup plus. Pour acc´eder `a toutes les cases et cocher celle que l’on souhaite il a des scrollbars qui permettent de faire d´efiler les cases. Or cette barre ne fonctionnait pas. Aussi le logiciel affichait ses r´esultats dans un tableau Java propre `a l’application et qui ´etait enregistrable sous format csv. Or cette fonction n’´ecrivait pas dans le fichier sous linux. J’ai donc rem´edi´e `a ces deux probl`emes.

Analyse du d´enombrement

Apr`es cette analyse qui me permit de supprimer deux bugs de l’application, j’ai dˆu attaquer les choses s´erieuses, me baser sur mes connaissances de la structure de donn´ees pour comprendre le d´enombrement r´ealis´e. J’ai d´eduis les r`egles de calculs, puis j’ai cr´e´e un set de donn´ees fictif pour v´erifier ce que je pensais. J’ai calcul´e les r´esultats `a la main selon les r`egles que j’avais d´efinies. Cet essai m’a permis de voir que mon raisonnement ´etait juste pour tous les calculs de d´enombrement des n-uplets mais faux sur la colonne qui fait une sorte de moyenne arithm´etique des valeurs de chaque ligne. J’ai compris mon erreur et communiqu´e mes observations `a Catherine. Son but ´etait de v´erifier la mani`ere dont ces valeurs ont ´et´e obtenues avant publication.

Modification de l’interface

Le logiciel ´etait compos´e de trois fenˆetres principales. La premi`ere permettait de d´efinir les fichiers et la taille de l’observation, le n des n-uplets. Puis le logiciel commence `a construire un premi`ere partie de la structure de donn´ees afin de proposer des champs adapt´es aux premi`eres informations qu’il a pu lire dans les fichiers. Voici une image illustrant l’interface avant modifications `a gauche puis apr`es modification `a droite :

(31)

Un erreur d’ergonomie est de mettre le bouton qui permet de lancer l’extraction au milieu de l’application ainsi que la barre de statuts(Ici : pr´eparation de l’extraction). Ensuite il existait le bouton Nouveau param`etre dont on ne comprenait pas bien le but et donc encore moins les implications que cela pouvait avoir sur les calculs de d´enombrement. Le case Agr´egation de classes ´etait toujours coch´ee par les utilisateurs et est donc coch´ee par d´efaut maintenant. Et enfin la case Regroupement des redondances ´etait coch´ee par d´efaut.

Cette fonction consistait, par exemple lors de l’´etude de cycle comme colza-bl´e-orge, `a consid´erer ce triplet ´equivalent `a bl´e-orge-colza et `a orge-colza-bl´e. En effet ces triplets sont les mˆemes, ils sont juste d´ecal´es d’une ann´ee. Mais cela n’´etait pas toujours vrai notamment dans le cas des sols bˆatis o`u il n’y a pas de cycle avec une construction tous les trois ans et destruction l’ann´ee suivante. Ainsi par principe de pr´ecaution cette case devait imp´erativement ˆetre toujours d´ecoch´ee. J’ai donc tout simplement d´ecoch´e la case par d´efaut et supprim´e la case de l’interface pour ne plus qu’elle puisse ˆetre coch´ee.

4.3

Architecture Client/Serveur

4.3.1

D´efinitions

Introduction

L’architecture Client/Serveur d´esigne un mode de communication `a travers un r´eseau entre plusieurs programmes ou logiciels : l’un qualifi´e de client envoie des requˆetes et l’autre de serveur qui y r´epond.

(32)

Un serveur informatique est similaire `a une tour d’ordinateur de bureau. Il est en g´en´eral bien plus puis-sant et offre de multiples services tels que :

– le partage de fichiers

– l’acc`es aux informations du world wide web – les emails

– le partage d’imprimantes – le commerce ´electronique – le stockage en base de donn´ees – les logiciels applicatifs

Le serveur fonctionne en permanence et r´epond automatiquement aux requˆetes provenant des clients. Le format des requˆetes et des r´esultats est normalis´e et conforme `a des protocoles r´eseaux. Chaque service peut ˆetre exploit´e par tout client qui met en œuvre le protocole propre `a ce service.

Les serveurs sont utilis´es par les entreprises, les institutions et les op´erateurs de t´el´ecommunications. Ils sont courants dans les centres de traitement de donn´ees et le r´eseau Internet. D’apr`es le cabinet Netcraft, il y a en mars 2009 plus de 220 millions de serveurs web dans le monde. Leur nombre est en augmentation constante depuis l’invention du World Wide Web en 1995.

D´efinition d’un client

Dans un r´eseau informatique un client est un logiciel qui envoie des demandes `a un serveur. Il peut s’agir d’un logiciel manipul´e par une personne, ou d’un bot. Est appel´e client aussi bien l’ordinateur depuis lequel les demandes sont envoy´ees que le logiciel qui contient les instructions relatives `a la formulation des demandes et la personne qui op`ere les demandes.

L’ordinateur client est g´en´eralement un ordinateur personnel ordinaire, ´equip´e de logiciels relatifs aux diff´erents types de demandes qui vont ˆetre envoy´ees, comme par exemple un navigateur web, un logiciel client pour le World wide web.

4.3.2

Application `a CarottAge

Pourquoi cette migration

Il faut savoir que les diff´erents ex´ecutables peuvent traiter de grandes quantit´es de donn´ees. En effet certains fichiers de donn´ees couvrent la France enti`ere et font environ 555 000 lignes. Ces traitements

(33)

prennent ainsi beaucoup de temps voire d´epassent les capacit´es de certains ordinateurs portables. Aussi il existe des complications lors de l’installation de CarottAge. Ces complications sont souvent dues `a des probl`emes de compatibilit´e des ex´ecutables ´ecrits en C/C++ avec le syst`eme d’exploitation de l’utilisateur. Enfin ces ex´ecutables peuvent ˆetre mis `a jour et cela n´ecessite donc pour l’utilisateur de t´el´echarger la nouvelle version de l’ex´ecutable puis d’aller chercher l’ancienne version dans le r´epertoire d’installation pour l’´echanger contre la nouvelle.

Cr´eation du serveur

Le cruel dilemme fut de savoir par o`u commencer. Le client ou le serveur ? J’ai d´ecid´e arbitrairement de commencer par le serveur. Le serveur est un programme lanc´e en deamon. Un deamon est un programme lanc´e au d´emarrage (ou red´emarrage) du serveur et qui est en arri`ere plan c’est `a dire non visible pour un utilisateur. Il est inoffensif et r´eside en m´emoire dans l’attente de requˆetes. Il s’ex´ecute lorsqu’une requˆete concerne le port sur lequel il est en veille.

Pour ´echanger des informations sur internet il existe trois points indispensables. Cet ´echange d’informa-tions entre deux machines peut-ˆetre assimil´e `a une conversation entre deux personnes. Il est tout d’abord n´ecessaire d’avoir l’adresse IP pour identifier la machine avec laquelle on veut dialoguer. Ensuite une ma-chine peut avoir plusieurs conversations. Ainsi il est n´ecessaire pour la mama-chine de connaitre le contexte, de quelle conversation il s’agit. C’est le rˆole du port. Le port est cod´e sur 16 bit et donc peut-ˆetre une valeur entre 0 et 65 536. Enfin il est n´ecessaire de connaˆıtre la langue qui dans un ´echange client-serveur correspond au protocole.

D’apr`es mes connaissances deux protocoles pouvaient ˆetre utilis´es ici, UDP et TCP. J’ai trouv´e un exemple sur internet bas´e sur le protocole TCP. J’ai donc pu adapter cet exemple `a mon probl`eme. L’exemple ´etait un logiciel qui permet de discuter `a plusieurs. Le client envoyait un message au serveur et le serveur le renvoyait `a tous les clients y compris celui qui ´etait `a l’origine du message.

Bien ´evidement mon cas ´etait plus complexe mais les bases ´etaient l`a. Je savais comment envoyer un message du client au serveur et r´eciproquement. Sauf que mon client lui peut envoyer deux types de mes-sages, des fichiers et des requˆetes. Le serveur de son cˆot´e doit enregistrer les fichiers dans le r´epertoire du bon client et ´ex´ecuter les requˆetes. Une fois qu’une requˆete est termin´ee il doit renvoyer le fichier de r´esultat au bon client.

Le premier probl`eme a ´et´e d’identifier le client qui a envoy´e le message. Ce probl`eme a pu ˆetre r´esolu grˆace une particularit´e du syst`eme signal/slot de Qt. Rapidement Qt peut identifier l’objet qui a ´emis le

(34)

signal, cet objet est de type QObject et doit ˆetre cast´e en Client. Il ne faut pas oublier de g´erer les cas d’erreurs possibles li´es `a ce cast.

Ensuite il a fallu trouver un moyen d’analyser les messages rec¸us par le serveur. En effet l’exemple se contentait de renvoyer le message tel quel. J’ai donc invent´e une nomenclature toute simple. Le message doit commencer par le nombre 1 pour les fichiers et 2 pour les requˆetes. Si c’est un fichier alors la deuxi`eme ligne contient le nom du fichier puis son contenu se situe de la troisi`eme ligne `a la fin du message. Pour les requˆetes nous avons le nom de l’ex´ecutable `a utiliser `a la deuxi`eme ligne, puis la liste des param`etres s´epar´es par des espaces `a la troisi`eme ligne et une quatri`eme ligne qui indique le type des param`etres de la ligne pr´ec´edente.

En effet les param`etres de type fichiers doivent pouvoir ˆetre identifi´es car il n’ont pas le mˆeme chemin relatif sur l’ordinateur de l’utilisateur qui envoie la requˆete que sur le serveur o`u celle-ci est ex´ecut´ee. Les paramˆetres transmis ne contiennent donc que le nom du fichier sans le chemin relatif. Sauf que ces fichiers sont enregistr´es dans un r´epertoire propre au client sur le serveur. Ainsi cette ligne permet au serveur d’identifier les param`etres de typefichierafin d’ajouter le chemin relatif du serveur au nom du fichier.

Dans la mesure o`u un nouveau fichier entrant ayant le mˆeme nom qu’un fichier d´ej`a existant sur le serveur ´ecraserait celui-ci, il est n´ecessaire que chaque client poss`ede son propre espace de travail sur le serveur. Les noms de ces espaces de travail sont conc¸us `a partir de leur adresse IP. Le probl`eme est donc toujours pr´esent si deux utilisateurs travaillent sur une mˆeme machine `a deux moments diff´erents.

Comme on a pu le constater pr´ec´edemment, les requˆetes ne sont pas ex´ecut´ees directement mais passent par une phase d’analyse pr´ealable. Cette phase permet d’identifier le type d’ex´ecutable et les actions `a r´ealiser `a la fin de son utilisation. En fonction de son type on peut savoir quel est le param`etre qui contient le fichier de retour afin de le renvoyer au client.

Modification du client

Pour commencer le client doit pouvoir communiquer avec le serveur. Pour cela il a besoin d’un socket qui doit pouvoir ˆetre accessible par tous les onglets. Chaque onglet ou presque utilise un ex´ecutable et donc aura la n´ecessit´e d’acc´eder au socket pour pouvoir envoyer une requˆete au serveur. J’ai donc plac´e cet objet comme attribut de la classe Contexte. Celle-ci contient toutes les informations utiles qui doivent ˆetre transmises d’un onglet `a un autre. Par exemple dans l’onglet de donn´ees on va choisir notre fichier de donn´ees et certains param`etres. Cet objet Contexte va permettre de les stocker. Chaque onglet poss´edant un pointeur vers cet objet, ils seront donc tous capables d’acc´eder au socket qu’il contient.

(35)

Le constructeur de l’objet Contexte va initialiser son attribut socket, en une tentative de connexion au serveur lors du d´emarrage de l’application. L’objet Contexte va ´egalement disposer de trois fonctions. Les deux premi`eres permettent de formater les messages selon le protocole que j’ai d´efini. L’une formate les messages concernant l’envoi des fichiers de la mani`ere suivante :

1 (signifie que c’est un envoi de fichier) nomDuFichier

contenuDuFichier

et l’autre permet de formater les requˆetes. Celle-ci ressemble `a :

2(signifie que c’est une requˆete) nomExecutable

listeParam`etre (fichier1.txt fichier2.cfg -n 2 -o fichier3.lst type param`etre ( f f a a a f )

Ces fonctions de formatage utilisent une troisi`eme fonction qui permet d’envoyer des messages tels quels. Cette derni`ere est priv´ee ce qui signifie que seules les deux premi`eres peuvent l’utiliser. Ainsi il est impossible d’envoyer des messages au serveur qu’il ne pourrait interpr´eter.

L’envoi de fichier est g´en´eralement fait par l’objet Contexte lui-mˆeme. En effet lorsque l’utilisateur va par exemple d´efinir le fichier de donn´ees dans le premier onglet, celui-ci va ´ecrire dans le Contexte ce nom de fichier. Maintenant que ces fichiers ne sont plus trait´es en local mais par le serveur, le Contexte ne se contente plus de m´emoriser les noms de fichiers utiles mais va ´egalement les envoyer directement au serveur. Un ex´ecutable utilise plusieurs fichiers. L’int´erˆet de les envoyer au fur et `a mesure c’est que le premier fichier est charg´e pendant que l’utilisateur est en train de d´efinir le second et le second est charg´e pendant que l’utilisateur va d´efinir certains param`etres pour l’ex´ecutable.

De la mˆeme mani`ere, l’utilisateur peut commencer l’´etape suivante en attendant le fichier de r´esultat. En effet ces fichiers de r´esultats sont utilis´es par l’ex´ecutable suivant et ne sont donc pas n´ecessaires `a l’utilisateur pour configurer sa prochaine ´etape. Ainsi lorsque l’utilisateur effectue sa requˆete il n’a besoin d’attendre que le temps d’ex´ecution et non le temps de transfert des fichiers. Le deuxi`eme int´erˆet est qu’un utilisateur peut se servir de fichier de r´esultat qu’il a d´ej`a construit lors d’une session pr´ec´edente, ainsi l’utilisateur peut ˆetre amen´e `a utiliser certains fichiers sans passer par l’´etape d’ex´ecution pr´ec´edente. On

(36)

comprend mieux alors le besoin de charger les fichiers au fur et `a mesure au lieu de les charger au moment de l’ex´ecution.

Une fois la requˆete effectu´ee, le serveur renvoie les fichiers de sortie. Le probl`eme est que ces fichiers arrivent au socket et qu’il ne sait pas `a quoi ces fichiers correspondent. Ainsi la r´eception des fichiers elle, ne se fait pas par le Contexte mais par l’onglet lui-mˆeme. Pour cela on connecte le socket `a la fonction d’interpr´etation des fichiers de l’onglet qui envoie la requˆete. A la fin de la phase d’interpr´etation des fichiers il est n´ecessaire de d´econnecter le socket de cette fonction afin que les prochains fichiers rec¸us par le socket ne soient pas interpr´et´es par deux fonctions d’onglets diff´erents.

Enfin toutes les donn´ees rec¸ues du serveur sont des fichiers. Ainsi quelque soit l’onglet qui ait envoy´e la requˆete, il faudra enregistrer le fichier dans le workspace du client. Cette premi`ere ´etape pr´ealable est donc faite par la classe m`ere de tous les onglets, la classe Vue. Cela ´evite de r´e´ecrire cette fonction sept ou huit fois, et le socket lors de l’ex´ecution est donc connect´e `a cette premi`ere fonction qui elle va appeler la fonction d’interpr´etation de la bonne classe fille (du bon onglet).

Pour chaque ex´ecution au moins deux fichiers sont renvoy´es. Le fichier de log qui permet de connaˆıtre comment s’est pass´ee l’ex´ecution, si l’ex´ecutable a rencontr´e des erreurs ou non et le fichier de r´esultat. Chaque onglet connait l’ordre dans lequel il va recevoir les fichiers et peut donc savoir comment interpr´eter ces fichiers en fonction du nombre de fichiers d´ej`a rec¸us. Attention alors `a remettre ce compteur `a 0 quand le nombre de fichiers attendus est atteint. C’est `a ce mˆeme moment que le socket est d´econnect´e de l’onglet.

4.4

Int´egration des fonctionnalit´es



miner



Comme on a pu le voir dans la partie sur teruti-miner, ce logiciel `a l’avantage de pouvoir extraire des informations sous la forme d’un seul tableau pour diff´erentes r´egions. Cela permet apr`es de les traiter avec des outils statistiques afin de comparer les diff´erentes r´egions entre elles. Cette fonctionnalit´e est tr`es pratique et permet aux agronomes de gagner beaucoup de temps. Par exemple Ying doit comparer 430 r´egions agricoles. Imaginez qu’elle doit faire une extraction pour chaque r´egion agricole puis tout rassembler `a l’aide d’un module visual basic sous Excel.

Teruti-miner le permet d´ej`a pour du d´enombrement. L’int´erˆet d’int´egrer cette fonctionnalit´e `a Carot-tAge est double. En effet selon le mod`ele choisi CarotCarot-tAge permet de faire aussi du d´enombrement mais ´egalement d’autres types d’analyses plus pouss´ees. L’autre interˆet est d’obtenir un seul logciel pour tout faire au lieu de deux.

(37)

Cr´eation de lwtInra2

Pour automatiser ces extractions Jean-Franc¸ois a cr´e´e un premier ex´ecutable lwtInra. Cet ex´ecutable prend un bon nombre de param`etres. On peut compter parmi eux le fichier de donn´ees, le fichier d’indices, le fichier descriptif du mod`ele, des param`etres propres `a fwtInra comme -n 2 et -p 0.95 qui permettent de d´efinir le nombre d’it´erations et la pr´ecision de l’´etude, le r´epertoire o`u ´ecrire les r´esultats, un fichier de sortie avec -o, et enfin un nouveau type de fichier les .flt .

Ce fichier flt sert `a indiquer les filtres choisis. Ce fichier contient une ligne par extraction, chaque extrac-tion correspond `a une r´egion agricole consid´er´ee. Chaque ligne est construite de la mani`ere suivante :

nomFichierResultat : numeroColonne : valeursFiltre

Les valeurs de filtre sont ´etudi´ees car on peut indiquer plusieurs valeurs `a l’aide de virgules ou de tirets, par exemple pour dire les r´egions 4, 5, 6, 7, 8, 9, et 10 on peut ´ecrire simplement 4,5,6,7,8,9,10 ou bien 4-10.

LwtInra utilise FwtInra dans une boucle qui va parcourir les lignes de filtre du fichier flt. On peut extraire deux types de valeurs du mod`eles de Markov. Les probabilit´es des transitions d’un n-uplet d’un ´etat `a un autre, ou les probabilit´es des n-uplets `a un ´etat pr´ecis. L’ex´ecutable ´ecrit les transitions dans le nom fichier de sortie, donn´e avec le -o et les probabilit´es des n-uplets `a un ´etat sont ´ecrites dans les fichiers donn´es dans la premi`ere colonne du fichier flt.

Mon but ´etant de cr´eer une grande matrice csv des probilit´es des n-plets de chaque ´etat et pour chaque r´egion. Cette matrice doit ˆetre pr´esent´ee sous la forme :

0 1 2 4 8 22 45

RA Etat bl´e orge colza sols Batis prairies rivi`eres feuillus 307 2 0.23 0.10 0.15 .01146 0.00005 0.2465 0.15885 307 3 0.8541 0.0814 0 0.02 3 0.00145 0.0455 314 2 0.14565 0.45831 0.321 0.812 0 0 0 314 3 0.2151 0.00515 0.4531 0 0.0115 0.2551 0.8456 all 2 0.18566 0.1518 0713 0.1512 0.081 0.01875 0.015 all 3 0.1452 0.18641 0.248541 0.5161 0.000018556 0.1 15515 0.0019

(38)

Il aurait ´et´e tr`es compliqu´e d’utliser les fichiers de sortie nomm´es dans le .flt car les valeurs sont tri´ees et donc ne sont pas dans le mˆeme ordre. Ainsi j’ai pr´ef´er´e reprendre le code de lwtInra et cr´eer de nouvelles fonctions d’´ecriture dans la structure de donn´ees qui repr´esente une r´egion agricole. J’ai donc cr´e´e un nouvel ex´ecutable LwtInra2 qui utilise ces fonctions d’´ecriture pour cr´eer la matrice csv. J’utilise le fichier de sortie du -o pour ´ecrire la matrice. Les noms de fichiers ´ecrits dans le .flt sont donc devenus obsol`etes.

Int´egration du service `a carottAge

Il a fallu ensuite int´egrer cet ex´ecutable `a CarottAge. Pour respecter l’architecture client/serveur de Ca-rottAge l’ex´ecutable a ´et´e plac´e sur le serveur et j’y fais appel dans l’onglet d’apprentissage. Ainsi lorsqu’on clique sur le bouton pour lancer l’apprentissage on va d’abord regarder si un filtre a ´et´e d´efini dans l’onglet de donn´ees. Si oui alors on cr´e´e le fichier flt automatiquement `a partir de ce filtre, on l’envoie au serveur, on envoie une requˆete pour LwtInra2 au lieu de FwtInra et on attend de recevoir la matrice.

Lorsque la matrice est rec¸ue l’utilisateur est pr´evenu par une boite de dialogue qui rappelle le nom du fichier de la matrice. L’utilisateur n’a donc plus qu’`a aller dans son workspace et l’ouvrir `a l’aide d’un ta-bleur. Etant donn´e que l’on rec¸oit une matrice csv et non un fichier descriptif de Hmm, il est alors impossible d’utiliser les fonctions d’affichage de diagrammes et de visualisation sous forme de texte.

(39)

5

Perspectives d’am´eliorations

5.1

Fonctionnalit´es

Imprimer les transitions

Comme on a pu le constater dans la partie pr´ec´edente le fichier de sortie de LwtInra2 n’imprime plus les transitions. Or, au cours de la derni`ere r´eunion, il s’est av´er´e que ces valeurs ´etaient tr`es int´eressantes car elles pourraient permettre de pr´evoir l’utilisation future des sols. Ces valeurs sont d´ej`a repr´esent´ees dans les diagrammes mais une ´etude plus pouss´ee des chiffres serait n´ecessaire et d’autre part ces diagrammes ne fournissent pas les valeurs de mani`ere arithm´etique.

LwtInra est cens´e pouvoir le faire mais apr`es plusieurs essais avec Davide nous n’avons jamais r´eussi `a trouver le fichier de sortie contenant les transitions. Ainsi cr´eer un tableau des transitions pour plusieurs r´egions, comme le fait lwtInra2 avec les probabilit´es de n-uplets `a un ´etat, est `a la fin de mon stage le prochain objectif majeur de CarottAge.

R´egions complexes

Le syst`eme de filtre donne la liste des valeurs pour la colonne choisie et l’utilisateur peut choisir d’´etudier la r´egion 307 avec la 314. Mais imaginons qu’il veuille ´etudier l’ensemble de r´egions (307-314). L’utili-sateur est oblig´e de choisir 307 et 314, il obtiendra deux ´etudes parasites la 307 et la 314, puis l’´etude souhait´ee dans la partieall. Ce n’est d´ej`a pas super mais imaginons maintenant qu’il souhaite comparer

le groupe de r´egions (307-314) avec le groupe (303-304) il est alors oblig´e de faire deux fois la manipulation pr´ec´edente et cr´eer un nouveau fichier dans lequel il copiera les r´esultatsalldes deux fichiers obtenus.

Or le pricipe de lwtInra est justement d’´eviter toutes ces manipulations.

Ce probl`eme n’a ´et´e soulev´e qu’`a la toute fin de mon stage lors de cette mˆeme r´eunion. Une solution consiste `a utiliser le mˆeme principe que pour l’ajout de gabarit dans l’onglet mod`ele. C’est `a dire que l’on

Références

Documents relatifs

Estimation des param` etres et de l’´ etat cach´ e des mod` eles d’espace d’´ etats: application au mod`

Des originaux ou des photogra- phies personnelles de documents ico- nographiques u lili sables clans le m~­. me

Il prévoit nolam!llpnt.·.. des

d) informer le Client que ce dernier engage sa responsabilité en cas de non-respect ou de mauvaise appli- cation des conditions relatives à l’accès et à l’utilisation du

C'est sans doute pour cette raison que les vibrations sont bonnes au sein du groupe, car sans se concerter, on regarde dans la même direction.. Nous ne ressentons

En occultant ensuite cette information, ajuster un ou plusieurs mod` eles (soit de type AR/MA/ARMA/ARIMA/SARIMA, soit de type r´ egression avec tendance et/ou saisonnalit´ e

Après passerelle de la vérification VXML, le fichier audio du serveur multimédia primaire du port voix de Cisco (CVP) n'est pas dans le cache, le même fichier audio du cache

(1 pt) Quelle sont les points de similarité entre les individus de la même classe et les points de dissimilarité entre les individus de classes