Home

Rapport de projet

image

Contents

1.
2. com google gwt i18n client Constants add String addLine String addLineLabelPrompt String addPoint Sting snslyseResults String areaLine String areas String author String cancel String compute String date String definedBy String deleteLine String deletePoint String edit String entities Sting exportKML String fetchPointFailed String generateReport String li etc 4 444444 com google gwt i18n client Messages interface MetrologyMessages addGPSPointLabelPrompt String String String exportKMLFsilure String String exportXMLFailure String String fieldEmpty String String fieldNotBetweenBounds String String String String fieldNotNumber String String importKMLFailure String String importXMLFailure String String measurelnRelationDeleteException String String multipleSymbolException String String nestedAresException String String String newLinePoint1 String String newLinePoint2 String String reportDocumentException String reportFileCreateException String String reportParsingException String reportPDFCrestionException String reportWriteToFileException String String unknownAddress String String Fic 4 14 Diagramme de classes paquetage client i18n 37
3. EventHandler interface ChangeLocaleEventHandler onChangeLocale ChangeLocaleEvent void interface EditGP SPointEventHandler onEditGPSPoint EditGPSPointEvent void interface interface interface EventHandler interface NewProjectEventHandler F onNewProject NewProjectEvent void onShowHelp ShowHelpEvent void FIG 4 10 Diagramme de classes paquetage client event handler 32 4 3 8 client service Ce paquetage voir fig 4 11 regroupe les interfaces des diff rents services On constate la pr sence de classes Service et ServiceAsync ceci est une convention de GWT les interfaces Service seront impl ment es cot ser veur et les ServiceAsync permettent au cot client de r aliser des appels asynchrones au serveur 1 EntitiesService g re l ajout suppression et dition des points GPS lignes et zones MeasuresService g re l ajout suppression et dition des unit s de mesures KMLService d finit les m thodes permettant d importer exporter des fichiers KML XMLService d finit les m thodes permettant de charger sauvegar der un projet au format XML AnalyseService gere le calcul des unit s de mesures utilis es dans une zone d finie par l utilisateur ReportService g n re des rapports dans diff rents formats dont le PDF pour permettre l util
4. 30 Diagramme de classes paquetage client event handler al Diagramme de classes paquetage client service 38 Diagramme de classes paquetage server 34 Diagramme de classes paquetage client ui 35 Diagramme de classes paquetage client il8n 36 Speed Tracer De dore aa u Se RES ER ED ESE Ver 45 Chapitre 1 Introduction La m trologie est la science des mesures et ses applications L tude m trologique des structures agraires permet de retracer l histoire d une ville ou d une r gion en identifiant gr ce aux unit s de mesure utilis es pour tracer les champs quel civilisation a occup une r gion sur une p riode donn e L objectif de ce projet est de construire un outil informatique pour la m trologie sur plans g ographiques en arch ologie permettant de d terminer quel unit de mesure aurait pu tre utilis pour tracer les champs partir des coordonn es GPS de ceux ci et ensuite d duire la civilisation occupante de la r gion lors de la construction de ces champs Pour cela nous comparerons les dimensions des champs tudi es dans une r gion avec les unit s de mesure utilis es l poque La difficult est que nous ne connaissons pas toutes les mesures utilis es notre travail consistera alors essayer de trouver une nouvelle unit de mesure commune aux champs et ayant pu tre utilis e Ce probl me de reconnaissance a d j
5. Vue Les vues repr sentent des ensembles d l ments graphiques Par exemple dans notre logiciel la carte GoogleMap la liste des points GPS la liste des lignes repr sentent chacun une vue Une vue impl mente une interface d finie par le pr senteur qui lui est associ e et ainsi l impl mentation de l interface graphique est ind pendante du pr senteur Pr senteur Un pr senteur est associ chaque vue Son r le est de g rer la synchronisation de la vue avec le serveur et de g rer tous les v nements provenants de widgets internes la vue laquelle il est associ Chaque pr senteur d crit une interface d crivant les actions qui sont associ es la vue De cette facon le pr senteur ne sait pas comment est impl ment e la vue 20 Presenter Presenter reacts to the message send by the view by manipulating the model View sends messages to the presenter when an action occured A view describe how datas are displayed The models represents datas of the application Fic 4 1 Mod le MVP 4 1 2 Extension du modele Dans le cas de notre application Parchitecture doit prendre en compte le fait gue le logiciel est devise en une partie client et une autre serveur Les vues et pr senteurs seront ex cut es dynamiquement cot client et les pr senteurs feront des appels asynchrones au serveur pour manipuler les mod les L interaction entre les mod les les vues les pr sent
6. void sddGPSPoints List lt GPSPoint gt AsyncCallbacr lt List lt integer gt gt void editGPSPoint int String Double Double AsyncCallbsck lt Integer gt void getPoints AsyncCallback List GPSPoint void getGPSPoint int AsyncCallbac GPSPoint void deleteGPSPoint int AsyncCallback lt Boolean gt void deleteGPSPoints List lt Integer gt AsyncCallback lt Boolean gt void editline int String int int AsyncCallbsck lt Integer gt void getLines AsyncCallback ListeLine void getLinesAreas int AsyncCallback lt List lt Entity gt gt void getLinelint AsyncCallback lt Line gt void deletelines List lt Integer gt AsyncCallback lt Void gt void deleteLine int AsyncCallback lt Void gt void addArea int String List lt String gt AsyncCallback Integer void getAress AsyncCallback lt List lt Ares gt gt void deleteAreas List lt Integer gt AsyncCallback Void void getArea int AsyncCallback lt String gt void getEntities AsyncCallback lt List lt Entity gt gt void addEntities List lt Entity gt AsyncCallback Void void getAreas List lt Integer gt AsyncCallback List Area 7 void getData boolean boolean boolean boolean AsyncCallbeck lt List lt List lt Entity gt gt gt void entitiesExist AsyncCallbacr lt boolean gt void relnit AsyncCallback Void void 4 4 44444 generst
7. Marker Latl ng Marker Latl ng int setld int void getild int com googie gwt maps client overlay Polyline Polyline Pelyline LstLng Polyline LatLng int setld int void getid int AbstractCell AreaTreeModel AreaCell render com google gut String SafeHtmlBuilder vo LbITextBox String LbiTextBox String String setLabel String void getLebel String addValueChangeHandler ValueChangeHandler lt String gt HandlerRegistration getValue String setFocus boolean void setValuelSting void setValue String boolesn void setEnabled boolesn void addKeyDownHandler KeyDownHandler HandlerRegistration FileChooserDialogBox String adoSubmitHandler FormPanel SubmitHandler void addSubmitCompleteHandler FormPanel SubmitCompleteHandler void getFileNamel String Fic 4 13 Diagramme de classes paquetage client ui 36 4 3 11 Le paquetage i18n pour internationalisation sert l internationalisation de notre application Les deux interfaces Metrology Constants et Metrology Messages d finissent respectivement les chaines constantes et celles prenant des param tres A chaque langue est associ deux fichiers textes contenants les traductions des chaines et c est l ex cution que le choix de la chaine afficher se fait client i18n en fonction de la langue choisie La langue par defaut de Vapplication est Panglais class i18n
8. Niveau de difficult Faible Priorit Elev e Int grer GoogleMaps L utilisateur doit pouvoir visualiser les entit s g ographiques cr es sur une carte GoogleMaps et ajouter celles ci directement sur la carte Niveau de difficult Moyen Priorit lev e Limitation N cessite une connexion Internet Risques et parades Un risque important est pr sent sur l utilisation de GoogleMaps il n est pas garanti qu il existe une API pour int grer Google Maps un site web ou que la licence soit compatible celle de notre logiciel Dans ce cas il faudrait utiliser un autre syst me de cartographie en ligne comme par exemple Mappy Sauvegarder et charger un projet au format XML Le logiciel doit pouvoir charger et sauvegarder des fichiers de projet au format XML tout en respectant la norme XML 1 0 d finie par le W3C http www w3 org 2001 03 webdata xsv Niveau de difficult Faible Priorit Moyenne Test de validation Le projet une fois charg doit tre dans le m me tat qu l instant o il a t sauvegard Exporter et importer les entit s au format KML Le logiciel doit pouvoir exporter et importer des fichiers KML format utilis pour d crire des informations g ographiques dans GoogleMaps en respectant la norme KML 2 2 d finie par le OGC Open Geospatial Consor tium Niveau de difficult lev e Priorit Moyenne Test de validation Les fichiers g n r s doi
9. diter des lignes de la m me mani re Cr er des zones contenant des lignes et ou d autres zones Ajouter des unit s de mesure Sauvegarder le projet Supprimer des points et des lignes via la carte et les listes 10 11 12 13 14 15 16 17 18 Supprimer des zones via la liste Cr er un nouveau projet Charger le projet pr alablement sauvegard S lectionner plusieurs zones et y effectuer le calcul G n rer un rapport avec diff rents param tres en HTML et en PDF Exporter le projet en KML Ouvrir le fichier KML avec GoogleEarth Importer un fichier KML Tester toutes les langues disponibles 45 6 2 Tests Unitaires 6 2 1 XMLServiceTest et KMLServicesTest Les tests r alis s sur les services qui gerent l importation et l exporta tion de donn es au format XML et KML permettent de valider les besoins fonctionnels associ s Tous les tests r alis s commencent par cr er un ensemble de donn e de les sauvegarder dans un fichier KML et XML puis nous importons ces donn es que nous comparons ensuite aux donn es d entr e Nous avons effectuer des tests aux limites en testant des ensembles de donn es vide des ensembles de donn es de taille sup rieure la limite de 1000 entit s g ographique Les fichiers XML sont v rifi s conforme la norme XML 1 0 par le v rificateur du W3C http www w3 org 2001 03 webdata xsv Les fichiers KML sont eux v rifi s confo
10. ore ces Points eY eYe o4 Points Latitude Longitude Pti 35 74274176867077 36 7054671049 11 p2 35 74273741465156 36 7059123516 12 p2 35 741531342158716 36 7054027318 13 p1 35 741422489951766 36 7058050632 FIG 3 2 Vue sur la carte 15 Points Latitude Longitude Lime Point Point Length in L 1 2 meter pu 35 74274176867077 36 7054671049 11 p2 35 74273741465156 36 7059123516 ll oi NE _ I2 p2 35 741531342158716 36705402738 Ent EER 14 B p n 146 53 I3 pl 35 741422489951766 36 7058050632 P a M 4 1404 H M 1 303 M Add Edit Remove Measurement Unit Symbol Value In meter m 1 0 v a2 v al 12 11 14 Add Edit Remove W 1101 gt N Compute Add Edit Remove FIG 3 3 Les panneaux d informations 16 we poit Latitude 35 74274176867077 Longitude 36 705467104911804 poit 2 Latitude 35 74274176867077 Longitude 36 705467104911804 Save Canca M 4 1505 gt M 1 FIG 3 4 Ajout et dition des entit s 17 e In the area a2 o the measurement unit passus has 88 72 96 of chance to be used o the measurement unit Actus has 84 59 96 of chance to be used o the measurement unit Yard has 78 94 96 of chance to be used o the measurement unit meter has 68 83 96 of chance to be used o Determinate new unit 2 99 has 87 68 96 of chance to be us
11. res dans les diff rents conte neurs qui s parent la fen tre du navigateur C est galement cette classe qui se chargera de rafra chir ces vues lorsque les mod les seront mo difi s 2 Metrology Point de lancement de l application elle impl mente pour cela la classe EntryPoint c est cette classe qui cr e l objet AppCon troller Un certain nombre de variables statiques utilis es cot client seront dans cette classe class client ValueChangeHandler EntryPoint AppController Metrology constants MetrologyConstants messages MetrologyMessages maxLat int 90 freadOnly minLat int 90 resdOnly minLng int 180 fresdOnly headerHeight int eastContainerWidth int mapWidth int etc AppController EntitiesServioeAsync MeasuresServiceAsync ReportServiceAsync AnalyseServiceAsync HandlerManager go HasWidgets void getHeader String String HorizontslPanel onValueChange ValueChangeEvent lt String gt void onModuleLoad void refreshContainersSizes void Fic 4 6 Diagramme de classes paquetage client 4 3 4 client view Dans ce paquetage sont contenues toutes les vues Chaque vue h rite de la classe Composite de GWT et est donc un ensemble de widgets Chaque vue impl mente galement une interface Display qui sera utilis e par le s pr senteur s correspondant Ces interfaces permettent aux pr senteurs
12. t trait mais les moyens d acqu rir les donn es taient diff rents Par exemple en 2006 Bescoby publie un article intitul Detecting Roman land boundaries in aerial photographs using Ra don transforms Dans cet article Bescoby propose un moyen d acquisition des donn es et surtout un moyen d interpr tation des r sultats obtenus Chapitre 2 Cahier des charges 2 1 tude des besoins 2 1 1 D finitions 1 Entit Une entit repr sente un l ment g ographique soit un point GPS une ligne ou une zone 2 Point GPS Un point GPS est identifi par deux coordonn es la latitude comprise entre 90 et 90 et la longitude comprise entre 180 et 180 3 Ligne Une ligne est compos e de deux points GPS les extr mit s 4 Zone Une zone est un regroupement de lignes et ou d autres zones 2 1 2 Besoins non fonctionnels Pr cision des distances calcul es Les distances calcul es par le logiciel doivent tre pr cises par rapport aux distances r elles l erreur doit tre inf rieure 1 m tre pour une distance r el de 20 m tres soit 5 Test de validation Comparer les distances obtenues gr ce au logiciel avec celles obtenues sur le terrain Ergonomie Le logiciel doit tre simple utiliser et l utilisateur arch ologue doit se familiariser avec le logiciel rapidement Le logiciel doit tre accessible aux utilisateurs francophones anglophones et hispanophones Test de validati
13. void addKeyDownHandlerKeyDownHandler Die void interfaces presenter GridDisplay setData List lt String gt void getSelectedids Set lt String gt setColumnTitle String FIG 4 7 Diagramme de classes paquetage client view 28 4 3 5 client presenter Ce paquetage voir fig 4 8 contient les pr senteurs ce sont eux qui donnent vie aux vues en associant des actions aux boutons etc comme dis ci dessus Chaque pr senteur contient une interface qui h rite de Display impl ment e par une vue De cette fa on le pr senteur sait quels l ments sont dans chaque vue sans savoir exactement quels widgets sont utilis es Ce sont les pr senteurs qui r alisent les appels asynchrones au serveur pour obtenir les mod les points GPS lignes etc Ce sont galement ces pr senteurs dui informent VA pp Controller qu un mod le t modifi pour que les vues concern es soient actualis es 4 3 6 client event Pour qu un pr senteur informe les autres qu il a modifi un mod le il lance un evenement de ce paquet voir fig 4 9 De cette fa on un presenter ne s occupe pas de quel objet traite ces venements 4 3 7 client event handler Ce paquetage voir fig 4 10 regroupe les handlers des v nements du paquetage client event 29 ef i N EntitiesServiceAsync AnalyseServiceAsync String EditAreaPresenter EntitiesServiceAsync i
14. 1 Choix du langage utilis Une contrainte importante dans ce choix t la pr sence d une api dans ce langage qui permette l int gration de Google Maps dans un navigateur Il se trouve qu il existe une api li e GWT permettant de faire ceci GWT est un ensemble d outils d velopp s par Google permettant de compiler du code Java en JavaScript ex cutable par un navigateur et permet une interaction client serveur via des messages RPC Remote Procedure Call Google a aussi d velopp un plugin GWT pour Eclipse ce qui a d fini directement notre IDE 5 2 Choix algorithmiques 5 2 1 Calcul des distance Les distances des lignes sont calcul es en g om trie euclidienne en utili sant la latitude et la longitude de chaque point Il existe plusieurs m thodes permettant d approximer la distance entre deux points GPS Les deux prin cipales sont d utiliser la distance du grand cercle et la distance euclidienne Dans la premi re formule la terre est approxim e une sph re et la distance calcul e correspond la plus petite distance entre deux points autour de cette sphere Dgc 2R arcsin sin ize cos lat1 cos lat2 sin om ou R est le rayon de la terre lat1 longl et lat2 long2 sont respective ment la latitude et longitude des deux points 39 La seconde formule permet de calculer la distance entre deux points dans un espace euclidien Le r sultat obtenu est donc la distance en ligne droite entr
15. 4 4 Diagrammes de s quence eventBus HandlerManager sEntitiesServiceAsync Metrology AppController MeasuresServiceAsync GPSPointsPresenter GridView T T T T T T T Ce diagramme d crit le lancement de l application la cr ation des objets de la classe AppController EventHandler la cr ation des services qui doivent tre disponible au d marrage de l application et l affichage de la premi re vue Pour simplifier nous avons choisi de montrer uniquement l affichage de la vue de la liste des points GPS et la cr ation des services associ s Entities Service AppController AddGPSPointEventHandler eventBus HandlerManager AddGPSPointEvent T T GPSPointsPresenter 1 i Click on addGPSPoint button 1 1 1 1 1 addGPSPoint button clicked Es T T 1 1 1 Li 1 1 1 1 1 1 1 1 1 1 g 1 wakeup the event handler doAddNewGPSPoint 1 L AppController cr e alors la vue EditGPSPointView et le pr senteur associ de la m me mani re que pour la vue GridView Ce diagramme d crit comment l application r agit au clique de l utilisa teur sur un bouton qui demande l affichage d une nouvelle vue Nous avons pris comme exemple le clique sur le bouton pour ajouter un nouveau point GPS 38 Chapitre 5 Choix d impl mentations 5
16. de contr ler les vues sans connaitre le type d objets utilis es 2T DisplayView interfaces presenter AreaPresenter Display getComputeButton HesClickHandlers getName HasValue lt String gt populateLists List lt String gt void addArea Sting void setName String void getLstitudeP HasValue lt String gt ist lt integer gt void getSelectedRows Set lt Stringl gt getLongitudeP1 HasValue lt String gt retresh void setDatas List lt String P gt List lt Stingll gt void getP1List HasChangeHandlers getSelectedRows List lt integer gt getPiSelectedid String setP1Selectedid String void i etP2Listi HasChangeHandlers H getP2Selectedld String i setP2Selectedid String void 1 getLatitudeP2 HasValue lt String gt getLongitudeP2 HasValue lt String gt Composite ved getName HasValue lt String gt selectionModel Sas Vie EniltierSevicaAn nd MultiSelectionModel lt String gt readOnly asWidget0 Widget GAS en ascitiandies Emacs ve getEditButton HasClickHandlers il d getSaveButton getDeleteButton HasClickHandlers DER Ek s getComputeButton HasClickHandlers Gore lies Sum rs EditLinesview getSelectecRows List lt integer gt oe Sasa asWidget Widget addAres Sting void nemen Deus getSaveButton HasClickHandlers Ee EEN EE eer deseleciAll v
17. getAssccistedType Type lt CancelEditAresEventHandler gt dispatch AresUpdatedEventHandler void dispatch CancelEditAresEventHandler void CancelEditGP SPointEvent getAssocistedType Type lt CancelEditGPSPointEventHandler gt getAssocistedType Type CancelEditLineEventHandler dispatch CancelEditGPSPointEventHandler void dispatch CancelEditLineEventHandler void dispatch CancelEditlMessureEventHandier void ChangeLocaleEvent String g gt getAssociatedType Type lt ChangeLocaleEventHandler gt 1 getAssocistedTypel Type lt CancelEditMeasureEventHandler gt N ies dispatch ChangeLocaleEventHandler void EditGP SPointEvent EditAresEvent nt geld int getAssociatedType Type lt EditAreaEventHandler gt EditGPSPointEvent int dispatch EditAresEventHandler void getld int getAssociatedType Type lt EditGPSPointEventHandler gt dispatch EditGPSPointEventHandler void EditLineEvent int getAssocistedTypel Type lt EditLineEventHandler gt dispatch EditLineEventHandler void EditMessureEvent String getid int dispatch EditMeasureEventHandler void getAssocistedTypel Type lt EditMeasureEventHandler gt getld String getAssocistedType Type lt ShowHelpEventHandler gt dispatch ShowHelpEventHandler void LineUpdatedEvent Presenter getAssociatedType Type LineU
18. golHasWidgets boolean boolean void ass a nie an Bes Display EditMeasuresPresenter MeasuresServiceAsync HandlerManager Display String binaDisplayl void felchData void n EditLinesPresenter EntitiesServiceAsync HandlerManager Display int bindDisplay void fetchData void GPSPointsPresenter EntitiesServiceAsync MessuresPresenterMessuresServiceAsync i deleteSelectedMeasures GridDisplay void EditGPSPointsPresenter EditGPSPointsPresenter EntitiesServioeAsync HandlerMansger Display int bi EER void 30 showHelpButton HasClikHandlers getGenersteButton HasClickHandlers Boolean resetTebPanel void frLangButton HasCliciHandlers Ha Chact3aresfbook eslangButton HasClickHandlers enLangButtoni HasClickHandlers addSeachTextBoxKeyHandler KeyDownHandler getAdditionslinfo HasValue String getCancelButton HasClickHandlers E intsChedBox Boles getReponTitie HasValue lt String gt getXHTMLDocumentButton lean 3 boolean boolean boolean void Fic 4 8 Diagramme de classes paquetage client presenter class event getAssociatedType Type lt AreaUpdatedEventHandler gt
19. gt gt void interface Entities Service editGPSPoint int Sting Double Double Integer deleteGPSPoint int Boolean deleteGPSPoints List lt Integer gt Boolean sddGPSPoints List lt GPSPoint gt List lt Integer gt getPoints List lt GPSPoint gt getPointsAndLines List lt Entity gt getGPSPoint int GPSPoint editLinelint String int int Integer deleteLinelint Void deleteLines List Integer Void getLines List lt Line gt 3 importXML String List lt Entity gt exportXML String List lt Entity gt List lt Messure gt Sting getMeasures List lt Messure gt importXML String AsyncCsllbeck lt List lt Entity gt gt void exportXML String List lt Entity gt List lt Measure gt AsyncCallback lt String gt getMessures AsneCallbeckeList Messure gt gt void interface ReportServiceAsync getLinesAreas int List lt Entity gt getLinelint Line relnit void addArea int String List lt String gt Integer get reas ListeInteger List lt Ares gt getAreas List lt Ares gt getArea int String deleteAress List lt integer gt Void getEntities List lt Entity gt addEntities List Entity void getData boolean boolean boolean boolean List lt List lt Entity gt gt entitiesExist boolean 4 4444 getPointsAndLines AsyncCallback List Entity
20. ute udo a 12 12 12 12 12 12 A B 4 3 5 client presenter MADE Lu RD oe BEE ge cst 4 3 6 client event s Ee DROS ego EA WEE EAE 4 3 7 chenteoent Pander au ouch OSA DER e ed RS 4 3 8 clientservice EE s 1610 OT TEE OER j N ERA AT OO atus OE EE ET OO ane 431 client a4d8ne s v RR REIS ERES 4 4 Diagrammes de s quence Choix d impl mentations 51 Choix du langage utilis 3038 ET en RU EOS 208 52 Choix algorithmiques a e Fui uie RES aS a 521 Calcul des distance se x at n Es a EE 8 A 5 2 2 Calcul de la probabilit d utilisation d une unit de me du eed ve hed P ER AD ED Bee ae DU 5 2 8 Determination d une nouvelle mesure 53 Choix techniques 2 55 an Salah i Sala IA naa TNT 531 LaclasseEntity 2 020 202 5 3 2 Definition d un id pour chaque entit 53 3 La vue GridView aue e uerus HOER PE 5 3 4 Repr sentation des zones 5 3 5 Synchronisation de la carte et des listes 5 3 6 La classe ServerCall 6 sea et We ORE ee 5 3 7 G n ration du rapport 0 0 0 Tests 6 1 Tests sc narios L 0 2 T sts Unitaires a cose 25 m haa sek aa tin ORT RR Rs 6 2 1 XMLServiceTest et KMLServices Test 6 2 2 EntitiesServiceTest 6 3 Tests de Performance 00202 6 3 1 Conditions d utilisation normales 6 3 2 Conditions de stre
21. HashMap lt Area Floati gt interfaces service Entities Service editGPSPointint String Double Double Integer deleteGPSPoint int Boolean deleteGPSPointsList lt Integer gt Boolean sddGPSPoints List lt GPSPoint gt List lt Integer gt petPoints List lt GPSPoint gt getPointsAndLines List lt Entity gt PSPoint int Integer deleteLinesList lt integen Void getLines ListeLine getLinesAreas nt List lt Entity gt getLine int Line relnit void addArea int String List lt String gt Integer GetAreas List lt integer gt List lt Ares gt get reasl List lt Area gt getArea int String deleteAreas List Integer Void getEntities List lt Entity gt addEntities List lt Entity gt void GetData boolean boolean boolean boolean ListeList lt Entity gt gt entitiesExist booleani i i L RemoteServiceServlet Analyse Servicelmpl AnalyseServicelmpl analyse List lt Ares gt List lt Measure gt int HashMap lt Ares HashMap lt Measure Flost gt gt determineNewUnit List lt Area gt HeshMap lt Area Flosti gt getPreviousResultsi HashMap lt Area HashMap lt Measure Float gt gt getNewUnit HashMap lt Area Floati gt VETERA interfaces service Measures Service deleteMeasures List String List lt Measure gt getMessure String Measure getMeasurelnMeters Measure String getMeasur
22. Metrology of land plots Rapport de projet Arnaud AUJON Matthieu FOUCAULT Rachid HAFIANE Milan KABAC Encadr par M Pascal DESBARATS Sujet propos par M Hugo GIMBERT 5 avril 2011 Table des mati res Introduction Cahier des charges D 1 t de d s besoins desc 42268 dote 2 hoe oe BE ue tere de 2L D finitions ersa EE Rio D RU Mee ed EP te 2 1 2 Besoins non fonctionnels ss 2 1 3 Besoins fonctionnels ces 2 2 Cas d utilisation 2 3 Prototype d interface utilisateur 24 od ed kele EE AO ete KON p 0 OR ED CR Exemples d utilisation 3 1 Ajout Suppression et Edition 3 1 1 Apartirdelacarte 31 2 Via les menus 0 odo 108 calculs sa iaaa RA ERA DE SR RE a RD ie 3 1 4 La g n ration du rapport Architecture 4 1 Mod le MVP Q Q ee AO oie 4 1 1 Introduction au mod le MVP 41 2 Extension du mod le 0 0 4 1 3 Avantages de ce mod le 4 2 Diagrammes de paquetages DSL HI t L RIEME n 3 HS E Nac NST E DE ss 38 4 2 2 Relatiotifiel z re hr s De Ro pd RR sax Le 43 Diagramanes de classes uu esse EA der qos deis 431 shared model as de due S ni he Lan eS 43 2 shared ELEC UOT e ER PAM es 8 De SUN EE qi oe Te a 4 3537 CUCM 2 ack Ne ode ESSE ER sis es Ad Oen WE n aca dz he Sepa oe
23. Title String titles qui prend donc un nombre de param tres variable d finissant le nombre de colonnes affich es Cette factorisation des vues est possible gr ce l architecture MVP de notre application Nous avons donc ici tir profit du mod le de conception en utilisant l ind pendance entre les vues et les modeles pour factoriser et r utiliser du code 5 3 5 Repr sentation des zones Nous avons choisi pour afficher les zones d utiliser un arbre Cet arbre est constitu de noeuds qui repr sentent les zones et de feuilles qui repr sentent les lignes et autres zones L utilisation d une arborescence permet de se d placer tr s rapidement dans les zones incluant de nombreuses autres zones L impl mentation est cet arbre est d crite dans la classe Area TreeModel qui est une extension de la classe Tree ViewModel La classe TreeModel d fini une m thode getNodelnfo qui est appel pour chaque noeud de l arbre et qui d fini le traitement associ chaque niveau Le premier niveau corres pond la racine de l arbre repr sent e par un noeud null Le traitement associ est de r cup rer via un appel au serveur la liste de toutes les zones et de les inclure dans l arbre Le second niveau correspond au contenu d une zone Dans ce cas il faut appeler la m thode getLinesArea int id qui re tourne la liste des entit s contenues dans la zone Cette impl mentation est cependant probl matique par rapport au choix de noter arch
24. able Polyline points List lt GPSPoint gt getP2l GPSPoint getP1 GPSPoint setP1 GPSPoint void setP2 GPSPoint void toStingAmay Stringl updateLength void setLength flost void getLength float Line Sting GPSPoint GPSPoint 4 4 getLatitude double setLatitude double void setLongitude double void toStringArray Stringl distance To GPSPoint float Polyline Polyline String GPSPoint GPSPoint getPoints List lt GPSPoint gt updateLength void property set setpoints List lt GPSPoint gt void FIG 4 4 Diagramme de classes paquetage shared model 25 4 3 2 shared exception Ce paquetage contient les diff rentes exceptions utilis es par notre cation que nous avons h rit es de java lang Exception appli class exception Exception lsSerializable MeasurelnRelationDeleteException AlreadyUsedidException AlreadyUsedidException int getMessage String KMLExportException KMLExportException String getMessage String KMLImportException KMLimportException String getMessagel String MeasurelnRelationDeleteException MeasurelnRelationDeleteException String getMessage String MultipleEntitiesException Exception IsSerializable MultipleMeasure SymbolException MeterDeleteException getMes
25. aux classes GPSPoint Line et Area Une Area est un ensemble de Line et Area La classe Measure repr sente une unit de mesure elle contient son nom et sa valeur dans une autre unit de r f rence Toutes ces classes impl mentent l interface IsSerializable variante made in GWT de Serializable pour permettre aux objets d tre transf r s entre le client et le serveur class model IsSerializable IsSerializable Entity Measure name Sting id int Areal Messurel Ares String Measure String String float String getName String Ares String int getDefinedBy String getid int setName String void setld int void toStringAmay Stringi setEntities List lt Entity gt void getEntities List lt Entity gt addEntity Entity void deleteEntity Entity void extractLines List lt Line gt extractLines Set lt Line gt void toStringArray Stringl getNamel Sting getSymbol String getValue float setDefinedBy String void setName String void setSymbol String void setValue flost void toStingArayl Stringi Tm epi IsSerializable GP SPoint IsSerializable Line pt GPSPoint p2 GPSPoint length float Line GPSPointi GPSPointiString double double GPSPoint String double double int getLongitude double IsSerializ
26. ditGPSPointEventHandler sms REFER exception o EditLineEventHandler i model o EditMeasureEventHandler iy q GenersteReportEventHandler 0 GPSPointUpdatedEventHandler H i EE aa OK assi ETR cl x o LineUpdatedEventHandler i i KMLImportException Eer sa 111 MessurelnRelationDeleteException o NewProjectEventHandler i i MeterDeleteExoeption AnalyseServicelmpl ShowHelpEventHandler 11 El MultipleEntitiesExoeption B EntitiesServicelmpl E MultipleMeasureSymbolException E FileManager from event 11 NestedAresException B KMLServicelmpl NoAnalyseResultException MeasuresServicelmp Bl NoSelectionException SEL EE R icelmpl 11 NullArgumentException eportServicelmpl AddEditButtons i a OvertakenBoundsExoeption TempFolder 8 AreaTreeModel i a SameLinePointsException B XMLServicelmpl E FileChooserDialogBox Pea UnknownldException Hoe gt 3 XMLExportException E LbiTexiBex ems XMLImportException g ListBox 3 Marker gj Polyline kom shared E SaveCancelButtons FIG 4 3 Diagramme de paquetages relationnel 24 4 3 Diagrammes de classes 4 3 1 shared model Ce paquetage contient les mod les c est dire les donn es du logiciel Nous avons deux sortes de donn es les entit s que l on ajoute sur une carte et les unit s de mesure La classe abstraite Entity contient les informations communes
27. e L avantage de l utilisation d une HashMap est qu en utilisant le symbole de l unit comme cl nous sommes stir de l unicit de ce symbole Comme chaque nouvelle unit de mesure doit tre d fini par une autre il doit y avoir une unit de mesure par d faut Dans notre cas l unit de mesure par d faut est le m tre Le m tre est de cette fa on intouchable I n est pas possible de modifier ou de supprimer cette unit de mesure Il y a aussi des restrictions lorsqu il s agit de mesures d finies par l utilisateur L utilisateur ne peut pas supprimer une unit de mesure qui d finit une autre unit de mesure Lorsque l utilisateur modifie une unit de mesure le changement va tre appliqu toutes les unit s de mesure qui sont d finies par l unit qui a t modifi 5 3 4 La vue GridView A pres quelques temps pass d velopper ind pendamment les diff rentes vues qui affichent respectivement les points GPS les lignes et les unit s de mesure nous avons remarqu que celles ci taient en tout point identiques ceci pr s qu elles n utilisaient les m mes types d objets Pour rem dier cela nous avons ajout nos mod les une m thode toStringArray qui ren voie les informations affich es sous forme d un tableau de String l l ment 0 tant dans tous les cas l id de l objet La seule diff rence restante entre 41 ces vues tant le nombre de colonnes il a suffit d ajouter la m thode setCo lumn
28. e les deux points Deucl R sin lat2 lat1 cos lat1 x cos lat x sin Ion2 lon1 tant donn que les distances mesur es sont relativement petites moins d un kilom tre l approximation euclidienne est suffisante pour obtenir une erreur inf rieure 1 m tre pour 20 m tres en effet si l on consid re les points GPS et Dgc Deucl L erreur li e l approximation euclidienne est donc de Les distances calcul es tant des longueurs de champs l approximation fournie par la g om trie euclidienne est suffisante pour avoir une marge d er reur inf rieure 1 m tre 5 2 2 Calcul de la probabilit d utilisation d une unit de mesure Ce calcul est r alis en faisant une moyenne des modulo entre la longueur de chaque ligne et l unit de chaque ligne en r alit nous prenons pour mo dulo le minimum entre longueur unit de mesure et unit de mesure longueur unit de mesure Ensuite nous divisons cette moyenne par l unit de mesure et nous multiplions par cent pour obtenir la probabilit d utilisation de l unit de mesure dans la zone concern e 5 2 3 D termination d une nouvelle mesure L algorithme utilis pour d terminer une mesure ayant pu tre utilis est simple pour chaque zone pour chaque lignes de la zone nous divisons la longueur de la ligne par le nombre possible de r p tition de l unit de mesure Ensuite le calcul pr c dent est a
29. eReport List lt List lt Entity gt gt String boolean boolean String HashMap lt Ares HashMap Measure Float gt gt AsyncCallback String void generateReport List lt List lt Entity gt gt String boclean boolean String HashMap lt Area HashMap lt Measure Float String deleteMeasures List lt String gt List lt Messure gt getMessure String Measure getMeasureinMeters Measure String getMessures List lt Measure gt getNameAndSymbolLisiSting List lt String gt noDependencies List lt String gt void relnit void updateMeasure String Measure deleteMeasures List lt String gt AsyncCallback lt List lt Measure gt gt void getMeasure String AsyncCallback lt Measure gt void getMeasurelnMeters Measure AsyncCallback String void getMeasures AsyncCallback lt List lt Measure gt gt void getNameAndSymbolList Sting AsyncCallback lt List lt String gt gt void noDependencies List lt String gt AsyncCallback lt Void gt void relnit AsyncCallbacr lt Void gt void updsteMessure String Measure AsyncCallback Measure void FIG 4 11 Diagramme de classes paquetage client service 34 getPreviousResults HashMsp lt Area HashMap lt Messure Float gt gt analyse List lt Ares gt List lt Measure gt int HashMap lt Ares HashMap lt Messure Flost gt gt getNewUnit HashMap lt Ares Flostl gt determineNewUnit List lt Ares gt
30. ed e Inthe areaal o the measurement unit passus has 89 32 96 of chance to be used o the measurement unit Actus has 82 88 96 of chance to be used o the measurement unit Yard has 80 94 96 of chance to be used o the measurement unit meter has 76 58 96 of chance to be used o Determinate new unit 2 99 has 87 68 96 of chance to be used FIG 3 5 PopUP des resultats Generate report Cancel FIG 3 6 Informations sur le rapport 18 L ent te Cette tape permet d indiquer les informations de l ent te du rapport voir fig 3 6 titre auteur notes date Le contenu Select data sources to be included M GPS Points Lines M Areas M Analyse Results Map Generate report Cancel FIG 3 7 Le contenu du rapport Permet d ins rer ou d enlever des parties du rapport voir fig 3 7 Le format Select the type of document to be generated PDF O HTML Generate report Cancel Fic 3 8 Format du rapport Choisir le format de sortie HTML PDF voir fig 3 8 19 Chapitre 4 Architecture 4 1 Mod le MVP 4 1 1 Introduction au mod le MVP Le mod le MVP Model View Presenter voir fig 4 1 est un mod le d architecture d riv du mod le MVC Model View Controler Le principe est simple l architecture du programme est d vis e en 3 Mod le les mod les repr sentent les donn es de l application
31. es List lt Messure gt getNameAndSymbolList String List lt String 1 gt noDependencies List lt String gt void relnik void UpdateMeasure String Measure Measure RemoteService Servet Entities Servicelmpl I EntitiesServioelmpl entitiesExist booleani getPoints List lt GPSPoint gt getGPSPointint GPSPoint editGPSPointint Sting Double Double Integer deleteGPSPointint Boolean deleteGPSPoints List lt intege Boolean addGPSPointsiList GPSPoinb List lt intege gt getLines List Line gt 44444444 4449994444494 444 RenoteServiceServiet getLinesAreas int List lt Entity gt Dee getLinelint Line editLine int String int int Integer deleteLine nt Void MeasuresServicelmpl0 deleteLines List lt Integer gt Void deleteMessures List lt String gt List lt Measure gt get reas List lt Area gt getMessure String Measure getAreatint String getMessureinMeters Messure String addArea int String List lt String gt Integer getMeasures List lt Measure gt deleteAreas List lt integer gt Void getNameAndSymbolListiString List lt String 1 gt getPointsAndLines List lt Entity gt noDependencies List lt String gt void relnit0 void relnit void getEntities List lt Entity gt updateMeasure String Measure Measure getData boolean boolean boolean boolean upda
32. et qu elle gagnerait tre optimis e 6 3 3 Conclusion des tests Ces tests de performance nous ont permis de tester la partie client de notre application ce qui n a pas t fait avec les tests unitaire qui ne testaient que 48 la partie serveur et galement d optimiser certains points et de voir guels points peuvent tre optimis s dans le futur 49 Annexe A Le code des Tests A 1 Test Analyse Service Test try public void thousandPointsMeasuresTest List lt Entity gt points new ArrayList lt Entity gt List lt Measure gt measures new ArrayList lt Measure gt Measure meter new Measure Meter m 1f m measures add meter Random random new Random CO0MMENT Arnaud 21 03 2011 Created measures for int i 0 i lt 1000 i d Measure m new Measure Measure i smb i random nextFloat measures add m gt COMMENT Arnaud 21 03 2011 Created points for int i 0 i lt 1000 i GPSPoint p new GPSPoint point Integer toString i random nextDouble random nextDouble p setId i points add p COMMENT Arnaud 23 03 2011 Create XML 50 XMLServiceImpl xmlService new XMLServicelmpl String path xmlService exportXML testExportXML1 xml points n COMMENT Arnaud 22 03 2011 Load entities from XML List lt Entity gt points2 xmlService importXML path List lt Measure gt measures2 xmlService getMeas
33. eurs et le serveur sera d taill e dans les diagrammes de s quences la fin de ce chapitre 4 1 3 Avantages de ce modele Ce mod le de conception apporte deux avantages majeurs Le premier est qu il permet de s parer les fonctionnalit s et comporte ment de notre logiciel de fagon rendre ind pendants les donn es l interface graphique et le traitement des v nements et faciliter le travail collaboratif Le second avantage par rapport au mod le MVC et qu il ajoute une couche suppl mentaire entre les mod les et les vues les pr senteurs L utilisation de pr senteurs permet de simplifier l interaction entre les vues et les mod les et permet de modifier l interface graphique sans avoir modifier autre chose dans le code 21 4 2 Diagrammes de paquetages 4 2 1 Hi rarchique Ce diagramme de paquetage voir fig 4 2 montre le d coupage de notre architecture en pr sentant la hi rarchie des paquetages Le contenu de chaque paquetage est d taill plus loin Une application GWT classique est s par e en trois paquetages Un paquetage client dont les classes seront compil es en JavaScript et ex cut es par le navigateur Un paquetage server qui sera compil en bytecode Java et ex cut par un serveur d applications Un paquetage shared qui contiendra toutes les classes utilis es la fois par le client et le serveur 4 2 2 Relationnel Ce diagramme de paquetage voir fig 4 3 montre
34. isateur de sauvegarder les r sultats renvoy s par l AnalyseService 4 3 9 server Dans ce paquetage voir fig 4 12 se trouvent les impl mentations des diff rents services du paquetage client service ainsi que les servlets suivants 1 FileManager g re les t l chargements des fichiers entre le client et le serveur Ce servlet sera appel lors du chargement et de la sauvegarde de fichiers 2 PDFCreator g n re un fichier PDF partir d une page Html ce servlet est appel lors de la g n ration du rapport 33 getPreviousResults HashMap Area HashMap Measure Flost gt gt analyselList lt Ares gt List lt Messure gt int HeshMap lt Ares HashMap lt Messure Float gt gt getNewUnit HashMap lt Area Flost gt determineNewUnit List lt Area gt HashMap lt Area Float gt anelyse List lt Ares gt List lt Measure gt int AsyncCallback lt HashMap lt Area HashMap lt Measure Float gt gt gt void importKML Sting AsyncCallback lt List lt Entity gt gt void exportKML String List lt Entity gt AsyncCallback String void getPreviousResults AsyncCallback lt HashMap lt Ares HashMap lt Messure Float gt gt gt void getNewUnit AsyncCallbacx lt HashMap lt Area Float gt gt void importKML String List lt Entity gt exportKML String List lt Entity gt String determineNewUnit List lt Ares gt AsyncCallback lt HashMap lt Aves Flost
35. itecture En ef fet l utilisation de TreeViewModel impose que la classe effectue des appels synchrone pour remplir l arbre ou si l on souhaite utiliser des appels asyn chrones comme c est la cas dans notre application client serveur impose le fait d utiliser directement les appels au serveur sans pouvoir passer par un pr senteur Ceci est du au fait que la classe Tree ViewModel ne poss de pas de moyen de rafraichissement en cas de modification externe de ses donn es Malgr cela nous avons d cid d utiliser un Tree ViewModel car aucun des autres widgets pr sents dans Gwt ne permet d afficher d une mani re efficace les zones 5 3 6 Synchronisation de la carte et des listes Les points et lignes peuvent comme vu dans l exemple d utilisation tre ajout s ou modifi s directement depuis la carte ou depuis les listes du pan neau de droite C est ici que le m canisme des Event est int ressant lors qu une de ces entit s est modifi e le pr senteur associ la vue qui la modifie 42 va envoyer un v nement sur le bus d v nements via la m thode event Bus fireEvent et cet v nement va tre attrap par l objet AppController Selon le type du pr senteur qui a envoy l v nement l AppController va ensuite appeler les pr senteurs concern s pour leur faire recharger la liste des entit s 5 3 7 La classe Server Call La classe ServerCall est une classe abstraite que nous avons cr qui impl mente l in
36. la relation UML im port entre les diff rents paquetages c est dire les relations d utilisation entre les paquetages 22 AnalyseServicelmpl EntitiesServioelmpl FileMansger KML Servioelmpl MeasuresServicelmpl PDFCreator ReportServicelmpl TempFolder XML Servioelmpl EU EN EH Da AresUpdstedEvent CancelEditAreaEvent CancelEditGPSPointEvent CancelEditLineEvent CancelEditMessureEvent ChangeLocaleEvent EditAreaEvent EditGPSPointEvent EditLineEvent EditMeasureEvent GenersteReportEvent GPSPointUpdatedEvent LineUpdatedEvent MeasureUpdatedEvent NewProjectEvent ReportCancelledEvent E ShowHelpEvent BET GET GET GED GET GET vai GED GED GET BET BET RETI GED GET Bg EI amp R q AreaUpdatedEventHandler CancelEditAreaEventHandler CancelEditGPSPointEventHandler eQ CancelEditLineEventHandler CancelEditMeasureEventHandler CancelReportEventHandler ChangeLocaleEventHandler o EditAreaEventHandler EditGPSPointEventHandler EditLineEventHandler eQ EditMeasureEventHandler eQ GenerateReportEventHandler GPSPointUpdatedEventHandler eQ LineUpdatedEventHandler eQ MeasureUpdatedEventHandler NewProjectEventHandler q ShowHelpEventHandler from event MetrologyConstants MetrologyMessages o AnalyseService AnalyseServiceAsync E
37. lis es dans la ou les zone s s lectionn e s L dition et l ajout d une entit se fait en ditant ses informations et son nom 3 1 3 Les calculs Les r sultats s affichent temporairement sur une PopUp voir fig 3 5 3 1 4 La g n ration du rapport La g n ration du rapport se fait en trois tape 13 New project Load project Saveproject ImportKMLfile ExporttoKML Generatereport User s guide H i E maarat Q GPS Points Latitude Longitude Choose a name for the point at coordinates 35 74274176867077 36 705467104911804 Esbart lo KML User s guide H I mu EH PIPPI os maarat ess pois Points Latitude Longitude Pt 35 74273306063209 36 70546710491 New project Load project Save project Import KML file Annonce de la page http 127 0 0 1 8888 K 4 11of1 gt H Add Edit Remove ee b FIG 3 1 Vue sur la carte 14 New project Load project Save project Import KML file Export toKML Generate report User s guide H Pr ees points Points Latitude 11 p2 35 74273741465156 12 p2 35 741531342158716 13 p1 35 741422489951766 Longitude pti 35 74274176867077 36 705467104 36 705912351t 36 705402731t 36 705805063 Lines Areas Measurement Units New project Load project Saveproject Import KML file Export to KML Generate report User s guide H H mm E
38. ngBution HasClictHandless 1 Composite MenuView MenuViewint int MapViewint int loadProjectuttoni HasClickHandlers asWidget Widget saveProjectButton HasClictHandlers getMap MapWidget exporiKMLEutton HasClictHandlers getAddGPSPointButton ToggleButton importKMLButton HasClictHandlers gelDeleteGPSPointEutton ToggleButton generateReportButton HasClickHandlers getAddLineButton ToggleButton showHelpButton HasClickHandlers getLocstion HasValue lt String gt newProjectButton HasClictHandlers addSeschTexiBoxKeyHandlerKeyDownHandler void ssWidget Widget getSearchLocationButton HasClictHandlers frLangBufton HasCliciHandlers geiDeleteLineButton ToggleButton esLangBution HasCliGiHandlers getMapParameters String Composite DisplayEditView E ue interfaces presenter EditGP SPointsPresenter EditGPSPointsView Display asWidget Widget Ee GelLatitude HasValue lt Sting gt getAcdButton HasCliaHandlers getLongitude HasValue lt String gt getEditButton HasClickHandlers getName HasValuecString getDeleteButton HasClictHandlers Qel atitude HasValue lt Sting gt setData String void stDstalList lt Sting gt void getLongitude HasValue lt String gt getSelectedids Set lt String gt getName HasValue lt String gt setColumnTitle String void setData String
39. ntitiesService EntitiesServiceAsync 9 KMLService KMLServiceAsync oo MeasuresService MeasuresServiceAsync ReportService 0 ReportServiceAsync XMLService XMLServiceAsync from client B AddEditButtons from client AreaTreeModel FileChooserDialogBox B LblListBox m g LbiTextBox SEV B ListBox Area View B Marker Y 5 Polyline a E Ee gj SaveCancelButtons a ts B EditLinesView from client B EditMessuresView GridView B MapView MenuView a ReportsView EditAresPresenter from client EditGPSPointsPresenter EditLinesPresenter EditMeasuresPresenter GPSPointsPresenter LinesPresenter eQ DisplayEditView o DisplayView GridDisplay from client Area DE Entity N Bj GPSPoint B Line E Messure E Polyline AlresdyUsedldException KMLExportException KMLImportExoeption MeasurelnRelationDeleteException MeterDeleteExoeption MultipleEntitiesExoeption MultipleMeasureSymbolException NestedAresExoeption NoAnalyseResultException NoSelectionException NullArgumentException OvertskenBoundsException SameLinePointsException UnknownldException XMLExportException B XMLImportException from shared FIG 4 2 Diagramme de paquetages hierarchique 23 import r a ape D NTT n 7 m A
40. oid x oe S Ab void getNamel HasValue lt String gt refresh void se Oo getLatitudePt HasValue lt String gt kaa getlongitudeP1 HasValue lt String gt getlatitudeP2 HasValue lt Sting gt getlongitudeP2 HasValue lt String gt populateLists ListeSting void Display Composite LORS geiPiSelectedi intertaces Wiese ng void ve tim getP2List HasChangeHandlers fillUpSymbolList Sting List lt Stringll gt void ReportsView getP2Selectedid String getCancelBution HssCliciHandiers aswidget Widget setP2Selectedid String void getDefinition String getAdditionalinfo HasValue lt String gt sddKeyDownHandler KeyDownHandler getNamel HasValue lt String gt getAnalyseResultsChedBox Boolean void getSaveButton HasClictHandlers getAreasChedBox Boolean setFocus void getSymbol HasValue lt String gt getAuthor HasValue lt String gt getvalue HasValue lt String gt getCancelButton HasClicHandlers setFocus boolean void gelDateChediBox Boolean Display getGenerateButton HasCliciHandlers getGPSPointsChedBox Boolean interface i getLinesChedBox Boolean L getMapCheckBox eer getAdditionallnfo HasValue String Composite 9etPDFDocument amp utton Boolean getAnalyseResultsChectBox Boolean DE Ee getReportTitle HssValue lt String gt D getareasChecBoxi Boolean gelXHTMLDocumentBut
41. on Demander des utilisateurs arch ologues tudiants et ou professeurs d effectuer un travail cf Tests sur notre logiciel L utili sateur ne connaitra pas le logiciel l avance et devra apprendre l utiliser gr ce la documentation disponible en une demi heure Les r ponses des utilisateurs au questionnaire cf Annexes ainsi que leur commentaires seront les crit res de validation de ce test Portabilit Le logiciel doit tre accessible par l interm diaire des navigateurs Mozilla Firefox et Google Chrome et doit fonctionner sur les systemes d exploitation Linux Microsoft Windows XP Windows 7 et sur Mac OS X Test de validation Un scenario cf Tests sera r alis avec les navigateurs et syst mes d exploitation d crits ci dessus 2 1 3 Besoins fonctionnels Identifier les unit s de mesure utilis es Le logiciel doit identifier les unit s de mesures les plus probablement utilis es pour tracer les lignes d une zone Niveau de difficult Moyen Priorit lev e Test de validation Comparer les r sultats obtenus par notre logiciel avec ceux de sites d j connus D terminer une nouvelle unit de mesure Il sera possible de calculer la longueur d une nouvelle unit de mesure probablement plus utilis e que les unit s de mesure d j connues Niveau de difficult Moyen Priorit lev e Int grer l application dans un navigateur L interface devra tre int gr e dans un navigateur
42. pdatedEventHandler dispatch LineUpdatedEventHandler void setSender Presenter void getSender Presenter dispatch MeasureUpdatedEventHandler void getAssociatedType Type lt MeasureUpdatedEventHandler gt GPSPointUpdatedEvent Presenter boolean getAssocistedTypel Type lt GPSPointUpdatedEventHandler gt dispatch GPSPointUpdatedEventHandler void getSenderi Presenter isLineUpdated boolean dispatch GenerateReportEventHandler void getAsscciatedType Type lt GenersteReportEventHandler gt getAssocistedTypel Type lt NewProjectEventHandler gt dispatch NewProjectEventHandler void dispatch CancelReportEventHandler void getAssocistedType Type lt CancelReportEventHandler gt FIG 4 9 Diagramme de classes paquetage client event 3l class handler EventHandier EventHandler interface interface interface EventHandier CancelEditAreaEventHandler CancelEditGP SPointEventHandler onAresUpdated AresUpdatedEvent void onCancelEditArea CancelEditAresEvent void onCancelEditGPSPoint CancelEditGPSPointEvent void EventHandler EventHandler interface interface CancelEditLineEventHandier CancelEditMeasureEventHandier onCancelEditLine CancelEditLineEvent void onCancelEditMessure CancelEditMeasureEvent void onCancelReport ReportCancelledEvent void EventHandler
43. ppliqu pour toutes les lignes de la zone 5 8 Choix techniques 5 3 1 La classe Entity la classe abstraite Entity est la classe dont d rivent les mod les GPS point Line et Area cette classe permet de d finir les m thodes et attributs communs ces classes 40 5 3 2 D finition d un id pour chaque entit Pour acc der rapidement une entit les objets qui h ritent de Entity et les Measure nous avons choisi plut t que de mettre tous ces objets dans une liste et de les comparer avec la m thode equals d ajouter un id un entier pour les Entity le symbole de l unit de mesure pour les Measure chaque objet et de les stocker sur le serveur dans des HashMap ayant pour cl l id de l objet et pour valeur l objet lui m me L id des Entity est g n r automatiquement via une simple incr mentation d un compteur dans la classe EntitiesServiceImpl et Vid des Measure est d fini par l utilisateur l unicit de cet id est v rifi lors de l ajout ou de l dition d une unit de mesure 5 3 3 Mesure Le logiciel permet l utilisateur de g rer les unit s de mesure Chaque unit de mesure est repr sent e par une instance de la classe Measure Une unit de mesure valide doit avoir un nom un symbole une valeur et elle doit tre d finie par une autre unit de mesure Les unit s de mesure sont g r s par le MeasureServiceImpl servlet Ce service impl mente une HashMap qui contient les unit s de mesur
44. reaUpdatedEvent i18n AresPresenter CancelEditAresEvent a MetrologyConsiants EditAreaPresenter B CancelEditGPSPointEvent o MelrologyMessages B EditGPSPointsPresenter B CancelEditLineEvent B EditLinesPresenter g CancelEditMessureEvent B EditMeasuresPresenter 8 ChangeLocaleEvent n B GPSPointsPresenter g EditaresEvent jam chiens Ej LinesPresenter EditGPSPointEvent import MapPresenter E EditLineEvent B MeasuresPresenter BH EditMessureEvent g raa B MenuPresenter El SenerateReportEvent a B Presenter B GPSPointUpdstedEvent a LEEN ogy import B ReportsPresenter 8 LineUpdstedEvent EO ke gt B ServerCall MessureUpdstedEvent import impor DisplayEditView NewProjectEvent Ks S a d 0 DisplayView ReportCancelledEvent A CU om GridDisplay El ShowHelpEvent gue sm r handler T from client N import U import i 8 EditAreaView EditGPSPointsView AreaUpdatedEventHandler ie EditLinesView eQ CancelEditAreaEventHandler EditMessuresView import a N CancelEditGPSPointEventHandler g GridView CancelEditLineEventHandler LS g MapView o CancelEditMeasureEventHandler MenuView o CancelReportEventHandler ChangeLocaleEventHandler o EditAreaEventHandler ReportsView from client LI rA bi VI VI i E
45. registrer le projet il doit choisir un des cas d utilisation concret 10 2 3 Prototype d interface utilisateur main application frame application menu action buttons search bar GPS Points H c 3 Measurement Units map area data panel FIG 2 2 Prototype de l interface utilisateur L interface utilisateur se compose de trois parties le menu la carte et le panneau d informations Les boutons du menu permettent respectivement de cr er un nouveau projet de charger un projet existant de sauvegarder le projet en cours d im porter et d exporter les fichiers KML de g n rer un rapport et d afficher le manuel en ligne La carte qui est contr lable avec la souris de la m me mani re qu une carte GoogleMaps classique molette de la souris pour zoomer cliquer glisser pour se d placer a galement une barre d outils associ e avec des boutons qui permettent d ajouter et supprimer des points et des lignes et un champ de recherche qui permet l utilisateur de centrer la carte sur un lieu dont il a entr le nom La partie droite de l interface graphique est compos d un panneau conte nant les donn es de l application les entit s g ographiques et les unit s de mesures et permettant d diter ces donn es 11 2 4 Planning pr visionnel Le diagramme de Gantt suivant montre les nombres de d veloppeurs as soci s chaque t che et la succession de celles ci ainsi que leurs dur es La semaine 1 cor
46. respond la semaine du 31 janvier au 6 f vrier A la fin de la semaine 5 une version alpha du logiciel accompagn e d une bauche du manuel d utilisateur sera pr sent e au client afin de valider l ergonomie de l interface G ANTT coe P 2 project E Dw f vrier 2011 Architecture IHM Int raction avec GoogleMaps Int gration Calcul des distances et de probabilit s 14 personnes 12 personnes 12 personnes 4 personnes 4 personnes 12 personnes Import Export de fichiers KML 12 personnes Sauvegarde Chargement au format XML 12 personnes G n ration automatique de rapports 12 personnes Tests Internationalisation R daction du manuel de l utilisateur Finalisation du m moire 12 personnes 12 personnes 12 personnes 12 personnes Fic 2 3 Diagramme de Gantt du planning pr visionnel 12 Chapitre 3 Exemples d utilisation 3 1 Ajout Suppression et dition 3 1 1 A partir de la carte Gr ce aux boutons on peut ajouter ou supprimer des points ou des lignes dans la carte voir fig 3 1 En cliquant sur une entit dans la carte une info bulle s affiche voir fig 3 2 3 1 2 Via les menus l aide des panneaux d informations voir fig 3 3 on peut voir les entit s existantes en supprimer ajouter ou diter Le panneau affichant les zones permet de r aliser l analyse qui trouve les unit s de mesures uti
47. rme la norme KML 2 2 d fini par le OGC http www kmlvalidator com home htm 6 2 2 EntitiesServiceTest Cet ensemble de test permet de tester le fonctionnement du service de gestion des entit s g ographigue Nous avons fait tres attention r aliser de nombreux test de domaine et notamment des tests aux limites Les tests OutOfBoundsValues permettent de v rifier que les param tres de latitude et longitude des m thodes g rant les points GPS renvoient bien des exceptions OvertakenBoundsException en cas de valeurs qui sortent de leur domaine de d finition 90 90 pour la latitude et 180 180 pour la longitude 6 3 Tests de Performance Pour enregistrer les performances d une application cod e avec GWT Google a developp un plugin pour son navigateur Chrome appel Speed Tracer Gr ce ce plugin il est possible de quantifier la fluidit de l interface graphique et de visualiser les appels au serveur et l engorgement de ces appels ce qui nous a permis par la suite d optimiser certains points de notre programme 46 Notre application n tant pas d ploy e sur un serveur pour l instant ces tests de performances ne prennent pas en compte le temps de transmission des donn es entre le client et le serveur 6 3 1 Conditions d utilisation normales 1 Ajout d un point om total E KE 265 tros 10 15s AAA 127 0 0 1 8888 Meti v EP 279 2935 lanas 3 225 12365 Slugpistiness events Ne
48. s une contrainte de notre application nous nous satisferons de ce temps d ex cution Mais on peut tout de m me se demander s il ne serait pas possible de r duire ce temps d ex cution par exemple en ne faisant qu un seul appel au serveur qui renvoie la liste des points liste qui serait alors utilis e par le MapPresenter et le GPSPointsPresenter pour actualiser leurs vues respectives au lieu de laisser chaque pr senteur faire ses appels au serveur 6 3 2 Conditions de stress 1 Ajout de cent points Pour r aliser ce test on ajoute un boucle for dans le EditGPSPoints Presenter pour qu il ajoute cent fois le m me point quand on clique sur le bouton Save En faisant diff rents tests avec ou sans l actualisation de la carte on se rend compte que l actualisation de la carte prend beaucoup de temps compar l actualisation de la liste des points 2 Ajout de cent lignes La m thode utilis e pour ajouter une ligne tant similaire l ajout d un point les r sultats des tests sont plus ou moins les m mes et on constate ici aussi que l actualisation de la carte est plus lente que le reste 3 Ajout de cent unit s de mesure L ajout de cent unit s de mesure fonctionne et prend environ 150 se condes 4 Import d un fichier KML Nous avons galement test l import d un fichier KML contenant un grand nombre de lignes plus de 1000 et il s av re encore une fois que la carte est la partie la plus lente de notre application
49. sage String Exception IsSerializable NoSelectionException NoSelectionExoeption getMessagel String UnknownldException UnknownldException UnknownldException int getMessage String MultipleEntitiesException MultipleEntitiesException String getMessage Sting Exception IsSerializable NoAnalyseResultException NoAnalyseResultException getMessagel String SameLinePointsException SameLinePointsException getMessagel Sting MultipleMeasureSymbolExoeption String getMessage String Exception IsSerializable OvertakenBoundsException OvertskenBoundsException OvertakenBoundsException String int int getArgName String getLowerBound double getUpperBound double getMessage String Exception IsSerializable XMLExportException NestedAresException NestedAreaException String String getMesssge Sting NullArgumentException NullArgumentException String getMesssge String XMLExportException XMLExportException String getMesssge String XMLImportException XMLImportException Sting getMessage String FIG 4 5 Diagramme de classes paquetage shared exception 26 4 3 3 client Ce paquetage contient deux classes 1 AppController C est cette classe qui se charge de cr er les diff rents pr senteurs et vues et qui place ces derni
50. ss 6 3 3 Conclusion des tests Le code des Tests A 1 Analyse Service Test Questionnaire Table des figures 2 1 2 2 2 3 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10 4 11 4 12 4 13 4 14 6 1 Diagramme de cas d utilisation 8 Prototype de l interface utilisateur 10 Diagramme de Gantt du planning pr visionnel 11 NUE SUL la Cart n dae State SI EO ERA el x 13 Vues r TA CATTE 1 4 wa ER E N ME M s n 14 Les panneaux d informations shed ever alt Si dene 8 Ade 15 Ajout et dition des entit s cs Rx d CRX Ea Rd 16 PopUP des resultats has Gul dann a 17 Informations sur le rapport 17 Le contenu du rapport se ar anc a Me Lun dte oe N NE 18 Format dir Ter BOE oies t oven ae oes teh rre d db ters 18 Models MVP 202 204 SEER deniers deett te ene BR Sas ATA s 20 Diagramme de paquetages hierarchique s 22 Diagramme de paquetages relationnel 23 Diagramme de classes paquetage shared model 24 Diagramme de classes paquetage shared exception 25 Diagramme de classes paquetage client 26 Diagramme de classes paquetage client view 27 Diagramme de classes paquetage client presenter 29 Diagramme de classes paquetage client event
51. teRelstedMeasures Siring Measure void List lt List lt Entity gt gt addEntities List lt Entity gt void getAreas List lt integer gt List lt Area gt RemoteService RemoteService interface interface service KML Service service ReportService exportKML String List lt Entity gt Sting HashMap lt Area HashMap Measure Flost gt gt String 1 importKML String List lt Entity gt generateReport List lt List lt Entity gt gt Sting boolean boolean String RemoteServiceServiet KML Servicelmpl importKML String List lt Entity gt exporiKML Sbing List lt Entity gt Sting ReportServicelmpl generateReportiList lt List lt Entity gt gt Sting boolean boolean String HashMap lt Ares HashMap lt Messure Flost gt gt Sting HitpServiet PDFCreator interface service XML Service doGetHttpServietRequest HtipServletResponse void A doPosiHttpServletRequest HtipServletResponse void 4 processRequestiHitpServletRequest HttpServletResponse void importXML String List lt Entity gt exporiXML String List lt Entity gt List Measure Stri getMeasures List lt Measure gt FileManager doPost HttpServletRequest HttpServletResponse void A doGetHttpServietRequest HtipServietResponse void RemoteServiceServiet XML Servicelmpl XMLSer
52. terface AsyncCallBack Cette interface contient deux m thodes OnSuccess et OnFailure qui sont appel lors du retour d un appel asyn chrone au serveur L usage en GWT est de pour chaque appel asynchrone de d finir une classe interne qui impl mente ces deux m thodes Cependant lors de tous nos appels au serveur en cas d chec une exception est lanc e qui contient le message d erreur afficher l utilisateur le traitement ef fectuer est donc toujours le m me Nous avons donc cr la classe ServerCall qui d fini la m thode OnFailure nous n avons donc plus qu red finir la m thode OnSuccess qui elle effectue un traitement diff rent chaque fois 5 3 8 G n ration du rapport Le logiciel permet de g n rer le rapport en format HTML et PDF Le format HTML est plus accessible dans le sens qu il donne l utilisateur une possibilit de faire de nouvelles modifications en fournissant des changements dans le code HTML si n cessaire L impl mentation de cette fonctionnalit est fournie par le ReportServiceImpl sur le c t serveur Le service cr e un fichier HTML avec des styles CSS Par la suite il remplit le fichier avec les donn es choisies par l utilisateur Le r sultat est affich imm diatement dans une nouvelle fen tre du navigateur internet Le format PDF peut tre le choix de l utilisateur quand il ya un besoin de pr senter ou de conserver les informations g n r es Pour l impl mentation de ce
53. ton Boolean getAuthor HasValue lt String gt resetTabPanel void getCancelButton HasClictHandlers EdilMeasuresView setCheGBoxes boolean boolean boolean geiGenerateButton HasClictHandlers asWidget Widget boolean boolean void J getGPSPointsChecrBoxi Boolean filUpSymbolList String ListeString void gelLinesCheckBox Boolean geiCancelButton HasClickHandlers getMapChediBox Boolean getDefinition Sting getDateCheckBox Boolean getNamef HasValue lt String gt getPDFDocumentButton Boolean getSsveButton HasClictHandlers getReponTitiel HasVslue lt String gt getSymbol HasValue lt String gt getXHTMLDocumentButton Boolean getValue HasValue lt String gt resetTabPanel void setFocus boolean void setCheaBoxes boolesn boolean boolean Display interfaces loadProjectButton HasCliciHandiers saveProjectButton HasCliciHandlers newProjectButton HasClictHandlers GetDeleteGPSPointButton ToggleButton exportKMLButton HasClickHandiers getAddLineButton ToggleButton importKMLButton HasClictHandlers geiDeleteLineButton ToggleButton genersteReportButton HasClioiHandlers getLocation HasValue lt String gt showHelpButton HasClickHandlers getSearchLocationButton HasClickHandlers fiLangButton HasClickHandlers HasClickHandlers enLa
54. tte fonctionnalit nous avons utilis une biblioth que Java pour le rendu XML XHTML et CSS 2 1 Flying Saucer Flying Saucer est souvent utilis comme une biblioth que c t serveur pour g n rer des documents PDF car il est capable de convertir un fichier XHTML au format PDF De cette facon nous pouvons utiliser le fichier HTML cr par le ReportServiceImpl pour g n rer le document PDF Nous avons cr le sevlet PDFCreator qui parse le fichier HTML dans un document DOM l aide de Vapi Java XML Par la suite le servlet d finit le document DOM en tant que document de l objet ITextRenderer L objet ITertRenderer est d fini par une biblioth que qui vient avec Flying Saucer Cet objet est 43 donc responsable de la cr ation du document PDF La derni re chose faire est d envoyer le document PDF cr l objet OutputStream du servlet afin que le document puisse tre affich imm diatement dans une nouvelle fen tre du navigateur internet 44 Chapitre 6 Tests 6 1 Tests sc narios Le sc nario suivant a t r alis sur diff rents navigateurs et syst me d exploitations afin de prouver la portabilit de notre logiciel 1 2 ODN O Oo P O Zoomer avec la molette de la souris sur le site qui vous int resse Ajouter des points sur la carte en appuyant sur le bouton correspon dant diter quelques points Ajouter des points GPS via le bouton add de la liste des points Cr er et
55. twork resources nel ere TN fera estitlesservice 07 Su entitiesService ox 2 XMLHtpRequest Sluggishness events Network resources WE DOM mouseup EE DOM click En E Resource Data Received Ba TE XMLHttpRequest o 102ms BI Timer Fire 2159 12ms BI Timer Fire 2161 F ims EE pain Bn II Resource Data Received lims TE XMLHttpRequest Bms ES Resource Data Received Mi EE XMLHttpRequest 72ms N Timer Fire 2164 M 22ms BI Timer Fire 2162 FIG 6 1 Speed Tracer Le premier graphique de la figure 6 1 nous permet de visualiser les appels l entitiesService Lors de l ajout d un point on constate que trois appels sont r alis s le premier pour ajouter le point sur le serveur et les deux autres pour actualiser respectivement la carte et la liste des points Le second graphique permet de voir la suite d v nements qui se pro duisent cot client ainsi que le ralentissement d l interface gra phique Les v nements XMLHttpRequest pr c d s d un Resource Data Received correspondent la r ception de la r ponse du serveur par le client 47 On constate donc que dans des conditions normales l ajout d un point via le menu prend 380ms et ceci sans prendre en compte le temps de latence entre le client et le serveur qui est suppos nul ici tant donn que les deux sont sur la m me machine La rapidit n tant pa
56. u Dans le diagramme de cas d utilisation figure 2 1 la relation include est utilis par exemple quand un arch ologue veut effectuer un test d un en semble de vecteurs Pour ex cuter le test l arch ologue doit d finir les coor donn es les vecteurs et les mesures Par la suite l application doit r cup rer les longueurs correspondantes Toutes ces fonctionnalit s doivent tre r alis es afin d ex cuter le cas d utilisation demand Relation extend Un cas d utilisation peut tre utilis s pour tendre le comportement d un autre cas d utilisation En d autres termes relation extend donne un comportement suppl mentaire au cas d utilisation pa rent Nous pouvons prendre la d finition de coordonn es par exemple En d finissant les coordonn es l arch ologue a la possibilit d ajouter de suppri mer ou d tigueter une coordonn e Relation generalization G n ralisation entre des cas d utilisation signifie en d autres termes que le cas d utilisation enfant h rite des propri t s et du comportement du cas d utilisation parent et peut modifier le compor tement du parent Un cas d utilisation de base peut tre un cas d utilisation abstrait ou concret Si le cas d utilisation de base est abstrait il est n cessaire de d finir au moins un cas d utilisation sp cialis On peut prendre le cas d utilisation Save project comme example Ce cas d utilisation est abstrait en d autres terme si l arch ologue veut en
57. ures if points size points2 size measures size measures2 size 1 fail measures measures size and measures2 size catch XMLExportException e 1 fail XMLExportException catch NullArgumentException e fail NullArgumentException catch XMLImportException e fail XMLImportException catch AlreadyUsedIdException e fail AlreadyUsedIdException 51 Annexe B Questionnaire Goal The main goal of this questionnary is to give us a feedback of our software to permit to improve it The best way to help us is to do a simple work with our sotware and then fill a short questionnaire about the thing which have to be improved or changed Work to do Your first job is to read the user guide you shouldn t spend more than thirty minutes to read it Then you have to import a given KML file in the software which contains 8 points that represents the corner of two fields in Ruweiha a archeologic site in Syria You have to create lines in the border of these fields and to embeded them into 2 areas Next you have to create a super area that contains to two other Now just select the super area and compute the possible measures used After that generate a pdf report Questions Please answer the next quetions to help us to improve our software How much time have you spent on learning how to use the software 52 What do you think about the graphical interface 93
58. vent tre lisibles par Google Earth GoogleMaps ainsi qu ArcView diter la liste d unit s de mesure L utilisateur pourra diter la liste d unit s de mesure Ces unit s de me sure pourront tre d finies par rapport aux unit s existantes Niveau de difficult Faible Priorit Moyenne Test de validation Il est possible de cr er une liste d au moins 100 unit s de mesure diff rentes G n rer un rapport Le logiciel devra permettre la g n ration d un rapport en PDF contenant les r sultats obtenus ainsi qu une visualisation de la carte Niveau de difficult Moyen Priorit Faible Avoir un manuel en ligne Le logiciel devra fournir un acc s rapide une documentation Un tu toriel en ligne devra galement expliquer pas pas les diff rentes tapes de l utilisation du logiciel Niveau de difficult Faible Priorit Faible 2 2 Cas d utilisation Compute possible units of ER extend N N Modify a unit of TENS s include measurement Delete N measurement Select a unit of measure Select vector Label coordinate Save project as kml D Cor FIG 2 1 Diagramme de cas d utilisation Relation include Les cas d utilisation peuvent contenir les fonc tionnalit s d un autre cas d utilisation Quand un cas d utilisation est trait tous les cas d utilisation qui sont inclus doivent tre ex cut es afin de traiter le cas d utilisation pr v
59. vic lmpl imporXML String List lt Entity gt getMessuresf List lt Measure gt exporiXML Stiing List lt Entity gt List lt Measure gt String getTempFolderName String FIG 4 12 Diagramme de classes paguetage server 35 4 3 10 Ce paquetage regroupe les widgets que nous avons cr s pour permettre client ui de r aliser plus rapidement la r alisation des diff rents vues class ui om google gwt user client ui ListBox ListBox getSelectedValue String LbiListBox String LbiListBox String String setLabel String void getLabel String setDatas List lt Stringll gt void getListBox ListBox getSelectedEntity String getSelectedld String setSelectedValue String void AddEditButtons getAddButton Button getEditButton Button getRemoveButton Button disableEditButton void enableEditButton void SaveCancelButtons getSaveButton Button getCancelButton Button Composite SaveCancelButtons 1 gt j AreaTreeModel getNodelnfo T Nodelnfo lt gt isLeaf Object boolean isRoot Object boolesn addArea Stiing I void deselectAll void refresh void 4444444 4 getSelectedAress List lt Integer gt temoveAreas List lt Integer gt void TreeViewModel AreaTreeModel EntitiesServiceAsync com google gwt maps client overlay Marker Marker

Download Pdf Manuals

image

Related Search

Related Contents

Liquid Ring Vacuum Pump    Whirlpool 2195385 Refrigerator User Manual  rxycq8-20a7y1b_im_4pde327528-1_de  User's Guide - The Marionette Group Inc.  液晶テレビ用AVラック 取扱説明書  EJC 110 / 112 - Jungheinrich  

Copyright © All rights reserved.
Failed to retrieve file