Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

0

Share

Titchysync Presentation

Related Books

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

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

Views

Total views

654

On Slideshare

0

From embeds

0

Number of embeds

3

Actions

Downloads

0

Shares

0

Comments

0

Likes

0

×