Titchysync Presentation

406
-1

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
406
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Im Namen des ganzen Teams möchte ich euch recht herzlich zur SE2P-Präsentation userer Software begrüssen.
    Noch 1 administrativer Hinweise: Fragen jederzeit erlaubt.
    Steigen wir auch direkt ein.
  • Hier ein kurzer Überblick über die Themen der nächsten 30 Minuten.
    Beginnen wir mit dem “Wer”
  • Unser Team besteht aus Léonie Fierz, welche die Verantwortung über das File-Handling sowie die API hatte. ....
    Betreut wurden wir von Herrn Axel Döring.
  • Nun das was. Wir wollten eine einfach bedienbare ..... kleine Synchronisationssoftware schaffen. Oder kennt zufällig jemand eine Software, die unseren Anforderungen entspricht?
  • Nun das was. Wir wollten eine einfach bedienbare ..... kleine Synchronisationssoftware schaffen. Oder kennt zufällig jemand eine Software, die unseren Anforderungen entspricht?
  • Nun das was. Wir wollten eine einfach bedienbare ..... kleine Synchronisationssoftware schaffen. Oder kennt zufällig jemand eine Software, die unseren Anforderungen entspricht?
  • Nun das was. Wir wollten eine einfach bedienbare ..... kleine Synchronisationssoftware schaffen. Oder kennt zufällig jemand eine Software, die unseren Anforderungen entspricht?
  • Nun das was. Wir wollten eine einfach bedienbare ..... kleine Synchronisationssoftware schaffen. Oder kennt zufällig jemand eine Software, die unseren Anforderungen entspricht?


  • Wie sind wir in unserem Projekt vorgegangen.
    Was ist Trac: Ticketing System, mit Wiki, Timeline und Roadmap
  • Wie sind wir in unserem Projekt vorgegangen.
    Was ist Trac: Ticketing System, mit Wiki, Timeline und Roadmap
  • Wie sind wir in unserem Projekt vorgegangen.
    Was ist Trac: Ticketing System, mit Wiki, Timeline und Roadmap
  • Wie sind wir in unserem Projekt vorgegangen.
    Was ist Trac: Ticketing System, mit Wiki, Timeline und Roadmap
  • Wie sind wir in unserem Projekt vorgegangen.
    Was ist Trac: Ticketing System, mit Wiki, Timeline und Roadmap
  • Wie sind wir in unserem Projekt vorgegangen.
    Was ist Trac: Ticketing System, mit Wiki, Timeline und Roadmap
  • Wie sind wir in unserem Projekt vorgegangen.
    Was ist Trac: Ticketing System, mit Wiki, Timeline und Roadmap
  • Das erste Highlight: Die Live Demo. Dazu benötigen wir nun den zweiten Beamer.

  • Nach dieser tollen Demo fürs Auge folgen nun einige Erklärungen zum Design und Architektur für den Kopf mit Amon.














































  • Titchysync Presentation

    1. 1. TitchySync Simple Backup and Sync Tool 1
    2. 2. Agenda Wer & Was & Wie Demo Design & Architektur Testing Projektmanagement Projektauswertung 2 Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    3. 3. Das Team Léonie Fierz Clemens Meier File-Handling, API Synchronisation, Core Amon Grünbaum Corsin Camichel Persistence, GUI, Infrastruktur Sitzungsleiter Axel Döring Projekt-Betreung 3 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    4. 4. …SYNCHRONISATIONSSOFTWARE 4 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    5. 5. √ einfach bedienbare… √ erweiterbare… √ plattformunabhängige… √ konfigurierbare… √ kleine… …SYNCHRONISATIONSSOFTWARE 4 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    6. 6. 5
    7. 7. TitchySync 5
    8. 8. Vorgehen 6 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    9. 9. Vorgehen Projektmanagement iterativer Prozess Wöchtentliche Team-Sitzungen Trac, Subversion, SQLite, OpenOffice.org 6 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    10. 10. Vorgehen Projektmanagement iterativer Prozess Wöchtentliche Team-Sitzungen Trac, Subversion, SQLite, OpenOffice.org Implementation Java + Swing AppFramework (JSR 296) 6 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    11. 11. Live Demo „Alles, was schiefgehen kann, wird auch schiefgehen.“ – Murphy’s Law, 1952 Follow the White Arrow 7 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    12. 12. Design & Architektur 8
    13. 13. Layer-Architektur 9 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    14. 14. Layer: GUI 10 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    15. 15. 11 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    16. 16. 11 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    17. 17. Layer: DB 12 Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    18. 18. Layer: Core 13 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    19. 19. Design-Model 14 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    20. 20. File-Handling: Anforderung Einheitlicher Zugriff unabhängig von Connection-Typ Informationen aus Datenbank Dateisystem 15 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    21. 21. File-Handling: EFS Aproach 16 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    22. 22. File-Handling: EFS Aproach 16 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    23. 23. TitchySync Plugin-System TitchySync TitchySync Plugins Core System Plugin System Fremdcode Public API Javadoc Blackbox 17 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    24. 24. API: Mein Plugin Implementation Extend Connection (5 Methoden, 2 Konstruktoren) Implement FileStore (11 Methoden, 1 Konstruktor) Registration in TitchySync Register Connection Type in Konfigurationsdatei: FTP:ch.schampi.plugins.ftp.FtpConnection 18 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    25. 25. Verbindungsoptionen 19 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    26. 26. Synchronisation 20
    27. 27. Synchronisation ✓Flexible Einstellungsmöglichkeiten, Syncrchronisationswünsche auf Fileebene ✓geänderte Files sollen nicht überschrieben werden, sofern dies nicht explizit gewünscht ist ✓Files nur dann löschen, wenn verlangt ✓keine korrupten Files 21 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    28. 28. Synchronisationsarten 1.OneWaySync Szenario 1: Skripteserver – Laptop Szenario 2: Inkrementelles Backup Alle Operationen auf Ziel Quelle wird nicht verändert 22 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    29. 29. Synchronisationsarten II 2.TwoWaySync Szenario: HeimComputer – Laptop Kopieroperationen in beide Richtungen Überschreiboperationen immer auf das ältere File (ausser bei Konflikten wo man noch eine Masterseite definieren kann) Kopieroperationen vor Löschoperationen 23 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    30. 30. Wie funktioniert es Zustände der Files New Deleted Unchanged Changed Conflicted mögliche Lösch- und Überschreiboperation pro Zustände der Files auf Quelle/Ziel einstellbar Möglichkeit zum ausschliessen von Ordnern/Files 24 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    31. 31. Im Detail 25 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    32. 32. Im Detail Wie wird festgestellt ob sich ein File seit der letzten Synchronisation geändert hat? 25 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    33. 33. Im Detail Wie wird festgestellt ob sich ein File seit der letzten Synchronisation geändert hat? Erste Synchronisation aktuelles Datum des Files in der Datenbank abspeichern 25 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    34. 34. Im Detail Wie wird festgestellt ob sich ein File seit der letzten Synchronisation geändert hat? Erste Synchronisation aktuelles Datum des Files in der Datenbank abspeichern Danach Bei jedem Überschreib-/Kopier-/Löschvorgang während einer Synchronisation das Datum nachtragen 25 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    35. 35. Im Detail Wie wird festgestellt ob sich ein File seit der letzten Synchronisation geändert hat? Erste Synchronisation aktuelles Datum des Files in der Datenbank abspeichern Danach Bei jedem Überschreib-/Kopier-/Löschvorgang während einer Synchronisation das Datum nachtragen Datumsvergleich Datum aus Datenbank != Datum vom Filesystem? => Das File hat sich geändert 25 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    36. 36. Beispiel: TwoWaySync 26 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    37. 37. TwoWaySync-Ablauf MYPICTURES 1 MYPICTURES 2 TEST 2 TEST 3 TEST 3 TEST 5 27
    38. 38. TwoWaySync-Ablauf MYPICTURES 1 MYPICTURES 2 TEST 2 Create TEST 2 TEST 3 TEST 3 TEST 5 27
    39. 39. TwoWaySync-Ablauf MYPICTURES 1 MYPICTURES 2 TEST 2 Create TEST 2 TEST 3 TEST 3 Overwrite TEST 5 27
    40. 40. TwoWaySync-Ablauf MYPICTURES 1 MYPICTURES 2 TEST 2 Create TEST 2 TEST 3 TEST 3 Overwrite Copy TEST 5 27
    41. 41. TwoWaySync-Ablauf MYPICTURES 1 MYPICTURES 2 TEST 2 Create TEST 2 TEST 3 TEST 3 Overwrite Copy MD5, same file TEST 5 27
    42. 42. TwoWaySync-Ablauf MYPICTURES 1 MYPICTURES 2 TEST 2 Create TEST 2 TEST 3 TEST 3 Overwrite Copy MD5, same file TEST 5 Create TEST 5 27
    43. 43. TwoWaySync-Ablauf MYPICTURES 1 MYPICTURES 2 TEST 2 Create TEST 2 TEST 3 TEST 3 Overwrite Copy MD5, same file TEST 5 Create TEST 5 Copy 27
    44. 44. Architektur Task Zuständig für Durchlauf der Verzeichisbäume Synchronizer Vergleicht 2 Files Abstrakte Klasse Synchronizer Subklassen OneWaySynchronizer & TwoWaySynchronizer Template Method vs. Strategy Pattern 28 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    45. 45. Testing 29
    46. 46. Unit Testing 89 JUnit-Tests * nichtrelevante Packages wurden ausgeblendet GUI manuell überprüft anhand Checkliste/Use Cases 30 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    47. 47. System Testing Performance Tests des Kopierens ChronoSync TitchySync Mac OS X Windows XP Mac OS X 3.1 s 28.5 s 6.6 s Speicherüberprüfung mit JavaProfiler 31 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    48. 48. Usability Tests Resultate Erstellung des Wizards Vereinfachung Synchronisationseinstellungen Umbenennung von einzelnen Programmelementen 32 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    49. 49. Projektmanagement 33
    50. 50. 6288 Wie GROSS klein wirklich Ist 34 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    51. 51. 6288 Wie GROSS klein wirklich Ist 6’288 Non Commenting Source Statements 776 Revisionen 2’550 Änderungen 75 Klassen 57’288 Zeilen editiert 89 JUnit Tests 34 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    52. 52. Features Synchronisationsarten OneWaySync/Backup TwoWaySync Connections: Lokels Dateisystem & Samba Plattformen: Mac OS X und Windows Stabiles Connection API Fehlertoleranz bei Verbindungsunterbruch Performance (Referenz: ChronoSync) 35 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    53. 53. GUI Features Intuitiv bedienbar Task in 10 Minuten erstellt Serverinformationen wiederverwendbar Voreinstellungen Synchronisationsoptionen Übersichtlich Benutzereinwilligung für Datei Modifikation/Löschung 36 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    54. 54. Zeitplanung 52 h Projekt Managment 59 h 19 h Requirements 17 h 49 h Analyse 57 h 56 h Design 59 h 239 h Implementation 299 h 92 h Tests / Bugfixing 132 h 38 h Dokumentation 101 h 105 h Sitzungen 117 h 0 75 150 225 300 Soll Ist 37 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    55. 55. Implementierung 97 h GUI 101 h 35 h Protokolle/API 43 h 43 h Synchronisation 65 h 23 h Datenhaltung 44 h 41 h Diverses 47 h 0 27.5 55 82.5 110 Soll Ist 38 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    56. 56. Geschlafen wird später Soll Ist ø 162 210 210 h = 27 working days 39 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    57. 57. Projektauswertung 40
    58. 58. More shiny stars! Aufgabenteilung Wöchentliche Teamsitzung Dokumentation Zeitplanung Fertiges Produkt Lerneffekt 41 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    59. 59. Lessons Learned Hibernate doch effizienter? Beta Release Features streichen statt Termin verschieben Zu viele Ideen ist zuviel des Guten Ideen als Enhancements aufgenommen Code Review Schnittstellen und Verschmelzung 42 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    60. 60. Motiviert Infrastruktur und Trac Ticketing Kommunikation und Arbeit im Team Kein Teamleader Realitätsnah 43 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
    61. 61. Zusammenfassung 44
    62. 62. Was wir euch verkaufen √ Java, Open Source, Free √ Läuft auf vielen Plattformen √ Unterstützt: Mac OS X, Windows XP, Windows Vista √ Nicht offiziel unterstützt: Linux, Solaris, andere JVM √ Extrem klein (titchy = winzig/sehr klein), < 10 MB √ Plugins für Samba, HSR, Local System, USB, FTP, SVN, WordPress ... (nicht alle jetzt verfügbar) 45
    63. 63. Download Version 1.0 (build 20090526.1) http://TitchySync.com/ Windows Mac OS X Linux 46
    64. 64. Download Version 1.0 (build 20090526.1) http://TitchySync.com/ Windows Mac OS X Linux 46
    65. 65. Merci 47
    66. 66. 48

    ×