Home

- HSR - Institutional Repository

image

Contents

1. Long getClubLstitude Double getClubLongitude Double getClubName String getDste Long getld long getiImsgeByte String getLatitude Double getValid Boolean PictureDto setClubld Long void setClubLatitude Double void setClubLongitude Double void setClubName String void setDste Long void setld long void setiImageByte String void setValid Boolesan void property get getlongitude Double property set setlatitude Double void setlongitude Double void IW He H SE Be Abbildung 8 13 Datentransfer Klassen Das obere Bild zeigt die zwei Datentransfer Klassen Diese fassen einzelne Domain Klassen zusammen Dies wurde gemacht um eine Trennung von Business Objekten und Transfer Objekten zu haben und damit der Gson Parser eindeutige Attributnamen sowie eine flache nicht verschachtelte JSON Objekte erstellen kann ch snapit exception Beschreibung Das Exception Package beinhaltet alle Snaplt Server Exceptions Die allgemeinste Ausnahme ist die SnapltException Diese erweitert die Java Runtime Exception Alle spezifischen Ausnahmen erweitern diese SnapltException F r weitere Erkl rung wird auf das entsprechende Kapitel unter Implementationskonzepte verwiesen Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 d HSR HOCHSCHULE F R TECHNIK RAPPERSWIL WW S
2. Anderes Test Framework evaluieren z B TestNG Umstellung auf einen anderen Applikationsserver z B JBoss Projekte zu Maven umkonfigurieren L sung mit dem Betreuer finden Bilder auf dem Dateisystem speichern und in der Datenbank nur einen Link zur Datei abspeichern Alternative aber f r den Benutzer annehmbare L sung suchen und implementieren Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 25 150 Risiken im 4ten Sprint R16 Anony Die 6 7 misieru Anforderungen ng von anonymen Bildern und Bilder personenbezoge n zu verwalten st ren einander Ausf hrliche Analyse und praktische Tests Alternative L sung suchen Risiken im 5ten Sprint R17 GUI Papier prototy Machbarkeit bei anderen Applikationen berpr fen Das gezeichnet GUI des Papierprototype p n kann nicht genau so entwickelt werden Risiken im 6ten Sprint R18 Websei Einarbeitungin 5 4 te jQuery ist aufwendig Beispielwebseite so einfach wie m glich halten Gewisse Kompromisse eingehen f r das fertige GUI F r die Einarbeitung in jQuery mehr Zeit einplanen da die Webseite als einziges ansatzweise die Komplexit t des Systems visualisieren kann Risiken im 7ten Sprint R18 Abgabe bernahmeder 5 9 geschriebenen 0 Dokum Artikel vom ent Wikipedia ins Abgabe Dokument ist zeitaufw ndiger als geplant Testger t s
3. Falls der Benutzer nicht Bescheid ber den aktuellen Aufenthaltsort hat oder seine Position aus anderen Gr nden nicht bermitteln will kann die aktuelle Lokation mit einem Klick auf das Kreuz Icon im oberen linken Ecken gel scht werden Foto knipsen und bermitteln Ist das gew nschte Motiv visiert gen gt ein Klick auf den Snaplt Button um ein Fotos aufzunehmen und den Schnappschuss und die aktuelle Lokation dem Server zu Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 119 150 bermitteln Wurde das Foto bermittelt oder ist der Upload Vorgang fehlgeschlagen erh lt der Benutzer ber eine Meldung im linken oberen Ecken des Display Bescheid Fotos die aufgrund fehlender Verbindung nicht bermittelt werden konnten werden beim n chsten Starten der Applikation oder beim manuellen Aktualisieren der Gallery ber das Men erneut bermittelt Eigene Fotos anzeigen Die eigenen Fotos sind in der Galerie ersichtlich Dazu gen gt ein Klick auf eine Upload Meldung oder auf das Gallery Icon im Men Es werden Zwecks Performance immer nur elf Bilder auf einmal geladen Weitere Bilder k nnen ber das Icon am Ende der Galerie nachgeladen werden Sind keine weiteren Fotos vorhanden ist auch das Icon nicht mehr ersichtlich Das Symbol im Foto gibt Auskunft ber die Lokalisierung des Fotos Wird ein gr n
4. Das soeben geknipste Foto wird mit GET Image angezeigt Erwartetes Es erscheint eine Liste mit einigen Lokationen aus der Verhalten virtuellen Partymeile Der Eintrag IFS sollte nicht an letzter Stelle stehen Das Foto wird erfolgreich heraufgeladen Eine entsprechende Meldung erscheint 4 Das Foto erscheint mit der richtigen Lokation Tats chliches Das beobachtete Verhalten entsprach dem erwarteten Verhalten e ga e Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 1 HSR Gi HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 94 150 Ausgangslage Die Testperson befindet sich in der N he des Geb ude Nr 1 Mensa auf der Partymeile Snaplt wird gestartet Das Auswahlfenster wird mit dem Back Button weggeklickt Mittels DUT Image wird ein Foto aufgenommen Das soeben geknipste Foto wird mit GET Image angezeigt Es erscheint eine Liste mit einigen Lokationen aus der virtuellen Partymeile Dieses wird weggeklickt und die Club ID ist auf 0 gesetzt 2 Der Eintrag Mensa sollte nicht an letzter Stelle stehen 3 Das Foto wird erfolgreich heraufgeladen Eine entsprechende Meldung erscheint 4 Das Foto erscheint ohne Lokationsangabe Das beobachtete Verhalten entsprach dem erwarteten e Ausgangslage Die Testperson befindet sich in der N he des Geb ude Nr 5 Physik auf der Partymeile Die Location Einstellungen werden ge ndert nach e
5. E ch snapit util Studienarbeit a D ch snapit processor Ausgabe 1 0 E ch snapit exception Letzte nderung 23 12 2010 10 32 00 El HSR HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 107 150 Die Schichtenarchitektur wurde sehr strikt umgesetzt Es werden nur Klassen aus tieferen Shceichten verwendet Die Ausnahmen stellen die Klassen des Utility Packages sowie die Domain Processor und Exception Klassen dar H stress Tangle of 5 i H business I I I I I I 1 RB RS WS H processor H exception Abbildung 9 9 Abh ngigkeitsgraph Diese Abbildung zeigt die Abh ngigkeiten zwischen den verschiedenen Packages Die Abh ngigkeiten wurden ber das gesamte Projekt ermittelt also auch ber die Tests Der Tangle of 5 entsteht aufgrund von zyklischen Abh ngigkeiten unter den Packages Um diese Abh ngigkeiten aufzul sen h tte noch ein Refactoring geh rt konnte aber wegen Zeitknappheit nicht mehr durchgef hrt werden Folgende Aktionen w re notwendig um diese aufzul sen e Verschieben der statischen Methode stringToSHA256 Methode aus dem Business Package ins Util Package e Verschieben der Klasse ImageSize aus dem Util Package ins Business Package Nach diesen nderungen w rde der Tangle aufgel st werden Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 HSR HOCHSCHULE F R TECHNIK e RAPPERSWI
6. berschreiben der Klasse k nnen Methoden f r den Fehler und Erfolgsfall konkret implementiert werden Weitere Events k nnen ohne grossen Aufwand hinzugef gt werden UrlWrapper o Der UrlWrapper dient als Baukasten f r die Request URLs Die verschiedenen Methoden erlauben es die Domain den Pfad die Attribute und auch den R ckgabetype zu definieren Der Vorteile ist dass kein Vorwissen ber den Aufbau der URLs vorhanden sein muss um die Zieladresse f r einen Request zu definieren Ausserdem werden so die String Operationen an einem Ort performant ausgef hrt Schnittstelle Die REST Architektur kann grunds tzlich von einer beliebigen Applikation genutzt werden um via REST mit einem Server zu kommunizieren Die Schnittstelle zur Kommunikation bildet die Klasse RESTServiceHelper ber deren ffentliche Methoden die ganze Funktionalit t zur Verf gung gestellt wird siehe JavaDoc Funktionalit t Folgende Funktionalit t stellt die REST Client Architektur in der Version 1 0 zur Verf gung Senden und Empfangen von GET POST PUT und DELETE Requests Reponses Senden und Empfangen von Text und Bildern im JSON Format Alle Transaktionen k nnen jederzeit abgefragt werden Neustaren und L schen von Transaktionen Datenverkehr wird in einem eigenen Service und in separaten Threads ausgef hrt Es k nnen f r jede Transaktion folgende Listener implementiert werden o onServerError Wird von onError aufgerufen wenn serverseitig ein un
7. id 5 walid false clubName date 1292354951293 id 6 valid IJ morelmages false status 0 transId 1234567 false Abbildung 10 3 J SON Antwort Images Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 114 150 Der Schl ssel morelmages gibt an ob mit der gleichen Abfrage bzw mit skip count und count count 1 noch weitere Bilder abrufbar w ren Dieser Wert sollte nur benutzt werden wenn genau in diesem Fall jetzt 20 Bilder zur ckgegeben worden sind Wenn die Liste weniger als 20 Bilder bzw kleiner als der count Parameter Wert ist dann gibt es keine weiteren Bilder fimageld changeClub json Beschreibung Dieser Service wird genutzt um einem Bild imageld eine neuer Club zuzuweisen Dabei muss zwingend eine Benutzer ID mitgegeben werden Aufruf POST lt BASE URL IMAGE gt imageld changeClub json transId lt Int32 gt amp userld lt Userld gt Body clubld lt Clubld gt oder clubName lt ClubName gt wenn beides vorhanden ist wird die Club ID genommen Beispiel POST lt BASE URL IMAGE gt 5 changeClub json transId 1234567 amp userld 1u9900gueoswginu Body clubId 4 transld 1234567 status 0 new json Beschreibung Dieser Service wird aufgerufen um ein neues Bild dem System hinzuzuf gen Dabei muss ein
8. unknown failure readOnly getCllasses Set lt Class lt gt gt handleRuntimeException long SnapitException Response Snapit pplicstion logRequest long String String void logResponse long boolean void logResponse long void retumBinarylmage String String ConcreteService Response retumJSON long String String ConcreteServioe Response Semice String UserService allJson int String Response newJson int Response ClubSewicel UserSenicef nearesson int double double Response validJsonfint String Response belongsllong int String Response changelocstion long int String String Response delete int String long Response getimagesJson int String long long long long Sting String long String Response getJpgllong long Response getJsonflong int long Response getLastJpg long int long Response getLasJson int long Response ImageService put long String String Response Harrer Abbildung 8 17 Service Klassen Das obere Bild zeigt die Service Klassen der REST Schnittstelle Erkl rung Die Klasse SnapltApplication stellt den Einstiegspunkt zur Applikation dar Darin werden die Klassen welche REST Services anbieten dem Jersey Framework mittels der Methode getClasses bekannt gemacht Das Logging System log4j wird im Konstruktor dieser Klasse initialisiert Christoph S ess Raphael Nagy St
9. Nov 10 19 Nov 10 20 Nov 10 20 Nov 10 20 Nov 10 Christoph S ess Raphael Nagy Studienarbeit HS2010 Snaplt Implementieren Dokumentieren Implementieren Besprechung Besprechung Implementieren Implementieren Implementieren Chores Implementieren Implementieren Implementieren Testen Implementieren Implementieren Implementieren Implementieren Implementieren Testen Implementieren Implementieren Studienarbeit SSC Nagy Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Christoph S ess Christoph S ess Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Christoph S ess Christoph S ess Christoph S ess Christoph S ess Christoph S ess Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Ausgabe 1 0 Server Testplan Iteration 3 amp Durchf hrung Bild drehen um 90 Grad Weiteres Vorgehen User ID auf serverseite erstellen User ID Neuer Version auf Server geladen amp Logging angepasst SHA 256 Hash Webservice Userkey auf seine G ltigkeit pr fen Refactoring GUI f r SnapltClient Arbeit an diversen Services Refactoring Refactoring Seite 132 150 0 53 1 39 0 36 12 00 0 40 0 55 1 00 3 35 0 32 0 37 0 23 0 20 1 23 1 30 1 00 4 29 4 30 6 10 3 41 2 03 2 37 1 13 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R
10. R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 123 150 Fazit Will man eine Teamarbeit effektiv anpacken sollte eine geeignete Aufteilung der Arbeiten gemacht werden Wichtig ist auch dass die Schnittstellen klar definiert werden Trotz allem bleibt die Kommunikation unter den Teammitgliedern der wichtigste Punkt und darf auf keinen Fall zu kurz kommen 12 Anhang 12 1 Glossar Bezieht sich auf eine konkrete Party Lokation JDBC Java Database Connectivity Datenbankschnittstelle der Java Plattform ch icl i PMD Werkzeug zur statischen Codeanalyse Entwicklungsname der Software Eine eigene Wortsch pfung aus den Englischen Worten Snap knipsen und It 12 2 Literatur und Quellenverzeichnis 12 2 1 Literatur BUC04 Buchmann Johannes Einf hrung in die Kryptographie Springer 3 erweiterte Auflage 2004 12 2 2 Internet 1 http tools ietf org html rfc2616 02 12 2010 12 3 Abbildungsverzeichnis tree Eeer 4 Abbildung 2 2 Snaplt Screen Laden der Lokattonen ENEE 5 Abbildung 5 1 Domainmodel nu a iraniani 12 Abbildung 5 2 e 16 Abbildung 5 3 bersicht Benner 17 Abbildung 5 4 bersicht Sprint 3 18 Abbildung 5 5 bersicht Sprint A 19 Abbildung 5 6 bersicht Sprint 5 a en ee 20 Abbildung 5 7 bersicht Sprint au 21 Abbildung 7 1 ClUbserfassen zes Eeer 43 Abbildung 7 2 GUl Navigation Map sa nu a 45 Abbildung 7 3 GUl Activation aaa ee 46 Abbildung 7 4 GUl Camera sssssssss
11. Snaplt Benutzer Snaplt Applikation Benutzerziel Der Benutzer macht ein neues Fotos mit Hilfe der Applikation Snaplt und sendet dieses an unseren Server Fotograf Einfaches knipsen des Fotos und unkompliziertes Hochladen ohne zus tzliche Benutzereingaben Anseher Fotomotiv Lokationsinhaber Personal Informierer Snaplt Qualit t und Quantit t muss stimmen zudem sollte immer die passende Lokation zugeordnet werden k nnen gegebenenfalls mit Benutzerhilfe Der Server muss die vielen Requests verarbeiten k nnen und stabil laufen Der Benutzer hat die Applikation gestartet Das hochgeladene Bild wird vom System akzeptiert und auf der Webseite zur Verf gung gestellt Der Benutzer m chte zeigen wie er und seine Freunde feiern und dies der Welt mitteilen 1 Der Benutzer schiesst ein Foto 2 Das Foto und die aktuellen Koordinaten werden an den Server geschickt Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL Extensions Alternative Flows Special Requirements Technology amp DEERAS EON List Frequency of Occurrence Open Issues UCO2 CRUD Fotos Seite 40 150 3 Der Benutzer wird ber den Erfolg Fehlerfall informiert 4 Das Foto wird zusammen mit der Lokation auf der Webseite angezeigt 2a Keine Internetverbindung vorhanden 4a Das Foto kann nicht mit einer Lokation verkn pft werden Studienarbeit HS2010 Snaplt Die bertrag
12. fresdOnly K_IMAGE_ ID String id fresdOnly K_IMAGE ORDER BY String orderBy resdOnl K_IMAGE_SIZE String sze resdOnly K_IMAGE_ SKIP String gip resdOnl K_IMAGES String images resdOnly K_IMAGES_ MORE String morelmages resdOnly K_LOCATION LATITUDE String latitude fresdOnly K_LOCATION LONGITUDE String longitude fresdOnly K_ORIENTATION String csmersOrientation fresdOnly K_SKIPT String K_IMAGE_ SKIP readOnly K_STATUS String satus fresdOnl K_STATUS_ DESCRIPTION String satus description dOnly K_TRANSACTION ID String transid fresdOnly K_USER_ID String userid fresdOnl K_USER ID VALID String useridValid fresdOnly R_CLUB String club fresdOnly RID ALL String all fresdOnly R_ID_NEAREST String nearest fresdOnly R_ID_NEW String new resdOnl R_IMAGE String image resdOnly R_USER String user fresdOnl RP_CHANGE CLUB String changeClub fresdOnly RP_IS_VALID String valid fresdOnly V_IMAGE ORDER BY_DATE ASC String dateASC fresdOnly V_IMAGE ORDER BY DATE DESC String dateDESC resdOnl V_IMAGE ORDER BY NONE String none fresdOnl V_IMAGE_ SIZE LARGE int 3 fresdOnly V_IMAGE SIZE LITTLE int 1 fresdOnly V_IMAGE SIZE MIDDLE int 2 resdOnly V_ IMAGE SE NONE int 0 resdOnly V LOCATION STATE FALSE int 1 fresdOnly V_LOCATION_ STATE OK int 0 fresdOnly V_ORIENTATION LANDSCAPE LEFT int
13. schen ber die Str nge geschlagen e Iterationszeitraum 9 11 Woche 08 11 29 11 e Abnahme 16 12 2010 W hrend der f nften Iteration wird vor allem die Android Applikation erweitert Die geknipsten Fotos sollten nun abrufbar sein und es sollte m glich sein bestimmte Aktionen auf die Fotos anzuwenden z B Foto l schen Da hierf r ein grosser Teil des GUls der Smartphone Applikation implementiert wird werden hier auch die Paperprototypes erstellt und Usability Tests durchgef hrt Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL Studienarbeit HS2010 Snaplt Abnahme Test Usability Test Heuristischer Test Resultierende Dokumente Paperprototypes Android GUI Abnahmetest Dokumentation Usability Tests Testplan Client komplett Seite 21 150 Software Implementieren der Features Foto l schen Location ndern und Location bestimmen Sprint 6 Server Mobile Publish Picture Localisation Location Finder Picture Actions delete picture change location define location Privacy Meta Tag Cleaner Identifier Save Picture osegejeq Server Website Access Pictures get pictures of location get pictures next to position get pictures of timeperiod REST Web Services via JSON Android Mobile Devices Clients Abbildung 5 7 bersicht Sprint 6 Beschreibung User Story Foto
14. test_deleteSimplelmage 0 755 s E test_getMylmages 1 561 5 E test_belongsImage 0 810 5 E test_anonymlmage 0 682 5 E test_changeSimpleClub 1 027 s dl test_changeClubToNewOne 0 804 s H test_changeClubTokxistingOne 0 870 s E test_morePictures 1 735 5 H test_nearestClubs 0 312 s Abbildung 9 3 JUnit Tests automatische Systemtests Stress Test Der Stress Test zeigt die Belastbarkeit des Systems Wir k nnen so die nichtfunktionale Anforderung sehr leicht testen und es bietet einen gewissen Anhaltspunkt wie viel Benutzer das System ohne Probleme aushalten kann Dieser Stress Test wurde auf einem Entwicklerrechner ausgef hrt El Task List EE Outline gfu JUnit 3 gt W En seconds i o BE Q R E z Ka E Errors 0 DH Failures 0 4 Fi ch snapit stress StressTestRunner Runner JUnit 4 45 478 s H stressTest 45 478 s Abbildung 9 4 JUnit Test Belastbarkeitstest Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 105 150 Es wurde der parallele Zugriff von 50 verschiedenen Benutzern simuliert welche gleichzeitig versuchen je zwei Bilder hochzuladen Danach werden zuf llig vier verschiedene Bilder heruntergeladen und die zuvor heraufgeladenen Bilder wieder gel scht Daraus ergeben sich 400 50 Benutzer 8 Anfragen Anfragen Da der Test innerhalb von 45 5 Sekunde
15. 08 11 e Abnahme 16 12 2010 Snaplt erlaubt es nicht die gespeicherten Daten einer Person zuzuteilen Dieser Teil der Applikation wird w hrend der vierten Iteration behandelt S mtliche Daten die R ckschl sse erlauben wie Angaben ber den Benutzer das Ger te oder das Foto werden gefiltert und gel scht Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 20 150 Abnahme Test Heuristischer Test anhand von Testpersonen die ber eine bestimmte Zeitspanne in der Testlandschaft Fotos knipsen Die gesammelten Daten werden berpr ft und die Testpersonen befragt Resultierende Dokumente e Anforderungsspezifikationen e Analyse Anonymisierung e Abnahmetest Software Daten und Fotos sind gegen Aussen aber auch im System nicht mehr eindeutig einer Person oder einem Ger t zuzuordnen Sprint 5 Server Mobile Server Website Publish Picture Picture Actions Access Pictures Localisation delete picture C get pictures of location Location Finder change location np get pictures next to position define location D get pictures of timeperiod o D Ka OD Privacy C Meta Tag Cleaner Identifier Save Picture REST Web Services via JSON Snaplt ch Website A Default Android Website Mobile Devices Clients Abbildung 5 6 bersicht Sprint 5 Beschreibung e User Story Foto schiessen Foto l
16. 1 0 Letzte nderung 23 12 2010 10 32 00 DI HSR HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 49 150 Image Abbildung 7 7 GUI Image Accessibility Die App wurde nicht f r Personen mit Einschr nkungen optimiert 7 4 1 Screens Die folgenden Texte und Printscreens zeigen ein Walkthrough durch die finale App Usability Entscheidungen die auf Grund der Usability Tests entstanden sind wurden ebenfalls hier notiert Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 Ed HSR HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Activation D E al 14 39 Herzlich Willkommen bei Snaplt Mit Snaplt ver ffentlichst du deine Nightlife Fotos live und direkt von der Partymeile Die Bilder werden vollautomatisch innert wenigen Sekunden ins Internet geladen Dabei lokalisiert unser System das Foto und findet heraus wo du dich befindest Das beste daran Das ganze verl uft absolut anonym Viel Spass beim Knippsen Snap It Damit du trotz Anonymit t die volle Kontrolle ber deine Fotos hast musst du dir eine Benutzer ID generieren Solltest du bereits im Besitz einer Benutzer ID sein kannst du diese hier eingeben Vielen Dank Abbildung 7 8 GUI Activation Screen Beschreibung e Nach dem Klicken auf ID generieren wird eine ID vom Server empfangen e Nach dem Vorgang wird die Kamera Ansicht angez
17. 1 RN 15 11 2010 1 R 11 11 2010 PUT Operationen werden auf dem Server nur 15 11 2010 einmal ausgef hrt Damit keine Bild Duplikate entstehen 11 11 2010 Testplan f r Iteration 3 erstellen und durchf hren 15 11 2010 Einen Klub erfassen der nicht in der N he ist und einen der in Rapperswil ist 11 11 2010 Angepasster Testplan f r Iteration 2 erstellen und 1 15 11 2010 durchf hren 17 11 2010 Service der neuen User Key zur ckliefert und Hash 1 24 11 2010 speichert 17 11 2010 Webservice Pr ft einen Userkey auf seine g ltigkeit 2 24 11 2010 Return true false 17 11 2010 Matrix bei Vorteilen einen Verweis auf z B 24 11 2010 nderbarkeitTestplan It 2 gt Datum des Test einf gen 17 11 2010 Alle benutzerbezogenen Services korrekt anpassen 1 RN 24 11 2010 R 17 11 2010 Webservice Alle Location in denen ein User mind 24 11 2010 ein Bild erfasst hat 17 11 2010 Webservice Alle Bilder die von einem User erfasst 24 11 2010 wurden 17 11 2010 Webservice Ein Bild eines Users Validieren ob Bild 24 11 2010 wirklich zu User geh rt 17 11 2010 Testplan It 3 gt Datum des Test einf gen 24 11 2010 17 11 2010 M glichkeit einen Club selber zu erfassen in jeder 24 11 2010 Situation Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 138 150 17 11 2010 Allen Userbezogenen Operationen UserK
18. 150 Vorteile e Empfehlung vom Hersteller Zuverl ssigkeit e Stabil Zuverl ssigkeit e Im Vergleich zu anderen Google Varianten einfach zu implementieren nderbarkeit Nachteile e Komplexit t PostgreSQL Beschreibung Weit verbreitete und stabile Datenbank Einsatz F r die persistente Speicherung der Domain Objekte Alternativen e MySQL e Oracle DB Vorteile e Sehr weit verbreitete Datenbank Benutzbarkeit e Kostenlos nderbarkeit e Wird st ndig weiterentwickelt Zuverl ssigkeit e Gute Performance Effizienz Nachteil Komplexe Konfigurierbarkeit Schwieriger als MySQL Hibernate Beschreibung OR Mapper f r Java Einsatz F r die einfache Verbindung zur Speicherung der Domain Objekte in eine Datenbank Alternativen e JPA e MyBatis Vorteile e Sehr weit verbreitete Benutzbarkeit e Kostenlos nderbarkeit e Wird st ndig weiterentwickelt Zuverl ssigkeit e Relativ einfache Nutzung Effizienz Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 E HSR HOCHSCHULE F R TECHNIK RAPPERSWIL EE Studienarbeit HS2010 Snaplt Nachteil e M glichkeit zur komplexen Konfiguration e Viele zus tzliche Libraries jars werden ben tigt 83 Snaplt Architektur Seite 71 150 Auf dem Grundstein der REST Architektur wurde die eigentliche Business Anwendung entwickelt Durch die REST Architektur war die Schnittstelle zwischen Client un
19. 3 fresdOnly V_ORIENTATION LANDSCAPE RIGHT int 2 resdOniy V_ORIENTATION PORTRAIT int 1 resdOnly V_ORIENTATION PORTRAIT BACKWARDS int 4 fresdOnly V_STATUS_ ERROR int 1 freadOnly V_STATUS ERROR IMAGEDEFECTORNOTAVAILABLE int V_STATUS ERROR On V_STATUS ERROR INVALIDCLUBNAME int 3 fresdOnly V_STATUS ERROR INVALIDPICTUREID int V_STATUS_ ERROR resdOnly V_STATUS ERROR JSONWRAPPER int V_STATUS ERROR resdOnly V_STATUS_ ERROR NONEXISTINGUSER int V_STATUS_ ERROR resdOnly V_STATUS_ ERROR NOPICTUREAVAILABLE int 2 resdOnly V_STATUS ERROR RUNOUTOFUSERIDS int V_STATUS ERROR resdOnly V_STATUS_OK int 0 fresdOnly H nia Fe 2 5 en H ke H Be Abbildung 8 18 J SONConstants Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 90 150 9 Testen 9 1 Client Server Architektur Die Client Server Architektur wurde clientseitig anhand eines Testplans getestet Dieser Testplan testet nicht explizit den Upload eines Fotos sondern den generelle Datenverkehr ber die Restarchitektur Er zeigt dass die REST Architektur f hig ist die verschiedenen REST Operationen auszuf hren und alle Ausnahmesituationen behandeln kann Test durchgef hrt am 09
20. Aktualisieren Button l dt alle Bilder erneut Usability Entscheide e As Kamera und Aktualisieren Icon wurde nachtr glich hinzugef gt o Obwohl die Kamera ber den Backbutton erreichbar ist wurde dieser Men eintrag als Erg nzung von vielen Benutzern erw nscht Speziell Leute die mit dem Umgang mit Android Smartphones nicht vertraut sind usserten diesen Wunsch o Der Aktualisieren Button i Kamera Credits Aktualisieren gibt dem Benutzer die Abbildung 7 20 GUI Gallery Screen Men M glichkeit zu jederzeit die neusten Fotos anzuzeigen Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 E HSR HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 57 150 auch solche die w hrend dem Verweilen in der Galerie im Hintergrund komplett heraufgeladen wurden Credits Del 14 38 Beschreibung e Die Credits Seite zeigt Infos ber die Entwickler an Ein Link f hrt zur Webseite wo die Fotosin Echtzeit angezeigt werden Snaplt wurde im Zuge einer Semesterarbeit im HS 2010 von Raphael Nagy und Chrisotph S ess an der Fachhochschule Rapperswil entwickelt Die geknippsten Bilder k nnen hier angesehen werden http 152 96 56 24 SnapltServer Abbildung 7 21 GUI Credits Screen Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 E HSR HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studiena
21. Applikationselemente aufgrund von fehlender CPU Leistung oder Memory vom BS gestoppt werden wird eine Activity mit laufendem Service nur in extremen F llen gestoppt siehe API Service F r jeden Request wird dem Service ein Intent gesendet Der Intent wird dann verarbeitet und der asynchrone Task gestartet welcher zu der entsprechenden REST Methode passt Sobald keine Transaktionen mehr im Gange sind wird der Service wieder gestoppt und somit seine priorisierte Stellung gegen ber dem BS aufgehoben e RESTServiceHelper o Die Klasse RESTServiceHelper vereinfacht den Aufruf des Services F r jede REST Methode existiert eine Java Methode welche aus der Activity aufgerufen werden kann um einen Request zu starten Im RESTServiceHelper werden aus den bermittelten Informationen Intents erstellt und diese zum Starten des Services versendet Diese Methoden liefern der Activity die Transaction Id anhand welcher der Status einer Transaction jederzeit abgefragt werden kann ch snapit rest tasks Dieses Package stellt alle Funktionalit t zur Verf gung um die REST Operationen parallel auszuf hren e RESTTask Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 62 150 o Der RESTTask ist verantwortlich daf r dass jeder Request in einem eigenen Thread l uft Damit werden l ngere Verz gerungen im GUI verhindert Er ber
22. Die Datenbank Klassen werden haupts chlich von Hibernate gebraucht Die Datentranfer Klassen sind f r die Kommunikation ber die REST Schnittstelle Domain Klassen e Club e Location e Picture e User Datentransfer Klassen e ClubDto e PictureDto Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL Diagramme ttrt id long latitude double longitude double getld long getLastitude double getLongitude double Location Loestion double double setid long void setLstitude double void setLongitude double void Abbildung 8 12 Domain Klassen Studienarbeit HS2010 Snaplt ex H H BR t ir dub Club date Date id long imageByte byte OD imageLittleByte byte OD imageMiddieByte byte OI location Location transactionld long user User getClub Club getDste Date getid long getimsgeByte bytel getimageLittleByte bytel getImsgeMiddleByte bytel getLocstion Location getTranssctionld long getUser User Picture setClub Club void setDste Dste void setid long void setImsgeBytel bytel void setimageLittleByte bytel void setiImsageMiddleByte bytel void setLocstion Location void setTranssctionld long void setUser User void toPictureDto lmageSize Picture id long l
23. Int32 gt amp latitude lt Latitude gt amp longitude lt Longitude gt Beispiel GET lt BASE URL CLUB gt nearest json transld 1234567 amp latitude 47 228573987139136 amp longitude 8 8 21849822998047 Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 116 150 clubs celubId 13 clubLatitude 47 228573987139136 elubLlongitude 8 821849822998047 clubName Bonanno Bistro amp Bar valid true clubId 17 celubLlatitude 47 22646109562935 elubLongitude 8 815562725067139 celubName Corso Lounge valid true clubId 8 clubLatitude 47 442213000000002 elubLongitude 9 3442640000000008 clubName Engelburg Schulhaus valid true clubId 2 clubLatitude 47 22379654652788 elubLongitude 8 816716074943542 clubName Geb ude Bibliothek valid true clubId 6 elubLatitude 47 223636246712104 elubLongitude 8 81606698B0361938 clubName Geb ude IFS valid true UI status 0 transId 1234567 Abbildung 10 4 J SON Antwort Clubs all json Beschreibung Dieser Service erm glicht es alle Clubs zu erhalten Wenn noch eine Benutzer ID mitgegeben wurde dann werden nur jene Clubs zur ckgeschickt in denen der Benutzer mindestens ein Bild geknipst hat Aufruf GET lt BA
24. Leute nicht bereit im Ausgang Fotos zu schiessen Einigen ist es schlichtwegs zu dumm im Ausgang sich um Fotos zu k mmern andere sorgen sich um ihre Privatsph re Der Reiz die Mobileapplikation zu nutzen ist im Moment noch zu gering Durch weitere Ideen und der Verbesserung der Privatsph re k nnten wir bestimmt mehr Leute erreichen Ideen und Meinungen aus der Umfrage e Zusammenarbeit mit bestehenden Partyportalen Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 34 150 o Grunds tzlich nein Denkbare Alternative falls eigene Webseite nicht in die G nge kommt e Privatsph re e Bildqualit t e Einfachheit o Sehr wichtig e Facebook Verlinkung e Hohe Nutzerzahl e Rechtliche Frage o Muss nat rlich noch genauer abgekl rt werden ist aber grunds tzlich nichts anderes als bei Facebook 6 2 Konkurrenz Analyse Konkurrenten Lokalisierungsdienste e facebook com places o Facebook Places verkn pft die aktuelle Lokation der Person mit Statusmeldungen und mit der Position der Facebook Freunde Dadurch entsteht die M glichkeit die Standorte der Kollegen einzusehen und die Informationsflut auf Facebook auch geografisch zu ordnen und zu filtern e foursquare com o Foursquare ist eine Applikation f r Mobiltelefone ber die man seinen Freunden die aktuelle Position mitteilen kann Foursquare wird teilweise auch
25. Nagy Christoph S ess Christoph S ess Raphael Nagy Raphael Nagy Christoph S ess Christoph Ausgabe 1 0 4 30 3 00 1 00 1 15 REST 5 00 REST 3 30 REST Architektur f r Android 2 30 2 00 1 00 PostgreSQL amp Hibernate 5 00 1 00 REST Connection 6 00 2 00 Verschiedene 8 00 2 00 0 30 REST 3 00 REST 4 00 2 00 1 00 Testplan Architektur 2 00 Alte Dokumente aktualisiert 2 00 2 00 7 00 Seite 127 150 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt S ess 14 0kt10 Besprechung 14 0kt10 Implementieren 15 0kt10 Dokumentieren 16 0kt10 Implementieren 17 0kt10 Testen 18 0kt10 Projektmanagement 18 0kt10 Dokumentieren 18 0kt10 Implementieren 19 0kt10 Testen 19 0kt10 Projektmanagement 19 0kt10 Implementieren 19 0kt10 Dokumentieren 20 0kt10 Implementieren 20 0kt10 Implementieren 20 0kt10 Testen 21 Okt 10 Implementieren 21 0kt10 Besprechung 21 0kt10 Besprechung 21 0kt10 Projektmanagement 21 0kt10 Implementieren 21 0kt10 Implementieren 21 0kt10 Implementieren 21 0kt10 Implementieren 22 0kt10 Implementieren Christoph S ess Raphael Nagy Studienarbeit Christoph S ess Raphael Nagy Christoph S ess Raphael Nagy Raphael Nagy Christoph S ess Christoph S ess Christoph S ess Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Chr
26. Parameter e userld Fotos nur vom Benutzer e skip berspringt die angegebene Anzahl an Bildern Standardwert ist 0 e count Wie viele Bilder maximal zur ckgegeben werden sollen kann kleiner sein e size In welcher Gr sse die Bilder zur ckgegeben werden sollen e clubld nur jene Bilder dieses bestimmten Clubs e startDate Nur Bilder die nach diesem Zeitpunkt gemacht worden sind Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 113 150 e endDate Nur Bilder die vor diesem Zeitpunkt gemacht worden sind e id Bilder mit gr sserer Id als die mitgegebene e orderBy Bilder werden entweder aufsteigend oder absteigend nach dem Erstellungszeitpunkt geordnet Beispiel GET lt BASE URL USER gt all json transId 1234567 amp orderBy dateASC amp count 20 amp startDate amp endDate amp userld images clubName date 1292334782668 id 1 latitude 47 223347425460815 longitude 8 816989660263062 valid false clubId 20 clubLatitude 47 225921930651487 elubLongitude 8 816742897033691 clubName Restaurant Sayori date 1292334794668 id 3 latitude 47 223272323608398 longitude 8 816887736320496 valid true clubName date 1292353534918 id 2 4 valid false clubName date 1292353538402
27. PictureDto java test 15 25 1 893 6 SnapltServer test ch snapit stress Client java 4 Number of Children avg max per type 4 0917 3181 17 SnapltServer src ch snapit persist DefaultStatement src 44 1048 3 38 17 SnapltServer src ch snapit persist DefaultStatement test 0 0 0 0 SnapltServer test ch snapit persist CRUDTest java a Number of Classes avg max per packageFragment 48 4 364 2 385 8 SnapltServer src ch snapit exception src 42 6 1 195 8 SnapltServer src ch snapit exception test 6 15 05 2 SnapltServer test ch snapit service 4 Method Lines of Code avg max per method 1361 5 533 6 793 38 SnapltServer src ch snapit persist PictureStatement getAll sre 1004 4 758 6 279 38 SnapltServer src ch snapit persist PictureStatement getAll test 357 10 2 7 826 38 SnapltServer test ch snapit service TestSuite java prepareDbForTesting a Number of Methods avg max per type 231 4812 5 692 23 SnapltServer src ch snapit util J SONWrapper java sre 199 4 738 5 581 23 SnapltServer src ch snapit util JSONWrapper java test 32 5 333 6 394 19 SnapltServer test ch snapit service ServiceTest java 4 Nested Block Depth avg max per method 1 374 0 643 4 SnapltServer src ch snapit business UserBusiness java getNewlD sre 1 389 0 654 4 SnapltServer src ch snapit business UserBusiness java getNewlD test 1 286 0 564 3 SnapltServer test ch snapit service ServiceTest java test_putManylmagesWit a Depth of Inheritance Tree avg max per type 1 833 1 419 5 Snapl
28. R ckgabe werden die ermittelten Clubs als Array mit dem Schl ssel K_CLUBS in den JSONWrapper verpackt Dabei werden die ClubDto Objekte ins Array mittels Gson serialisiert e public abstract JSONWrapper getAll JSONWrapper jsonRequest o Gibtalle Clubs zur ck Falls noch zus tzlich im jsonRequest ein K_USER_ID angegeben wurde werden nur alle Clubs zur ckgegeben in denen der Benutzer mindestens ein Bild gekinpst hat Die R ckgabe ist gleich aufgebaut wie bei der Methode getNearest e public abstract Club mergeClub Club club o Gibt einen g ltigen Club oder null zur ck Als Parameter kann im Club Objekt entweder die Id gesetzt sein oder der Name Falls der Name schon Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 80 150 vorhanden ist wird dieser Club zur ckgegen Wenn es sich um einen neuen Club handelt wird dieser neu erfasst sofern ein g ltiger Name gesetzt ist ImageBusinessiInterface e public abstract JSONWrapper delete JSONWrapper jsonRequest o L scht das Bild mit der K_IMAGE_ID sofern der Benutzer K_USER_ID der Eigent mer des Bildes ist e public abstract JSONWrapper get JSONWrapper jsonRequest o Gibt das Bild mit der ID K_IMAGE_ID zur ck Es k nnen noch zus tzliche Parameter K_IMAGE_SIZE mitgegeben werden die bestimmen in welcher Gr sse das Bild zur ckgeschickt werden s
29. an das perfekte Projekt zu kommen Ich bin sehr zufrieden was unser Team in der doch sehr kurzen Zeit erreicht hat und bedanke mich bei meinem Teamkollegen Raphael Nagy f r die super Zusammenarbeit 11 2 2 Raphael Nagy F r mich begann das Projekt schon vor dem eigentlichen Projektstart am Anfang des Semesters Christoph S ess und ich arbeiteten schon w hrend den Sommer Semesterfeien intensiv an unserer Arbeit dadurch dass wir unser eigenes Projektthema einbringen konnten war die Motivation umso gr sser Diese Vorarbeiten mit den Interviews und Frageb gen bzw deren positive R ckmeldungen best tigten mich immer st rker mit der Idee Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 121 150 Die Frage nach den einzusetzenden Technologien war einerseits durch die Aufgabenstellung vorgegeben und andererseits komplett offen Relativ schnell evaluierten wir die einzusetzenden Technologien und stellten voller Eifer einen Projektplan auf die Beine Aber bald merkten wir dass wir uns ein wenig zu viel vorgenommen hatten Dadurch hatten wir die M glichkeit den Umfang runterzusetzen oder einfach mehr zu Arbeiten F r uns beide war klar dass eine gewisse Funktionalit t vorhanden sein werden musste um das ganze Potential der Idee aufzuzeigen Darum arbeiteten wir h rter und mehr daran Ich war vor allem f r die se
30. der Benutzerkreis gr sser einzusch tzen da keine eigene Aktion n tig ist um Bilder zu betrachten Hier nehmen wir an dass die Webseite vermehrt von allgemeinen Surfern betrachtet wird 5 3 4 Annahmen Es m ssen keine Annahmen getroffen werden da die Auftraggeber des Projektes auch die Projektmitarbeiter sind Technische Unklarheiten werden am Anfang bei jedem Sprint in der Analyse Phase gekl rt 5 3 5 Spezifische Anforderungen Sicherheit Auf Sicherheit wird kein besonderer Wert gelegt da wir grunds tzlich nur mit anonymen Daten arbeiten Verst ndlichkeit Unser Ziel ist es die Applikation m glichst einfach zu halten Einerseits in der Bedienung und andererseits im Code Durch diese Einfachheit sollten nicht berm ssig viele Verst ndlichkeitsprobleme auftreten beim Benutzer bzw bei der Wartung der Software Erlernbarkeit Die Applikation sollte intuitiv bedienbar sein Es gibt ein Produkte Video auf welches die wichtigsten Funktionen demonstriert Auch ein Handbuch erl utert diese Features Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 14 150 Bedienbarkeit Es kann davon ausgegangen werden dass das Produkt Snaplt von Personen genutzt wird welche Erfahrungen in der Nutzung von Applikationen auf der Android Plattform haben Des Weiteren sollte das Produkt folgende Eigenschaften aufwe
31. der N tzlichkeit der App sondern am Mangel der User liegt Ja Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL E Studienarbeit HS2010 Snaplt Seite 32 150 3 W rde ich habe aber kein iPhone Android Ich sehe aber ein anderes Problem hast du mal versucht in einer Disco oder einer Bar mit dem iPhone ein Foto zu machen Es k nnte n mlich sein dass es verschwommen wird Person A Ich habe gerade einen Kurs IMT der sich mit Web 2 0 besch ftigt Ich glaube dieses Programm k nnte tats chlich Zukunft haben da es die Partys in der Umgebung transparenter machen w rde und somit leichter die geilste Party gefunden werden k nnen 1 Gute Idee sogar umsetzungspotenzial vorhanden aber hohe Benutzerzahl ben tigt und somit nicht leicht umzusetzen gt Strategie gefragt erst nur auf SG beschr nken etc 2 Homepage angucken vor allem mit Facebook Verlinkung w r m glich 3 Ich habe kein iPhone Person B 1 Eine sehr innovative Idee die wirklich funktionieren k nnte 2 Ja eine solche Applikation w rde ich durchaus nutzen Jedoch sehe ich ein grosses Problem Und das ist die Qualit t der Bilder Einerseits da nur von Mobiltelefonen aus fotografiert wird was besonders bei den Lichtverh ltnissen in den Clubs recht katastrophal rauskommt und andererseits da jeder einfach alles Hochladen kann was er gerade knipst Hinzukommt di
32. eine Verbindung vom Datenbank Verbindungs Pool besorgt werden Dann eine Transaktion gestartet werden Erst danach kann die eigentliche Aktion ausgef hrt werden Nach der Abfrage sollte die Transaktion wieder geschlossen werden und an den Pool zur ckgegeben werden Um diesen Teil des Vorbereitens und Nachbearbeitens der Datenbankverbindung nicht bei jedem Statement nochmals zu schreiben wurde ein abstrakter Transactions Manager erstellt Der Manager besitzt drei wichtige Methoden e execute f hrt eine Anweisung aus und gibt zur ck ob diese Erfolgreich war e get holtein Objekt aus der Datenbank e getAll holteine Collection von Objekten aus der Datenbank Wenn eine Abfrage abgesetzt werden soll bei der nur etwas in die Datenbank gespeichert wird dann nutzt man dazu die execute Methode Hierf r erweitert man die AbstractTransactionManager Klasse und erzeugt ein neues DefaultStatement Objekt und berschreibt die execute Methode mit der gew nschten Save Operation Um den Verbindungsauf und Abbau k mmert sich die entsprechende execute Methode der Superklasse Man kann also nurnoch die spezifische Aktion ausprogrammieren und dieses DefaultStatement Objekt der execute Methode der AbstractTransactionManager Klasse zur Ausf hrung bergeben Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 79 150 Dieser Mechanism
33. g ltiger Benutzer mitgegeben werden Zus tzlich kann noch die Club ID oder der Name des Clubs mitgegeben werden Dies verh lt sich gleich wie wenn der Club des Bildes ge ndert werden soll Des Weiteren ist es m glich die Kamera Orientation mitzugeben Das System dreht dann das Bild in die gew nschte Position Folgende Werte f r die Orientation sind m glich e 1 Portrait e 2 Landscape right e 3 Landscape left e 4 Portrait backwards Aufruf PUT lt BASE URL IMAGE gt new json transld lt Int32 gt amp userld lt Userld gt Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 115 150 Body imageBytes lt BASE64_Picture gt clubld lt Clubld gt cameraOrientation lt Orientation gt Beispiel PUT lt BASE URL IMAGE gt new json transId 1234567 amp userld 1u9900gueoswginu Body imageBytes BASE64_Picture clubId 4 cameraOrientation 1 id 5 valid true transld 1234567 status 0 valid gibt an ob der mitgegebene Club ein validierter Club ist 10 1 4 Club Um Clubs bzw Club Ressourcen anzusprechen wird die BASE URL erweitert e lt BASE URL CLUB gt lt BASE URL gt club nearest json Beschreibung Dieser Service erm glicht es alle Clubs in einem gewissen Radius zu den mitgegebenen Koordinaten zu erhalten Aufruf GET lt BASE URL CLUB gt nearest json transId lt
34. immer ein grosser Traum der beiden Studentinnen Voller Eifer und Freude entscheiden sich die beiden den Abend nicht an der von Touristen berschwemmten Kreuzung zu vergeuden Auch von den vielen zugesteckten Flyern und Eintritten lassen Sie sich nicht beeinflussen Tabea schnappt sich ihr Smartphone und sucht mit Hilfe von Snaplt nach einer Location In einer unscheinbaren Seitenstrasse scheint London die beste Seite seiner ber chtigten Nightlife Szene zu zeigen Und schon eine halbe Stunde sp ter haben die beiden den Tanzfloor des Clubs erobert Ohne Snaplt h tten wir das nie gefunden denkt sich Tabea und bedankt sich mit einem weiteren Foto der Location bei Snaplt und all denen die mitmachen Geknippst werden Lieber nicht Stakeholder Fotomotiv Louis L ge hat sich gerade bei seiner Freundin Luisa krankgeschrieben Er hat keine Lust mit ihr ins Kino zu gehen und verbringt den Abend lieber mit seinen Kollegen Das muss Luisa aber nicht wissen Die Jungs am sieren sich pr chtig das findet auch John ein Kollege von Louis John z ckt daher immer wieder sein Smartphone und knippst die Jungs auf der Tanzfl che ab Louis f hlt sich dabei nicht so gut und hat Angst Luisa k nnte die Fotos entdecken Unbemerkt weicht er auf die Seite sobald John zur Kamera greift Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt A
35. nderung 23 12 2010 10 32 00 d HSR HOCHSCHULE F R TECHNIK RAPPERSWIL WW 14 Dez 10 Studienarbeit HS2010 Snaplt Implementieren 15 Dez 10 Dokumentieren 15 Dez 10 Dokumentieren 15 Dez 10 Dokumentieren 15 Dez 10 Dokumentieren 15 Dez 10 Dokumentieren 15 Dez 10 Testen 16 Dez 10 Dokumentieren 16 Dez 10 Dokumentieren 16 Dez 10 Dokumentieren 16 Dez 10 Dokumentieren 16 Dez 10 Dokumentieren 17 Dez10 Dokumentieren 17 Dez10 Dokumentieren 18 Dez 10 Dokumentieren 19 Dez 10 Dokumentieren 20 Dez 10 Dokumentieren 20 Dez 10 Dokumentieren 20 Dez10 Dokumentieren 21 Dez 10 Dokumentieren 21 Dez 10 Dokumentieren 22 Dez 10 Dokumentieren 22 Dez 10 Dokumentieren Christoph S ess Raphael Nagy Studienarbeit Seite 135 150 Christoph S ess Raphael Nagy Raphael Nagy Raphael Nagy Christoph S ess Raphael Nagy Christoph S ess Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Christoph S ess Christoph S ess Raphael Nagy Christoph S ess Christoph S ess Raphael Nagy Raphael Nagy Christoph S ess Raphael Nagy Christoph S ess Raphael Nagy Christoph S ess Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 136 150 12 5 ToDo Liste Die Todo Liste wurde w hrend dem Projekt genutzt um Arbeiten zu notieren die w hrend Besprechungen und Diskussionen auftauchten
36. serverseitig Rechtschreibung Nichtfunktionale Anforderungen in wie weit schon erf llt o Als abgeschlossen ansehen It 2 e Iteration 3 o Tests gt dann folgende Probleme o Datum beim Testplan einsetzen e N chste Woche gibt es eine SIM Karte e Funktionale Anforderungen erst in der n chsten Iteration beim GUI Oo O O Sitzung vom 25 11 2010 e Woche 10 e Teilnehmer RN CHS MS e Abgenommen am 09 12 2010 Traktanden e Abnahme Sitzungsprotokoll e Definitiver Abschluss Iteration 2 amp 3 Offene Fragen e Ajax Wie kann man einen Request auf fremde Domains machen Resultate e Iteration 2 amp 3 abgeschlossen e Entscheid Komprimierung dokumentieren e Unit Test anonymisierte Bilder e JUnit Tests der anderen Gruppe ansehen o Wie haben sie das Lokalisierungsproblem gel st Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 146 150 e SIM Karte erhalten wir bei der n chsten Sitzung Sitzung vom 09 12 2010 e Woche 11 e Teilnehmer RN CHS MS e Abgenommen am Traktanden e Abnahme Sitzungsprotokoll e Demo Offene Fragen Keine Resultate e Kontrast verbessern bei Club Auswahl Liste falls noch Zeit bleibt e Nachdem aktualisiert wurde bzw die ausstehenden Bilder heraufgeladen wurden diese in der Ansicht anzeigen e Ev Timer um jede Stunde noch ausstehende Bilder auto
37. w rde ich beides nicht Eo i HOCHSCHULE F R TECHNIK Person G 1 Coole Idee aber du brauchst schnell viele Leute damit es etwas wird 2 Ich denke schon 3 Keine Ahnung Person H e Es gibt schon sehr viele Portale f r Fotos etc Person I 1 Es gibt bereits was hnliches http www facebook com 1 8b712 foursquare com Wenn man http www facebook com 1 8b712 TechCrunch com glauben kann wird Facebook diese Funktion nun einbinden In vielen Clubs besteht keine Internet Verbindung 2 Warum sollte ich Fotos von der Party machen anstatt die Party zu genie en 3 Bye Bye Privatsph re Auswertung e Anzahl R ckmeldungen 18 Fotos bzw Webseite ansehen Fotos knipsen Fotos bzw Webseite ansehen Ein grosser Teil der Befragten findet unsere Idee gut und w rde gerne die Fotos ber das Phone oder ber den PC auf unserer Webseite ansehen Zwei Personen haben sich nicht klar zu dieser Frage ge ussert F nf der Befragten werden sich nach ihrer Aussage die Seite nicht anschauen Wir k nnten uns vorstellen dass bei hoher Popularit t unserer Seite die Webseite auch von denjenigen hin und wieder besucht werden w rde welche eine negative Bewertung abgegeben haben Fotos knipsen Sechs der Befragten w rden Ihr Phone zum Knipsen von Fotos verwenden Unter den vier Enthaltungen befinden sich Leute die kein passendes Mobilephone besitzen oder sich ber die Sache noch nicht im Klaren sind Wie erwartet sind viele
38. wird beim Starten von Snaplt informiert e Die Clientapplikation wird mit Android realisiert und nicht mit HTML 5 Diese Entscheidung wird in einigen S tzen festgehalten e Die Iterationen werden wie im Entwurf besprochen festgehalten Jeder Iteration wird ein Abnahmetest zugewiesen und auf eine UserStory verwiesen e Auf Personas kann verzichtet werden e Android 1 6 Ger te sind vorhanden die wir nutzen k nnen gt Antrag Es wird ber die Anschaffung von einem Android 2 2 Ger t nachgedacht das wir Tagesweise verwenden k nnten e F r das Projekt wird kein Hudson verwendet e Die Sitzung vom 30 09 2010 findet ohne Herr Nagy statt Resultierende ToDos e Design Decision Android vs HTML 5 festhalten o Features werden nur partiell von den verschiedenen Browsern unterst tzt o Nicht alle Neuentwicklungen in HTML 5 sind schon als Standard zu betrachten o F r uns gibt es zu wenige M glichkeiten mit dem Mobiltelefon zu interagieren o Applikation kann teilweise nur mit einer bestehenden Internetverbindung genutzt werden e Beschreiben wie weit das GUI von Android und von der Webseite implementiert wird e Zwei UserStories aus Sicht eines Fotos CHS Foto knipsen u betrachten RN Foto knipsen u keine Location gefunden e UserStories um Bad Case Szenarios erweitern e Stakeholder Rollen zuordnen bzw wer sind die Stakeholder evt auflisten Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderu
39. 0 09 2010 Traktanden e Projekt Kick Off e Genauer Projektrahmen festlegen e Offene Fragen besprechen e Verschiebungstermin f r Meeting vom 30 09 2010 e Milestones amp Projektplan e Inhaltsverzeichnis Entwurf Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 139 150 Offene Fragen e Virtuelle Clublandschaft HSR e Besteht die M glichkeit ein Testger t Android Handy leihweise zu erhalten e Wir ben tigen einen Server um ev Hudson Tomcat usw laufen zu lassen werden diese von der HSR zur Verf gung gestellt e SVN Repository e Rechtliche Lage a Fertiges Programm Code usw nach Ende der Arbeit w hrend der Entwicklung e M glichkeit Bachelor Arbeit darauf aufzubauen und fortzuf hren e K nnen wir auf Dokumente Word PDF verzichten und alles in einem Wiki dokumentieren abgesehen von der Standardangabe gt siehe Richtlinien Entscheidungen e Die Benutzer von Snaplt bleiben total anonym Ihre Fotos sind nicht auf Sie zur ckzuf hren Ihre Identit t besteht nur aus einem generierten Key Wir speichern keine Angaben zum Telefon und zur Handynr e Auf Bilder die aufgrund der heraufgeladenen Informationen nicht vollst ndig verarbeitet werden konnten erh lt der Benutzer nicht direkt nach dem Upload ein Feedback Der Benutzer entdeckt diese Bilder auf der bersichtsseite und
40. 1 3 3 Media Wiki als Projektplattfom u u u ne neneeennn 122 11 3 4 Arbeitsteilung und Teamwork 122 KEE EE 123 12 1 GIOSS AT aanere e a N 123 12 2 Literatur und Ouellenverzeichnis ee 123 12 2 1 EE 123 e EE 123 123 Abbildunpsverzeichnis zusagen 123 124 Zeilen 125 125 TODo Eister nee ee 136 Ee E TE 138 12 7 Urheber und Nutzungsrechte ehe ee 148 12 8 Selbstvertfassungserkl rung een 149 12 9 T EE 150 12 10 Inhalten ED ee 150 Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 9 150 4 Aufgabenstellung 4 1 Titel Snaplt Effizienter und Fehlertoleranter Foto Upload auf Android Mobilsystemen 4 2 Auftraggeber und Betreuer Diese Studienarbeit hat keinen direkten Auftraggeber Als interimistischer Auftraggeber fungiert das Institut f r Software Ansprechpartner Auftraggeber NA Betreuer HSR Prof Dr Markus Stolze Institut f r Software mstolze hsr ch 4 3 Ausgangslage Smartphones erfreuen sich einer immer gr sser werdenden Beliebtheit Viele dieser Ger te haben eine integrierte Kamera In dieser SA soll exploriert werden ob sich Fotos welche mit diesen Kameras geschossen wurden auch nutzen lassen um aktuelle Eindr cke von einer Party an potentielle Partybesucher zu bermitteln Snaplt ist eine Anwendung welche Partyg ngern erlaubt Fotos welche mit einem Smartphone iPho
41. 10 Risikomanagement unterteilen Projektrisiken 20 10 2010 Spezifische Iterationsrisiken 21 10 2010 Zeitplan bis zur n chsten Sitzung nachtragen 27 10 2010 04 11 2010 Globale ToDo Liste aufsetzten 04 11 2010 27 10 2010 Datenaustauschprotokoll Snaplt gt Verweise auf RN 02 11 2010 bestehende Protokolle 04 11 2010 Alte ToDos in die zentrale ToDo Liste bertragen 2 CHS 04 11 2010 Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 137 150 04 11 2010 Aus den Sitzungen resultierende ToDos in zentrale 04 11 2010 Liste bernehmen sowie im Sitzungsprotokoll erw hnen Nachtragen nur in zentraler Liste 04 11 2010 In allen Sitzungsprotokollen Resultate durch CHS 04 11 2010 Entscheidungen ersetzen 2 R C 11 11 2010 06 11 2010 Beschreiben was Client REST Architektur kann und was nicht Kann Transaction Tracking Kann nicht Caching 04 11 2010 Zentrales REST Architektur Dokument erstellen 1 CHS 11 11 2010 21 10 2010 Entscheidungen zur Architektur begr nden 2 11 10 2010 11 11 2010 Wird beim Bildupload kein Club oder eine ganz 1 C 15 11 2010 neue Location mitgegeben erscheint eine Liste um den Club zu korrigieren Clientseitig implementieren 11 11 2010 Klubname beim GET eines Bildes neben Bildname 1 CHS 15 11 2010 anzeigen Client 11 11 2010 Klubname beim GET eines Bildes mitliefern Server
42. 11 10 und 18 12 10 Benutzer knippst mit der Snaplt App ein Foto PUT Der Benutzer l scht das zuletzt heraufgeladene Foto DELETE Der Benutzer gibt einen Namen ein undklickt auf den Button Post Image Name POST Der Benutzer fordert das zuletzt geknipste Foto an GET Der Benutzer fordert wiederholt das zuletzt geknipste Foto an GET Christoph S ess Raphael Nagy Unterbrechungsfreie Internetverbindung vorhanden Unterbrechungsfreie Internetverbindung vorhanden Unterbrechungsfreie Internetverbindung vorhanden Unterbrechungsfreie Internetverbindung vorhanden Unterbrechungsfreie Internetverbindung vorhanden Studienarbeit Das geknippste Bild wird direkt auf den Snaplt Server geladen und auf der Webseite angezeigt Das Bild wird auf dem Server gel scht und nicht mehr auf der Webseite dargestellt Der Name des Bilds ndert sich auf dem Server dementsprechend Auf dem Smartphone wird das zuletzt geknipste Foto und dessen Namen angezeigt Es wird nur dann ein neues Foto angefordert wenn die zuletzt ausgef hrte Transaktion komplett ist Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL Der Benutzer klickt auf den Button Show Transactions Der Benutzer klickt auf den Button Register Tr Der Benutzer gibt die Transaction Id ein und klickt auf den Button Start Tr Der Benutzer gibt die Transa
43. 3 12 2010 10 32 00 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL N ver opt REG N E kg 2 ag a N E x search ch Tele tlas swisstopo dv074190 Abbildung 9 1 Virtuelle Partymeile Studienarbeit HS2010 Snaplt Seite 92 150 m e W s 1 TT A O perseestrasse Diese Karte stellt die Grundlage f r die virtuellen Clubs dar Jedes Geb ude mit einer Nummer wird in der Datenbank erfasst Die folgende Aufz hlung bezieht sich auf die obige Grafik Sie zeigt welche Koordinaten in der Datenbank erfasst wurden Club Christoph S ess Raphael Nagy Latitude 47 22310433930531 47 22379654652788 47 22334114805647 47 223628960345316 47 222707226871385 47 223636246712104 47 228016 47 22549387322478 47 22761226765389 47 2287 19700690405 47 22646109562935 47 228573987139136 47 227466551058114 47 226446523671314 47 22584906994364 47 22646 109562935 47 22656309922326 47 22928797971284 47 22592193051487 47 227043970665086 47 227699697419055 47 23244983121199 47 233061780682114 Studienarbeit Ausgabe 1 0 Longitude 8 816485404968262 8 816716074943542 8 81751000881195 8 818100094795227 8 8178962469 10095 8 816066980361938 8 819157 8 816364705562592 8 820691108703613 8 819189071655273 8 814103603363037 8 821849822998047 8 816442489624023 8 814382553100586 8 816807270050049 8 815562725067139 8 817064762115479 8 824574947357178 8 816742897033691 8 816206455230713 8 826870918273
44. 4 7 Termine Siehe auch Terminplan auf 20 09 10 Beginn der Studienarbeit Ausgabe der Aufgabenstellung durch die Betreuer 20 12 10 Die Studierenden senden folgende Dokumente der Arbeit per Email zur Pr fung an ihre Betreuer e Abstract Kurzfassung e AO Poster Vorlagen stehen unter den allgemeinen Infos Diplom Bachelor und Studienarbeiten zur Verf gung 23 12 10 Die Studierenden senden das vom Betreuer abgenommene und freigegebene Abstract Kurzfassung als Word Dokument an das Studiengangsekretariat cfurrer at hsr ch 23 12 10 Abgabe des Berichtes an den Betreuer bis 17 00 Uhr Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 Eoi HOCHSCHULE F R TECHNIK RAPPERSWIL E E Studienarbeit HS2010 Snaplt Seite 11 150 4 8 Beurteilung Eine erfolgreiche SA z hlt 8 ECTS Punkte pro Studierenden F r 1 ECTS Punkt ist eine Arbeitsleistung von ca 25 bis 30 Stunden budgetiert Entsprechend sollten ca 240h Arbeit f r die Studienarbeit aufgewendet werden Dies entspricht ungef hr 17h pro Woche auf 14 Wochen und damit ca 2 Tage Arbeit pro Woche F r die Beurteilung ist der HSR Betreuer verantwortlich unter Einbezug des Feedbacks des Auftraggebers welches in diesem Fall entf llt Die Bewertung der Arbeit erfolgt entsprechend der verteilten Kriterienliste Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TEC
45. 44 E EN E 44 TA SC ee a a ee ee 45 TAT e une een a ee 49 GE ee ee 58 ST Llient Server Architekturen 58 SC EE ee ige 59 0 12 SEIVEr nennen eher 64 8 2 Desing und Technal gieentscheide a seele 66 8 3 Snaplt Architektur ee ee ne net 71 DA lem ee ee erg 71 BT E ne ee ee 71 8 5 EE 72 8 5 1 sEinfuhrunp u ee el 72 8 5 2 E 73 8 5 3 Information zum Stil der weiteren Kapitel EEN 73 8 54 ene EEN d E E 74 8 5 5 Beschreibung der Package ee 79 Ge KH 90 CN DE e E E 90 E EE sarah iE a 91 e De een 91 9 22 Ein engen euere er 92 923 Testplan Lokale rimp nee 93 9 3 Syst mtest EE 95 I CENE ee e E ee e 95 EE 103 Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 8 150 94 E nenn 105 95 EE eege 105 051 Sept Servers es 105 In 2 SEIDEL nee Bee 108 10 Benutzer und Entwicklerkan duch nenne ke antenne 109 10 1 Webservice Extension Developer Handbuch 109 LOLA te TE 109 E 109 101 3 TMap a a A AR a 110 ON Ab a 115 10 2 Installation Serye epon aaa ee ernennen 117 10 3 Snaplt Lem Ayers 118 10 51 Installation anne ernennen 118 132 EE 118 11 Projekt R ckblick zu een ea 120 11 1 IK 120 11 2 ei ege 120 11 2 1 Christoph Zelter 120 1122 Raphael Nagy ee ee ee 120 11 3 Lessons Leitner ee ee 121 11 3 1 Definieren des Vorgehenzmodell een 121 11 3 2 Arbeiten mit neuen Technologien ENEE 121 1
46. 826 6 308 22 SnapltClient src ch snapit rest transaction RESTTransaction java D sre 268 6 872 6 305 22 SnapltClient src ch snapit rest transaction RESTTransaction java b gen 0 0 0 D SnapltClient gen ch snapit R java 4 Nested Block Depth avg max per method 1 244 0 61 4 SnapltClient src ch snapit activities GalleryActivity java finishDelete D sre 1 244 0 61 4 SnapltClient src ch snapit activities GalleryActivity java finishDelete b gen 0 0 a Depth of Inheritance Tree avg max per type 2 565 1 802 7 SnapltClient src ch snapit activities GalleryActivity java b sre 2 846 1819 7 SnapltClient src ch snapit activities GalleryActivity java b gen 1 0 1 SnapltClient gen ch snapit R java a Number of Packages 11 src 10 gen 1 a Afferent Coupling avg max per packageFragn 8 6 994 24 SnapltClient src ch snapit rest helper D sre 73 6 958 24 SnapltClient src ch snapit rest helper b gen 15 0 15 SnapltClient gen ch snapit Abbildung 9 10 Codestatistik Teil 1 Metrics Metric Total Mean Std Dev Maxim Resource causing Maximum Method a Number of Interfaces avg max per packageFr 0 0 0 0 SnapltClient src ch snapit activities D sre 0 0 0 0 SnapltClient src ch snapit activities b gen 0 0 0 0 SnapltClient gen ch snapit 4 McCabe Cyclomatic Complexity avg max per 1491 1 078 10 SnapltClient src ch snapit activities Cameractivity java onCreate b sre 1 491 1 078 10 SnapltClient src ch snapit activities CameraActivity java onCreate b gen 0 0 a Total Lines o
47. 926 8 83425235748291 8 836677074432373 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 93 150 Engelburg Schulhaus 47 442213 9 344264 Es wurden bewusst nicht alle weissen Fl chen Geb uden einen Club zugeordnet Diese dienen sp ter dazu um noch nicht erfasste Clubs zu simulieren Gedacht ist dass ein Benutzer welche in einem noch nicht erfassten Club Fotos knipst diesen selber hinzuf gen kann Da Lokalisierung aus technischer Sicht nicht sehr genau vorgenommen werden kann wurde die Testumgebung im Verlauf des Projekts auf ganz Rapperswil Jona erweitert Clubs ohne Nummern Somit ist es besser m glich die Testresultate zu beurteilen F r Testzwecke wurde eine Lokation Engelburg Schulhaus ausserhalb der Testumgebung erfasst 9 2 3 Testplan Lokalisierung Allgemeine Informationen Der Test findet auf der virtuellen Partymeile HSR statt Es wird mit dem HTC Testger t durchgef hrt Die Einstellungen auf dem Handy sind wie folgt zu konfigurieren e Location o Use wireless networks checked o Use GPS satellites checked e Wireless amp networks o Wi Fi connected to HSR Secure Testdurchf hrung Der komplette Testplan wurde erfolgreich durchgef hrt Durchge hrt am 13 11 2010 und am 02 12 2010 Test 1 Normalfall Snaplt wird gestartet IFS wird als momentanen Standort ausgew hlt Mittels PUT Image wird ein Foto aufgenommen
48. Applikationen docs Alle Dokumente Bilder usw tags Meilensteine trunk Arbeitsverzeichnis der Projekte 0000 Am Schluss dieser Arbeit wurden alle erstellten Artefakte in dieses Dokument berf hrt Es soll nochmals erw hnt werden dass die Wikipedia Eintr ge nur f r die Entwicklung gebraucht wurden und somit mit der Fertigstellung dieses Dokumentes obsolet sind 5 7 3 Testumgebung Als Testumgebung diente uns ein virtueller Windows Server in der Version 2003 auf dem ein Apache Tomcat 6 mit einer PostgreSQL Datenbank installiert ist Des Weiteren wurde uns ein Android Mobiltelefon vom IFS zur Verf gung gestellt 5 3 Qualit tsmassnahmen Knowledge Das Projekt befasst sich mit verschiedenen Technologien die teilweise noch erlernt werden m ssen F r jedes gr ssere Themengebiet wird eine Person als Verantwortlicher definiert welche sich in die Thematik einliesst und die Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 Eoi HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 27 150 Implementierung zum gr ssten Teil vornimmt Damit auch die zweite Person den Durchblick beh lt ist auch sie darauf angewiesen die Materie zu erlernen um bei der Implementation behilflich zu sein Somit wird eine Arbeitsteilung erreicht und die Qualit t der Implementation verbessert Gerade im Umfeld der Android Applikation wird mit einer Technologie gearbeitet die sic
49. BASE URL IMAGE gt Jast jpg transId lt Int32 gt Beispiel GET lt BASE URL USER gt Jast jpg transId 1234567 amp size 1 Bild last jpg Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 Pei HSR HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 112 150 Abbildung 10 2 Beispielbild fimageld belongs json Beschreibung Dieser Aufruf gibt zur ck ob das Bild mit der ID imageld dem mitgegebenen Benutzer userld geh rt D h ob dieser Benutzer das Bild geknipst hat Aufruf GET lt BASE URL IMAGE gt imageld belongs json transId lt Int32 gt amp userld lt Userld gt Beispiel GET lt BASE URL IMAGE gt 5 belongs json transId 1234567 amp userld 1u9900gueoswgqinu belongs false transId 1234567 status 0 all json Beschreibung Mit diesem Aufruf wird eine Liste von Bildern zur ckgegeben Diese Liste kann mit verschieden parametrisiert werden Die Beschreibung der einzelnen Parameter ist unten zu finden Aufruf GET lt BASE URL IMAGE gt all json transld lt Int32 gt amp userld lt Userld gt amp skip lt Int32 gt amp count lt Int32 gt amp siz e lt SIZE gt amp clubld lt Clubld gt amp startDate lt DateTime gt amp endDate lt DateTime gt amp id lt Imag eld gt amp orderBy lt ORDER gt Es m ssen nicht alle Parameter mitgegeben werden Wenn nichts angegeben wurde wird dies ignoriert und den Standardwert genommen Beschreibung der
50. D N e 6 Studienarbeit HS2010 Snaplt Seite 6 150 Inhaltsverzeichnis AUT AC ee ee a ee ee 2 Management Summary use ee ee ieernelte einer teer ee 4 be ee 6 Aufgabenstellung 220 520 ee 9 41 Dielen ee 9 42 Auftraggeber und Betreutes ee ee 9 43 Ausgangslage een ee 9 44 SZ ler Arber es ee nee ehesten 9 45 Zur Durchf hrung ses ee ee 9 4 6 Dolimentalon ee 10 A Lernen Ne Ener 10 4 8 E e E 11 eene a ia a aia i a a iaia 12 Sch MEN 12 52 Domanmodel E 12 53 Anforderunpsspezihkationen esse ee ee 13 5 3 1 EIOQULER e E e 13 5 3 2 Produkt Funktionen user ee 13 5 3 3 Benutzer EE EE 13 53 4 Annahmen zes eeebeeee 13 5 3 5 Spezifische Anforderungen scene 13 BA Vorgehen roa a ee ee ar 15 SAL ne EE 15 Eelere 22 56 Risikomanagement nee eebe 22 5 7 Ee an 1 SERCRSTEURE gt KREREEINEREENEER ERSEEEEIEELSR EREEEIENEL ERROR SEE 26 5 7 4 Entwicklungsumgebung unsere 26 5 7 2 Et E 26 9 43 E sense Lehe 26 5 8 Dualit tsmassnahmen nassen nenne Eege 26 5 9 Einrichten der Entwicklungsumgebung zu en 28 EE 30 CNR E E E 30 Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 7 150 6 2 Konkurrenz Analyse ae een 34 63 serstorfiesenssenge eier 36 04 USE laser anne euere 39 SE TE 42 IR Lola Done ee E el 42 EN DN DEE 42 ALZA EE 43 72 Eltere Krueger ees 43 7 3 EIERE ee ee 43 7 2 EE 43 732 e d E
51. D ein und klickt auf den Button Nochmals versuchen Benutzer schwenkt das Smartphone Kamera Benutzer klickt auf das Lokalisieren Icon oder den Clubnamen links oben Benutzer gibt einen Namen ein Benutzer w hlt einen Club aus Christoph S ess Raphael Nagy Studienarbeit Studienarbeit HS2010 Snaplt TC 1 9 Verbindung vorhanden TC 1 10 Verbindung vorhanden Verbindung vorhanden Lokalisierung erfolgreich TC 2 1 1 ME ZAI Ausgabe 1 0 Seite 97 150 Ladefenster wird angezeigt User ID empfangen und zum Schluss die Kamera Ansicht angezeigt Die ber die Menu Funktion Benutzer ID anzeigen anzuzeigende ID enspricht der Erwartung User Id wird validiertund ok Kamera Ansicht angezeigt Die ber die Menu Funktion Benutzer ID anzeigen anzuzeigende ID enspricht der Erwartung Die Ansicht passt sich nicht an Es werden alle Clubs ok in der N he angezeigt Die Liste zeigt nur die ok Clubs an die das eingegebene Wort enthalten Die Liste zeigt nur die ok Clubs an die das eingegebene Wort enthalten Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Benutzer gibt einen Wert ein und klickt auf den Back Button Benutzer gibt einen Wertein und klickt auf den Button Lokation best tigen Benutzer klickt auf das Lokalisieren Icon oder den Clubnamen links oben Benutzer klickt auf das Lokalisieren Icon ode
52. ERSWIL WW Studienarbeit HS2010 Snaplt 14 33 x AAYPE SnaplIt GER 14 33 02 Abbildung 7 13 GUI Camera Screen Foto knipsen ABAYE 0 Beschreibung e Das Men welches ber einen Klick auf die Standart Men Taste angezeigt wird enth lt zwei Icons Das Benutzer ID anzeigen und das Icon Bilder bersicht Benutzer ID anzeigen Seite 53 150 Beschreibung Die gew hlte Lokation wird im obereren Teil des Screens angezeigt Mit einem Klick auf den Namen oder das linke Icon kann die Lokation jederzeit neu bestimmt werden Usability Entscheide Das Kreuz in der oberen rechten Ecke bewirk dass die Lokation als aktueller Auftenhaltsort entfernt wird Ein Benutzer kann so jederzeit die Bilder ohne Lokationsangaben uploaden Auf die Angabe der Geo Koordinaten wie siein den Paperprototypes geplant war wurde verzichtet Die Geokoordinaten helfen dem Benutzer nur sehr wenig und der Screen wirkt sonst zu berladen EI 14 34 Snaptt Bilder bersicht Abbildung 7 14 GUI Camera Screen Men Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 E HSR HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 54 150 Beschreibung e Die Benutzer ID wird nach dem Klick auf das Icon Benutzer ID anzeigen in einem Popup dargestellt Usability Entscheide e Die Benutzer ID wird mit Bindestr
53. Es wurden nicht alle anfallenden Aufgaben hier nachgetragen Die Todo Liste diente vor allem dem Zweck dass keine Aufgabe vergessen ging 23 09 2010 Zwei UserStories aus Sicht eines Fotos CHS Foto 25 09 2010 knippsen u betrachten RN Foto knippsen u keine Location gefunden 23 09 2010 UserStories um Bad Case Szenarios erweitern 25 09 2010 23 09 2010 Stakeholder Rollen zuordnen bzw wer sind die 25 09 2010 Stakeholder evt auflisten 23 09 2010 Szenario aus Sicht eines Barbesitzers 25 09 2010 23 09 2010 Antrag 1 6 Android Device an Herr Stolze 25 09 2010 23 09 2010 Formulieren eines Vorschlag im Bezug auf die 25 09 2010 Nutzerrechte der HSR bzw von uns 30 09 2010 Abnahmetest der Iteration 1 ndern gt 06 10 2010 Abnahmetest ist erfolgreich wenn Herr Stolze ok gibt 30 09 2010 Empirischer Test Testplan Auf Iterationsseite ndern 30 09 2010 Im Projektplan JavaDoc als Qualit tsmerkmal 06 10 2010 festhalten gt Javadoc f r alle Klassen 14 10 2010 Iteration 1 muss eine Referenz auf den 20 10 2010 Projektantrag haben 14 10 2010 Usecase erg nzen Benutzer wird ber den Status 20 10 2010 seiner Aktionen informiert 14 10 2010 Usecase Bezug zu User Stories herstellen 20 10 2010 Verlinken 14 10 2010 Domain Modell in sp tere Iteration verschieben 20 10 2010 14 10 2010 Konkurrenz Analyse als Entwurf kennzeichnen 20 10 2010 14 10 2010 Anforderungsspezifikation in Iteration 4 20 10 2010 verschieben 14 10 20
54. Features werden anhand der User Stories festgelegt und als Use Cases formuliert Abnahmetest Die Initialdokumente werden vom Projektbetreuer Herr Prof Dr Stolze abgenommen Chores e SVN aufsetzen e Entwicklungsumgebung installieren e MediaWiki installieren Resultierende Dokumente e Projektplan Initial Dokument Risikomanagement Initial Dokument Use Cases User Stories Markt Analyse Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 17 150 e Konkurrenz Analyse Initial Dokument e Glossar Initial Dokument Sprint 2 Abbildung 5 3 bersicht Sprint 2 Beschreibung e User Story Foto Schiessen 3 2 1 online e Iterationszeitraum 4 6 Woche 04 10 25 10 e Abnahme 09 12 2010 Die zweite Iteration widmet sich bereits der Implementation des Systems Als erstes wird aus dem Domainmodel die Architektur ermittelt bzw Architektur Ideen gesammelt und analysiert Der Schwerpunkt liegt im Aufbauen von Knowhow f r die verwendeten Technologien und Konzepte Das Endresultat ist eine stabile und gut dokumentierte Architektur Der Software Prototyp implementiert die Architektur und den Ablauf Foto schiessen Foto heraufladen Foto ansehen auf einfachste Art und Weise Abnahme Test Die Qualit t der serverseitigen Architektur wird anhand von automatisierten Systemtests berpr ft Clientseitig wird d
55. HNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 12 150 5 Projektplan 5 1 Vision Snaplt sollte es Nachtschw rmern erm glichen w hrend dem Ausgang Fotos mit ihrem Smartphone zu knipsen und diese direkt im Internet zu ver ffentlichen Dabei werden die Fotos automatisch der Lokation zugeordnet in welcher sich der Benutzer befindet Nutzt eine grosse Menge an Personen diese Applikation entsteht im Internet eine Plattform die das Nachtleben widerspiegelt Diese Personen k nnen davon profitieren indem sie die Fotos von anderen im Internet betrachten und so die Stimmung in den verschiedenen Clubs Bars und Restaurants erahnen k nnen Snaplt bietet so auch die M glichkeit in unbekannten Regionen die passende Ausgangslokation zu finden Social Platforms beweisen dass Benutzer interessiert sind private Fotos mit der ffentlichkeit zu teilen Partyportale zeigen das Bilder von Partys im Internet betrachtet werden Diese zwei Erkenntnisse verbindet Snaplt mit neuen M glichkeiten der heutigen Technologien Snaplt interessiert sich nicht f r die privaten Daten der Benutzer Durch eine anonyme Anbindung an den Server kann ber die gespeicherten Informationen kein Bezug auf den Benutzer der hinter den Bildern steht gemacht werden Technisch ist besonders die REST Architektur interessant welche problemlos auch in anderen Projekten verwendet werden kann 5 2 Domainmodel class Domain Mo identification existson
56. HSR D HOCHSCHULE F R TECHNIK ei INSTITUT RAPPERSWIL F R Bi EI INFORMATIK SOFTWARE Snaplt Effizienter und Fehlertoleranter Foto Upload auf Android Mobilsystemen Studienarbeit Abteilung Informatik Hochschule f r Technik Rapperswil Herbstsemester 2010 Autoren Christoph S ess Raphael Nagy Betreuer Prof Dr Markus Stolze Projektpartner IFS W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 2 150 1 Abstract Abteilung Informatik Namen der Studierenden Christoph S ess Raphael Nagy Studienjahr HS 2010 Titel der Studienarbeit Snaplt Effizienter und Fehlertoleranter Foto Upload auf Android Mobilsystemen Examinatorin Examinator Prof Dr Markus Stolze Themengebiet Internet Technologien und Anwendungen Kommunikationssysteme Software Projektpartner IFS Institut Institut f r Software Kurzfassung Seit mehreren Jahren haben sich in der Schweiz online Partyportale etabliert Der Schwerpunkt ihrer T tigkeit liegt beim Publizieren von hochwertigen Party und Eventfotos Diese Bilder werden von semiprofessionellen Fotografen geschossen und nach dem jeweiligen Anlass auf der Webseite ver ffentlicht Weltweit werden t glich 300 000 Android Smartphones mit meist integrierter Kamera aktiviert Es ist abzusehen dass auch in der Schweiz diese Ger te damit zum Fotoapparat der Wahl werden Mit sich st ndig verbessernden Foto C
57. Implementationskonzepte Bild Upload sd Image Upload A ES service ImageService interface processor ProcessorFactory A busness ImageBusinessinterface Mobile Device l l I H rsiimageinew json son d I ug 1 H Put K_IMAGE K_USER_ID SONWrapper getDefaultPictureProcessorfRotstelmageProoessor Rotate Processor lt Picture gt l 1 I I I 1 I I I persist PictureStstement eege Sep ERREGER RINGE Lane I I I I l I I I I l l save Picture boolean EEEE ATEI EEEE PEET E E Abbildung 8 8 Sequenzdiagramm Bild Upload Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 Eo i HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 76 150 Beschreibung Der Anwender ruft die mittels HTTP PUT die Ressource rs image new json Als Inhalt dieser Anfrage muss das Bild als BASE64 enkodierter String im JSON String unter dem Schl ssel K_IMAGE abgelegt werden Zudem muss eine g ltige Benutzer ID K_USER_ID mitgegeben werden Optional kann die Club ID K_CLUB_ID mitgesendet werden Als Alternative kann der Name des Clubs mitgegeben werden unter K_CLUB_NAME Des Weiteren kann die genaue Position K_LOCATION_LATITUDE und K_LOCATION_LONGITUDE hinzugef gt werden Diese Eigenschaften werden dann vom Jersey Servlet entgegengenommen und an die entsprechende Image Service Methode be
58. L 9 5 2 Snaplt Client Studienarbeit HS2010 Snaplt Seite 108 150 Metric Total Mean Std Dev Maxim Resource causing Maximum Method 4 Number of Overridden Methods avg max per 19 0413 0 923 4 SnapltClient src ch snapit activities GalleryActivity java D sre 19 0487 0 984 4 SnapltClient src ch snapit activities GalleryActivity java b gen 0 0 0 0 SnapltClient gen ch snapit R java 4 Number of Attributes avg max per type 94 20483 3 078 12 SnapltClient src ch snapit activities LocationAwareActivity java b sre 94 241 3 208 12 SnapltClient src ch snapit activities LocationAwareActivity java b gen 0 0 0 0 SnapltClient gen ch snapit R java 4 Number of Children avg max per type 18 0391 1422 8 SnapltClient src ch snapit rest helper ServiceResultReceiver java D sre 18 0 462 1 533 8 SnapltClient src ch snapit rest helper ServiceResultReceiver java b gen 0 0 0 0 SnapltClient gen ch snapit R java a Number of Classes avg max per packageFrag 46 4182 2 367 8 SnapltClient src ch snapit activities resultreceiver D sre 39 39 23 8 SnapltClient src ch snapit activities resultreceiver b gen 3 d 0 7 SnapltClient gen ch snapit 4 Method Lines of Code avg max per method 1263 4 401 6 084 47 SnapltClient src ch snapit activities LocationAwareActivity java createEnterLocationDialog b sre 1263 4 401 6 084 47 SnapltClient src ch snapit activities LocationAwareActivity java createEnterLocationDialog b gen 0 0 0 4 Number of Methods avg max per type 268 5
59. Position Christoph S ess Raphael Nagy Studienarbeit Verbindung vorhanden Benutzer hat einen neuen Club eingegeben Verbindung vorhanden Benutzer hat keinen neuen Club eingegeben Keine Verbindung TC 2 2 3 Verbindung vorhanden Verbindung vorhanden Verbindung vorhanden Ausgabe 1 0 Seite 99 150 Foto wird erfasst heraufgeladen und dem korrekten neu erstellten Club zugeordnet Club wird als nicht validiert angezeigt Foto wird erfasst heraufgeladen und keinem Club zugeordnet Foto wird erfasst Es erscheint eine Mitteilung welche die Anzahl heraufgeladenen und ausstehenden Fotos anzeigt Galerie Ansicht wird angezeigt Mitteilung wird gel scht Ausstehende Fotos werden heraufgeladen Mitteilung wird angezeigt und zum Schluss Kamera Ansicht dargestellt Foto wird ok heraufgeladen und auf Webseite korrekt angezeigt nicht verdreht Foto wird ok heraufgeladen und auf Webseite korrekt angezeigt nicht verdreht Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Benutzer knippst ein Foto Kamera in Landscape Orientierung nach links gekippt Benutzer knippst ein Foto Kamera in Portrait Position nach rechts gekippt Benutzer ffnet das Option Men und klickt auf das Benutzer ID anzeigen Icon Benutzer ffnet das Option Men und klickt auf das Galerie Icon Benutzer ffnet
60. R TECHNIK RAPPERSWIL Studienarbeit HS2010 Snaplt Seite 59 150 Beschreibung zur Grafik A B Der Client f hrt einen der folgenden Anfragen aus GET POST PUT DELETE Diese Anfragen beziehen sich immer auf eine bestimmte Web Ressource z B ein Bild Diese basieren auf dem REST Ansatz von Roy Fielding Die Anfragetypen unterscheiden sich nur ein wenig Folgende Aufz hlung soll zum Verst ndnis beitragen o GET Als Query Parameter sollte eine Transaktions ID Parameter Name transID vom Typ Integer32 mitgegeben werden Diese wird in der Antwort des Servers mitgeschickt Die Anfrage sollte kein Body haben dieser wird ignoriert o POST Hier wird wie bei der GET Anfrage eine Transaktions ID ben tigt siehe GET Auch hier wird diese in der URL als Parameter mitgeschickt Zus tzlich sollte ein String im Body der Anfrage als JSON String mitgeschickt werden Dieser kann verschiedene Informationen enthalten o PUT Hier wird wie bei der GET Anfrage eine Transaktions ID ben tigt siehe GET Auch hier wird diese in der URL als Parameter mitgeschickt Zus tzlich enth lt der Body ein JSON String mit verschiedenen Informationen o DELETE Gleich wie GET nur das eine Ressource gel scht wird Die Antwort auf eine Anfrage Diese bezieht sich immer auf die vorherige Anfrage Jede Antwort enth lt im HTTP Body ein JSON String mit spezifischen Informationen Es sollte immer eine Transactions ID mitgeschickt w
61. SE URL CLUB gt all json transId lt Int32 gt amp userld lt Userld gt Beispiel GET lt BASE URL CLUB gt all json transId 1234567 amp userld 1u9900gueoswginu Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 E WW HSR HOCHSCHULE F R TECHNIK RAPPERSWIL Studienarbeit HS2010 Snaplt Seite 117 150 elubs elubId 13 clubLatitude 47 228573987139136 elubLongitude 8 821849822998047 clubName Bonanno Bistro amp Bar valid true clubId 17 celubLatitude 47 22646109562935 elubLongitude 8 815562725067139 clubName Corso Lounge walid true clubId 8 clubLatitude 47 442213000000002 elubLongitude 9 3442640000000008 clubName Engelburg Schulhaus valid true IJ status 0 transId 1234567 Abbildung 10 5 JSON Antwort Alle Clubs In diesem Beispiel wurde der Benutzer mitgegeben und somit werden nur diese Clubs zur ckgeschickt in denen dieser mindestens ein Bild gemacht hat Wenn kein Benutzer angegeben wurde dann werden alle Clubs welche validiert sind zur ckgeschickt 10 2 Installation Server Um die Snaplt Server Applikation auf einem Server zu installieren sind folgende Schritte notwendig 1 Tomcat Version 6 herunterladen und installieren a Port 80 2 PostgreSQL Version 8 4 herunterladen und mit den Standard Werten installieren a Passwort postgres b User postgre
62. Server geladen werden k nne Den Begriff anonym definieren wir wie folgt Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 44 150 Alle auf dem Server gespeicherten Daten lasen keine R ckschl sse auf den Benutzer der das Bild heraufgeladen hat zu 7 3 2 Problem Die Anforderung der anonymen Daten auf dem Server und der Anforderung dass Benutzer trotzdem ihre Fotos l schen und relokalisieren k nnen konkurrenzieren sich Um Benutzer f r eine der vorhin genannten Aktionen authentifizieren zu k nnen braucht es ein eindeutiges gemeinsames Geheimnis Dies wiederum verletzt die Anforderung eines anonymen Bilderuploads 7 3 3 L sung Der Benutzer erh lt einmalig eine vom Server generierte Identifikation Nach Buchmann ist diese Identifikation um die Zugangsberechtigung die an eine bestimmte Identit t gebunden ist zu berpr fen Dieses Verfahren wird Identifikationsprotokoll genannt und in diesem demonstriert der Beweiser dem Verifizierer dass der Verifizierer gerade mit dem Beweiser kommuniziert oder kurz vorher mit ihm kommuniziert hat vgl BUCO4 S 227 Diese Identifikation nach Buchmann schickt der Server dem Benutzer und speichert gleichzeitig im System den SHA 256 Hash der Identifikation persistent ab Somit kennt der Server die urspr ngliche Identifikation nicht mehr Der Client kann sich mit d
63. SnapltServer test ch snapit util SnapltServer src ch snapit business SnapltServer src ch snapit business SnapltServer test ch snapit persist ZS e b E bi SnapltServer test ch snapit service TestSuite java SnapltServer src ch snapit service SnapltServer src ch snapit service SnapltServer test ch snapit persist 10 SnapltServer src ch snapit service ImageService java 10 SnapltServer src ch snapit service lmageService java SnapltServer test ch snapit stress Client java 0 94 SnapltServer src ch snapit domain PictureDto java 0 94 SnapltServer sre ch snapit domain PictureDto java 0 667 SnapltServer test ch snapit service TestSuite java SnapltServer src ch snapit business SnapltServer src ch snapit business SnapltServer test ch snapit service Ko to ra No SnapltServer test ch snapit service TestSuite java SnapltServer test ch snapit util SnapltServer test ch snapit util SnapltServer src ch snapit util o ARA E PAA pa Pe SnapltServer src ch snapit persist PictureStatement SnapltServer src ch snapit persist PictureStatement SnapltServer src ch snapit business BusinessFactor SnapltServer src ch snapit business BusinessFactor Seite 106 150 Method getAll getAll prepareDbForTesting getlmagesJson getlmagesJson Client Wie McCabe vorschl gt ist die zyklomatische Zahl nicht h her als 10 Somit ist der Code einfach und verst ndlich Auff llig ist der hohe Wert der Anzahl von Parame
64. TECHNIK RAPPERSWIL WW 21 Nov 10 22 Nov 10 22 Nov 10 22 Nov 10 22 Nov 10 22 Nov 10 23 Nov 10 23 Nov 10 24 Nov 10 24 Nov 10 24 Nov 10 KnowHow Aufbau 25 Nov 10 25 Nov 10 25 Nov 10 26 Nov 10 29 Nov 10 29 Nov 10 29 Nov 10 30 Nov 10 1 Dez 10 1 Dez 10 1 Dez 10 1 Dez 10 2 Dez 10 Christoph S ess Raphael Nagy Studienarbeit HS2010 Snaplt Implementieren Implementieren Implementieren Implementieren Implementieren Implementieren Implementieren Implementieren Implementieren Implementieren Implementieren Implementieren Besprechung Implementieren Implementieren Implementieren Implementieren Implementieren Implementieren Implementieren Testen Testen Implementieren Studienarbeit Christoph S ess Christoph S ess Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Christoph S ess Raphael Nagy Christoph S ess Raphael Nagy Raphael Nagy Christoph S ess Raphael Nagy Christoph S ess Raphael Nagy Christoph S ess Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Christoph S ess Raphael Nagy Raphael Nagy Christoph S ess Ausgabe 1 0 Seite 133 150 Refactoring Webseite Webseite Einige Verbesserungen Tests Services Webseite Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW 2 Dez 10 4 Dez 10 6 Dez 10 6 Dez 10 6 Dez 10 7 De
65. Use GPS satellites unchecked Danach wird das Handy f r 30 Minuten ausgeschaltet und danach wieder eingeschaltet Der Test beginnt danach 1 Snaplt wird gestartet Es wird angezeigt dass keine Locations verf gbar sind Mittels PUT Image wird ein Foto aufgenommen Das soeben geknipste Foto wird mit GET Image angezeigt Es erscheint keine eine Liste mit einigen Lokationen aus der virtuellen Partymeile 2 Es wird keine Auswahl angezeigt 3 Das Foto wird erfolgreich heraufgeladen Eine entsprechende Meldung erscheint 4 Das Foto erscheint ohne Lokationsangabe Das beobachtete Verhalten entsprach dem erwarteten e gt Ausgangslage Die Testperson befindet sich in der N he des Geb ude Nr 3 Hauptgeb ude auf der Partymeile e Snaplt wird gestartet e Es wird eine Liste mit Lokationen aus der virtuellen Parymeile angezeigt e Es erscheint eine Liste mit einigen Lokationen aus der Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 ed HSR HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 95 150 Verhalten virtuellen Partymeile e Die Liste enth lt folgende Eintr ge nicht o Kebab o Engelburg Schulhaus Tats chliches Das beobachtete Verhalten entsprach dem erwarteten Verhalten 9 3 Systemtest Snaplt 9 3 1 Client Der folgende Testplan deckt s mtliche definierten UseCases ab Beim Durchf hren der Tests wurde neben der Kor
66. XXX XXXX XXXX XXXX vorhanden sein wird der Benutzer informiert Gib deine Benutzer ID ein Benutzer ID berpr fen Usability Entscheide e Anzeigen des Eingabeformats als Hint damit Benutzer erkennt um welche Eingabe erwartet wird Abbildung 7 10 GUI Activation Screen Benutzer ID eingeben Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 52 150 Camera De 14 31 Beschreibung e Sobald die Kamera Ansicht x lt angezeigt wird l dt das Programm die nahegelegenen Lokationen vom Server Usability Entscheide e Der Ladevorgang ist jederzeit abbrechbar Wo bist du Lokationen werden geladen Abbildung 7 11 GUI Camera Screen Lokationen laden Ze 14 32 Beschreibung e Die ermittelten Lokationen k nnen Wo bist du aus einer Liste ausgew hlt werden Ist die Lokation nicht vorhanden Geb ude Praktikum kann auch eine neue bzw eine nicht aufgelistete Lokation eingetragen Geb ude Physik werden Usability Entscheide e Die Eingabe eines Namens bewirkt dass nur die Lokationen angezeigt werden die den eingegeben String enthalten Dies verbessert die bersicht ABRRSAR 1 Abbildung 7 12 GUI Camera Screen Lokation eingeben Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 Ed HSR HOCHSCHULE F R TECHNIK RAPP
67. adedPicture Picture save Club boolean getPicture Picture Picture handleClub Sesson Picture void PictureStstement save Picture boolean DER Abbildung 8 15 Persist Klassen Die Grafik zeigt alle Klassen im Persist Package Klassen e AbstractTransactionManager o Diese abstrakte Klasse wird genutzt um den Verbindungsaufbau bzw Abbau von Datenbanktransaktionen zu regeln Es werden drei Methoden zur Verf gung gestellt um von Kind Klassen aufgerufen zu werden Diese Kind Klassen bergeben einfach die gew nschte berschriebene Methode der DefaultStatement Klasse und die Eltern Klasse f hrt diese in der gesicherten Umgebung aus siehe Codeinjection e F r die spezifischen Klassen ClubStatement PictureStatement UserStatement wird an dieser Stelle direkt auf den Quellcode verwiesen Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 86 150 ch snapit processor Beschreibung Dieses Package dient vor allem um Bilder zu bearbeiten Bis jetzt beinhaltet es Prozessoren also Code um Bilder zu verkleinern Meta Informationen zu l schen und kleine Vorschaubilder zu generieren Durch eine Factory kann ein bestimmter Satz bzw List von Prozessoren erstellt werden die Bilder bearbeiten k nnen Diagramm class processor enumerstion Ro
68. als Vorreiter von Places gesehen da es die M glichkeit den aktuellen Standort auf Facebook zu publizieren bereits vorher erm glichte Neben der Verkn pfung mit Social Networks agiert Foursquare auch als Reality Spiel Durch das Einchecken publizieren des aktuellen Standorts sammelt der Benutzer Punkte anhand deren er gewisse Dienste im realen Leben beanspruchen kann z B gratis Kaffee im Starbucks Partyportale e usgang ch e Jautundspitz ch e tillate com e USW Die aufgelisteten Partyportale bauen auf derselben Grundidee auf Rekrutierte Fotografen knipsen Fotos auf Partys und Events Diese Fotos werden dann im Verlauf des n chsten Tages vom Fotograf ber das Internet auf dem Partyportal ver ffentlicht Die Fotos k nnen dann von den Website Besuchern eingesehen und kommentiert werden Im Laufe der Zeit entwickelten sich die Partyportale weiter zu Social Communities Eventkalendern und Magazinen die rund um die Thematiken Events Nachtleben und Party publizieren Die Partyportale setzen beim Sammeln der Bilder vor allem auf Qualit t und auf bekannte Events und Partys Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 35 150 Beurteilung der Marktposition Die beiden Konkurrenztypen unterscheiden sich in mehreren Punkten von unserem Produkt Die Kernfunktion der Lokalisierungs Dienste ist das Ve
69. alsche Implementierung durch den Programmierer e M llhalde Internet Dieser Titel ist absolut gerechtfertigt Gerade bei Trendtechnologien wie Android versuchen tausende von Anf ngern Tutorials Anleitungen und Tipps im Internet zu verbreiten Leider sind sehr viele der Beispiele sehr schlecht und auf die Beispielimplementation absolut kein Verlass Wer blind kopiert wird irgendwann auf magische Fehler bei der Ausf hrung des App stossen Diese Fehler zu finden und zu beheben kostet massiv Zeit e Dokumentation Leider geben sich nicht alle Entwickler von solchen Technologien so viel M he mit der Dokumentation wie es Google bei Android macht Das Android Framework ist im Vergleich zu anderen Technologien sehr gut dokumentiert auch wenn die einte oder andere L cke noch zu finden ist Fazit Das Arbeiten mit neuen Technologien macht Spass und ist sehr interessant Wer die Motivationskurve hoch halten will sollte die Sache jedoch vorsichtig angehen und weder dem Framework noch den Dokumentationen blindlinks vertrauen 11 3 3 Media Wiki als Projektplattform In unserem Projekt haben wir ein einfaches Media Wiki als Projektplattform eingesetzt Das Wiki ist innerhalb von wenigen Minuten installiert und konfiguriert Auch das Arbeiten mit dem Wiki ist sehr einfach Wir haben sehr gute Erfahrungen damit gemacht und w rden es immer wieder einsetzen Im Gegensatz zu der Variante direkt mit Dokumenten zu arbeiten ist im Wiki alles zentral vorha
70. ansId 1234567 amp userld 1u9900gueoswginu transld 1234567 status 0 fimageld jpg Dieser Aufruf erfolgt gleich wie der GET von imageld json mit dem Unterschied dass hier nur das Bild in bin rem Format zur ckgegeben wird ohne zus tzliche Informationen Wichtig Wenn kein size Parameter mitgegeben wurde dann kommt kein Bild zur ck Es muss also zwingend eine Gr sse von 1 2 oder 3 mitgeschickt werden Beispiel GET lt BASE URL IMAGE gt 5 jpg amp size 2 Bild 5 jpg Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 111 150 Abbildung 10 1 Beispielbild last json Beschreibung Der last json Aufruf verh lt sich exakt gleich wie der GET imageld json Aufruf Einziger Unterschied ist dass hier einfach das zu letzt heraufgeladene Bild angezeigt wird Somit f llt die Bild ID weg Aufruf GET lt BASE URL IMAGE gt Jast json transld lt Int32 gt Beispiel GET lt BASE URL USER gt Jlast json transId 1234567 amp size 1 id 5 date 1292353538402 imageByte BASE64_IMAGE clubName valid fals e transld 1234567 status 0 last jpg Beschreibung Der last json Aufruf verh lt sich exakt gleich wie der GET imageld jpg Aufruf Einziger Unterschied ist dass hier einfach das zu letzt heraufgeladene Bild angezeigt wird Somit f llt die Bild ID weg Aufruf GET lt
71. aphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 141 150 e Nochmals Bewertungskriterien durchgehen Offene Fragen e M glichkeit Bachelor Arbeit darauf aufzubauen und fortzuf hren e Antrag Android Handy 2 2 Entscheidungen e Vereinbarung erfolgreich unterzeichnet e Erweiterungsidee User macht viele Fotos Amateur gt Profi e Bewertungskriterien besprochen bis Punkt 110 e Handy o 1 6 Android bekommen wir bis sp testens n chste Woche o 2 2 Android k nnen wir tageweise auslehnen e Fachliche Risiken werden bei der jeweiligen Iteration im Analysedokument festgehalten Resultierende ToDos e Idee der Walkcam untersuchen Gedanken machen gt nicht in Dokumentation erw hnen e In3 Verschiedene Clubs Bars gehen am Wochenende o 5 Fotos schiessen mit Koordinaten Je 1 Foto schiessen nachdem Handy f r 30 Minuten abgeschaltet ist e Fachliche Risikofaktoren erg nzen Koordinaten bestimmen als Risikofaktor aufnehmen e Motivation verst ndlicher machen o Walkcam o Benutzer e Visionsdokument erstellen gt Sinn e Abkl rung Sony Automatikcam e Scrum studieren Sitzung vom 14 10 2010 e Woche 4 e Teilnehmer RN CHS MS e Abgenommen am 21 10 2010 Traktanden e Abnahme Sitzungsprotokoll e Besprechen Bewertungskriterien ab Punkt 110 e Best tigung Abschluss 1 Iteration e Weitere Resultate amp Probleme bes
72. be Dokumentes Formatierung usw e 2 CDs brennen e 1x Schwarz Weiss gedrucktes Dokument an Herrn Stolze e JavaDoc Kommentare bei Klassen und Schnittstellen e Inhaltsverzeichnis Review Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 148 150 12 7 Urheber und Nutzungsrechte Vereinbarung Gegenstand der Vereinbarung Mit dieser Vereinbarung werden die Rechte ber die Verwendung und die Weiterentwicklung der Ergebnisse der Studienarbeit SnapIt von Raphael Nagy und Christoph S ess unter der Betreuung von Markus Stolze geregelt Urheberrecht Die Urheberrechte stehen der Studentin dem Student zu Verwendung Die Ergebnisse der Arbeit d rfen sowohl von der Studentin dem Student wie von der HSR nach Abschluss der Arbeit verwendet und weiter entwickelt werden Rapperswil den Student Raphael Nagy Rapperswil den Student Christoph S ess Rapperswil den Prof Dr Markus Stolze Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 149 150 12 8 Selbstverfassungserkl rung Erkl rung Wir erkl ren hiermit e dass wir die vorliegende Arbeit selber und ohne fremde Hilfe durchgef hrt haben ausser derjenigen welche explizit in der Aufgabenstellung erw hnt ist oder mit
73. ce Schicht Darin enthalten sind alle Klassen die direkt von aussen Web angesprochen werden k nnen Jede REST Anfrage wird in speziellen Klassen entgegen genommen und verarbeitet Pro Ressource ist eine konkrete Klasse zust ndig Diese werden in einem sp teren Architekturdokument detaillierter beschrieben Diese Klassen delegieren dann die entsprechenden Aufgaben an die Business Schicht um dort weiter verarbeitet zu werden und zus tzliche eine entsprechende Antwort zu generieren In der Service Ebene wird die Anfrage entgegen genommen und die Antwort zur ckgeschickt Bevor dem Abschicken wird die vom Client bergebene Transaktions ID wieder zur Antwort hinzugef gt Falls ein Fehler auf der Serverseite auftritt oder die Anfrage unvollst ndig sein sollte wird trotzdem eine Antwort generiert aber mit einem Property namens status welches dann denn Fehlerwert 1 zugewiesen wird In Erfolgsfall wird dem Status immer den Wert 0 zugewiesen Jeder andere Wert ber 0 bedeutet einen Fehler Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 El HSR HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 66 150 ch snapit business Business In dieser Schicht wird die Anfrage auf ihre Vollst ndigkeit gepr ft und entsprechend den gew nschten Operationen an weiter unterliegende Schichten gereicht F r die Kapselung der vielen Parameter wird ein JSON Wrapper Objekt erstellt u
74. chiedene Hilfsmethoden f r die JSON Verarbeitung bereit e LogClass o Enth lt den Logger der Applikation e Rotatelmage o Ist f r das Drehen von Bildern zust ndig Weitere Informationen sind auch im Processor Package zu finden e SnapltConfig o Globale Konfigurationsdatei welche einfachen Zugriff auf die Datei snapit properties bietet Die Klasse JSONConstants enth lt alle Konstanten sogenannte Schl ssel welche f r den Meldungsaustausch ber die REST Schnittstellegebraucht werden Dabei werden sogenannte Schl ssel KXXX K f r Key und Werte V_XXX V f r Value definiert Des Weiteren enth lt sie auch Konstanten f r die angebotenen Ressourcen R_XXX Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 HSR 3 HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 89 150 Die nachfolgende Grafik zeigt den Inhalt von JSONConstants K_CLUB_ID String clublid fresdOnl K_CLUB_ LOCATION LATITUDE String dubLatitude fresdOnly K_CLUB_LOCATION LONGITUDE String dlubLongitude fresdOnly K_CLUB_ NAME String clubName fresdOnly K_CLUB_ VALID String valid fresdOnly K_CTLUBS String clubs resdOnl K_DATE END String endDate fresdOnl K_DATE_ START String startDate fresdOnly K_IMAGE String imageByte fresdOnly K_IMAGE_ BELONGS String belongs fresdOnl K_IMAGE COUNT String count fresdOnly KMAGE DATE String date
75. cht auf die Party gezeigt Ein weiteres Problem ist dass meist nur die angesagtesten Clubs bedient werden Kleine oder weit vom Stadtzentrum entfernte Clubs werden oft gar nie von den Fotografen besucht Durch das manuelle Hochladen der Bilder gibt es Abbildung 2 1 SnapIt Applikation bis zu einem Tag Verz gerung bis die Fotos im Internet verf gbar sind Weltweit werden t glich 300 000 Android Smartphones mit meist integrierter Kamera aktiviert Es ist abzusehen dass auch in der Schweiz diese Ger te damit zum Fotoapparat der Wahl werden da schon jetzt jedes dritte Mobiltelefon ein Smartphone ist Mit sich st ndig verbessernden Foto Chips wird es m glich dass Party Fotos nun von jedermann mit dem Smartphone geschossen werden und Party Portale mit benutzergenerierten Inhalten gef llt werden Dies hat diverse Vorteile gegen ber den bestehenden Partyportalen Der Hauptvorteil liegt darin dass die Fotos schon nach kurzer Zeit auf der Webseite abrufbar sind Zudem kann bei benutzergenerierten Inhalten viel mehr und vor allem eine gr ssere Anzahl Clubs abgedeckt werden Jeder hat dann die M glichkeit kreativ und gestalterisch mitzuwirken indem er oder sie eigene Bilder knipst und hoch l dt Ideal w re hierbei auch wenn die Fotos automatisch einer Party oder Eventlokation zugeordnet w rden Diese wird anhand der bermittelten Geo Koordinaten bestimmt Die technische Voraussetzung f r einen Service der anhand Geo Koordinaten d
76. chteile e Zustandslos d h es muss alles f r eine erfolgreiche Transaktion in einem Request mitgeschickt werden e Die verschiedenen URIs m ssen dynamisch generiert werden Tomcat Beschreibung Tomcat ist ein Open Source Applikationsserver der Java Servlet und Java Server Pages interpretieren und ausf hren kann e Tomcat Einsatz Tomcat ist der Container in dem die Snaplt Server Applikation l uft Alternativen e Jetty einfacherer Server als Tomcat jetty e JBoss Komplexerer Applikationsserver Vorteile e Kostenlos e Einfache Konfiguration nderbarkeit e L uftauch auf Linux Plattformen bertragbarkeit Nachteile e Kaum skalierbar e Aufw ndige Konfiguration f r Load Balancing SQLite Beschreibung SQLite ist ein DBMS f r schmale Datenbankanwendungen Im Gegensatz zu anderen DBMS hat SQLite einen kleineren Fuktionsumfang ist jedoch performanter und kleiner Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 69 150 in der Datenmenge und somit effektiver f r den Einsatz auf leistungsschw cheren Endger ten SQLite eignet sich nur wenn kleine Datenmengen verwaltet werden e SQLite Home Page Einsatz SQLite wird auf dem Android Smartphone eingesetzt um die Client Server Transaktionen zu verwalten Alternativen db4objects DBMS mit ORM ist das einzig bekannte DBMS Sy
77. ckt lange auf ein Foto und w hlt im Menu den Eintrag L schen Benutzer klickt lange auf ein Foto und w hlt im Menu den Eintrag L schen Christoph S ess Raphael Nagy Studienarbeit Keine Verbindung Verbindung vorhanden Keine Verbindung Verbindung vorhanden Foto vorhanden Keine Verbindung Foto vorhanden Ausgabe 1 0 Seite 101 150 Die Galerie Ansicht wird mit einer keine Verbindung Meldung angezeigt Android Desktop wird ok angezeigt Das Foto der zugeordnete Club sowie der Aufnahmezeitpunkt werden angezeigt Es wird eine keine Verbindung Meldung in der Foto Ansicht angezeigt Die Kamera Ansicht wird angezeigt Das Foto wird gel scht Das Foto wird nicht gel scht es erscheint eine keine Verbindung Meldung Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL E E Studienarbeit HS2010 Snaplt Benutzer klickt lange auf ein Foto und w hlt im Menu den Eintrag Relokalisieren Benutzer w hlt einen Club aus der Liste und klickt Lokation best tigen Benutzer gibt einen nicht vorhanden Club ein und klickt Lokation best tigen Benutzer gibt einen Club ein und klickt Lokation best tigen Benutzer klickt auf die Men Taste und klickt auf das Icon Kamera Benutzer klickt auf die Men Taste und klickt auf das Icon Credits Benutzer klickt auf die Men Taste und klickt auf das Icon Aktualisieren Ben
78. ction Id ein und klickt auf den Button Delete Tr Der Benutzer f hrt eine POST Transaktion aus Studienarbeit HS2010 Snaplt Unterbrechungsfreie Internetverbindung vorhanden mind eine Transaktion am laufen Unterbrechungsfreie Internetverbindung vorhanden Unterbrechungsfreie Internetverbindung vorhanden mind eine registrierte Transaktion vorhanden Unterbrechungsfreie Internetverbindung vorhanden mind eine registrierte Transaktion vorhanden Keine Internetverbindung vorhanden Es werden alle laufenden Transaktionen angezeigt Die Transaktion wird angezeigt wenn der Benutzer den Button Transaktion anzeigen anklickt Die Transaktion wird erfolgreich ausgef hrt siehe Testfall 1 Die Transaktion wird gel scht Es wird eine Meldung KEINE INTERNETVERBINDUNG VORHANDEN angezeigt und die Transaktion wird gel scht Seite 91 150 9 2 Lokalisierung F r die Lokalisierungstests wurde eine fiktive Testlandschaft erstellt 9 2 1 Ziel Die virtuelle Partymeile HSR dient zum Testen der Lokationsbestimmung So kann mit dem Android Mobiltelefon unter echten Bedingungen getestet werden Hierzu wird jedem Geb ude einen virtuellen Club zugeordnet und dieser wird dann mit den richtigen Koordinaten in der Datenbank erfasst F r den produktiven Einsatz k nnen die Daten in der Datenbank ausgetauscht werden Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 2
79. ctionDbHelper 1 L T I 1 1 1 I 1 i I 4 call 1 1 1 I 1 1 1 ch shapit rest connection Abbildung 8 2 Package Diagramm REST Client Ablauf Die folgende Aufz hlung beschreibt den Ablauf der serverseitigen Kommunikation 1 Will eine Activity auf Daten vom Server zugreifen oder Daten an den Zielserver bermitteln ruft sie die gew nschte REST Methode auf einer RESTServiceHelper Instanz auf Dem Helper bergibt sie s mtliche essentiellen Informationen dazu geh ren ein ResultReceiver und die Ziel URL Bei POST und PUT kann zus tzlich ein JSON Wrapper bergeben werden der die zu bermittelnden Daten enth lt 2 Im RESTServiceHelper werden die Informationen zerlegt und daraus ein Intent erstellt Zur berwachung der Transaktion ber s mtliche Schichten auch auf dem Server wird eine eindeutige Transaktions Nummer erstellet und ebenfalls dem Intent bergeben Der Intent wird dann an den RESTService gesendet sofern eine Datenverbindung besteht Ansonsten wird der Vorgang fr hzeitig beendet und der Aufrufer ber den ResultReceiver informiert 3 Ist der Service gestoppt wird er gestartet ansonsten bleibt er aktiv Der Service ruft nun abh ngig von der REST Methode einen asynchronen Task auf Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL E Studienarbeit HS2010 Snaplt Seite 61 150 4 In REST Meth
80. ctivities b sre 0 065 0 103 0 286 SnapltClient src ch snapit activities b gen 0 0 0 SnapltClient gen ch snapit Abbildung 9 11 Codestatistik Teil 2 Metrics Metric Total Mean Std Dev Maxim Resource causing Maximum 4 Specialization Index avg max per type 0 203 0 445 1 75 SnapltClient src ch snapit activities CameraActivity java D sre 0 24 0 475 1 75 SnapltClient src ch snapit activities CameraActivity java b gen 0 0 0 SnapltClient gen ch snapit R java 4 Weighted methods per Class avg max per typ 428 9 304 10 54 45 SnapltClient src ch snapit activities GalleryActivity java D sre 428 10 974 10 616 45 SnapltClient src ch snapit activities GalleryActivity java b gen 0 0 0 0 SnapltClient gen ch snapit R java 4 Number of Static Attributes avg max per type 214 4652 8 357 41 SnapltClient gen ch snapit R java p gen 113 16143 15 132 41 SnapltClient gen ch snapit R java D sre 101 2 59 3 65 15 SnapltClient src ch snapit rest transaction RESTTransaction java Abbildung 9 12 Codestatistik Teil 3 Metrics Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 109 150 10 Benutzer und Entwicklerhandbuch 10 1 Webservice Extension Developer Handbuch Die folgenden Kapitel beschreiben wie die Snaplt REST Schnittstellen angesprochen werden k nnen Diese Schnittstellen k nnen gebraucht werden um eine Webseite ode
81. d Server schon vorgegeben Darauf aufbauen wurden die konkreten Webservices und die Benutzeroberfl che implementiert 8 4 Client 8 4 1 bersicht Die Clientapplikation ist nach dem MVC Prinzip aufgebaut Das Model sowie der Control amp Data Layer bestehen aus reinen Java Klassen Die View hingegen wurde zum gr ssten Teil deklarativ als XML Dateien definiert Klassendiagram CONTROL ch snapitbom ch snapitrest iE ch snapit helper amp Club Image DATA Siehe Client Server Architektur ch snapit activities BaseActivity LocationAwareActivity ActivationActivity CreditsActivity ImageActivity GalleryActivity CameraActivity MODEL ch snapit activities resultreceiver DeletelmageResultReceiver GetAllimagesResultReceiver GetimageResultReceiver Cl CG GetValidateUserldResultReceiver GetNearbyClubsResultReceiver GetUserldResultReceiver PostNewClubResultReceiver PutimageResultReceiver ch snapit view FontFitButton ImageAdapter VIEW XML Views Constants Logger LocationHelper Abbildung 8 5 Klassendiagramm Client Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 72 150 Control amp Data Der Con
82. das Option Men und klickt auf das Galerie Icon Benutzer ffnet das Option Men und klickt auf das Galerie Icon Christoph S ess Raphael Nagy Studienarbeit Verbindung vorhanden Verbindung vorhanden Verbindung vorhanden es sind keine Fotos vom Benutzer vorhanden Verbindung vorhanden es sind weniger als Fotos vom Benutzer vorhanden Verbindung vorhanden es sind mehr als 11 Fotos vom Benutzer vorhanden Ausgabe 1 0 Seite 100 150 Foto wird ok heraufgeladen und auf Webseite korrekt angezeigt nicht verdreht Foto wird heraufgeladen und auf Webseite korrekt angezeigt nicht verdreht Die korrekte Benutzer ID wird im Format XXXX XXXX XXXX XXXX angzeigt Die Galerie mit einer Keine Fotos Meldung wird angezeigt Die Galerie wird angezeigt alle Fotos werden nach Aufnahmedatum sortiert dargestellt kein Mehr Fotos Button ist am Ende der Liste ersichtlich Die Galerie wird angezeigt alle Fotos werden nach Aufnahmedatum sortiert dargestellt ein Mehr Fotos Button ist am Ende der Liste ersichtlich Letzte nderung 23 12 2010 10 32 00 d HSR HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Benutzer ffnet das Option Men und klickt auf das Bilder bersicht Icon Benutzer klickt auf den Back Button Galerie Benutzer klickt auf ein Foto Benutzer klickt auf ein Foto Benutzer klickt auf den Backbutton Benutzer kli
83. dem Betreuer schriftlich vereinbart wurde e dass wir s mtliche verwendeten Quellen erw hnt und gem ss g ngigen wissenschaftlichen Zitierregeln korrekt angegeben habe Ort Datum Ort Datum Name Unterschrift Name Unterschrift Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 150 150 12 9 Javadoc Die JavaDoc f r die beiden Projekte befinden sich auf der beiliegenden CD 12 10 Inhalte der CD e Abstract e Studienarbeit e Poster e Produktevideo e JavaDoc Snaplt Client e JavaDoc Snaplt Server e Snaplt Client e Snaplt Server e Snaplt Client APK Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00
84. e rechtliche Frage da die Bilder ja dann ver ffentlicht werden und man daf r die Erlaubnis der fotografierten Person ben tigt Person C e Ich finde das eine mega coole Idee W rde die Seite anschauen und die App herunterladen Person D 1 Brauch ich nicht Manchmal ist es auch besser wenn man die Fotos zuerst am n chsten Tag anschauen kann bevor man sie ver ffentlicht 2 Nein Schau ich mir schon heut nicht an Partyfotos sind nicht so spannend 3 Nein Erstens kein iPhone Android Handy Zweitens Brauch ich nicht Person E e Du hast sehr geringe Investitionskosten Und bei der Entwicklung der Software lernst du auch etwas Ob du damit Geld verdienst bezweifle ich Ich pers nlich w rde dein Angebot nicht nutzen weil ich ein Portal habe Facebook und das reicht mir Ich sehe deine Verkaufsargumente w re f r mich aber kein Benefiz Auch aufgrund der Privatsph re Person F 1 Finde ich keine gute Idee es gibt schon viel zu viele Fotos im Internet und ehrlich gesagt m chte ich nicht auf einem dieser Fotos sein ich lasse mich auch nicht von Partyfotografen fotografieren weil nicht jeder wissen muss wo ich im Ausgang war oder mit dieser Anwendung wo ich im Ausgang bin Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 RAPPERSWIL Studienarbeit HS2010 Snaplt Seite 33 150 2 Nein ich w rde die Website nicht besuchen 3 Schlussfolgerung nein
85. eigt e Sollte ein unerwarteter Fehler auftreten oder die Verbindung nicht vorhanden sein wird der Benutzer informiert Christoph S ess Raphael Nagy Studienarbeit Seite 50 150 Beschreibung e Der Aktivierungsscreen wird beim ersten Starten der Applikation angezeigt e Die beiden Textabschnitte informieren den Benutzer einerseits kurz ber den Nutzen der Applikation und andererseits ber den Sinn der Benutzer ID e Der Benutzer kann von diesem Screen aus eine Benutzer ID generieren oder eine bestehende eingeben Usability Entscheide e Nutzen der Benutzer ID kurz beschrieben mit Hinweis auf die Anonymit t AAYPE Snapi t GESCHT E SNAPIIT Herzlich Willkommen bei Snaplt Mit Snaplt ver ffentlichst du deine Nightlife Fotos live und direkt von der Partymeile Die Bilder werden vollautomatisch innert wenigen Aktivierung Benutzer ID wird generiert LG Abbildung 7 9 GUI Activation Screen Benutzer ID generieren Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 Ei HSR HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 51 150 Beschreibung e Nach dem Klicken auf den Button ID eingeben erscheint diese Maske e Der Benutzer wird ber die Eingabe einer ung ltigen Benutzer ID informiert Sp e Wurde eine g ltige ID eingeben Aktivierung erscheint die Kamera Ansicht e Sollte ein unerwarteter Fehler auftreten oder die Verbindung nicht K
86. ein JSON String der sp ter in ein JSON Objekt geparst werden kann ch snapit rest helper Das Helperpackage enth lt diverse Klassen die einerseits das verwenden der Kommunikationsschnittstelle vereinfachen und andererseits mehrfach verwendete Hilfsmethoden b ndeln Folgende Klassen werden verwendet e JSONWrapper o Die Android JSON Implementierung wirft bei vielen Methoden Exceptions Damit diese Exceptions nicht jedes Mal beim Erstellen und Empfangen von JSON Informationen erneut behandelt werden m ssen bernimmt das die Wrapper Klasse Die Wrapperklasse setzt bei fehlendem Inhalt Standartwerte und loggt unerwartete Fehler Die Klasse erleichtert die Arbeit mit JSON und sorgt f r besser lesbaren Quellcode e RESTClientConstants o ber die primitiven Schnittstellen werden die Daten anhand von Bundles bertragen Ein Bundle ist ein spezieller Key Value Container der serialisierbar ist Die RESTClientConstants Klasse enth lt Konstanten die Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL Studienarbeit HS2010 Snaplt Seite 63 150 als Keys eingesetzt werden Somit wird die Fehlerwahrscheinlichkeit vermindert und das Programmieren vereinfacht ServiceResultReceiver o Nach dem abarbeiten eines REST Request wird die Activity ber den ServiceResultReceiver informiert Diese abstrakte Standard Implementation fungiert als Template Funktion Durch das
87. en Chores Implementieren KnowHow Aufbau Implementieren Dokumentieren Implementieren Implementieren Implementieren Implementieren Chores Dokumentieren Implementieren Implementieren Implementieren Implementieren Studienarbeit ea S ess Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Christoph S ess Christoph S ess Raphael Nagy Christoph S ess Raphael Nagy Raphael Nagy Christoph S ess Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Christoph S ess Raphael Nagy Christoph S ess Raphael Nagy Christoph S ess Raphael Nagy Raphael Ausgabe 1 0 Serverkonfig testen Virtuelle Partymeile Locationsbestimmung auf Android Locationsbestimmung auf Android Lokation Rest Client Architektur dokumentiert Erste Test mit Testger t Kamera implementieren Testing Server JavaDoc Location Anonym Features Features Webseite kleine Verbesserungen Testing Fixes location Server Seite 131 150 2 31 0 26 0 20 1 22 1 49 1 12 1 10 2 07 2 06 1 13 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL 11 Nov 10 13 Nov 10 13 Nov 10 16 Nov 10 17 Nov 10 17 Nov 10 17 Nov10 Projektmanagement 17 Nov 10 17 Nov 10 17 Nov 10 17 Nov 10 17 Nov 10 18 Nov 10 18 Nov 10 18 Nov 10 18 Nov 10 Projektmanagement 18 Nov 10 18 Nov 10 19
88. en k nnen zu Projektunterbr c hen f hren Ausfall aufgrund Krankheit Unfall Belastung durch andere Module nimmt stark zu Einarbeitung in die unbekannten Technologien ist anspruchsvoller als angenommen Wiki Backup SVN Dokumente sichern Kopie auf Arbeitsrechner aktuell halten Konstruktive Kritik und aussenstehende Meinungen einholen Verantwortlichk eiten klar definieren Arbeitspakete von der Gr sse her realistisch halten Analysen werden zum Teil vorgezogen Vor bergehend an den HSR Rechnern weiterarbeiten Teammitglieder benachrichtigen und auf das Backup warten Aussprache mit Hilfe einer technisch kompetenten Person Andere Person stellt die Arbeit im urspr nglichen Sinn fertig evt mit kleinerem Umfang Tasks werden nochmals priorisiert und nur an den wichtigsten gearbeitet Hilfe holen von kompetenten Kollegen Risiken im 2ten Sprint R7 Postgre SQL Datenb ank R8 REST Christoph S ess Raphael Nagy Datenbank erf llt Anforderungen nicht Integration Studienarbeit 1 1 Ausf hrliche Analyse 3 1 Ausf hrliche Ausgabe 1 0 Auswechseln der Datenbank auf z B Oracle muss aber dann noch genauer analysiert werden Service austauschen und Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL Hibern ate Tomcat Applika tionsse rver Perfor mance der Datenb ank Studienarbeit HS2010 Snaplt gestaltet s
89. enarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 nu HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 46 150 6 Mit einem Klick auf ein Miniatur Foto wird das Bild gross auf dem Screen angezeigt Paperprototyps Activation A Sei Be Abbildung 7 3 GUI Activation A Screen Activation 1 Snaplt Logo 2 Info Text 3 Button Generiere Benutzer ID 4 Button Gebe Benutzer ID ein Dialog Eingabe Benutzer ID Dialog Benutzer ID empfangen Dialog Keine Verbindung ons Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 AE HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 47 150 Camera Abbildung 7 4 GUIl Camera A Screen Camera Lokations Name Kamera Uhrzeit Button Foto knippsen Snap it 5 Geo Koordinaten B Dialog Lokation bestimmen C Dialog Benutzer ID anzeigen Ss Se E Ss Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 48 150 Gallery Abbildung 7 5 GUI Gallery A Screen Gallery 1 Fotos 2 Button Weitere Fotos anzeigen Credits Tr wm Wan Yin mV keck Fei Deech BL Let kk AAN ki Listen na IRA Von bc GG ra r a i V IVV Www alh Abbildung 7 6 GUI Credits Christoph S ess Raphael Nagy Studienarbeit Ausgabe
90. enpunkt erfasst werden und der User dann aus einer Liste von m glichen Lokationen seinen genauen Standort ausw hlen kann Diese L sung ist in ihrer Umsetzung einfacher und somit weniger fehleranf llig Der Aufwand f r das Erfassen von Lokationen reduziert sich auch auf ein Minimum Die folgende Grafik illustriert die Grundidee Abbildung 7 1 Club erfassen Erkl rung der Abbildung 7 1 Club erfassen e Der Umriss stellt eine Lokation Club dar e Die Position der Lokation wird mittels einem Koordinatenpunkt rotes Kreuz erfasst Falls keine Koordinaten bestimmt werden k nnen wird der Benutzer aufgefordert den Namen der Lokationen einzugeben Diese wird auf der Serverseite verglichen und wenn kein passender Eintrag gefunden wurde wird das Foto keiner Lokation zugeordnet Der Benutzer kann jederzeit die richtige Lokation hinzuf gen Ein weiterer Fall ist wenn der Benutzer die Lokation wechselt Hier wird beim Upload des Fotos eine falsche Lokation mitgeschickt Wenn dies auf der Serverseite erkannt wird erh lt der Benutzer einen entsprechenden Hinweis der ihn auffordert die Lokation neu einzugeben 7 2 _ Client Server Kommunikation Die Analyse der Client Serverarchitektur bzw des REST Frameworks basiert auf dem Ansatz von Google der an der Google I O 2010 pr sentiert wurde http www youtube com watch v xHXn3Kg2IQE 7 3 Anonymisierung 7 3 1 Ausgangslage Die Hauptanforderung ist es dass Bilder vollkommen anonym auf den
91. ent een 71 Abbildung 8 6 Systemubersicht au ee ee 74 Abbildung 3 7 Deployment see ee ee 75 Abbildung 8 8 Sequenzdiagramm Bild Upload ee 75 Abbildung 8 9 Exception Handle euere 76 Abbildung 8 10 Bildverarbeitung une 77 Abbildung 8 11 Datenbank Droblematk ee 78 Abbildung 8 12 Domain Klassen E 83 Abbildung 8 13 Datentransfer Klassen sense eu 84 Abbildung 8 14 Exeeption Klassen nee 85 Abbildung 8 15 Persse Klassen aa 85 Abbildung 8 16 Prozessor Klassen uncut 86 Abbildung 8 17 Seryice Klassen esse 87 Abbildung 8 18 JSONCONStANTS ee een 89 Abbildung 9 1 Virtuelle Partwvmeile EEN 92 Abbildung 9 2 JUnit Test Datenbank CRUD sss ssssssssssrsssssssssnessnsnnnsnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 103 Abbildung 9 3 JUnit Tests automatische Suvstemtests EEN 104 Abbildung 9 4 JUnit Test Belastbarkeitstest enee 104 Abbildung 9 5 Codestatistik Teil 1 Metrice ee 105 Abbildung 9 6 Codestatistik Teil 2 Metrics nnnnenennnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 106 Abbildung 9 7 Codestatistik Teil 3 Mettes 106 Abbildung 9 8 Package bersicht esse ee 106 Abbildung 9 9 Abh ngiekeitspraph ae ae 107 Abbildung 9 10 Codestatistik Teil 1 Metrics ENEE 108 Abbildung 9 11 Codestatistik Teil 2 Metrics ENEE 108 Abbildung 9 12 Codestatistik Teil 3 Metrics unnaneennennnnennennennnnnennnnenn nennen 108 Abbildung 10 1 Beispielbild see 111 Abbildung 10 2 TEE ET E 112 Abbildung 10 3 JSON Antwor
92. enutzer einerseits als Entscheidungsgrundlage dienen und andererseits m ssen die Benutzer nie auf ihre Aufnahmen warten wie das bei den Partyportalen der Fall ist o Snaplt ist Anonym Privatsph re wird bei unserem Produkt gross geschrieben Unser Fokus liegt auf der Lokation und nicht auf den Besuchern wobei nat rlich das Publikum eine Lokation zu einem grossen Teil ausmacht o Unsere Fotos k nnen nicht nur nach Lokation geordnet werden sondern besitzen eindeutige Koordinaten Somit k nnen auch Bilder in einem gewissen Umkreis einer geografischen Position gefiltert werden e Was k nnen die Partyportale besser o Snaplt wird nicht dieselbe Qualit t der Bilder erreichen Fazit Viele andere Produkte verwenden dieselben M glichkeiten wie Snaplt Snaplt ist aber in seiner Art soweit bekannt einzigartig Das Verkn pfen der beiden Hauptelemente geografische Position und Fotos im Kontext von Events und Lokationen im Bereich des Nachtlebens ist ein neuer Ansatz Vor allem mit dem Echtzeitverhalten und der Anonymit t der Benutzer werden Faktoren beachtet die in der heutigen Gesellschaft einen hohen Stellenwert haben Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 36 150 Snaplt kann als eine Mischung zwischen Partyportal und Lokalisierungsdienst gesehen werden der aber nicht die Personen sondern die Lokat
93. er Haken angezeigt konnte das Foto einer validen Lokation zugeordnet werden Das gelbe Ausrufezeichen hingegen zeigt an dass die Lokation nicht existiert noch nicht freigegeben oder keine Lokation gew hlt wurde Mit einem Klick auf ein Foto wird eine gr ssere Version geladen und der Aufnahmezeitpunkt und die Lokation angezeigt Foto verwalten Alle Fotos k nnen gel scht oder einer anderen Lokation zugeteilt werden Hierf r muss ein langer Klick auf das gew nschte Bild ausgef hrt werden Nun kann der Benutzer eine Aktion ausw hlen Credits der App anzeigen Informationen zur App findet man auf der Credits Seite welche in der Kamera Ansicht ber das Men erreichbar ist Dort findet man auch einen Link um die Webseite aufzurufen wo die Fotos von allen Anwendern ersichtlich sind Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 120 150 11 Projekt R ckblick 11 1 Danksagung Wir m chten unserem Betreuer Prof Dr Markus Stolze f r die hilfreichen Tipps und die Unterst tzung w hrend unserer Studienarbeit ganz herzlich danken 11 2 Erfahrungsberichte 11 2 1 Christoph S ess Schon einige Zeit vor dem Start der Semesterarbeit haben wir uns mit unserer Idee besch ftigt Es freute mich dass wir Herr Stolze von der Idee berzeugen konnten und er als Betreuer der Arbeit zusagte Die moderne The
94. er Identifikationsnummer bei jeder Anfrage indentifizieren Der Server kann dann einen weiteren Hash generieren und berpr fen ob dieser mit dem im System bereinstimmt vgl BUCO4 S 228 Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 45 150 7 4 Userinterface Navigation Map d 2 ACTIVATION EZ Sc IMAGE GALLERY CREDITS ne m Ah 1 GER ab O Lake Abbildung 7 2 GUI Navigation Map 1 Beim ersten Starten der App ist der Activation Screen der Einstiegspunkt Da es nicht m glich ist die App ohne eine Benutzer ID zu nutzen und die Benutzer ID nach der Aktivierung auf dem Smartphone gespeichert bleibt wird dieser Screen genau einmal dargestellt 2 F r jeden weiteren Einstieg wird direkt die Camera Ansicht angezeigt Somit gelangt der Benutzer mit nur einem Klick zum Kernfeature der App Die Camera View dient zudem als Ausgangspunkt um weitere Screens zu erreichen 3 Nach der einmaligen Aktivierung der App gelangt man vom Activation Screen direkt auf die Camera Ansicht 4 Der Gallery Screen ist ber das Men erreichbar Auch ein Klick auf die Upload Meldung f hrt zu diesem Ansichtswechsel 5 Die Credits sind ber das Men des Camera Screens erreichbar Somit fungiert die Camera Ansicht als zentraler Haupt Screen Christoph S ess Raphael Nagy Studi
95. er Prototyp anhand eines Testplans getestet Resultierende Dokumente e Knowledge Dokumente e REST Architektur e Abnahmetest e Testplan REST Architektur Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 18 150 Software Implementation eines Architektur Prototypen Foto knipsen Foto heraufladen Foto ansehen Sprint 3 Server Mobile Server Website Publish Picture Picture Actions Access Pictures get pictures of location Localisation delete picture o Location Finder change location 9 get pictures next to position define location S get pictures of timeperiod D Privacy Meta Tag Cleaner Identifier Save Picture T REST Web Services via JSON Snaplt ch Website 5 Default Android Website Mobile Devices Clients Abbildung 5 4 bersicht Sprint 3 Beschreibung e User Story Foto schiessen Vergiss die Bar e Artefact Story Foto ohne Lokation e Iterationszeitraum 7 Woche 25 10 01 11 e Abnahme 09 12 2010 Snaplt besteht aus zwei Kernfeatures dem Heraufladen des Fotos und der Lokalisierung Die zweite Iteration k mmert sich um die Lokalisierung Hierbei geht es darum auf dem Handy die n tigen Daten zu sammeln diese an den Server zu versenden und diese auf dem Server zu verarbeiten so dass jedes Foto im positiven Fall einer Lokation zugeteilt wird Auch d
96. er Stadt und weiss auch dass das Weekend kaum jemanden rein l sst das Watergate stets berf llt ist und sich im Matrix nur die Minderj hrigen rumtreiben Da er sich an diesem lang ersehnten Wochenende nicht auf einer dieser Clubs einlassen will entscheidet er sich am schon etwas sp teren Abend eine neue Location zu suchen Auf der Webseite von Snaplt betrachtet er die Fotos die aus der ganzen Stadt hereinkommen Besonders viele Fotos stammen aus dem Klub Goldengate Auch als Insider war Walter dieser Klub noch nicht bekannt der grosse Frauenanteil verleiten ihn aber dazu dieser Location an diesem Abend die Ehre zu erweisen Fotos mit dem Handy betrachten Die Party danach Stakeholder Fotomotiv Anseher Sabrina Sch n l sst sich gerne auf Fotos ablichten aber es d rfen nur die Besten sein denn sie ist sehr auf ihr usseres bedacht Ein Kollege von ihr hatte am Vorabend mit der Applikation Snaplt einige Fotos von ihr geschossen da sie sich nicht mehr genau erinnern kann ob diese gut geworden sind nimmt sie ihr Android Handy und startet die vorhin erw hnte Applikation Nach kurzer Eingabe vom gestrigen Clubstandort wird sie f ndig und kann die Bilder welche brigens alle sehr sch n geworden sind ansehen Fotos mit dem Handy betrachten Was geht ab Stakeholder Fotograf Informierer Tabea Travel hat es endlich geschafft Sie steht zusammen mit ihrer besten Freundin am Piccadilly Circus Die Reise nach London war schon
97. er negative Fall wird behandelt und entsprechend darauf reagiert Das Ziel ist es m glich viele Fotos einer Lokalit t zuzuordnen k nnen Zum Endprodukt geh rt auch die virtuelle HSR Partymeile welche als Testinfrastruktur aufgebaut wird Abnahme Test Der Test wird anhand der virtuellen Testumgebung HSR durchgef hrt Der empirische Test enth lt s mtliche Testf lle zu allen Situationen Dabei wird vor allem der Aspekt der Lokalisierung getestet Das Ziel ist nachzuweisen dass alle Bilder der korrekten Lokation zugeordnet werden k nnen Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 E HSR HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 19 150 Resultierende Dokumente e Domain Model Initial Dokument Analyse Lokalisierung Dokumentation Virtuelle Partymeile HSR Abnahmetest Testplan Lokalisierung Software Lokalisierung der geknipsten Fotos sowie L sung f r Lokalisierungsprobleme Sprint 4 Server Mobile Server Website oO Di Di o S Advanced Functionality rate club report club upload movies login REST Web Services via JSON ge D J Snaplt ch Website Apple iOS Android Symbiar r BlackBerry Websit Mobile Devices Clients Abbildung 5 5 bersicht Sprint 4 Beschreibung e User Story Foto schiessen Mister Anonymous e Artefact Story Foto mit Lokation e Iterationszeitraum 8 Woche 01 11
98. erden die sich auf die Anfrage bezieht 8 1 1 Client Die implementierte REST Architektur st tzt sich gr sstenteils auf dem Vortrag von der Google I O 2010 Google I O 2010 Android REST client applications Der grosse Unterschied ist dass diese Architektur mit dem Ziel der Wiederverwendbarkeit implementiert wurde Das Pseudo Package Diagramm zeigt die Bestandteile der Client REST Architektur Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 60 150 ch snapit rest service ch snapit rest helper RESTClientConstants UrlWrapper RESTServiceHelper 1 inititate addParameter delete setFormati RESTService ke ____ gert setTransactionid Wan EEE put ServiceResultReceiver toStringO oe deleteTransaction getAllTransactions onServerError restartTransaction onClientError register onUnexpectedResponse JSONWrapper registerTransaction onError isRegistered onFinish onNoConnection 7 return result call listener z ch snapit rest tasks _ RESTTask GetTask DeleteTask PostTask PutTask j j I j j I j I j I j j I l 2 creates j L j L I I j j j L j j H 3 6 save delete Transaction 5 return result RESTTransactionDb RESTTransaction RESTTransa
99. ere Informationen sind auch der Userinterface Dokumentation zu entnehmen Benutzer ID Die Benutzer ID dient dem zuordnen der Fotos zu einem Fotografen Da diese ID im System eindeutig sein muss wird sie vom Server zur Verf gung gestellt Die ID kann auch auf mehreren Smartphones verwendet werden Die Benutzer ID ist eine reine Zufallszahl und hat somit keinen Bezug zum wahren Benutzer Wir die Applikation das erste Mal gestartet erscheint die Aktivierungs Seite Der Benutzer kann hier eine bestehende Benutzer ID eingeben ID eingeben oder sich eine generieren lassen ID generieren F r diesen Vorgang ist zwingend eine Internetverbindung erforderlich Lokation Nach dem erfolgreichen Aktivieren oder jedem weiteren Starten der App gelangt der Benutzer direkt zur Kamera Es erscheint ein Fenster das die Eingabe bzw Auswahl der aktuellen Lokation verlangt Die vorgeschlagenen Lokationen wurden anhand von Geo Daten ermittelt Es wird empfohlen wenn m glich eine Lokation auszuw hlen und nur eine manuelle Eingabe zu t tigen wenn die gew nschte Lokation nicht ersichtlich sein sollte Jede Eingabe oder Auswahl muss mit einem Klick auf den Button best tigt werden Die aktuell gew hlte Lokation ist in der Leiste oben im Display ersichtlich Sollte die gew hlte Lokation nicht mehr mit dem realen Aufenthaltsort des Benutzers bereinstimmen sollte der sich ber einen Klick auf den Lokationsnamen erneut lokalisieren
100. ers verursacht worden sind Bildverarbeitung SE Busnes processor ProcessorFactory processor Processor processor RotstelmageProcessor processor CiesrMetsattibutes ndRescsiePictureProcessor Picture Abbildung 8 10 Bildverarbeitung Beschreibung Aus der Business Methode wird ein gew nschter Prozessor geholt In diesem Fall der Standard Prozessor Danach kann darauf die Methode doWork aufgerufen werden mit dem zu bearbeitenden Bild Dieser f hrt dann alle Prozessoren auf diesem Bild aus und gibt das bearbeitete Bild wieder zur ck Dieser komplexe Mechanismus wurde eingebaut um unabh ngig noch weitere Prozessoren einfach hinzuf gen zu k nnen Daf r wird das Prozessor Interface implementiert und in der process Methode die gew nschte Funktionalit t implementiert Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 78 150 Aufgrund der Factory k nnen dann einfach verschiedene Prozessorabl ufe definiert werden Datenbank Problematik sd Datenbank Problematik persst PictureStstementi persst AbstractTranssctionManage super DefaultStstement overnde_ststement prepsreDBSesson execute DBSession Abbildung 8 11 Datenbank Problematik Beschreibung F r Datenbankabfragen muss jedes Mal
101. erwarteter Fehler auftrat o onClientError Wird von onError aufgerufen wenn clientseitig ein unerwarteter Fehler auftrat o onUnexpectedResponse Wird normalerweise nicht implementiert Wird aufgerufen wenn Transaktion bereits verarbeitet wurde wenn Antwort eintrifft Tritt auf wenn die selbe Transaktionen mehrmals aufgerufen wurde o onNoConnection Wird aufgerufen wenn keine Verbindung zum Internet besteht oder der Server nicht erreichbar ist o onError siehe onClientError und onServerError o onFinish Wird aufgerufen wenn die Daten erfolgreiche versendet und empfangen wurden Folgende Funktionalit ten sind noch nicht implementiert aber f r zuk nftige Versionen denkbar Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 64 150 e Caching o Daten k nnen und werden gew hnlich von der Applikation nur abgefragt wenn Sie noch nicht vorhanden sind Das Caching w rde dies vereinheitlichen und in gewissen F llen nur neue Daten laden e Abfragen des Fortschritts o Die Apache Implementierung der REST Methoden erlaubt in der neusten Version nicht mehr das Abfragen des Fortschritts Die L sung w re das verwenden einer lteren Version was aber die Dateigr sse immens erh hen w rde da die Library seperat eingebunden werden m sste und auf die Features und Stabilit t der neuen Version verzichtet werden m ss
102. ese Fotos zu betrachten 3 W rdest du die App installieren und selber Fotos knipsen Antworten Reto K 1 So etwas gibt es schon Es gibt Apps um Bilder live in das Internet zu laden 2 Ja aus purer Neugierde 3 Ich habe nicht einmal ein Profilbild im Facebook Ich w rde keine Bilder machen Ruedi O 1 Ich habe kein solches Smartphone aber ich k nnte mir vorstellen dass dies eine grosse Nachfrage wecken k nnte 2 3 Ich werde kein Bild knipsen aber es gibt gen gend Leute die geil darauf sind das jeder hinterletzte weiss was sie im Moment machen Patrick F 1 2 Ich w rde die Webseite ansehen und die App installieren 3 Ja oder nein je nachdem Sandro V 1 Super Idee das fehlt noch 2 Ich w rde die Seite von Zuhause aus besuchen Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL E Studienarbeit HS2010 Snaplt Seite 31 150 3 Ja ich w rde Bilder schiessen Severin F 1 Das finde ich eine coole Idee Vor allem wenn man eine coole bereits am laufende Party Club sucht Vielleicht kann damit bestehenden Partyfoto Plattformen zusammengearbeitet werden damit die bestehenden Strukturen Usern schnell erreicht werden k nnen Lautundspitz Tillate Das w re f r diese Unternehmen sicher eine attraktive Neuheit Unter Umst nden braucht die Applikation ohne Verbindung mit bestehenden Strukturen et
103. esultReceiver im Subpackage resultreceiver Die Klassen in diesem Package sind Callback Klassen welche die asynchrone Antwort des Servers abfangen und verarbeiten Die Verarbeitung geschieht dann wieder im Zusammenspiel mit der Activity welche den Request abgesetzt hat View Das View Package erscheint in der Diagramm sehr leicht da die XLM Dateien welche das GUI definieren nicht aufgelistet sind Es sind nur zwei Klassen ersichtlich e Die Klasse FontFitButton definiert ein GUI Element Dieser Button hat die Eigenschaft dass sich die Schriftgr sse des Labels der Textmenge anpasst So wird das Label immer m glich gross dargestellt ohne das Text abgeschnitten wird e ImageAdapter dient als GUI Abstraktion der Business Klasse Image Hier wird das Mapping der Objekt Felder mit der View definiert Beim Darstellen mehrerer Fotos wird das Mapping bei jedem Objekt durchgef hrt Die Klasse erbt von einer Basisklasse aus dem Android Framework Mehr zur Implementierung des GUIs ist im Abschnitt Userinterface ersichtlich 85 Server 8 5 1 Einf hrung Die folgenden Kapitel befassen sich mit der Architektur des Servers Zuerst werden Komponenten oder Technologien genannt mit der die Snaplt Server Applikation Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 Eoi HOCHSCHULE F R TECHNIK RAPPERSWIL E E Studienarbeit HS2010 Snaplt Seite 73 150 arbeitet Danach werden einzelne Sonder
104. ewendet werden Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 77 150 Wenn ein Benutzer den Club eines Bildes wechseln m chte ruft er dazu z B die Ressource image 2356 changeClub json auf und bergibt den neuen Club entweder mit K_CLUB_ID oder mit dem Namen K_CLUB_NAME Diese Anfrage wird dann durchgereicht bis zum behandelnden Business Methode Dort wird festgestellt ob eine Club ID oder ein g ltiger Club Name mitgegeben wurde Es wird eine InvalidClubNameException geworfen welche eine SnapltException ist sollte dies nicht der Fall sein Weitere Details ber die Ausnahmen werden in den n chsten Abschnitten erkl rt Diese Exception wird danach in der return SON Methode der ImageService bzw Service Klasse abgefangen und entsprechend behandelt In dieser Service Klasse werden auch andere Ausnahmen wie zum Beispiel HibernateExceptions abgefangen und auf die entsprechenden SnapltExceptions umgewandelt Da in diesem Beispiel die Ausnahme an den Benutzer weitergeleitet werden soll wird der K_STATUS auf V_STATUS_ERROR_INVALIDCLUBNAME 3 gesetzt und zur ckgeschickt Wenn der Status K_STATUS gr sser als eins ist war der Request fehlerhaft Werte f r K STATUS e 0 gt allesOK e 1 gt Allgemeiner Fehler in der Applikation e gt 1 gt Fehler welcher durch fehlende Eingaben des Benutz
105. ey CHS 24 11 2010 mitschicken immer Hash des Keys 17 11 2010 Show Key Methode 1 CHS 24 11 2010 17 11 2010 App nur starten wenn Key vorhanden 1 CHS 24 11 2010 17 11 2010 Service f r selbst erfasste Clubs erstellen Selbst RN 24 11 2010 erfasste Clubs werden auf dem Server wenn m glich einem Existierenden zugeordnet und ansonsten mit einem NOT_VALIDATED_CLUB Status versehen 04 11 2010 Entscheid festhalten amp begr nden Warum keine 11 11 2010 Unittests f r REST Serverseite amp Unit Tests vs TestNG 04 11 2010 Packagediagramm REST Architektur Client CHS 11 11 2010 13 12 2010 Risikomanagement erg nzen RN CHS 17 11 2010 Dokumentieren welche Probleme uns bei der 24 11 2010 Ermittlung der Position aufgefallen sind und wie wird diese ermittelt haben 30 09 2010 Am Schluss muss ein Video in dieser Form vorliegen 3 CHS RN zeitbest ndige Demo gt Scrum Table 04 11 2010 Dokumentieren Entscheid Maven vs Ant 11 11 2010 Entwicklungsumgebung 04 11 2010 Dokumentieren Technologieentscheid PostgreSQL 2 11 11 2010 Architektur Server Snapit 30 09 2010 F r die Iterationen jeweils auch die Chores Hausarbeiten wie z B SVN aufsetzen festhalten 04 11 2010 In den Iterations Grafiken steht Snaptlt gt ndern 2 gt Snaplt 17 11 2010 Client Pseudo Diagramm gt Nummerierung f r 24 11 2010 Ablauf 12 6 Sitzunsprotokolle Sitzung vom 23 09 2010 e Woche 1 e Teilnehmer CHS RN MS e Abgenommen am 3
106. f Code 2728 b sre 2600 b gen 128 4 Instability avg max per packageFragment 0 36 0 25 0 833 SnapltClient src ch snapit rest tasks b sre 0 396 0 234 0 833 SnapltClient src ch snapit rest tasks b gen 0 0 0 SnapltClient gen ch snapit 4 Number of Parameters avg max per method 1 108 0 994 5 SnapltClient src ch snapit rest service RESTServiceHelper java initiate D sre 1 108 0 994 5 SnapltClient src ch snapit rest service RESTServiceHelper java initiate b gen 0 0 4 Lack of Cohesion of Methods avg max per typ 0 209 0 341 0 909 SnapltClient src ch snapit activities CameraActivity java b sre 0 246 0 358 0 909 SnapltClient src ch snapit activities CameraActivity java gen 0 0 0 SnapltClient gen ch snapit R java a Efferent Coupling avg max per packageFragr 3 182 2 443 8 SnapltClient src ch snapit activities resultreceiver b sre 35 2 335 8 SnapltClient src ch snapit activities resultreceiver b gen 0 0 0 SnapltClient gen ch snapit 4 Number of Static Methods avg max per type 19 0413 1 883 11 SnapltClient src ch snapit rest helper RESTLogger java D sre 19 0 487 2 036 11 SnapltClient src ch snapit rest helper RESTLogger java b gen 0 0 0 0 SnapltClient gen ch snapit R java 4 Normalized Distance avg max per packagefra 0 586 0 286 1 SnapltClient gen ch snapit D gen 1 0 1 SnapltClient gen ch snapit b sre 0 545 0 267 0 889 SnapltClient src ch snapit rest service 4 Abstractness avg max per packageFragment 0 059 01 0 286 SnapltClient src ch snapit a
107. fbau Raphael Architektur 3 06 Nagy 27 0kt10 Implementieren Christoph ContentProvider gt 4 41 S ess RestTransactionDb 27 0kt10 Besprechung Christoph 0 40 S ess 27 O0kt10 Implementieren Raphael 2 02 Nagy 27 0kt10 Besprechung Raphael 0 50 Nagy 27 0kt10 KnowHow Aufbau Raphael Location 3 38 Nagy 27 0kt10 KnowHow Aufbau Christoph Callbacks f r S ess Verbindun 28 0kt10 Testen Raphael Stress Test f r Webservice 2 00 Nagy 28 0kt10 Implementieren Raphael Architektur 2 00 Nagy 28 Okt 10 Implementieren Raphael Architektur 0 35 Nagy 28 Okt10 KnowHow Aufbau Raphael Android Testing 0 40 Nagy 28 Okt 10 Dokumentieren Raphael Architektur IES Nagy 28 0kt10 Implementieren Christoph 9 00 Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 E HSR HOCHSCHULE F R TECHNIK RAPPERSWIL E E Studienarbeit HS2010 Snaplt Seite 130 150 S ess 29 Okt10 Dokumentieren Architektur 29 Okt 10 29 Okt 10 30 Okt 10 2 Nov 10 2 Nov 10 3 Nov 10 3 Nov 10 3 Nov 10 3 Nov 10 3 Nov 10 3 Nov 10 4 Nov 10 4 Nov 10 4 Nov 10 4 Nov 10 4 Nov 10 4 Nov 10 4 Nov 10 4 Nov 10 5 Nov 10 5 Nov 10 5 Nov 10 5 Nov 10 Christoph S ess Raphael Nagy Chores Chores Implementieren Implementieren Implementieren Testen Chores Dokumentieren Implementieren Chores Chores Dokumentieren Dokumentieren Besprechung Besprech
108. g Die Bilder werden nach dem Upload in drei Gr ssen in der Datenbank gespeichert IMAGE_SIZE_XXX gibt an wie gross die gr ssere Seite des Bildes in Pixeln sein darf Falls das Bild nicht dieser entspricht wird das Bild verkleinert Wenn das Bild aber kleiner ist als die vorgegebene Gr sse dann beh lt das Bild seine urspr ngliche Gr sse bei LOCATION_SEARCH XXX wird gebraucht f r die Bestimmung der am n chsten gelegenen Clubs Zuerst wird eine Datenbankabfrage mit dem Wert LOCATION_SEARCH_START gemacht falls innerhalb dieses Radius keine Clubs auffindbar sind dann wird den Wert um LOCATION_SEARCH STEPSIZE erh ht bis die obere Grenze also LOCATION_SEARCH_END erreicht wird oder mindestens einen Club gefunden wird Die Angaben werden in der Masseinheit Meter behandelt Alle Schl ssel mit dem Pr fix USER_KEY_XXX werden f r die Generierung der anonymen Benutzer ID gebraucht USER_KEY_ALLOWED_CHARACTERS gibt an welche Zeichen die ID enthalten kann USER_KEY_SIZE bestimmt die L nge der ID und USER_KEY_COUNT_OF_TRY definiert wie oft Versucht wird eine eindeutige ID zu generieren bis eine SnapltException geworfen wird Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 82 150 ch snapit domain Beschreibung Dieses Package enth lt zwei Gruppen von Klassen N mlich Datenbank und Datentransfer Klassen
109. ge Methode um Werbung f r ihre Bar zu machen Sie beobachtete schon seit einiger Zeit dass vermehrt G ste in ihrer Bar mit dem Handy Fotos schiessen Eines Abends beschliesst sie einen dieser G ste zu fragen was er denn da genau macht Dieser erkl rt ihr sehr ausf hrlich was es mit der Applikation Snaplt auf sich hat Zufrieden spendiert sie dem Gast einen gratis Drink f r die tolle Auskunft Bis zum n chsten Wochenende installiert sie sich auch Snaplt auf ihrem Mobiltelefon berraschenderweise kommt gegen 23 00 Uhr die vorheriges Wochenende neue gew hlte Miss Schweiz in ihre Bar um sich einige Drinks zu genehmigen Ihre Freude ist riesig aber sonst sind leider noch nicht viele Leute anwesend Dann erinnert sie sich an die neu installierte Applikation Snaplt Sie berlegt nicht lange startet Snaplt und nutzt den Augenblick um ein Foto von der neuen Miss Schweiz zu schiessen Kurz darauf st rmen die G ste nur so in die Bar zur Freude von Barbara Foto schiessen Mister Anonymous Stakeholder Fotograf Paul Privacy findet die neuen Social Networks zwar eine coole Sache und w rde sich dort auch gerne beteiligen doch daf r legt er zu viel Wert auf Anonymit t im Internet Darum landen die von ihm heute im Ausgang geknipsten Fotos nicht auf Facebook Twitter und co sondern auf snapit ch total anonym selbstverst ndlich Foto schiessen Foto l schen ber die Str nge geschlagen Stakeholder Fotograf Fotomotiv Wow was f
110. gen zur Architektur begr nden e Begr ndung und planen des weiteren Vorgehens falls die Zeitplanung nicht eingehalten werden kann o Scrum ist eigentlich Time Boxed Nochmals einlesen und Vorgehen ermitteln Sitzung vom 27 10 2010 e Woche 6 e Teilnehmer RN CHS MS e Abgenommen am 04 11 2010 Traktanden e Abnahme Sitzungsprotokoll e Einsehen der Zeitplanung e Stand Iteration 2 besprechen gegeben falls Massnahmen diskutieren e Weitere Resultate amp Probleme besprechen 2 Iteration o Demo Offene Fragen Keine Entscheidungen e Letztes Sitzungsprotokoll abgenommen OK e Zeitplanung bisher OK e Sprint wird verl ngert Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 144 150 Resultierende ToDos e Zentrale ToDo Liste einf hren e Datenaustauschprotokoll Snaplt gt Verweise auf bestehende Protokolle Sitzung vom 04 11 2010 e Woche 7 e Teilnehmer RN CHS MS e Abgenommen am 15 11 2010 Traktanden e Abnahme Sitzungsprotokoll e Stand Iteration 2 e Server f r SnapltServer App e Weiteres Vorgehen Offene Fragen Keine Entscheidungen e Ziel In der n chsten Woche wird Iteration 2 amp 3 abgeschlossen o Blick in die REST Architektur Resultierende ToDos e Alte ToDos in die zentrale ToDo Liste bertragen e Aus den Sitzungen resultierende ToDos in zentrale Liste berne
111. h noch in rasanter Entwicklung befindet Empfohlene Open Source Apps der Android Entwickler Blog sowie Unterlagen zu den aktuellen Google IOs sind behilflich um der Entwicklung zu folgen und dadurch qualitativ hochwertige Software zu schreiben UI Guides und Usability Tests Google bem ht sich mit Ul Guides und Vorgaben http developer android com guide practices ui guidelines index html alle von Drittanbietern entwickelten Applikationen einheitliche erscheinen zu lassen Dadurch wird erreicht dass Benutzer eines Android Ger tes einfach mit neuen Applikationen zu Recht kommen und sich ein bersichtliches Gesamtbild ergibt Durch das Einhalten dieser Regeln und regelm ssigen Usability Tests die auch mit Einbezug von Drittpersonen erfolgen wird die Qualit t der Benutzeroberfl che und die Benutzerfreundlichkeit auf einem hohen Niveau garantiert Zu beachten gilt dass wir beim Prototypen auf Benutzerf hrung Positionierung der Bildschirmelemente und andere Elemente der Usability achten Das Design Farben Bilder Icons usw hingegen wird nur provisorisch und mit tiefer Priorit t erarbeitet in einem sp teren Projekt wird das Design festgelegt und f r Corporate Identity ber alle Systemelemente bzw Applikationen gesorgt Codierrichtlinien Einheitlich formatierter Sourcecode sorgt f r rasches Verst ndnis und bersichtlichen Aufbau Bei komplexen Codebl cken wird vereinzelt auch mit normalen Kommentaren die Entscheidungen und de
112. he in den n chsten Abschnitten beschrieben werden Die Test wurden auf dem lokalen Rechner durchgef hrt Datenbank Tests Der Datenbanktest testet ob Domain Objekte in der Datenbank gespeichert gel scht und ver ndert werden k nnen E Task List SC Outline Finished after 2 07 seconds NIT e Runs 1 1 E Errors 0 DH Failures 0 4 Ei ch snapit persist CRUDTest Runner JUnit 4 1 972 s E test_CRUD 1 972 5 Abbildung 9 2 JUnit Test Datenbank CRUD Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 104 150 Automatische Systemtests Die automatisierten Systemtests testen das komplette Serversystem Vom Service Layer bis zur Datenbank Diese Tests sind keine JUnit Tests im gewohnten Sinn denn sie testen das ganze System und ben tigen daher auch eine gewisse Ausf hrungszeit TE Task List ZE Outline g Finished after 17 776 seconds a ER Q E zz Runs 17 17 BE Errors 0 DH Failures 0 4 a ch snapit service ServiceTest Runner JUnit 4 17 750 s dl test_validUserld 2 500 s H test_putSimplelmage 0 570 s H test_putManylmagesWithClub 1 823 s E test_getClubsWhereUserHadTakenlmages 1 845 5 E test_putImageWithNewClub 0 556 s E test_putImageWithClubButNoClubld 0 575 5 H test_getSimplelmage 0 601 5 dl test_deleteSimplelmageWithoutUserld 0 723 s E
113. heiten des Programms beschrieben und zuletzt gibt es Beschreibungen zu den einzelnen Packages und Klassen dort wo es f r das Verst ndnis hilfreich ist 8 5 2 Referenzen Die Applikation verwendet verschiedene externe Komponenten Es ist deshalb sinnvoll sich in die folgenden Themen einzulesen e Hibernate http www hibernate org e Tomcat Server http tomcat apache org e Ant http ant apache org e PostgreSQL http www postgresql org e Apache log4j http logging apache or e Google Gson http code google com oogle gson e Jersey REST http jersey java net F r das Erstellen der Webseite wurde mit den folgenden Technologien gearbeitet Da die Webseite relativ einfach gehalten wurde wird diese nicht dokumentiert Es wird auf den Quellcode verwiesen e CSS http de wikipedia org wiki Cascading Style Sheets e JavaScript http de selfhtml org javascript e HTML http de selfhtml org e jQuery http jquery com 8 5 3 Information zum Stil der weiteren Kapitel Die Dokumentation bezieht sich haupts chlich auf die Snaplt Server Anwendung SnapltServer Projekt Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 d HSR HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 74 150 8 5 4 Software Systemarchitektur System bersicht d Snaplt Server Datenbank Server Abbildung 8 6 System bersicht Architektur bersicht Snapl
114. hen den beteiligten ausgetauscht werden e REST auf Wikipedia org Einsatz Die gesamte Client Server Architektur von Snaplt beruht auf einer REST Architektur Alternativen e SOAP Webprotokoll zum Austauschen von Daten und f r Remote Procedure Calls XML als Datenaustauschformat e RMI Javaspezifische Realisierung von Remote Procedure Calls e Eigenes Protokoll Vorteile e Plattformunabh ngigkeit Anbindung von Fremdsystemen bertragbarkeit e Skalierbarkeit Effizienz e Unabh ngiges Datenaustauschformat bertragbarkeit Nachteile e Fehlende Standardisierung Jersey Beschreibung Jersey ist die Referenzimplementation um RESTful Webservices zu erstellen Es setzt das Prinzip von HTTP Ressourcen um und bietet dem Anwender die M glichkeit einfache RESTful Webservices zu erstellen e Jersey Home Page Einsatz Jersey wird verwendet um Nachrichten oder Anfragen von einem Client auf dem Server entgegen zu nehmen Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 68 150 Alternativen e Eigene Implementationen Eigenes Servlet schreiben um REST Anfragen entgegen zu nehmen Vorteile e Standardisiert nderbarkeit e Ausgereifte Technik Zuverl ssigkeit e Schon oft erfolgreich in grossen Projekten eingesetzt Zuverl ssigkeit e Relativ einfach verst ndlich nderbarkeit Na
115. hips wird es m glich dass Party Fotos nun von jedermann mit dem Smartphone geschossen werden und Party Portale mit benutzergenerierten Inhalten gef llt werden k nnen Dies hat diverse Vorteile gegen ber den bestehenden Partyportalen Der Hauptvorteil liegt darin dass die Fotos schon nach kurzer Zeit auf der Webseite abrufbar sind Ideal w re hierbei wenn die Fotos automatisch einer Party oder Eventlokation zugeordnet w rden Diese wird anhand der bermittelten Geo Koordinaten bestimmt Die technische Voraussetzung f r einen solchen Service ist eine genaue Lokalisierung des Telefons mittels GPS und einer effizienten und fehlertoleranten bertragung der Fotos vom Ger t auf das Party Portal In dieser Studienarbeit wurde mit Snaplt ein System entwickelt welches prototypisch f r Andoid Smartphones demonstriert wie sich Bilder effizient fehlertolerant und anonym von Mobiltelephonen bermitteln lassen Es wurde auch analysiert wie gut die Geo Lokalisierung funktioniert und welche Herausforderungen sich aus der momentan noch ungen genden Geo Lokalisierung der Telefone ergeben Der zentrale Bestandteil der Arbeit war das Implementieren einer soliden und stabilen Server Client Kommunikation welche sich um die Problematik des Verbindungsunterbruchs k mmert Die daraus resultierende Programmbibliothek st tzt sich auf dem REST Konzept ab und kann problemlos auch f r weitere Projekte verwendet werden Die Java Serverapplikation ist f
116. hmen sowie im Sitzungsprotokoll erw hnen Nachtragen nur in zentraler liste e Inallen Sitzungsprotokollen Resultate durch Entscheidungen ersetzen e Sequenzdiagramm f r REST Ablauf Client e Sequenzdiagramm f r REST Ablauf Server e Zentrales REST Architektur Dokument erstellen e Entscheid festhalten amp begr nden Warum keine Uhnittests f r REST Serverseite amp Unit Tests vs TestNG e Risiken f r Iteration 2 festhalten e Risiken f r Iteration 3 festhalten e Herausfinden wie man im MITE Tool die Leistungen pro Wochen anzeigen kann e Dokumentieren Entscheid Maven vs Ant Sitzung vom 15 11 2010 e Woche 9 e Teilnehmer RN CHS MS e Abgenommen am 25 11 2010 Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 145 150 Traktanden e Abnahme Sitzungsprotokoll e Abschluss Iteration 2 e Abschluss Iteration 3 e Stand Iteration 4 Offene Fragen e Architektur Matrix wie sollen Features mit User Stories verbunden werden e SIM Karte f r Handy damit Location abh ngige Funktionen getestet werden k nnen Lokalisierung ber das Handynetz Resultate e Iteration 2 o Matrix bei Vorteilen einen Verweis auf z B nderbarkeit Client Pseudo Diagramm gt Nummerierung f r Ablauf Unterbrechungsfreie beim Testplan Rechtschreibung bersichtsseite gut dokumentierte
117. ich schwierig und gew nschte Funktionalit t ist nicht vorhanden Das JSON Format erf llt unsere Anforderungen nicht problematisch sind bin re Dateien Zu komplex und schwierig zu handhaben Unsere Tests sind nicht umzusetzen gewisse Funktionalit ten werden nicht unterst tzt Konfiguration gestaltet sich schwierig Einarbeitung dauert lange und gewisse Funktionalit ten werden nicht unterst tzt Probleme mit der Geschwindigkeit von Abfragen aufgrund von in den Tabellen gespeicherten BLOB Daten Bilder Risiken im 3te Sprint R15 Lokalisi erung Christoph S ess Raphael Nagy Android kann die 5 gew nschte Geo Position nicht so exakt liefern wie wir sie gerne Studienarbeit 9 Analyse und Machbarkeit mit einem Prototyp belegen Ausf hrliche Analyse und Machbarkeit mit einem Prototyp belegen Ausf hrliche Analyse und Machbarkeit mit einem Prototyp belegen Ausf hrliche Analyse und Machbarkeit mit einem Prototyp belegen Ausf hrliche Analyse und Machbarkeit mit einem Prototyp belegen Ausf hrliche Analyse und Machbarkeit mit einem Prototyp belegen Periodische automatische Lasttests erstellen und durchf hren Ausf hrliche Analyse und praktische Tests Ausgabe 1 0 Seite 24 150 z B auf SOAP wechseln vorg ngige Analyse Format austauschen und z B auf XML wechseln Direkt mit JDCB Treiber auf der Datenbank arbeiten anderen OR Mapper nehmen
118. ichen getrennt dargestellt JFZ4 EKXO 50E3 MS54 Dies erh ht die Lesbarkeit Abbildung 7 15 GUI Camera Screen Benutzer ID anzeigen Beschreibung Di 21 Dez 2010 T 3 aile 14 33 e Die Anzahl der bermittelten und kg r eStpiatre ausstehenden Fotos also Fotos die Ausw hlen um USB Verbindungstyp zu ndern auf Grund von fehlender Verbindung nicht heraufgeladen werden k nnen wird in der Notification Leiste angezeigt Benachrichtigungen e Die Notification verschwindet sobald man auf sie klickt Ein Klickt D Foto Upload v 1 Ubermittelt 0 Ausstehend 14 33 f hrt zu einem Wechsel auf die Gallery Ansicht Fehler bei Anmeldung f r hsr ht USB Debugging verbunden Zum Deaktivieren des USB Debugging ausw hle Usability Entscheide e Der Benutzer enth lt sonst kein Feedback da er sich w hrend der Party nicht um das Uploaden der Fotos k mmern will Abbildung 7 16 GUI Camera Screen Benachrichtigung Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 Ed HSR HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Gallery erden geladen Bitte Abbildung 7 17 GUI Gallery Screen Fotos laden Beschreibung e Nach dem Laden werden die Bilder als Miniaturen angezeigt e Die kleinen gr nen und gelben Icons zeigen an ob die Fotos einer korrekten Lokation zugeordnet werden konnten e Sind mehr als elf Fotos vorhanden ersche
119. icht erscheinen falls dies nicht der Fall ist wird der Benutzer mit einem Ladebalken informiert Konfigurierbarkeit Snaplt kann vom Benutzer nicht konfiguriert werden Mehrsprachigkeit Die gesamte Applikation wurde f r die deutsche Sprache entwickelt Mehrsprachigkeit ist vorerst nicht vorgesehen Durch das Arbeiten mit Ressource Dateien kann auch einfache Weise eine neue Sprache hinzugef gt werden Architektur Die Architektur auf der Handyseite Clientapplikation wird vor allem durch das Android Framework bestimmt jedoch legen wir besonders grossen Wert auf eine saubere REST Implementation Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 15 150 Auf Serverseite wird eine einfach wartbare REST Implementation erstellt und f r die Webseite setzen wir auf eine Webtechnologie welche noch in dem entsprechenden Sprint evaluiert wird Update Die Updatef higkeit f r die Client Applikation ist automatisch durch den App Store von Google gew hrleistet Schnittstellen Benutzerschnittstelle Eine Android Applikation dient als Benutzerschnittstelle Die Benutzeroberfl che wird in dem entsprechenden Sprint noch genauer spezifiziert Softwareschnittstelle Als Softwareschnittstelle zwischen dem Snaplt Server und dem Snaplt Client Android wird ein REST Webservice erstellt Datenbankschnittstelle Als Date
120. ie Lokation beziehungsweise den Club bestimmen kann und dann Fotos zu dieser Lokation zuordnet ist eine genaue Lokalisierung des Telefons mittels GPS oder alternativen Technologein und einer effizienten und fehlertoleranten bertragung der Fotos vom Ger t auf das Party Portal In dieser Studienarbeit wurde mit Snaplt ein System entwickelt welches prototypisch f r Andoid Smartphones demonstriert wie sich Bilder effizient fehlertolerant und anonym von Mobiltelephonen auf einen Server bermitteln lassen Es wurde auch analysiert wie gut die Geo Lokalisierung funktioniert und welche Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 5 150 Herausforderungen sich aus der momentan noch ungen genden Geo Lokalisierung der Telefone ergeben Der zentrale Bestandteil der Arbeit war das Implementieren einer soliden und stabilen Server Client Kommunikation welche sich um die Problematik des Verbindungsunterbruchs k mmert Die daraus resultierende Programmbibliothek st tzt sich auf dem REST Konzept ab und kann problemlos auch f r weitere Projekte verwendet werden Die Java Serverapplikation ist unter anderem f r das Verarbeiten der Fotos und der Geodaten verantwortlich Es werden zudem kleinere Vorschaubilder erstellt und abgespeichert welche f r verschiedene Anzeigemedien gebraucht werden k nnen Die Servicesch
121. int ein Icon das beim Anklicken weitere elf Fotos nachl dt Usability Entscheide e Das Design passt sich beim Drehen des Displays an Dies wurde von den Benutzern begr sst da sich das als Standard bei solchen Ansichten etabliert hat Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Seite 55 150 Beschreibung e Beim ffnen der Galerie wird ein Ladebalken angezeigt e Sollte ein unerwarteter Fehler auftreten oder die Verbindung nicht vorhanden sein wird der Benutzer informiert Abbildung 7 18 GUI Gallery Screen Letzte nderung 23 12 2010 10 32 00 d HSR HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 56 150 ABAYE Q E aii ea 14 36 Beschreibung e Ein Long Klick auf ein Foto ruft das Kontext Men auf welches die zwei Features L schen und Relokalisieren anbietet e Beim L schen wird das Bild nach dem Vorgang aus der Ansicht entfernt e Beim Relokalisieren erh lt der Benutzer ein Feedback in Form L schen einer Meldung Ausserdem wird gegebenfalls die Farbe des Icons angepasst Relokalisieren e Sollte ein unerwarteter Fehler auftreten oder die Verbindung nicht vorhanden sein wird der Benutzer informiert Abbildung 7 19 GUI Gallery Screen Kontext Men AG An E LRAG Beschreibung Snapt e Das Men beinhaltet drei Icons Das Kamera Icon bringt den Benutzer zur ck zur Kamera das Credits Icon f hrt auf die Credits Seite und der
122. ionen im Mittelpunkt stellt Nicht die Partyportale und die Lokalisierungsdienst sind unsere wahren Konkurrenten sondern das grosse Angebot an Anwendungen welches die potentiellen Kunden von der Verwendung von Snaplt abhalten k nnte 6 3 User Stories Stakeholder Folgende Stakeholder sind bei der Verwendung von Snaplt betroffen e Fotograf Ein Partybesucher der Fotos von der Party schiesst e Anseher Person welche die Bilder auf der Webseite betrachtet e Fotomotiv Person die fotografiert wurde e Lokationsinhaber Personal Person die f r die Lokation arbeitet und zu Werbezwecken Fotos knippst e Informierer Person welche die Webseite nutzt um passende Partylokationen zu finden User Stories Foto Schiessen 3 2 1 online Stakeholder Fotograf Anseher Franz Foto knippst um 23 Uhr im Restaurant Bierkeller ein Foto und betrachtet es sogleich ber sein Handy auf snapit ch Foto schiessen Hier feiern wir Stakeholder Fotograf Frank Famous geht sehr gerne in den Ausgang und kennt dort auch fters viele Freunde Nach einer langen und anstrengenden Arbeitswoche ist endlich Freitagabend Frank beschliesst dass sich er und drei weitere Freunde heute Abend gegen 21 00 Uhr am Bahnhof in St Gallen treffen um dann gemeinsam in einen Club zu gehen Wohin sie genau gehen wollen wissen sie noch nicht Nach einem kurzen Gespr ch wohin es gehen soll wurde einstimmig beschlossen in den Club namens Backstage zu gehen A
123. isen e Ohne Bedienungsanleitung bedienbar sein Die Applikation soll sich nicht zu sehr von anderen Android Applikationen unterscheiden Deshalb werden die Android User Interface Guidelines versucht einzuhalten http developer android com guide topics ui index html e Mit dem Finger bedienbar Touch Dem Benutzer muss es m glich sein die Oberfl che nur mit dem Finger zu bedienen Dabei muss auf die Gr sse der Schaltfl chen und Eingabefelder geachtet werden Zuverl ssigkeit Die Zuverl ssigkeit ist stark von der Hosting Umgebung f r den Webserver und die Datenbank abh ngig Die Verf gbarkeit liegt im Verantwortungsbereich des Hosters Internet Verbindung Wir legen viel Wert auf zuverl ssige Aufrufe der REST Webservices Hierzu werden wir die Applikation m glichst robust bauen Weitere Details sind in den Architektur Kapiteln nachzulesen Leistung Die Leistung der Client Applikation ist stark von der Daten bertragungsrate abh ngig F r die nachfolgenden Leistungsanforderungen gehen wir davon aus dass der Benutzer sich in einem 3G Netz mit guter Verbindung befindet Weiter rechnen wir mit maximal f nf gleichzeitigen Benutzerzugriffen Die Anzahl Fotos in der Datenbank liegt bei ca 10 000 Leistungsanforderungen Die Android Applikation soll immer reagierend responsive bleiben und in maximal sechs Sekunden starten Innerhalb der Applikation soll bei jedem Klick des Benutzers innerhalb von einer Sekunde eine neue Ans
124. isse Dinge nach RUP und versuchten dann mit SCRUM weiterzuarbeiten Da die beiden Vorgehensmodelles sich absolut unterscheiden war es nicht m glich dies sauber durchzuf hren Schlussendlich organisierten wir unser eigenes Vorgehensmodell das sich aber stark nach SCRUM richtete Fazit Das Vorgehensmodell muss vor Projektstart festgelegt werden und ausnahmslos eingehalten werden Nur so kann man von den Vorteilen profitieren Ein iteratives Model ist unbedingt einem Wasserfall Vorgehen vorzuziehen Nur wer das gew hlt Model auch komplett versteht kann es effizient einsetzen 11 3 2 Arbeiten mit neuen Technologien Das Arbeiten mit neuen Technologien ist immer eine sehr interessante Sache Neue Technologien basieren meistens auf modernen Konzepten was das Arbeiten vereinfacht Wichtiger als die Kenntnis der Vorteile ist das man weiss was die Schwierigkeiten sind die grosse Stolpersteine darstellen k nnen Folgende Punkte sind vor allem bei der Arbeit mit dem Android Framework aufgefallen Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 Ho i HOCHSCHULE F R TECHNIK RAPPERSWIL E E Studienarbeit HS2010 Snaplt Seite 122 150 e Verbesserungsw rdiges Framework Junge Technologien haben auch fters noch gewisse Schwachstellen oder effektiv Fehler F r den Entwickler besteht die Schwierigkeit darin abzusch tzen ob ein gewisser Fehler durch die Technologie verursacht wird oder durch die f
125. istoph S ess Raphael Nagy Christoph S ess Christoph S ess Raphael Nagy Raphael Nagy Raphael Nagy Raphael Ausgabe 1 0 Architektur Architektur JUnit Tests erstellt REST Webservice Tests SVN Tag erstellt REST Businesslogik Logging Server Deployment testen Architektur Todos der letzten Sitzung abgearbeitet Android Archtitektur Architektur Architektur Architektur Architektur Seite 128 150 1 00 8 00 2 00 5 00 2 30 2 00 1 00 3 00 2 30 0 30 2 00 0 30 1 00 1 30 2 00 3 00 1 00 1 00 1 00 9 10 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 129 150 22 0kt10 Implementieren Res 1 48 S ess 22 0kt10 Projektmanagement Christoph Sitzungresultate 0 15 S ess nachgetragen 22 0kt10 Projektmanagement Christoph Zeitplan nachgetragen 0 42 S ess 22 0kt10 Projektmanagement Christoph Besprechung mit Raphael 0 17 S ess 25 0kt10 Implementieren Raphael Architektur 1 30 Nagy 25 0kt10 Dokumentieren Raphael Architektur 0 30 Nagy 25 0kt10 Implementieren Christoph TransactionLog 1 40 S ess implementieren 25 0kt10 Implementieren Raphael Architektur 0 50 Nagy 25 0kt10 Implementieren Raphael Architektur 0 50 Nagy 26 0kt10 Implementieren Christoph ContentProvider gt 1 39 S ess RestTransactionDb 26 0kt10 KnowHow Aufbau Raphael Location 1 29 Nagy 27 0kt10 KnowHow Au
126. kizze User Stories f r Iteration erfasst Wiki eingerichtet Anforderungsspezifikation UseCases Datenbank Hibernate vorbereitet REST JSON Android Projektplan U a Umfrage und Resultate ins Wiki bernommen Hibernate Sitzungresultate Seite 126 150 0 15 1 00 0 30 0 30 0 30 1 45 1 15 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL 30 Sep 10 30 Sep 10 1 Okt 10 1 Okt 10 2 Okt 10 3 Okt 10 4 Okt 10 6 Okt 10 6 Okt 10 6 Okt 10 7 Okt 10 7 Okt 10 7 Okt 10 7 Okt 10 8 Okt 10 8 Okt 10 9 Okt 10 10 Okt 10 11 Okt 10 11 Okt 10 13 Okt 10 13 Okt 10 14 Okt 10 14 Okt 10 Christoph S ess Raphael Nagy Studienarbeit HS2010 Snaplt S ess nachgetragen Dokumentieren Projektmanagement Chores Dokumentieren KnowHow Aufbau KnowHow Aufbau KnowHow Aufbau Chores Projektmanagement KnowHow Aufbau Besprechung Implementieren KnowHow Aufbau Dokumentieren KnowHow Aufbau Dokumentieren Implementieren Implementieren KnowHow Aufbau Projektmanagement Dokumentieren Dokumentieren KnowHow Aufbau Implementieren Studienarbeit Christoph S ess Christoph S ess Christoph S ess Christoph S ess Raphael Nagy Raphael Nagy Christoph S ess Christoph S ess Christoph S ess Raphael Nagy Christoph S ess Christoph S ess Christoph S ess Raphael Nagy Christoph S ess Christoph S ess Raphael Nagy Raphael
127. latitude longitude Abbildung 5 1 Domainmodel e Benutzer knipst Fotos e Jedem Foto ist eine Lokation zugeordnet Eine Lokation besteht aus L nge und Breitengrad Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 13 150 e Zus tzlich wird ein Foto einem Club zugeordnet 5 3 Anforderungsspezifikationen 5 3 1 Produkt Perspektive Snaplt soll eine Social Community Plattform werden welche es jedem Nutzer erm glicht Bilder mit seinem Android Mobiltelefon aufzunehmen und anonym diese der Allgemeinheit zur Verf gung zu stellen Jedes Foto wird dabei von unserer Serversoftware einer Lokation zugeordnet Weitere Details sind der Aufgabenstellung zu entnehmen 5 3 2 Produkt Funktionen Folgende Funktionen soll das Produkt aufweisen e Fotos schiessen e Fotos aufeine Webseite hochladen e Fotos verwalten relokalisieren und l schen e Eigene Fotos auf dem Handy betrachten e Alle Fotos auf einer Beispiel Webseite betrachten e Fotos einer Lokation bzw Club zuordnen 5 3 3 Benutzer Charakteristik Benutzer welche die Applikation Snaplt verwenden sind voraussichtlich junge Leute zwischen 18 30 Jahren oder jung gebliebene Leute die gerne in den Ausgang gehen und Fotos schiessen Sie besitzen ein Android Mobiltelephon und haben ein Datenabonnement von einem Mobilfunknetzbetreiber F r die Webseite ist
128. lid json transId lt Int32 gt amp userld lt Userld gt Beispiel GET lt BASE URL USER gt valid json transId 1234567 amp userld 1u9900gueoswginu Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 110 150 userldValid true transld 1234567 status 0 10 1 3 Image Um Bild bzw Image Ressourcen anzusprechen wird die BASE URL erweitert e lt BASE URL IMAGE gt lt BASE URL gt image fimageld json Beschreibung Die Bild Ressourcee mit der ID imageld kann ber die URL lt BASE URL IMAGE gt imageld json angesprochen werden Dabei ist imageld durch die Bild ID zu ersetzen Mit GET wird einfach das entsprechende Bild geholt und mit DELETE wird das Bild aus der Applikation gel scht Beim GET Aufruf kann noch die Gr sse size des Bildes mitgeschickt werden in welcher man es erhalten m chte e size e 0 gt default nur Bildinformationen e 1 gt klein e 2 gt mittel e 3 gt gross Aufruf GET lt BASE URL IMAGE gt imageld json transId lt Int32 gt amp size lt SIZE gt DELETE lt BASE URL IMAGE gt imageld json transId lt Int32 gt amp userld lt Userld gt Beispiel GET lt BASE URL IMAGE gt 5 json transId 1234567 amp size 1 id 5 date 1292353538402 imageByte BASE64_IMAGE clubName valid fals e transld 1234567 status 0 DELETE lt BASE URL IMAGE gt 5 json tr
129. ls sie dort angekommen sind und auch schon einige Drinks getrunken hatten m chte Frank den tollen Moment auf einem Foto festhalten damit er es seinem besten Freund der leider krank ist und zuhause bleiben musste zeigen kann Er nimmt sein Android Mobiltelefon hervor und startet die Applikation Snaplt Kurz darauf wurde ein passendes Foto geschossen das automatisch im Internet landete Foto schiessen Vergiss die Bar Stakeholder Fotograf Informierer Peter Party ist angetan von der Idee von Snaplt Heute hat er sich mit einigen Kollegen verabredet um etwas durch die Stadt zu ziehen Geduscht gestylt und mit einer frischen Snaplt Installation auf seinem HTC Desire trifft er sich mit seinen Kollegen in der Galleria Bar Leider l uft nicht viel und die Jungs entscheiden sich ihren Standort zu wechseln Kurz bevor sie sich auf den Weg machen schnappt sich Peter sein Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 Eoi HOCHSCHULE F R TECHNIK RAPPERSWIL E E Studienarbeit HS2010 Snaplt Seite 37 150 Smartphone und knippst zwei Fotos von der verlassenen Bar Mit der Genugtuung dass sich heute keiner mehr in die lahme Location verirrt verl sst er die Bar Foto schiessen Werbung in eigener Sache Stakeholder Lokationsinhaber Personal Barbara Barli ist stolze Besitzerin einer eigenen kleinen Bar Ihr Gesch ft l uft gut aber sie sucht schon lange eine effektive und kosteng nsti
130. matik und der Einsatz von neuen Technologien sorgten f r weitere Motivationssch be Die Arbeit verlief sehr gut Vor allem die Zusammenarbeit mit Raphael Nagy machte mir Spass da man auch bei ihm dieselbe Motivation sp rte Das Vertrauen in die gegenseitigen Kenntnisse und die gute Kommunikation w hrend und vor dem Projekt sorgten f r eine gelungene Arbeitsteilung was sich wiederum auf die Produktivit t auswirkte Herr Stolze betreute das Projekt erfolgreich in dem er uns immer wieder mit kritischen Fragen und Anregungen auf Stolpersteine aufmerksam machte Ausserdem erinnerte er uns immer wieder an die Grenzen und Ziele und sorgte somit daf r dass das Projekt nicht aus den Rudern lief Diese Sicht einer dritten Person auf den Verlauf des Projekts war sehr wertvoll Probleme entstanden wie so oft bei der Aufwand und Zeitplanung Der bekannte bereifer und unrealistische Zielsetzungen mussten Anfangs der Projekts geb ndigt werden Die bereits vorhandene Erfahrung half uns dies zu meistern M he hatten wir auch mit dem einhalten bzw bestimmen des Vorgehensmodell unseres Projektes siehe Lessons Learned Alles in allem war das Projekt wieder eine super Vorbereitung auf das Berufsleben Neben einem sehr grossen Knowhow Gewinn im technischen Bereich konnte ich auch viel zum Thema Projektarbeit lernen Ich freue mich jetzt schon darauf die neuen Erkenntnisse beim Erarbeiten der Bachelorarbeit einzusetzen und so wieder ein Schritt n her
131. matisch heraufzuladen falls noch Zeit bleibt e Bilder Ansicht erg nzen einen Balken oben der anzeigt wie viele Bilder noch heraufzuladen sind e Youtube Video kann einem Werbevideo gleichen o Sollte Nutzen aufzeigen o Technische Herausforderung kann als Text eingeblendet werden o Problem Bsp Fotos anonym hochladen gt FB ist nicht anonym Sitzung vom 16 12 2010 e Woche 12 e Teilnehmer RN CHS MS e Abgenommen am Traktanden e Abnahme Sitzungsprotokoll e _Dokumentenreview vorg ngiges Lesen empfohlen e Checkliste durchgehen Offene Fragen e Unterschied Abstract und Management Summary aus Musterinhaltsverzeichnis e Hinweis Schwierigkeit Dokument aufgrund des iterativen Vorgehen e Hinweis Wiki nicht auf dem neusten Stand gt Dokument z hlt e Hinweis Dokumentiert nur was wichtig ist keine Pseudo Dokus e Hinweis Personas amp Szenarios usw abgesprochen Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 147 150 e Aufgabenstellung herein kopieren e Neuer Titel der Arbeit unpassend e Kriterien o 15 MS Review Inhaltsverzeichnis Bericht o Zeile 109 Korrektes UML o JavaDoc Resultate e Abnahme Iteration 4 5 amp 6 e Abstract verbessern und nochmals schicken e Plakat Layout und Inhalt besprochen e Videoablauf besprochen und abgenommen e Keine Vorgaben bez glich des Abga
132. me der App sind das Handling von Empfangsst rungen und unterbr chen die Lokalisierung und Fehlfunktionen aufgrund der Android spezifischen Verwaltung von Prozessen Diese Dinge zu simulieren ist sehr schwer und aufwendig die Realit t ist in diesen F llen kaum nachstellbar Diese Gr nde erkl ren warum beim Testen fters ein heuristisches Verfahren zum Einsatz kommt Dort wo die Implementation von JUnit Test den Aufwand rechtfertigen wird darauf zur ckgegriffen Als Erg nzung werden empirische Testpl ne ausgearbeitet welche die Use Cases abdecken Die Benutzerf hrung wird anhand heuristischer Usability Tests gepr ft JUnit F r das Testen der Snaplt Server Applikation wird JUnit 4 verwendet Da es einfach ist Testf lle zu schreiben Eine Alternative w re TestNG da aber die Einarbeitung viel Zeit in Anspruch nehmen w rde verzichten wir in diesem Projekt darauf Indirekt werden auf der Serverseite alle Schichten getestet F r die Zwischenschichten werden keine eignen Tests geschrieben ausser bei sehr speziellen F llen die dies rechtfertigen w rden Da dies einem automatischen Systemtest gleicht ist beim Ausf hren der Tests darauf zu achten eine saubere Testumgebung herzustellen und diese wieder im Ursprungszustand zu verlassen Das Schreiben von Tests f r jede Schicht ist zu aufwendig und somit w re der Zeitaufwand zu hoch Dokumentation Im Code werden nur schwer verst ndliche Algorithmen und hnliches kommentiert A
133. n Raphael Glossar erstellt Initial 0 10 Nagy 22 Sep10 Dokumentieren Raphael Zeitplan erstellt 2 00 Nagy Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt 22 Sep10 Projektmanagement 23 Sep10 Chores 23 Sep10 Chores 23 Sep10 Besprechung 23 Sep10 Projektmanagement 23 Sep10 Dokumentieren 23 Sep10 Dokumentieren 24 Sep10 Dokumentieren 24 Sep10 Dokumentieren 24 Sep10 Chores 25 Sep10 Dokumentieren 25 Sep10 Dokumentieren 25 Sep10 Chores 25 Sep10 Chores 27 Sep10 KnowHow Aufbau 27 Sep10 Projektmanagement 27 Sep10 Dokumentieren 28 Sep10 Dokumentieren 28 Sep 10 Projektmanagement 29 Sep10 Projektmanagement 29 Sep10 Dokumentieren 29 Sep10 KnowHow Aufbau 30 Sep10 Besprechung gement Christoph S ess Raphael Nagy Studienarbeit Christoph S ess Raphael Nagy Raphael Nagy Christoph S ess Christoph S ess Christoph S ess Christoph S ess Raphael Nagy Christoph S ess Christoph S ess Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Christoph S ess Christoph S ess Raphael Nagy Christoph S ess Christoph S ess Christoph S ess Christoph S ess Raphael Nagy Christoph Christoph Ausgabe 1 0 Sitzungsvorbereitung Eclipse installiert SVN aufgesetzt Skizzen der Iterationen Sitzungsprotokoll nachgef hrt Iterationen geplant Vision amp Projekts
134. n durchgelaufen ist sind das 8 79 Anfragen pro Sekunde 400 Anfragen 45 5 Sekunden Somit sind die Anforderungen sehr gut erf llt 9 4 Usability Aus Zeit gr nden und da der Fokus unserer App nicht auf dem GUI lag wurde kein heuristisches Verfahren verwendet um die Usability zu pr fen Die Usability Tests wurden durchgef hrt in dem verschiedene Benutzer die App f r mehrere Tage verwendeten und uns ein m ndliches Feedback gaben Die daraus resultierenden nderungen sind im Abschnitt Screens unter dem Titel Userinterface zu finden 9 5 Codequalit t 9 5 1 Snaplt Server Die Codequalit t ist einerseits mit dem Eclipse Plugin PMD gepr ft worden und ist direkt im SnapltServer Projekt des SVN Repositories abgespeichert Zu finden ist der Bericht im Ordner reports Des Weiteren wurden Screenshots erstellt von Auswertungen mit dem Eclipse Metric Plugin Zur Vollst ndigkeit sind alle berechneten Werte auf den folgenden Abbildungen einsehbar Metric Total Mean Std Dev Maximum Resource causing Maximum Method a Number of Overridden Methods avg max per type 3 0 062 0 242 1 SnapltServer src ch snapit service SnapltApplicatio src 2 0 048 0 213 1 SnapltServer src ch snapit service SnapltApplicatio test 1 0167 0 373 1 SnapltServer test ch snapit stress Client java 4 Number of Attributes avg max per type 55 1146 2 227 10 SnapltServer src ch snapit domain PictureDto java sre 40 0952 2 203 10 SnapltServer src ch snapit domain
135. nbankschnittstelle wird Hibernate JDBC eingesetzt um auf die PostgreSQL Datenbank zuzugreifen Eine genauere Analyse erfolgt im entsprechenden Sprint 5 4 Vorgehen Das Projekt wurde nach dem SE Vorgehensmodel SCRUM durchgef hrt Aus diversen Gr nden sind Elemente von anderen Vorgehensmodell miteinbezogen worden siehe dazu Abschnitt Lessons Learned 5 4 1 Sprints Die Risiken der einzelnen Sprints sind dem Abschnitt Risikomanagement zu entnehmen Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 zZ HSR HOCHSCHULE F R TECHNIK mE Studienarbeit HS2010 Snaplt Seite 16 150 Sprint 1 Server Mobile Server Website oO Di o o z Advanced Functionality Advanced Functionality rate club rate picture report club comment picture upload movies login REST Web Services via JSON d r Ie Apple iOS Android Zu Snaplt ch Website emm e r bd i Sr D Se u Mobile Symbian OS eeng Blac kBerry W ebsite Mobile Devices Clients Abbildung 5 2 Projekt bersicht Beschreibung e User Story Keine User Story e Iterationszeitraum 1 3 Woche 20 09 04 10 e Abnahme 14 10 2010 W hrend der ersten Iteration wird das Projekt geplant die Aufgabe genau analysiert und die Rahmenbedingungen festgelegt Anhand von Analysen werden die Chancen am Markt und die Konkurrenz ermittelt und dokumentiert Die zu implementierenden
136. nd durch die Schichten gereicht Dieses Objekt verh lt sich sehr hnlich zu einem Anything Objekt siehe APF Vorlesung 04_05_Reflection pdf 8 2 Desing und Technologieentscheide Die folgende Tabelle zeigt den Einfluss der Architekturentscheide auf die nichtfunktionalen Anforderungen siehe ISO 9126 ISON REST Jersey Tomcat SQLite Google Service API REST Architektur PostgreSQL Hibernate JSON Beschreibung JSON ist ein kompaktes textbasiertes Datenaustauschformat e JSON Wikipedia Einsatz S mtliche Daten die nicht in der URL Platz finden werden im JSON File bertragen Wir nutzen das JSON Format einerseits um komplexe Anfragen und Antworten in einem Objekt zu kapseln und andererseits um zwischen den Softwareschichten lange Parameterlisten zu vermeiden Alternativen e XML e ProtoBuf Bin res Datenaustauschformat von Google Vorteile Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 67 150 e Textbasiert und somit leserlich nderbarkeit e Plattformunabh ngig bertragbarkeit e Schneller als XML Parsen Effizienz e Geringe Dateigr sse schlanke Notation Effizienz Nachteile e Zur bertragen von Bin ren Daten braucht es BASE64 Encoding REST Beschreibung REST ist eine zustandslose HTTP basierte Service Architektur die definiert wie Daten zwisc
137. nden und die Versionsverwaltung wird direkt durch das System gemanagt Ausserdem kann man von berall her auf die Plattform zugreifen Das Erfassen von neuem Inhalt ist sehr simple gehalten was sehr positiv war Leider ergab die Einfachheit auch Probleme So ist das Erstellen einer Tabelle sehr un bersichtlich da es keine grafische Unterst tzung gibt Auch das Einbinden von Bildern ist m hsam da das praktische Drag and Drop nicht funktioniert Fazit Wiki eignet sich sehr gut f r eine Projektplattform Gewisse Features w ren jedoch sehr w nschenswert 11 3 4 Arbeitsteilung und Teamwork Wir sind berzeugt dass unsere Projektarbeit ein gutes Beispiel f r gelungene Teamarbeit war Unser Projekt eignete sich super um das Problem in zwei Teile zu gliedern den Client und den Serverteil Raphael hat sich fast ausschliesslich mit dem Server auseinandergesetzt und Christoph mit dem Client Wichtige Entscheidungen wurden aber immer zusammen beschlossen Diese Aufteilung brachte diverse Vorteile Jeder von uns musste nur halb so viele Technologien beherrschen Durch die schmale Schnittstelle kamen unsere Arbeiten sich nur selten in die Quere und der Koordinierungsaufwand hielt sich in Grenzen Beide von uns hatten auch immer eine Person die die Problemstellung von einem anderen Winkel betrachtete So entstanden gute Ideen Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 HSR HOCHSCHULE F
138. ne oder Android geschossen wurden live und mit Ortsangaben auf einer Webseite hochzuladen Andere Partyg nger k nnen sich hier informieren was l uft 4 4 Ziele der Arbeit In dieser Arbeit soll in einem ersten Schritt eine detaillierte Analyse der Bed rfnisse der zuk nftigen Nutzer Fotoschiesser und Fotobrowser durchgef hrt werden und eine saubere Konkurrenzanalyse von hnlichen Systemen gemacht werden Facebook Foursquare Tillate Usgang Lautundspitz In dieser Analyse sind auch die sinkenden Benutzerzahlen der Party Portale zu beachten http www thomashutter com index php 2009 07 killen social networks dieparty portale In einem zweiten Schritt soll ein funktionsf higer Prototyp einer Anwendung entwickelt werden Die Usability der Anwendung soll mittels Usability Tests gepr ft werden Die Wahl der Plattform iPhone Android bleibt dabei den Studenten berlassen 4 5 Zur Durchf hrung Mit den HSR Betreuern finden in der Regel w chentliche Besprechungen statt Zus tzliche Besprechungen sind nach Bedarf durch die Studierenden zu veranlassen Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 10 150 Alle Besprechungen sind von den Studenten mit einer Traktandenliste vorzubereiten und die Ergebnisse in einem Protokoll zu dokumentieren das dem Betreuer E Mail zugestellt wird Zudem wi
139. ng 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 140 150 e Szenario aus Sicht eines Barbesitzers e Antrag 1 6 Android Device an Herr Stolze e Formulieren eines Vorschlags in Bezug auf die Nutzerrechte der HSR bzw von uns Sitzung vom 30 09 2010 e Woche 2 e Teilnehmer CHS MS e Abgenommen am 07 10 2010 Traktanden e Bewertungskriterien von Herr Stolze besprechen e Iterationsplan pr sentieren amp besprechen e Weitere Resultate pr sentieren o Vision amp Projekt bersicht o Entwurf Projektplan o Knowledge Dokument Android REST client applications Offene Fragen Keine Entscheidungen Keine Resultierende ToDos e F r die Iterationen jeweils auch die Chores Hausarbeiten wie z B SVN aufsetzen festhalten e Abnahmetest der Iteration 1 ndern gt Abnahmetest ist erfolgreich wenn Herr Stolze ok gibt e Empirischer Test Testplan Auf Iterationsseite ndern e FotoStory in Artefact Story ndern e Im Projektplan JavaDoc als Qualit tsmerkmal festhalten gt Javadoc f r alle Klassen e Bewertungstabelle von Herr Stolze nochmals mit RN besprechen e Am Schluss muss ein Video in dieser Form vorliegen zeitbest ndige Demo gt Scrum Table Sitzung vom 07 10 2010 e Woche 3 e Teilnehmer RN CHS MS e Abgenommen am 14 10 2010 Traktanden e Abschluss Iteration 1 e Besprechen und Unterzeichen der Nutzungsrechte Vereinbarung Christoph S ess R
140. nimmt auch das Loggen der Transaktionen im ContentProvider siehe RestTransactionDb und informiert den ServiceResultReceiver r ber die erfolgreiche oder fehlerhafte Ausf hrung einer Anfrage e Delete Put Get amp PostTask o Diese Klassen rufen die korrekten REST Methoden des RESTClients auf Es sind alles Subklassen von RESTTask ch snapit rest transaction Das Transaction Package stellt Klassen zum Speichern der Transaktionen auf dem Smartphone zur Verf gung Dadurch werden die losen Requests zentral verwaltet Es k nnen Statusabfragen und nderungen vorgenommen werden e RESTTransaction o Die RestTransaction ist eine Container Klasse die alle Informationen h lt die einen Request eindeutig identifizieren Die Klasse wird als Transferobjekt zwischen dem Service und dem Contentprovider verwendet Im ContentProvider werden Datens tze von diesem Typ gespeichert e RESTTransactionDb o Die RESTTransactionDb ist ein ContentProvider der auf eine Datenbank zugreift Hier werden alle Transaktionen registriert und nach erfolgreichem Ausf hren wieder gel scht An dieser zentralen Stelle kann der Verkehr zwischen Server und Client jederzeit abgefragt werden e RESTTransactionDbHelper o Der RESTTransactionDbHelper beinhaltet Hilfsmethoden zur Erstellung der Datenbank ch snapit rest RESTClient Der RESTClient f hrt die REST Anfragen ber das HTTP Protokoll aus und Empf nger die Bytes vom Server Der R ckgabewert aller Methoden ist
141. nittstelle wird auf dem Server mit dem Jersey REST Framework realisiert Dieses Framework bietet eine einfache und stabile Implementation des JSR 311 Mit Hilfe der JavaScript Library jQuery werden die Bilder dynamisch auf der Beispiel Webseite angezeigt und durch verschiedene Einstellungen wird die vielf ltige Konfigurierbarkeit der Serviceschnittstelle in ihren Grundz gen pr sentiert Das System welches w hrend dieser Studienarbeit Q E i 14 31 Wo bist du Lokationen werden geladen Abbildung 2 2 Snaplt Screen Laden der Lokationen implementiert wurde bildet den Grundstein f r ein zuk nftiges Partyportal W hrend der Arbeit entstanden aber auch viele Komponenten die sich f r andere Zwecke einsetzen lassen So ist das zuverl ssige bermitteln von Fotos auf einen Server nicht nur zur Dokumentation des Nachtlebens einsetzbar Es ist z B denkbar dass Sicherheitspersonal mit solchen Kameras bestimmte Situationen dokumentieren Hier k me ein bis jetzt noch nicht erw hnter Vorteil zum Einsatz bermittelte Bilder k nnen nicht ohne weiteres gel scht werden w rden wir den entsprechenden Webservice nicht anbieten Das Zerst ren des Aufnahmeger ts w rde also das Foto nicht besch digen Mit Snaplt wurden alte Ideen mit neuen Technologien implementiert So entstand eine innovative und qualitative Android App Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 3 AeA
142. nutzer gibt vorhandene User ID ein und klickt auf den Button Benutzer ID berpr fen Benutzer gibt nicht vorhandene User ID ein und klickt auf den Button Benutzer ID berpr fen Benutzer klickt auf den Button ID generieren Benutzer klickt auf den Button Benutzer ID berpr fen Christoph S ess Raphael Nagy Studienarbeit HS2010 Snaplt Verbindung vorhanden TC 1 5 Verbindung vorhanden TC 1 5 Verbindung vorhanden Keine Verbindung TC 1 5 Keine Verbindung Studienarbeit Ausgabe 1 0 Seite 96 150 Ladefenster wird angezeigt und verschwindet nach dem Klick auf den Back Button TC 1 3 kann nun erfolgreich ausgef hrt werden Fenster mit Eingabefeld wird angezeigt Fenster schliesst sich Beim erneuten ffnen sind zuvor get tigte Eingabe nicht mehr ersichtlich User Id wird validiert und Kamera Ansicht angezeigt Die ber die Menu Funktion Benutzer ID anzeigen anzuzeigende ID enspricht der Erwartung User Id wird validiert und Fehlermeldung angezeigt Ladefenster wird angezeigt Keine Verbindung Meldung und Nochmals versuchen Button erscheinen im Fenster Ladefenster wird angezeigt Keine Verbindung Meldung und Nochmals versuchen Button erscheinen im Fenster Letzte nderung 23 12 2010 10 32 00 d HSR HOCHSCHULE F R TECHNIK RAPPERSWIL E E Benutzer klickt auf den Button Nochmals versuchen Benutzer gibt eine vorhandene Benutzer I
143. ocation Location name String valid boolean Club Club String Location Club long Club String getld long getLocation Location getName String getValid boolean setid long void setLocstion Locstion void setName String void setValid boolean void toClubDto ClubDto rt Seite 83 150 userld String getUserld String setUserld String void Usern User String Das obere Bild zeigt alle Domain Klassen diese werden wie weiter oben erw hnt haupts chlich von Hibernate gebraucht Einzig die Methode der Picture Klasse Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 P HSR HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 84 150 toPictureDto wird verwendet um daraus PictureDtos zu erstellen Analog dazu verh lt sich die entsprechende Methode in der Club Klasse clublid long Gupld Long clubLatitude Double clubLatitude Double elubLongitude Double clubLongitude Double clubName String clubName String valid Boolean date Long id long getClubld long imageByte String getClubLstitude Double latitude Double getClubLongitudef Double longitude Double getClubName String valid Boolean getValid Boolean setClubld long void setClubLatitude Double void setClubLongitude Double void setClubName String void setValid Boolesn void getClubld
144. oden spezifischen asynchronen Task wird die Activity ber das Starten informiert und kann dadurch darauf reagieren Die Transaktion wird dann im RestTransactionDb ContentProvider persistent gespeichert Somit kann die Transaktion berwacht und der Status abgefragt werden Der Task ruft nun die entsprechende RESTClient Methode auf 5 Die Klasse RESTClient sendet nun den Request ber HTTP an den Server und empf ngt dann das Resultat welches dann wieder an den aufrufenden Task zur ckgeben wird 6 Der Task empf ngt die Antwort und l scht die Transaktion aus der Datenbank wenn es sich um einen GET oder DELETE Request handelte POST und PUT Request m ssen manuell entfernt werden das Framework stellt eine solche Methode zur Verf gung somit besteht die M glichkeit diese Transaktionen erneut zu starten sollte das Resultat fehlerhaft sein Zum Schluss wird der aufrufenden Activity das Resultat bergeben und der definierte ResultReceiver aufgerufen 7 Die Activity kann nun das empfangene JSON interpretieren und die Daten verarbeiten Treten auf der Client Seite Fehler auf wird die Activity informiert Diese kann dann entsprechend reagieren Komponenten ch snapit rest service Die ganze REST Kommunikation l uft ber das Service Package um das Ganze von der Businesslogik zu trennen e RESTService o Der RESTService trennt die Datenkommunikations Logik von der Businesslogik Der Service wird von Android speziell behandelt Sollten
145. oll e public abstract JSONWrapper getLast JSONWrapper jsonRequest o Gibt das zu letzt heraufgeladene Bild zur ck Ansonsten verh lt sich der Aufruf gleich wie die Methode get e public abstract JSONWrapper getAll JSONWrapper jsonRequest o Gibt alle Bilder zur ck die auf die mitgegebenen Parameter passen Weitere Erkl rungen und Beispiele sind im Kapitel Protokoll zu finden e public JSONWrapper belongs JSONWrapper jsonRequest o Diese Methode pr ft ob der mitgegebene Benutzer K_USER_ID der Besitzer des Bildes K_IMAGE_ID ist Die Antwort wird als Wahrheitswert unter dem Schl ssel K IMAGE BELONGS zur ckgeschickt e public JSONWrapper changeLocation JSONWrapper jsonRequest ndert den Club eines Bildes K_IMAGE_ID sofern der mitgegebene Benutzer K_USER_ID der Besitzer des Bildes ist Falls eine g ltige Club ID K_CLUB_ID mitgegeben wurde wird das Bild diesem Club zugeordnet Wenn nur ein K_CLUB_NAME mitgegeben wurde dann wird gepr ft ob sich dieser Club mit dem System verbinden l sst Eventuell wird auch ein neuer Club angelegt e public JSONWrapper put JSONWrapper jsonRequest o F gt ein neues Bild hinzu Das Bild ist als BASE64 Codierter String unter dem Schl ssel K_IMAGE zu finden zudem muss ein g ltiger Benutzer K_USER_ID mitgegeben werden SecurityBusinessiInterface e public abstract User userAuthenticate JSONWrapper json o Diese Methode pr ft ob der Benutzer K_USER_ID existiert und gibt ihn im E
146. prechen 2 Iteration Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 142 150 Offene Fragen e Visionsdokument wird w hrend dem Projekt erg nzt gt Siehe Scrum e Motivation verst ndlicher machen gt Motivation wird aus UserStories ersichtlich siehe Titel e Dinge wie Sony Cam usw sind Dinge die unser Projekt nicht beeinflussen Es gibt hunderte von Idee welche aber keinen Einfluss auf die SA haben Wir sind der Meinung das solche Abkl rungen unsere SA bersteigen Entscheidungen e Abnahme des letzten Sitzungsprotokolle OK e Android Handy 1 6 ist kaputt ein neues Handy wurde bestellt und ist in max 2 Wochen nutzbar e Vision Aus User Stories e Abnahmekriterien erstellen f r die Iterationen e User Stories OK e Verschiedene Dokumente in sp tere Iterationen verlegen e Zu den Fragen Cam Nicht Teil unserer SA Resultierende ToDos e Vision aus User Stories erstellen erster Dokumententwurf e Iteration 1 muss eine Referenz auf den Projektantrag haben e Testcase Netzwechsel WLAN GSM e Usecase erg nzen Benutzer wird ber den Status seiner Aktionen informiert e Usecase Bezug zu User Stories herstellen Verlinken e Domain Modell in sp tere Iteration verschieben e F r die n chste Iteration die Abnahmekriterien definieren e F r alle Iterationen Abnahmekriterien er
147. r ffentlichen der aktuellen Position des Benutzers Indirekt wird die geografische Position mit anderen pers nlichen Daten verkn pft Die Facebook App erlaubt das Uploaden von Fotos Das direkte verkn pfen mit einer geografischen Position ist jedoch nicht m glich Foursquare unterst tzt keine Bilder hier wird nur Text und Koordinaten verwendet Die Partyportale gleichen auf den ersten Blick sehr unserem Produkt Die Ziele sind jedoch absolute widerspr chlich e Die Partyportale setzen auf Bilder in hoher Qualit t wobei bei uns die Qualit t Sekund r ist e Die Fotos der Partyportale sind normalerweise ein bis zwei Tage nach dem Event abrufbar bei uns dauert der Prozess zwischen Aufnahme und Publikation im Normalfall nicht mehr als 60 Sekunden e Die Partyportale die sich inzwischen zu Communities weiterentwickelt haben versuchen die Fotos zunehmend mit pers nlichen Daten der Fotomotive zu verbinden Dies geschieht ber M glichkeiten sich an einem Event anzumelden Personen auf Fotos zu markieren usw Snaplt setzt auf Anonymit t und Privatsph re e Die Fotografen der Portale befinden sich meistens in popul ren Lokationen und an namhaften Partys Die Fotos von Snaplt stammen aus diversen Lokationen die mehr oder weniger ber hmt sind Durch die unterschiedlichen Ziele haben die Benutzer auch einen anderen Nutzen e Was kann Snaplt im Gegensatz zu den Partyportalen o Snaplt liefert Live Bilder Diese Bilder k nnen dem B
148. r um die Client Applikation auf anderen Plattformen zu erstellen 10 1 1 Einf hrung Diese Abschnitte erkl ren und zeigen anhand konkreter Beispiele auf wie die REST Schnittstelle auf dem Server angesprochen wird Die IP des Testservers lautet wie folgt 152 96 56 24 Der Basispfad zur REST Service Schnittstelle der Applikation SnapltServer lautet e lt BASE URL gt http 152 96 56 24 80 SnapltServer rs F r die bessere Lesbarkeit wird folglich nur noch mit der lt BASE URL gt gearbeitet Diese kann falls die Serveradresse ndert einfacher korrigiert werden Des Weiteren wird definiert dass mit Applikation die SnapltServer Applikation gemeint ist 10 1 2 User Der Pfad zur Benutzer resp User Ressource lautet e lt BASE URL USER gt lt BASE URL gt user new json Beschreibung Der GET Aufruf new json fordert die Applikation auf eine neue eindeutige User Id zu generieren Falls dies erfolgreich war wird diese zur ckgegeben Aufruf GET lt BASE URL USER gt new json transId lt Int32 gt Beispiel GET lt BASE URL USER gt new json transId 1234567 userld 1u9900gueoswgqinu transld 1234567 status 0 valid json Beschreibung Der GET Aufruf valid json wird gebraucht um eine schon mal generierte User Id auf ihre G ltigkeit zu berpr fen Damit sichergestellt werden kann dass mit einer korrekten User Id gearbeitet wird denn f r CUD Operationen wird eine vorausgesetzt Aufruf GET lt BASE URL USER gt va
149. r Ablauf beschrieben Verwendete Codierrichtlinien e Die Mobile Applikation wird nach dem Android Code Style Guide programmiert Android Code Style Guide e Der Serverteil st tzt sich auf die Sun Richtlinien Sun Code Conventions Review Da einige Dokumentationen und der Sourcecode teilweise nicht in Teamarbeit entstehen werden die Resultate regelm ssig gegenseitig gelesen und kontrolliert Der Sourcecode wird zus tzlich mit der Applikation PMD unter Anwendung eines speziellen Android Checkstyles gepr ft PMD zeigt Schwachstellen und optimierungsbed rftige Stellen im Sourcecode an Google stellt zus tzlich diverse Tools zur Erh hung der Qualit t zur Verf gung die zusammen mit dem Android SDK installiert werden Sie erlauben das Testen und Verbessern der Benutzeroberfl che und der Anwendungsperformance Tests Da unsere Applikation aus verschiedenen Komponenten besteht und mehrere Technologien verwendet ist die Testbarkeit grunds tzlich eher schlecht Dabei gibt es diverse Probleme Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 28 150 e Das Android Framework unterst tzt zwar JUnit Test die sind aber sehr m hsam zu implementieren Die Test k nnen nicht ohne einen Emulator oder ein physisches Smartphone ausgef hrt werden und sind darum sehr inperformant e Die wahrscheinlichen Hauptproble
150. r das Verarbeiten der Fotos und Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 3 150 der Geodaten verantwortlich Die Serviceschnittstelle wird auf dem Server mit dem Jersey REST Framework realisiert Mit Hilfe der JavaScript Library jQuery werden die Bilder dynamisch auf der Beispiel Webseite angezeigt Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 4 150 2 Management Summary Seit mehreren Jahren haben sich in der Schweiz online Partyportale etabliert Der Schwerpunkt ihrer T tigkeit liegt beim Publizieren von hochwertigen Party und Eventfotos Diese Bilder werden von semiprofessionellen Fotografen geschossen und nach dem jeweiligen Anlass auf der Webseite ver ffentlicht Die Fotos werden mit professionellen digitalen Spiegelreflexkameras mit aufgesetztem Blitz geschossen daher werden die Bilder sehr scharf und weisen eine hohe Aufl sung auf Des Weiteren sind darauf h ufig nur Personen oder Personengruppen zu sehen Der Fotograf w hlt dabei seine Fotomotive selber aus Er versucht gezielt das Geschehen in ein gutes Licht zu r cken W hrend der Nachbearbeitung l scht der Fotograf die in seinen Augen nicht gelungene Aufnahmen Dadurch wird nur eine Si
151. r den Clubnamen links oben Benutzer klickt auf das L schen Schliessen Icon rechts oben Benutzer knippst ein Foto Christoph S ess Raphael Nagy Studienarbeit TC 21 41 TE Keine Verbindung Verbindung vorhanden Lokalisierung gibt kein Resultat zur ck Clubname in der Titelleiste ersichtlich Verbindung vorhanden Benutzer hat einen Club ausgew hlt somit handelt es sich um einen existierenden Club Ausgabe 1 0 Seite 98 150 Das Fenster schliesst sich und der Wertin der Titelleiste ndert sich nicht Das Fenster schliesst sich und der Wertin der Titelleiste ndert sich ensprechend der Eingabe keine Verbindung Meldung und Eingabefeld werden angezeigt Eingabefeld wird angezeigt keine Liste ersichtlich Clubname in der Titelleiste wird gel scht Foto wird erfasst heraufgeladen und dem korrekten Club zugeordnet Club wird als validiert angezeigt Es erscheint eine Mitteilung welche die Anzahl heraufgeladenen und ausstehenden Fotos anzeigt Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Benutzer knippst ein Foto Benutzer knippst ein Foto Benutzer knippst ein Foto Benutzer ffnet die Mitteilungsliste und klickt auf die Mitteilung Benutzer startet App erneut Benutzer knippst ein Foto Kamera in Portrait Position Benutzer knippst ein Foto Kamera in verkehrter Portrait
152. r ein Abend denkt sich Verona Vollgas Gestern wurde es etwas zu sp t und das eine oder andere Bier weniger h tte auch nicht geschadet Das w re ja alles nicht so schlimm w re da nicht das l stige Kopfweh und die vielen Fotos auf snapit ch die ich Gestern knipste denkt sich Verona Von ihrem Bett aus greift sie zum Smartphone und l scht die Fotos von snapit ch Mit nur noch halb so starken Schmerzen schl ft Verona weiter Fotos auf der Webseite betrachten Dabei sein ist alles Stakeholder Anseher Igor Ill geht f r sein Leben gerne mit seinen Kollegen in Club Magic Mountain um zu tanzen und zu feiern Aber leider ist er gerade krank und kann sein Bett nicht verlassen Er weiss aber dass seine Freunde heute Abend ohne ihn weggehen Um trotzdem einen Hauch des Feelings zu erleben ruft er die Webseite von Snaplt auf Er weiss ja wo sie sich aufhalten Auf der Webseite sieht er die Bilder die seine Kollegen vor wenigen Minuten geschossen hatten und nimmt gerade noch einen Schluck von seinem Tee denn sein Drang wieder gesund zu werden und auch wieder in den Ausgang zu gehen steigt mit jedem weiteren Foto dass er betrachtet Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 38 150 Fotos auf der Webseite betrachten Neues entdecken Stakeholder Informierer Walter Whats Up kennt die ber chtigten Clubs d
153. rbeit HS2010 Snaplt Seite 58 150 Image Beschreibung e Die Grossansicht eines Fotos erfordert erneut einen Server Zugriff Auch diese Wartezeit wird durch das Einblenden einer Fortschritts Anzeige berbr ckt e Neben dem Foto werden der Aufnahmezeitpunkt und die Lokation zu welcher das Foto zugeteilt wurde angezeigt e Sollte ein unerwarteter Fehler auftreten oder die Verbindung nicht vorhanden sein wird der Benutzer informiert 21 12 2010 14 37 Geb ude Physik Abbildung 7 22 GUI Image Screen 8 Architektur 8 1 Client Server Architektur Dieser Abschnitt beschreibt die Architektur von der Kommunikation zwischen Client und dem REST Server Programm Es wird nicht auf das Protokoll Meldungsaustausch eingegangen Dies wird im Kapitel Webservice Extension Developer Handbuch beschrieben Die folgende Grafik zeigt den Ablauf einer Anfrage CLIENT SERVER Z B Snaplt Mobil App Snaplt Server Programm Abbildung 8 1 REST Request Response Der Client startet eine Anfrage diese wird dann ber das HTTP Protokoll welches auf dem IP Protokoll aufsetzt abgeschickt Diese Anfrage wird vom Snaplt Server Programm entgegen genommen und verarbeitet Danach schickt dieser dem Client eine entsprechende Antwort Detailliertere Informationen ber die HTTP Spezifikation findet man auf IETF HTTP 1 1 Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 HSR HOCHSCHULE F
154. rd eine Projektseite ausgehend von Prof Stolzes internen SA 2010 Wiki erstellt http sinv0002 hsr ch MarkusStolze wiki cgi StolzeArbeitenHS2010 F r die Durchf hrung der Arbeit ist ein Projektplan zu erstellen Dabei ist auf einen kontinuierlichen und sichtbaren Arbeitsfortschritt zu achten An Meilensteinen gem ss Projektplan sind einzelne Arbeitsresultate in vorl ufigen Versionen abzugeben ber die abgegebenen Arbeitsresultate erhalten die Studierenden ein vorl ufiges Feedback Eine definitive Beurteilung erfolgt aufgrund der am Abgabetermin abgelieferten Dokumentation Die Evaluation erfolgt aufgrund des separat abgegebenen Kriterienkatalogs in bereinstimmung mit den Kriterien zur SA Beurteilung Es sollten hierbei auch die Hinweise aus dem abgegebenen Dokument Tipps f r die Strukturierung und Planung von Studien Diplom und Bachelorarbeiten beachtet werden 4 6 Dokumentation ber diese Arbeit ist eine Dokumentation gem ss den Richtlinien der Abteilung Informatik zu verfassen Die zu erstellenden Dokumente sind im Projektplan festzuhalten Alle Dokumente sind nachzuf hren d h sie sollten den Stand der Arbeit bei der Abgabe in konsistenter Form dokumentieren Die Dokumentation ist vollst ndig auf CD DVD in 2 Exemplaren abzugeben Zudem ist eine kurze Projektresultatdokumentation im Wiki von Prof Stolze zu erstellen dies muss einen Link auf einen YouTube Video enthalten welche das Resultat der Arbeit dokumentiert
155. rektheit der Testcases auch die Darstellung zu jedem Zeitpunkt kontrolliert Die Testresultate werden anhand der Anzeige auf dem Smartphone sowie der Webseite validiert Da die Webservices alle mit JUnit Test getestet wurden wird von einer fehlerfreien Webseite ausgegangen Alle Testf lle die keine Verbindung voraussetzen m ssen einerseits bei fehlender Internetverbindung und andererseits bei fehlender Verbindung zum Server getestet werden So wird berpr ft das die App bei Internetausfall und Serverausfall korrekt reagiert Aktivierung Benutzer ffnet App ist neu installiert Aktivierungs Ansicht wird die installierte oder alle App Daten angezeigt und korrekt Applikation wurden gel scht dargestellt Benutzer ffnet App wurde bereits Kamera Ansicht wird die installierte aktiviert angezeigt und korrekt Applikation dargestellt Benutzer klickt Verbindung Ladefenster wird auf den Button vorhanden angezeigt User ID ID generieren empfangen und zum Schluss die Kamera Ansicht angezeigt Die ber die Menu Funktion Benutzer ID anzeigen anzuzeigende ID enspricht der Erwartung Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Benutzer klickt auf den Button ID generieren und bricht den Vorgang mit einem Klick auf den Back Button ab Benutzer klickt auf den Button ID eingeben Benutzer klickt auf den Back Button Be
156. rfolgsfall zur ck Falls es keinen solcher Benutzer gibt wird eine NonkxistingUserException geworfen UserBusinesslInterface e public abstract JSONWrapper getNewID o Generiert eine neue Benutzer ID und gibt diese zur ck Die neue ID ist unter dem Schl ssel K_USER_ID zu finden e public abstract JSONWrapper isUserIdValid JSONWrapper jsonRequest Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 81 150 o Diese Methode pr ft ob die mitgegebene Benutzer ID K_USER_ID im System vorhanden und g ltig ist e public abstract boolean existsUserld String userld o Pr ft ob eine Benutzer ID existiert Diese Methode wird von der Methode isUserldValid genutzt Zudem k nnen mit Hilfe dieser Methode andere Klassen diese nutzen um gewisse Operationen nur f r gl tige Benutzer zug nglich zu machen ch snapit config Beschreibung In diesem Package sind die Konfigurationsdateien f r Hibernate und Snaplt abgelegt F r die Hibernate Konfigurationsdatei wird auf die Dokumentation von Hibernate verwiesen snapit properties e IMAGE_SIZE_LARGE 600 e IMAGE_SIZE_MIDDLE 480 e IMAGE_SIZE_LITTLE 150 e LOCATION_SEARCH_START 50 e LOCATION_SEARCH_END 100 e LOCATION_SEARCH_STEPSIZE 25 e USER_KEY_ALLOWED_CHARACTERS 0123456789abcdefghijklmnopgrstuvwxyz e USER_KEY_COUNT_OF_TRY 100 e USER_KEY_SIZE 16 Erkl run
157. rgeben Darin wird von der Business Factory eine Instanz des ImageBusinessInterfaces erstellt und den die ganzen Parameter als JSONWrapper Objekt bergeben Innerhalb der Business Methode put wird ein Bild Objekt Picture erstellt und dieses wird mit dem Standard Bild Prozessor bearbeitet Danach wird die Datenbank Schicht mit dem PictureStatement Objekt aufgerufen Diesem wird das bearbeitete Bild bergeben und gespeichert Wenn das Bild erfolgreich gespeichert wurde dann wird die Bild ID mit dem erfolgreichen Status K_STATUS welcher den Wert 0 Zahlenwert hat zur ckgeschickt Exception Handling sd Exception Handling On Club Change e K rvice ImageService interface interface A busness ImageBusnessintertace business ClubBusnesinterface Nobile Devic T 1 H rsimage 2356 changeCiub jsonO Bl changeLocation JSONWrapper J5ONWrapper mergeClub Club Club exception InvaslidClubNameExceptis errorNoValidCiub0 METANET KENETET AATA Abbildung 8 9 Exception Handling Beschreibung Das Ziel der Ausnahmebehandlung war dass der Benutzer m glichst eine Fehlermeldung sieht und diese vom System versteckt werden Somit ist es auch eine Art Sicherheitsmechanismus Es werden an den Anwender nur relevante Fehler weitergeleitet Das hier beschriebene Beispiel dient als Referenz f r alle Ausnahmen und kann somit auch auf diese ang
158. rgt Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 42 150 7 Technische Analyse 7 1 Lokalisierung 7 1 1 Ausgangslage Die Server Applikation ordnet vom User geknipste Fotos einer Lokation Club Bar zu Ein Punkt auf der Erde wird mittels L ngen und Breitengrad bestimmt Um ein Foto einer Lokation zuzuordnen muss der Client mittels GPS oder einer alternativen Technologie seine momentane Position Punkt so exakt wie m glich bestimmen und diese mit dem Foto dem Server mitteilen Dann sollte herausgefunden werden an welcher Lokation sich der User zum Zeitpunkt des Fotoknipsens befunden hatte Probleme Folgende Probleme wurden bei der Analyse identifiziert e Genauigkeit der Lokationsbestimmung auf dem Handy Das Mobiltelefon liefert je nach Telefoneinstellung sehr ungenaue Positionsangaben Es kann sein dass der Benutzer Lokationsbestimmung mit GPS ausgeschaltet hat und dann kennt das Handy nur die letzte bekannte Position oder die Position des Sendemasten in der Zelle in der es sich befindet Anhand dieser Angaben l sst sich ein Foto nicht genau einer Lokation zuordnen e Genauigkeit bei der Erfassung der Lokationen Eine Lokation kann nur dann exakt erfasst werden wenn viele Koordinatenpunkte zu einem geschlossenen Polygon geformt werden Dann kann exakt festgestellt werden ob sich der Ben
159. rtefact Story Seite 39 150 Foto ohne Lokation Der Benutzer schiesst mit der Applikation Snaplt ein Bild welches er an einer unbestimmten Lokation aufnimmt Das Foto wird erstellt und wird zum Snaplt Server hochgeladen Dort angekommen merkt das System dass die mitgegebenen Lokalisierungspunkte mit keinem Klub in der Datenbank bereinstimmen Jedoch wird es trotzdem gespeichert aber mit dem Vermerk dass kein passender Klub gefunden wurde Das Foto erscheint trotzdem auf der Webseite aber ohne dazugeh renden Klub Falls der Benutzer die Lokation kennt kann er dies mit Hilfe von Snaplt mitteilen und das Foto wird mit der neuen Lokation Klub Bar verbunden Nun kann das Foto wie alle anderen Bilder mit der passenden Lokation auf der Webseite angezeigt werden Foto mit Lokation Das Foto die Position und weitere Meta Daten werden von der Kamera erfasst und ber eine Schnittstelle an den Server geschickt Der Server nimmt das Foto entgegen und entfernt s mtliche Meta Daten Das anonymisierte Foto wird lokalisiert und auf dem Server abgelegt Ein Webservice liest das Foto aus und liefert es der Webseite wo es der Benutzer einsehen kann 6 4 Use Cases UC01 Foto knipsen Der Benutzer knipst ein Foto mit Hilfe der Applikation Snaplt und sendet dieses ab Primary Actor Scope Level Overview Stakeholders amp Interests Preconditions Postconditions Motivation Main Success Scenario Christoph S ess Raphael Nagy
160. rverseitige Applikation zust ndig Zu den Schwerpunkten geh rten die Datenspeicherung mit Hibernate und PostgreSQL sowie die Service Schnittstelle mit Jersey REST Im Nachhinein kann ich sagen dass ich mich jederzeit wieder f r diese Wahl entscheiden w rde Dies zeigt sich auch in der performanten Applikation die daraus entstanden ist Die w chentlichen Besprechungen mit Herrn Stolze waren sehr hilfreich da der Input aus Sicht einer dritten Person wichtig ist um das Ziel nicht aus den Augen zu verlieren und neue Ideen oder Anregungen zu erhalten Mit der Betreuung bin ich vollkommen zufrieden und durch die kreativen Anregungen von Herrn Stolze sehr f rderlich f r das Projekt Der Knowhow Gewinn in allen Bereichen war f r mich enorm Auch die Arbeit mit meinem Teamkollegen Christoph S ess war sehr gut Es gab nie Probleme und sein enormes Wissen in Android Bereich war ein wesentlicher Punkt weshalb die Arbeit aus meiner Sicht die Anforderungen bei weitem bertroffen hat An dieser Stelle m chte ich mich f r die super Zusammenarbeit ganz herzlich bei Christoph S ess bedanken 11 3 Lessons Learned 11 3 1 Definieren des Vorgehensmodell Von Anfang an war f r uns klar dass wir ein agiles Vorgehensmodell verwenden wollten Dies f hrte leider am Anfang zu Schwierigkeiten Einerseits lag das Problem an unserem fehlenden Knowhow andererseits basierten viele der SA Vorgaben auf dem RUP Vorgehensmodell So planten wir anf nglich gew
161. s c Port 5432 3 Jetzt kann entweder das Ant Script welches im SVN Ordner dbscript des Servers ausgef hrt werden oder eine Datenbank mit dem Name snapit erstellt werden und die Scripts manuell ausgef hrt werden die sich auch im oben genannten Ordner befinden 4 Danach kann der Applikationsserver gestartet werden und das Snaplt War File ber den Tomcat Web Application Manager installiert werden Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 118 150 10 3 Snaplt Client App 10 3 1 Installation Die Snaplt App kann wie jede andere Android App installiert werden Da die App aber zur Zeit nicht ver ffentlicht wurde muss die lokale apk Datei vom Computer aus installiert werden Einfacher ist die Installation ber die Eclipse SEU m glich wo die App direkt auf dem verbundenen Ger t gestartet werden kann Die neuste Version des App kann auch direkt ber das Smartphone installiert werden Hierzu greift man mit dem Browser auf folgende URL zu http 152 96 56 24 SnapltServer SnapltClient apk 10 3 2 Anwendung Eine gute bersicht ber die Grundfunktionen der App ist im Produktevideo zu sehen http www youtube com watch v m8i83lvtql Da der Funktionsumfang bersichtlich und die Bedienung gr sstenteils selbsterkl rend ist werden hier die wichtigsten M glichkeiten nur kurz erl utert Genau
162. s auf der Webseite betrachten Dabei sein ist alles Iterationszeitraum 12 Woche 29 11 06 12 Abnahme 16 12 2010 Snaplt ch Website Default Website Die 6 Iteration k mmert sich um das Abrufen der Fotos Der Fokus liegt auf dem Erstellen von Webservices die Fotos aufgrund bestimmter Parameter liefern Eine simple Webseite stellt die Resultate dar und dient als Prototyp f r eine zuk nftige interaktive Webseite Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 22 150 Abnahme Test Die Webservices werden anhand von JUnit Tests auf die Korrektheit berpr ft Resultierende Dokumente Software Webservices erm glichen es Fotos auf Basis von Parametern abzurufen Fotos werden auf einer Webseite simple dargestellt Sprint 7 Beschreibung e User Story Keine User Story e Iterationszeitraum 13 14 Woche 06 12 20 12 Die letzte Iteration dient nur noch dem Aufbereiten der Dokumente und der Vorbereitung der Pr sentation Hier sind keine nderungen an der Applikation geplant Abnahme Test Als Abnahmetest fungiert in erster Linie die Projektbewertung welche die Benotung f r die Software und die Dokumentation liefert Resultierende Dokumente e Plakat e Abstract e Youtube Video e Benutzerhandbuch e Komplette Softwaredokumentation 5 5 Kostenvorschlag Das Projekt
163. srsrssssssssssrsnninirereesnsnnnnnnnntnetennnnnnnnnnnnnnntnennnanannannnntnntetananannannnnnnnnerenananna 47 Abbildung 7 5 GUGA ery ae are 48 Abbildung 7 6 GUI Credits nen 48 Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 124 150 Abbildung 7 7 tr 49 Abbildung 7 8 GDl Activafion Screen sa eu 50 Abbildung 7 9 GUI Activation Screen Benutzer ID generieren EEN 50 Abbildung 7 10 GUI Activation Screen Benutzer ID eingeben 51 Abbildung 7 11 GUI Camera Screen Lokationen laden 52 Abbildung 7 12 GUI Camera Screen Lokation eingeben 52 Abbildung 7 13 GUI Camera Screen Foto knipsen een 53 Abbildung 7 14 GUI Camera Screen Men EEN 53 Abbildung 7 15 GUI Camera Screen Benutzer ID anzeigen 54 Abbildung 7 16 GUI Camera Screen Benachrichtigung EEN 54 Abbildung 7 17 GUI Gallery Screen Fotos I den EEN 55 Abbildung 7 18 G UI Gallery Screen een 55 Abbildung 7 19 GUI Gallery Screen Kontext Menn een 56 Abbildung 7 20 GUI Gallery Screen Menn EEN 56 Abbildung 7 21 GUI Credits Screen sa 57 Abbildung 7 22 GBUE Image Screen ana 58 Abbildung 8 1 REST Request Response une 58 Abbildung 8 2 Package Diagramm REST Client unnenemnneeneneeneenneneennennenne 60 Abbildung 8 3 Package bersicht Server 64 Abbildung 8 4 BEST Kommunikatian user ee 65 Abbildung 8 5 Klassendiagramm Oi
164. startet am 20 September 2010 und dauert bis am 23 12 2010 Es wird pro Woche im Durchschnitt ca 17 Stunden pro Projektmitarbeiter daran gearbeitet Die Stundenanzahl kann stark variieren und stellt nur ein ungef hrer Bezugspunkt dar Gegen Ende des Projekts rechnen wir mit berzeit da wir dann alle Texte aus dem Wikipedia in ein Dokument berf hren m ssen Zudem k nnen erst dann Artefakte wie zum Beispiel Plakate und Videos erstellt werden Das Team arbeitet w hrend 14 Wochen ca zwei Arbeitstage In der Wirtschaft kostet ein Arbeitstag den Arbeitsgeber ca 1000 CHF pro Mitarbeiter Die Projektkosten w rden sich also auf ungef hr 56 000 CHF belaufen 14 2 2 1 000 5 6 Risikomanagement Durch die iterative und agile Vorgehensweise haben wir das Risikomanagement auf die Sprints aufgeteilt Die folgenden Tabellen legen die Risiken f r die verschiedenen Sprints dar Allgemein Risiken sind am Anfang unter dem Abschnitt Projektrisiken zu finden Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 H HSR HOCHSCHULE F R TECHNIK RAPPERSWIL Projektrisiken Studienarbeit HS2010 Snaplt Seite 23 150 Ausfall Arbeits station Ausfall SVN Server Streit im Team Ausfall eines Projekt mitglie des Zeitkna ppheit Techno logiepr obleme Entwicklerhard ware mit lokaler Testumgebung f llt aus SVN Server der HSR f llt aus Grosse Meinungsverschi edenheit
165. stellen aber erst am Anfang der Iteration e Konkurrenz Analyse als Entwurf kennzeichnen e Anforderungsspezifikation in Iteration 4 verschieben e Risikomanagement unterteilen Projektrisiken und Spezifische Iterationsrisiken e Begr nden der Technologieentscheide Sitzung vom 21 10 2010 e Woche 5 e Teilnehmer RN CHS MS e Abgenommen am 27 10 2010 Traktanden e Abnahme Sitzungsprotokoll e Besprechen Bewertungskriterien ab Punkt 110 e Best tigung Abschluss 1 Iteration e Weitere Resultate amp Probleme besprechen 2 Iteration e Kleine DEMO e Zeitplanung Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 143 150 Offene Fragen Keine Entscheidungen e Die Iteration 1 wurde abgenommen e Die Iteration 2 endet mit der Publizierung der Architektur in Foren und Communities allf llige Verbesserungsvorschl ge werden in den sp teren Iteration umgesetzt e Das UI unserer Applikation wird nur auf Usability getestet Design spielt im SA Projekt keine Rolle e Die n chste Sitzung wird auf den Mittwoch 27 10 10 08 05 verschoben Resultierende ToDos e Experimentieren mit Latex um sp ter das Wiki in ein Dokument umzuwandeln e Zeitplan bis zur n chsten Sitzung nachtragen e State Machine eines Server Request Response ins Architektur Dokument aufnehmen falls Nutzen ersichtlich e Entscheidun
166. stem dass als Alternative auf dem Android Smartphone eingesetzt wird Da wird das DBMS aber nur f r wenige und einfache Transaktionen verwenden lohnt es sich nicht auch weil db4objects nicht so performant wie SQLite Vorteile e F r Android optimierte API Effizienz e Performant Effizienz e Unterst tz alle von uns ben tigten Funktionen Effizienz e Kein Android spezifisches DBMS bertragbarkeit Nachteile e Kein ORM Google Service API REST Architektur Beschreibung Die Google Service API REST Architektur ist eine von drei auf der Google I O 2010 besprochenen REST Architekturen f r Android Apps Im Moment existiert noch keine konkrete opensource Implementierung sondern nur die textuelle Beschreibung siehe Pr sentation Die Archtitektur l st Smartphonetypische Probleme wie Verbindungsunterbr che betriebssystemspezifische Eigenheiten und Performanceanforderungen e RESTful Android Apps Einsatz Die Google Service API REST Architektur wurde nicht eins zu eins implementiert Es wurden vorallem L sungsans tze bernommen Alternativen e Google ContentProvider API REST Architektur siehe Pr sentation e Google ContentProvider API with SyncAdapter REST Architektur siehe Pr sentation e Eigene Ans tze m glich Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 70
167. t Images aaa 113 Abbildung 10 4 JSON Antwort ClUbS see 116 Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 125 150 Abbildung 10 5 SDN Antwort Alle Clubs an 117 Abbildung 12 1 Zeiterfassuine ua 125 12 4 Zeitplan Anmerkung In der Zeiterfassung sind die drei letzten Tagen nicht enthalten SA Snaplt f r Prof Dr Markus Stolze Status aktiv Projektdauer Arbeitszeit 94 Tage 20 September bis 22 Dezember 2010 610 07 Stunden Effektive Arbeitstage Arbeitswochen Verrechenbare Arbeitszeit 79 Tage 14 Wochen 610 07 Stunden 100 Mitgearbeitet haben Durchschnittlich pro Arbeitstag Arbeitswoche Raphael Nagy und Christoph S ess 7 72 Stunden 43 57 Stunden Leistungen Implementieren 279 82 h Dokumentieren 168 28h Testen 7 6 KnowHow Aufbau 48 07 h KnowHow Aufbau 7 9 implementieren 45 9 Testen 46 58 h Besprechung 23 55h Projektmanagement 23 23 h Dokumentieren 27 6 Chores 20 53h Abbildung 12 1 Zeiterfassung Gesamt 610 04 20 Sep10 Dokumentieren Raphael Projektplan aufgesetzt 1 00 Nagy 20 Sep10 Projektmanagement Christoph 1 00 S ess 21 Sep10 Dokumentieren Raphael Risikomanagement erstellt 1 00 Nagy 21 Sep10 Dokumentieren Raphael Anforderungsspezifikation 1 00 Nagy erstellt Initial 22 Sep10 Dokumentieren Raphael User Stories 2 00 Nagy 22 Sep10 Dokumentiere
168. t Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 E HSR HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 41 150 Variations List Frequency of ca 400 Verwaltungszugriffe pro Abend Occurrence Open Issues UC03 Fotos ansehen Der Benutzer sieht sich Fotos von einem bestimmten Club an Primary Actor Snaplt Benutzer Scope Snaplt Applikation Level Benutzerziel Overview Ein Besucher betrachtet die nach verschiedenen Kriterien geordneten Fotos im Browser Stakeholders amp Fotograf Interests Anseher Alle geknipsten Fotos jederzeit auf der Webseite abrufen Fotomotiv Fotos des Motivs auf der Webseite abrufbar Lokationsinhaber Personal Pr sentationsplattform f r die in seiner Lokation geknippsten Fotos Werbung Informierer Aktuelle Fotos nach bestimmten Kriterien betrachten Snaplt Die Infrastruktur kann die Masse an Zugriffen handeln Preconditions Es wurde mindestens ein Foto publiziert Postconditions Motivation Der Benutzer kann die geknipsten Fotos betrachten Main Success 1 Benutzer ffnet die Webseite im Browser Scenario 2 Benutzer bestimmt die Anzeigekriterien 3 Fotos werden auf der Webseite angezeigt Extensions Zu den gew hlten Kriterien existiert kein Foto Alternative Flows Special Requirements Technology amp Data Vartatons List Frequency of 10 000 000 Seitenzugriffe im Monat Occurrence Open Issues e Wie wird die Seite in Echtzeit mit neuen Fotos verso
169. t ist eine Client Server Anwendung Beide Teile der Anwendung werden als separate Applikationen angesehen Da es ein Zukuntftsziel ist die Client Anwendung auf verschiedenen Handy Plattformen zu portieren Es besteht daher keine Kopplung zwischen den Projekten Da aber f r den Austausch von Nachrichten ber die REST Schnittstelle Schl sselw rter definiert werden mussten ist es m glich einzelne Klassen zu teilen beispielsweise ch snapit util JSONConstants Jedoch wird darauf hingewiesen dass auch ohne diese gemeinsam genutzte Klasse funktionieren w rde Weitere Details sind im entsprechenden Kapitel aufgef hrt Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 HSR HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 75 150 Systemstruktur device Server execution environment execution environment Windows Server 2003 Android 2 2 SnapltClient spk EI execution environment execution environment Apache Tomcat 6 0 PostgreSQL SnapltServer war 2 REST HT TP Hibemate JDBC Abbildung 8 7 Deployment Die Applikation Snaplt basiert auf einer 2 Tier Client Server Architektur Der Webserver sowie die dahinterliegende PostgreSQL Datenbank sind auf demselben physikalischen Server abgelegt Diese Architektur wurde gew hlt weil das Mobildevice lediglich zur Darstellung dient w hrend der Webservice die eigentliche Logik beinhaltet
170. tServer src ch snapit exception ImageProcess src 1 929 1 486 5 SnapltServer src ch snapit exception lmageProcess test 1 167 0 373 2 SnapltServer test ch snapit stress Client java 4 Number of Packages 11 src test 4 Abbildung 9 5 Codestatistik Teil 1 Metrics Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 Ed HSR HOCHSCHULE F R TECHNIK RAPPERSWIL Metric a Afferent Coupling avg max per packageFragment sre test Number of Interfaces avg max per packageFragment 5 sre 5 test 0 McCabe Cyclomatic Complexity avg max per method SC test Total Lines of Code 2541 sre 2010 test 531 Instability avg max per packageFragment sre test Number of Parameters avg max per method sre test Lack of Cohesion of Methods avg max per type BO test Efferent Coupling avg max per packageFragment sre test Number of Static Methods avg max per type 15 sre 12 test 3 Normalized Distance avg max per packageFragment test sre Total D D D Abbildung 9 6 Codestatistik Teil 2 Metrics Mean Std Dev Maximum 5 909 8 857 0 75 0 455 0 714 0 1 569 1 588 1 457 0 586 0 539 0 667 0 858 0 967 0 127 0111 3 818 5 286 1 25 0 312 0 286 05 0 333 0 381 Studienarbeit HS2010 Snaplt 8 754 9 804 0 829 1157 1 385 0 1 214 1 253 0 936 Resource causing Maximum 30 SnapltServer src ch snapit util 30 SnapltServer src ch snapit util
171. tatelmageProcessor Rotate 0 _90 _180 _270 Attributes rotAngle int Rotatefint getRotAngle int rotste RotatelmageProcessor process Picture Picture RotstelmsgeProcessor Rotste d li ClearMetaAttributesAndRescalePictureProcessor ealculsteDimension Dimension double Dimension process Picture Picture reszelmage Bufferedimage double bytel ProcessorFactory getDefaultPictureProcesor RotatelmageProcesor Rotate Processor lt Picture gt Abbildung 8 16 Prozessor Klassen Die obere Grafik zeigt den Inhalt des Processor Packages Erkl rung Ein Klasse welche das ProzessorInterface implmentiert nimmt mit der Methode process ein bestimmtes Objekt vom Typ lt T gt entgegen macht damit etwas und gibt es wieder zur ck Um mehrere dieser Prozessoren nacheinander auf das gleiche Objekt anzuwenden kann mittels der ProcessorFactory der gew nschte Prozessor erhalten werden Wenn die Methode doWork mit dem zu bearbeitenden Objekt aufgerufen wird dann werden alle gew nschten Prozessoren der Reihe nach aufgerufen mit dem bergebenen Objekt Nachdem alle Prozessoren durchgelaufen sind wird das Objekt zur ckgegeben und der Aufrufer kann damit weiterarbeiten Bisher sind nur zwei spezifische Processoren implementiert worden und zwar e ClearMetaAttributesAndRescalePictureProcessor CMAARPP e RotatelmageProcessor RIP Christoph S ess Raphael Nagy St
172. te e Sicherheit o Ist f r unsere Applikation nicht sehr wichtig k nnte aber f r die Wiederverwendung der REST Architektur implementiert werden niedrige Priorit t 8 1 2 Server ch snapit service ch snapit business Abbildung 8 3 Package bersicht Server Diese Grafik zeigt die zwei interessantesten Schichten der REST Server Architektur Service und Businesslayer Das folgende Sequenzdiagramm zeigt den Ablauf bei einer Anfrage vom Client Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 65 150 sd Sequenz Diagramm F Busnes A rem l requesSeniceitranssctioniD JSONWrapper l doBusines JSONWrspper JSONWrapper gt Response Abbildung 8 4 REST Kommunikation 1 Eine REST Service Methode nimmt die Anfrage entgegen Die Transaktions ID wird gelesen 3 Die bergebenen Query Parameter werden in ein JSON Wrapper Objekt verpackt 4 Das Wrapper Objekt wird einer Business Methode bergeben und als R ckgabe dieser Business Methode wird ebenfalls ein JSON Wrapper Antwort Objekt erwartet Zu diesem Antwort Objekt wird die Transaktions ID hinzugef gt Das Antwort Objekt wird in das entsprechende Ausgabeformat konvertiert 7 Die Antwort wird abgeschickt SS Si EI Komponenten ch snapit rs service REST Das Service Package ist die REST Servi
173. te 29 150 Damit die Einrichtung wie oben beschrieben ist erfolgreich durchgef hrt werden kann ist das vorhanden sein eines JDK ab der Version 6 und einem Apache Tomcat 6 erforderlich Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 30 150 6 Business Analyse 6 1 Markt Analyse Umfrage Zur Markt Analyse haben wir eine Umfrage durchgef hrt Die Empf nger der Mitteilung sind verschiedene Kollegen darunter sind Studenten und Lehrabsolventen Die meisten Befragten sind zwischen 21 24 Folgende Nachricht haben wir aunseren Kollegen ber Facebook zukommen lassen Stell dir vor du kannst auf dein I Phone oder Android Phone eine gratis Applikation installieren mit der du Fotos im Ausgang machen kannst und das geschossene Bild direkt im Internet landet inkl Zeit und Ortsangabe voll automatisch z B 10 11 2011 24 14 Downtown SG Dieses Foto kannst du dann direkt an Kollegen schicken oder auf deinem Facebook Profil ver ffentlichen Stell dir vor das machen hunderte oder tausende Leute und du kannst jeden Abend auf einer Webseite live Bilder von den besten Partys und Clubs der Stadt anschauen Du kannst dir die Fotos im Umkreis deines aktuellen Standorts anzeigen lassen oder auch einfach wild durchbl ttern Fragen 1 Was ist deine Meinung zu dieser Idee 2 W rdest du die Webseite besuchen um di
174. teht f r die Aufnahmen nicht zur Verf g So fr h wie m glich anfangen mit dem Dokument R19 Video Sich fr hzeitig mit den anderen Teams absprechen Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 berstunden Planung umstellen und an anderen Artefakten arbeiten Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 26 150 5 7 Infrastruktur In diesem Kapitel wird beschrieben unter welcher Umgebung gearbeitet wird 5 7 1 Entwicklungsumgebung Die lokale Entwicklungsumgebung setzt sich aus folgenden Komponenten zusammen Eclipse Entwicklungsumgebung f r SnapltClient SnapltServer und Beispielwebseite Android Emulator SDK SnapltClient Tomcat Webserver SnapltServer PostgreSQL Datenbank Von jedem Teammitglied wurde dies individuell auf dem eigenen Arbeitsrechner eingerichtet Eine genaue Installationsanleitung ist im Kapitel Benutzerhandbuch zu finden 5 7 2 Projektumgebung W hrend der Projektdurchf hrung wurden alle Texte und Dokumentationen im eigenen Wikipedia erfasst Das Wikipedia wurde von Christoph S ess kostenlos zur Verf gung gestellt Grafiken und andere Dokumente wie zum Beispiel Enterprise Architekt Dateien wurden im SVN Verzeichnis abgelegt Der Pfad zum Snaplt SVN Repository lautet svn svns hsr ch Snaplt Um Ordnung zu halten wurde folgende Verzeichnisstruktur angelegt 2 branches Fertige
175. tern einer einzigen Methode Diese Methode getImageJson liefert aufgrund von vielen Parametern eine Liste von Bildern Da die meisten Parameter optional sind ist diese Zahl relativ zu bewerten Metric 4 Abstractness avg max per packageFragment src test a Specialization Index avg max per type src test a Weighted methods per Class avg max per type src test 4 Number of Static Attributes avg max per type src test Abbildung 9 7 Codestatistik Teil 3 Metrics H ch snapit domain Abbildung 9 8 Package bersicht Christoph S ess Raphael Nagy Total Mean Std Dev Maximum Resource causing Maximum 0 101 0 151 0 444 SnapltServer src ch snapit business 0 159 0 164 0 444 SnapltServer src ch snapit business 0 0 0 SnapltServer test ch snapit persist 0 03 0 153 1 SnapltServer src ch snapit service SnapltApplicatio 0 025 0 152 1 SnapltServer src ch snapit service SnapltApplicatio 0 067 0 149 0 4 SnapltServer test ch snapit stress Client java 386 8 042 9 857 54 SnapltServer src ch snapit util JSONWrapper java 335 7976 10 218 54 SnapltServer src ch snapit util JSONWrapper java 51 85 6 801 21 SnapltServer test ch snapit service ServiceTest java 84 175 8 102 57 SnapltServer src ch snapit util JSONConstants java 78 1857 8 651 57 SnapltServer src ch snapit util JSONConstants java 6 1 0 816 2 SnapltServer test ch snapit service TestSuite java H ch snapit service H ch snapit business B ch snapit persist
176. trol amp Data Layer wurde in der obigen Grafik als ein Layer dargestellt Man kann diese Schichten aber auch als zwei einzelne Layers betrachten Das REST Package wurde im Abschnitt Architektur Client Server Kommunikation genau beschrieben Das bom Package Business Object Model wurde ziemlich klein gehalten Dies l sst sich folgendermassen begr nden Die Daten mit denen Snaplt arbeitet stammen einerseits vom Server und andererseits von der Benutzereingabe Diese Daten werden zwischen Client und Server transportiert Der Transport dieser Daten ist das Kerngesch ft von Snaplt Snaplt hat also nicht viel Business Logik Der Aufwand die zu sendenden und empfangenen Daten in Objekte zu parsen ist in diesem Fall nicht gerechtfertigt Dies w rde nur Performance und somit auch Akkulaufzeit vergeuden Anstelle die Daten aufwendig zu parsen werden sie direkt dargestellt oder in den Datenaustauschformat JSON verpackt Model Das Model besteht aus dem Package activities und dem Subpackage resultreceiver Die Activites f llen die Views ab und kontrollieren sie in dem sie Elemente dynamisch ein und ausblenden de aktivieren oder erzeugen Sie agieren also als klassische Controller Die Daten dazu beziehen sie ber REST Request die sie an den Server senden Je nach Situation werden die Daten vom Server direkt angezeigt oder zuerst noch in Businessobjekte geparst F r jeden Request der an den Server geschickt wird existiert ein R
177. tudienarbeit HS2010 Snaplt Seite 85 150 Diagramm EE RundwORIseri0sEncepton araVesenuD ong IL peedony Runouonmnssewertend Abbildung 8 14 Exception Klassen Das obere Diagramm zeigt alle Snaplt Exceptions ch snapit persist Beschreibung Das Package Persist beinhaltet alle Klassen um auf die PostgreSQL Datenbank zuzugreifen Diagramm class persist aan Kara VER EN EE EEE 1 dazz Clas lt T gt log Logger resdOniy execute Session boolean get Session T getAll Session Colledion lt T gt AbsractTranssctionMenager Clsss lt T gt execute AbstractStstement lt T gt boolean get AbstractStstement lt T gt T _ getAll AbstractStaiement lt T gt Collection lt T gt En ClubStatement Picture Statement UserStatement ClubStstement belongsflong User boolean delete User boolean e bool es E get long Club changeCiub User long Club Picture save User boolean Ve PR get String Club deleteflong User boolean UserStstement getClosestClubsklouble double double Coliection lt Club gt getflong Picture valid Usen boolean getClubs Usen Collection lt Ciub gt get ll User Date Date long int int long Sting ExtendedBoolean Collection lt Picture gt getClubs Collection lt Club gt getLssUplo
178. udienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 Eoi HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 87 150 Der RIP dreht das Bild in die gew nschte Richtung Der CMAARPP beinhaltet aus Performance Gr nden gleich mehrere Aufgaben zum einen verkleinert er das Bild auf die gew nschte Gr sse dabei werden gleich verschiedene Gr ssen erstellt Zum anderen werden in diesem Schritt Verkleinern automatisch alle Meta Informationen aus dem Bild gel scht da diese neu berechnet werden Somit k nnen gleich mehrere Aufgaben in einem Durchgang erledigt werden Weitere denkbare Prozessoren w ren noch e Bild Filter Prozessoren e Bild Verbesserungs Prozessoren e USW Zudem kann noch gesagt werden dass dieses Konstrukt sehr generisch gehalten wurde und es f r andere Zwecke wie z B Filtern von Anfragen gebraucht werden k nnte ch snapit service Beschreibung Das Package Service stellt die Verbindung zur Aussenwelt dar Die abgeleiteten Klassen der Service Klasse werden vom Jersey Framework aufgerufen um die gew nschten REST Anfragen an die Applikation Snaplt zu bergeben Diagramm Concrete Service Service SnapitApplication basePath Sting retumBinarylmagef bytel LAY LOGGER BEL OAI ONFIG_FILE int 60 1000 D retumJSOND JSONWrapper DEFAULT_TRANSACTION ID long 0 resdOniy DE GGE D_CONFIG_FILE int 6071000 fasdonij UNKNOWN FAILURE String
179. udienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 88 150 Die Funktionsweise der Service Klassen gleicht dem TransactionManager im Package ch snapit persist e ClubService o Stellt alle Services der Ressource club zur Verf gung e UserService o Stellt alle Services der Ressource user zur Verf gung e ImageService o Stellt alle Services der Ressource image zur Verf gung Der Ablauf wird im Kapitel REST Architektur genauer beschrieben F r das Verst ndnis der einzelnen Services wird auf die Java Doc und den Quellcode verwiesen ch snapit util Beschreibung Dieses Package enth lt verschiedene Hilfsklassen welche von den anderen Packages bzw Klassen gebraucht werden Klasse und Erkl rungen e ExtendedBoolean o Wird verwendet um einen Wahrheitswert mehrfach in der gleichen Klasse mittels Getter Setter auszulesen bzw zu setzen Die normale Boolean Klasse kann dort nicht verwendet werde wenn mit dem Final Schl sselwort gearbeitet wird Da dann nur einmal ein Wert im Konstruktor zugewiesen werden kann e HibernateUtil o Jnitialisiert Hibernate bzw den Datenbank Verbindungspool C3PO und stellt Methoden welche Datenbank Sessions verwalten zur Verf gung Es ist als Singleton implementiert da es nur einen Datenbank Verbindungspool geben darf e ImageSize o Enth lt die drei m glichen Bildgr ssen e SONWrapper o Stellt vers
180. ung Projektmanagement Dokumentieren Chores Implementieren Implementieren Dokumentieren Implementieren Chores Studienarbeit Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Christoph S ess Raphael Nagy Raphael Nagy Raphael Nagy Christoph S ess Raphael Nagy Raphael Nagy Christoph S ess Raphael Nagy Christoph S ess Raphael Nagy Christoph S ess Christoph S ess Raphael Nagy Christoph S ess Christoph S ess Raphael Nagy Raphael Nagy Raphael Ausgabe 1 0 DB Script Server Architektur Architektur REST Webservice Tests Weiteres Vorgehen Workspace aufger umt Server Architektur SAD Latex Refactoring Server aufsetzen 1 48 1 51 2 19 0 53 1 00 2 00 2 39 1 59 1 35 4 00 0 20 1 03 2 34 6 39 1 00 1 23 0 40 3 16 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL 6 Nov 10 6 Nov 10 6 Nov 10 6 Nov 10 7 Nov 10 7 Nov 10 8 Nov 10 8 Nov 10 8 Nov 10 9 Nov 10 9 Nov 10 9 Nov 10 9 Nov 10 10 Nov 10 10 Nov10 KnowHow Aufbau 10 Nov 10 10 Nov 10 10 Nov 10 10 Nov 10 11 Nov 10 11 Nov 10 11 Nov 10 11 Nov 10 11 Nov 10 Christoph S ess Raphael Nagy Studienarbeit HS2010 Snaplt Implementieren Chores Dokumentieren KnowHow Aufbau Implementieren Implementieren Implementieren Dokumentier
181. ung der Daten sollte in einem angemessenen Zeitraum stattfinden unter 1 Minute Mobiltelefon unterst tzt GPS oder alternative Lokalisierungstechnologie ca 4 000 Bilder pro Abend e Wie wird der Benutzer informiert dass keine passende Lokation dem Foto zugeordnet werden konnte e Wie merkt die Applikation dass sie wieder eine Internetverbindung hat e Werden die Lokations Vorschl ge zuerst gepr ft oder direkt dem Bild zugeordnet Der Benutzer verwaltet seine geschossenen Fotos Primary Actor Scope Level Overview Stakeholders amp Interests Preconditions Postconditions Motivation Main Success Scenario Extensions Alternative Flows Special Requirements Technology amp Data Christoph S ess Raphael Nagy Snaplt Benutzer Snaplt Applikation Benutzerziel Der Benutzer kann seine eigenen Fotos verwalten Fotograf Einfaches verwalten von seinen geknipsten Fotos Anseher Fotomotiv Lokationsinhaber Personal Informierer Snaplt Stabiles System Korrektheit der Informationen M glichst geringer Verwaltungsaufwand Benutzer hat mindestens ein Foto gemacht Die gew nschte Verwaltungsoperation konnte erfolgreich durchgef hrt werden Der Benutzer kann im Nachhinein seine Fotos verwalten 1 Benutzer w hlt Foto aus 2 Benutzer f hrt gew nschte Aktion auf dem Foto aus 3 System verarbeitet die Aktion 4 Applikation informiert den Benutzer ber den Erfolg seiner Aktion Studienarbei
182. us ist f r alle oben beschriebenen Methoden implementiert und funktioniert gleich Somit sind alle m glichen F lle von Datenbankabfragen und Aktionen abgedeckt Logging Auf der Serverseite verwenden wir Log4J Folgende Log Level werden unterschieden Die Rangordnung ist auch ersichtlich e DEBUG lt INFO lt WARN lt ERROR lt FATAL o Je n her der Log Level bei FATAL eingestellt ist desto schneller laufen die Logging Methoden F r den produktiven Einsatz sollte der Log Lever f r die Applikation Snaplt auf FATAL gestellt werden Aufgrund der Anonymit t der Nutzer und dem Performance Vorteil 8 5 5 Beschreibung der Packages ch snapit business Beschreibung Das Package ist f r eigentliche Verarbeitung der REST Anfragen zust ndig Stellt zudem eine Factory zur Verf gung damit verschiedene Implementierungen zulassen werden k nnen ohne die dar ber liegenden Schichten zu ndern Klasse BusinessFactory e ClubBusinessInterface getDefaultClubBusinessInterface e ImageBusinessInterface getDefaultImageBusinessInterface e SecurityBusinessInterface getDefaultSecurityBusinessInterface e UserBusinessInterface getDefaultUserBusinessInterface Interfaces ClubBusinessInterface e public abstract JSONWrapper getNearest final jSONWrapper jsonRequest o Gibt alle Clubs zur ck die sich in der N he befinden Im Objekt jsonRequest m ssen die Konstanten K_LOCATION_LATITUDE und K_LOCATION_LONGITUDE enthalten sein Als
183. usser einer JavaDoc Beschreibung der Klassen wird weitgehend auf Kommentare im Code verzichtet da diese grunds tzlich unn tig sind Jede Klasse wird mit einem JavaDoc Kommentar versehen und die wichtigen Schnittstellenmethoden ebenfalls beschrieben Die Analyse und Architektur Dokumente erkl ren ansonsten alles was nicht direkt aus der Implementierung entnommen werden k nnen 5 9 Einrichten der Entwicklungsumgebung Das Einrichten der Entwicklungsumgebung ben tigt aus sieben Schritten 1 Eclipse Helios f r Java EE Entwickler herunterladen und in ein Verzeichnis entpacken 2 Android Emulator herunterladen und den SDK Manager ausf hren und die gew nschte Versionen und Plattformen w hlen Android Development Tools ADT in Eclipse als Plug In installieren 4 JBoss Tools in Eclipse als Plug In installieren Dieser Schritt ist optional und kann weggelassen werden Diese Tools bieten jedoch einen guten Editor an um Hibernate Konfigurationsdateien einfach und bersichtlich zu editieren 5 PMD in Eclipse als Plug In installieren Wie der vorhergehende Schritt ist dies auch optional Dieses Tool kann f r automatischen Code Reviews eingesetzt werden 6 Subclipse F r den Zugriff auf das SVN Repository von Snaplt 7 Eclipse Metrics Plugin installieren Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Sei
184. utzer innerhalb dieser Lokation befindet Jedoch mit der Einschr nkung dass die Koordinaten vom Standort des Benutzers auch exakt sein m ssen e Zuordnung von Foto und Lokation Die korrekte Zuordnung von einem Foto zu einer bestimmten Lokation kann nur erfolgen wenn die Lokation komplett erfasst wurde und die Koordinaten des Fotos exakt sind Kleinste Abweichungen k nnen dazu f hren dass die Zuordnung nicht mit absoluter Sicherheit erfolgen kann e GPS Signal in geschlossenen R umen Die meisten Lokationen befinden sich in einem Geb ude und die Lokationsbestimmung mittels GPS ist dann fast unm glich Somit kann keine korrekte Position ermittelt werden L sungsm glichkeiten e Der Benutzer w hlt seine Lokation selber Der Client schickt seine genauste m gliche Position an den Server Dieser ermittelt alle Lokationen in einem bestimmten Umkreis und schickt diese dann dem User zur ck Der Benutzer w hlt dann die korrekte Lokation aus e Benutzer bestimmt seine Lokation selber Christoph S ess Raphael Nagy Studienarbeit Ausgabe 1 0 Letzte nderung 23 12 2010 10 32 00 W HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 43 150 Der User bestimmt seine Lokation selber ohne irgendeinen Einfluss vom Server Das heisst er gibt den Namen der Lokation manuell ein 7 1 2 L sung Eine geeignete L sung welche nicht viel Aufwand mit sich bringt ist dass Lokationsstandorte nur mit einem Koordinat
185. utzer klickt auf die Men Taste und klickt auf das Icon Aktualisieren Christoph S ess Raphael Nagy Studienarbeit Verbindung vorhanden Foto vorhanden TC 2 6 Verbindung vorhanden Foto mit nicht validiertem Club vorhanden TC 2 6 Verbindung vorhanden Foto mit validiertem Club vorhanden TC 2 6 Keine Verbindung Foto vorhanden Verbindung vorhanden Keine Verbindung Ausgabe 1 0 Seite 102 150 Es erscheint eine Liste mit den nahegelegenden Clubs Das Icon des Fotos wechselt die Farbe auf gr n und der korrekte Club wird beim anzeigen des Fotos dargestellt Das Icon des Fotos wechselt die Farbe auf rot und der korrekte Club wird beim anzeigen des Fotos dargestellt Es erscheint eine keine Verbindung Meldung Die Kamera Ansicht wird angezeigt Die Credits Ansicht wird angezeigt Die Fotos werden aktualisiert neu heraufgeladene Bilder werden angezeigt Es erscheint eine keine Verbindung Meldung Letzte nderung 23 12 2010 10 32 00 nu HOCHSCHULE F R TECHNIK RAPPERSWIL WW Studienarbeit HS2010 Snaplt Seite 103 150 Foto Benutzer Klickt auf Verbindung Die Galerie wird den Back Button vorhanden angezeigt Credits Benutzer klicktauf Verbindung Die Galerie wird den Back Button vorhanden angezeigt 9 3 2 Server Um die Stabilit t der Serverapplikation w hrend der Entwicklung zu gew hrleisten wurden drei Arten von JUnit Test erstellt welc
186. was viel Zeit um in die G nge zu kommen bzw m sste sie bei vielen Usern installiert sein Im App Store von Apple werden meines Wissens Apps mit zu wenig Downloadzahlen vom Store entfernt Diese Gefahr w rde bestehen ohne einen bekannten Namen dahinter Ich w rde diese Website besuchen um die Fotos anzusehen und die aktuellen Partys zu suchen 3 Ja ich w rde die App installieren und selber Fotos knipsen Auch ohne Lautundspitz oder Tillate als Brand Bruno S 1 Interessant aber wozu noch mehr Bilder von Besoffenen Leuten 2 Nein 3 Nein ich habe weder ein I Phone noch ein Android Phone Andreas Z 1 Gute Idee aber alleine f r diesen Zweck eine eigene App find ich etwas mager 2 Sicher immer dann wenn Langeweile herrscht 3 Warum nicht Patrick G 1 Ich finde die Idee super 2 3 Ja klar Ja ich mache ja auch sonst Fotos wenn ich im Ausgang bin Privatsph reneinstellungen w ren aber angebracht Damit ich Fotos von mir und meinen Kollegen evt Nur f r uns knipsen kann Christian M 1 Super Idee 2 Ja 3 Ja Lukas S 1 Ich denke dieses Projekt hat Potenzial Zumal heute eine solche App nicht 2 vorhanden ist und eine solche App durch die Einfachheit durchaus brillieren k nnte Die Schwierigkeit liegt wahrscheinlich darin die App zum Gebrauchsobjekt zu machen Also solange nur wenige Personen die App nutzen werden wahrscheinlich einige die App nie wieder verwendet was aber nicht an
187. z 10 8 Dez 10 8 Dez 10 8 Dez 10 8 Dez 10 8 Dez 10 8 Dez 10 9 Dez 10 9 Dez 10 9 Dez 10 9 Dez 10 9 Dez 10 10 Dez 10 12 Dez 10 13 Dez 10 13 Dez 10 13 Dez 10 13 Dez 10 14 Dez 10 Christoph S ess Raphael Nagy Studienarbeit HS2010 Snaplt Implementieren Testen Implementieren Implementieren KnowHow Aufbau Implementieren Implementieren Implementieren Implementieren Testen Testen Implementieren Testen Implementieren Implementieren Implementieren Implementieren Implementieren Dokumentieren Dokumentieren Dokumentieren Dokumentieren Chores Dokumentieren Studienarbeit Raphael Nagy Raphael Nagy Christoph S ess Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Christoph S ess Christoph S ess Raphael Nagy Christoph S ess Christoph S ess Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Raphael Nagy Ausgabe 1 0 Verbesserungen Refactoring Rotate Image Refactoring Refactoring Refactoring Refactoring Fixes Refactoring Inline Dokumentation Refactoring Architektur Seite 134 150 1 13 1 15 2 00 1 00 3 39 23 15 1 31 0 32 2 09 7 34 4 23 4 03 1 43 3 11 2 00 1 22 1 30 2 00 Update SnapltServer auf 0 22 Server 0 16 Letzte

Download Pdf Manuals

image

Related Search

Related Contents

Italiano Eng lish Esp año l Fran çais Deutsch  exemplar de assinante da imprensa nacional  Manuale d`uso  Philips myLiving Spot light 53220/11/16  Festa del risparmio 2014 - immagine logo Store Center a Tolmezzo    Bar Code and Magnetic Stripe Reader Model 2500 USER`S MANUAL  HP LaserJet 5 and 5M Printer User's Manual - ENWW  DEMANDE D`ABONNEMENT TELEPEAGE OPL TEMPS LIBRE  PIMEX MailExpress User Manual  

Copyright © All rights reserved.
Failed to retrieve file