TitchySync
Simple Backup and Sync Tool




                              1
Agenda
  Wer & Was & Wie
  Demo
  Design & Architektur
  Testing
  Projektmanagement
  Projektauswertung


               ...
Das Team
     Léonie Fierz                                   Clemens Meier
        File-Handling, API                     ...
…SYNCHRONISATIONSSOFTWARE




                                                                                            ...
√   einfach bedienbare…
  √   erweiterbare…
  √   plattformunabhängige…
  √   konfigurierbare…
  √   kleine…

             ...
5
TitchySync



             5
Vorgehen




                                                                                                  6
Wer & Was...
Vorgehen
     Projektmanagement
        iterativer Prozess
        Wöchtentliche Team-Sitzungen
        Trac, Subversion, ...
Vorgehen
     Projektmanagement
        iterativer Prozess
        Wöchtentliche Team-Sitzungen
        Trac, Subversion, ...
Live Demo



     „Alles, was schiefgehen kann, wird auch schiefgehen.“
     – Murphy’s Law, 1952



                 Foll...
Design & Architektur



                       8
Layer-Architektur




                                                                                                  9
...
Layer: GUI




                                                                                                  10
Wer & ...
11
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
11
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
Layer: DB




                                                                                            12
Was & Wie | D...
Layer: Core




                                                                                                  13
Wer &...
Design-Model




                                                                                                  14
Wer ...
File-Handling: Anforderung

     Einheitlicher Zugriff unabhängig von Connection-Typ
     Informationen aus
        Datenb...
File-Handling: EFS Aproach




                                                                                           ...
File-Handling: EFS Aproach




                                                                                           ...
TitchySync Plugin-System


        TitchySync                       TitchySync
                                           ...
API: Mein Plugin

     Implementation
        Extend Connection (5 Methoden, 2 Konstruktoren)
        Implement FileStore ...
Verbindungsoptionen




                                                                                                  ...
Synchronisation



                  20
Synchronisation

  ✓Flexible Einstellungsmöglichkeiten,
     Syncrchronisationswünsche auf Fileebene
  ✓geänderte Files so...
Synchronisationsarten

  1.OneWaySync
        Szenario 1: Skripteserver – Laptop
        Szenario 2: Inkrementelles Backup...
Synchronisationsarten II
  2.TwoWaySync
        Szenario: HeimComputer – Laptop
        Kopieroperationen in beide Richtun...
Wie funktioniert es
     Zustände der Files
        New
        Deleted
        Unchanged
        Changed
        Conflicte...
Im Detail




                                                                                                  25
Wer & W...
Im Detail
     Wie wird festgestellt ob sich ein File seit der letzten Synchronisation
     geändert hat?




            ...
Im Detail
     Wie wird festgestellt ob sich ein File seit der letzten Synchronisation
     geändert hat?
        Erste Sy...
Im Detail
     Wie wird festgestellt ob sich ein File seit der letzten Synchronisation
     geändert hat?
        Erste Sy...
Im Detail
     Wie wird festgestellt ob sich ein File seit der letzten Synchronisation
     geändert hat?
        Erste Sy...
Beispiel: TwoWaySync




                                                                                                 ...
TwoWaySync-Ablauf
 MYPICTURES 1   MYPICTURES 2

     TEST 2

     TEST 3         TEST 3




                    TEST 5



...
TwoWaySync-Ablauf
 MYPICTURES 1            MYPICTURES 2

     TEST 2     Create       TEST 2

     TEST 3                 ...
TwoWaySync-Ablauf
 MYPICTURES 1               MYPICTURES 2

     TEST 2       Create        TEST 2

     TEST 3           ...
TwoWaySync-Ablauf
 MYPICTURES 1               MYPICTURES 2

     TEST 2       Create        TEST 2

     TEST 3           ...
TwoWaySync-Ablauf
 MYPICTURES 1                     MYPICTURES 2

     TEST 2       Create              TEST 2

     TEST ...
TwoWaySync-Ablauf
 MYPICTURES 1                     MYPICTURES 2

     TEST 2       Create              TEST 2

     TEST ...
TwoWaySync-Ablauf
 MYPICTURES 1                     MYPICTURES 2

     TEST 2       Create              TEST 2

     TEST ...
Architektur
     Task
        Zuständig für Durchlauf der Verzeichisbäume
     Synchronizer
        Vergleicht 2 Files
   ...
Testing



          29
Unit Testing
     89 JUnit-Tests




  * nichtrelevante Packages wurden ausgeblendet


     GUI manuell überprüft anhand C...
System Testing


     Performance Tests des Kopierens
            ChronoSync                                   TitchySync
...
Usability Tests


     Resultate
        Erstellung des Wizards
        Vereinfachung Synchronisationseinstellungen
      ...
Projektmanagement



                    33
6288




  Wie GROSS klein wirklich Ist
                                                                                  ...
6288




  Wie GROSS klein wirklich Ist
  6’288 Non Commenting Source Statements                      776 Revisionen
  2’5...
Features
     Synchronisationsarten
               OneWaySync/Backup
                    TwoWaySync
                 Conne...
GUI Features
                 Intuitiv bedienbar

                 Task in 10 Minuten erstellt

                 Serverinf...
Zeitplanung
                         52 h
 Projekt Managment       59 h
                         19 h
       Requirements ...
Implementierung
                  97 h
              GUI
                  101 h
                     35 h
   Protokolle/A...
Geschlafen wird später

                                            Soll                            Ist



               ...
Projektauswertung



                    40
More shiny stars!
                       Aufgabenteilung

                       Wöchentliche Teamsitzung

               ...
Lessons Learned
     Hibernate doch effizienter?
     Beta Release
        Features streichen statt Termin verschieben
    ...
Motiviert
     Infrastruktur und Trac Ticketing
     Kommunikation und Arbeit im Team
     Kein Teamleader
     Realitätsn...
Zusammenfassung



                  44
Was wir euch verkaufen
√   Java, Open Source, Free
√   Läuft auf vielen Plattformen
    √   Unterstützt: Mac OS X, Windows...
Download

Version 1.0 (build 20090526.1)
http://TitchySync.com/
  Windows
  Mac OS X
  Linux


                           ...
Download

Version 1.0 (build 20090526.1)
http://TitchySync.com/
  Windows
  Mac OS X
  Linux


                           ...
Merci



        47
48
Nächste SlideShare
Wird geladen in …5
×

Titchysync Presentation

551 Aufrufe

Veröffentlicht am

Veröffentlicht in: Technologie, Business
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
551
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
2
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie
  • 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

    ×