2. Agenda
Wer & Was & Wie
Demo
Design & Architektur
Testing
Projektmanagement
Projektauswertung
2
Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
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. …SYNCHRONISATIONSSOFTWARE
4
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
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
13. Layer-Architektur
9
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
14. Layer: GUI
10
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
15. 11
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
16. 11
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
17. Layer: DB
12
Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
18. Layer: Core
13
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
19. Design-Model
14
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
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. File-Handling: EFS Aproach
16
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
22. File-Handling: EFS Aproach
16
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
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. 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. Verbindungsoptionen
19
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
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. 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. 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. 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. Im Detail
25
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
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. 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. 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. 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. Beispiel: TwoWaySync
26
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
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. 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. Usability Tests
Resultate
Erstellung des Wizards
Vereinfachung Synchronisationseinstellungen
Umbenennung von einzelnen Programmelementen
32
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
50. 6288
Wie GROSS klein wirklich Ist
34
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
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. 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. 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. 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. 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. Geschlafen wird später
Soll Ist
ø 162 210
210 h = 27 working days
39
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
58. More shiny stars!
Aufgabenteilung
Wöchentliche Teamsitzung
Dokumentation
Zeitplanung
Fertiges Produkt
Lerneffekt
41
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
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. Motiviert
Infrastruktur und Trac Ticketing
Kommunikation und Arbeit im Team
Kein Teamleader
Realitätsnah
43
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
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
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.