SlideShare ist ein Scribd-Unternehmen logo
1 von 66
TitchySync
Simple Backup and Sync Tool




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


                                                                                            2
Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
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
…SYNCHRONISATIONSSOFTWARE




                                                                                                  4
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
√   einfach bedienbare…
  √   erweiterbare…
  √   plattformunabhängige…
  √   konfigurierbare…
  √   kleine…

                …SYNCHRONISATIONSSOFTWARE




                                                                                                  4
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
5
TitchySync



             5
Vorgehen




                                                                                                  6
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
Vorgehen
     Projektmanagement
        iterativer Prozess
        Wöchtentliche Team-Sitzungen
        Trac, Subversion, SQLite, OpenOffice.org




                                                                                                  6
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
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
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
Design & Architektur



                       8
Layer-Architektur




                                                                                                  9
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
Layer: GUI




                                                                                                  10
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
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 | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
Layer: Core




                                                                                                  13
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
Design-Model




                                                                                                  14
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
File-Handling: Anforderung

     Einheitlicher Zugriff unabhängig von Connection-Typ
     Informationen aus
        Datenbank
        Dateisystem




                                                                                                  15
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
File-Handling: EFS Aproach




                                                                                                  16
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
File-Handling: EFS Aproach




                                                                                                  16
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
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
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
Verbindungsoptionen




                                                                                                  19
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
Synchronisation



                  20
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
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
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
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
Im Detail




                                                                                                  25
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
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
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
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
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
Beispiel: TwoWaySync




                                                                                                  26
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
TwoWaySync-Ablauf
 MYPICTURES 1   MYPICTURES 2

     TEST 2

     TEST 3         TEST 3




                    TEST 5




                               27
TwoWaySync-Ablauf
 MYPICTURES 1            MYPICTURES 2

     TEST 2     Create       TEST 2

     TEST 3                  TEST 3




                             TEST 5




                                        27
TwoWaySync-Ablauf
 MYPICTURES 1               MYPICTURES 2

     TEST 2       Create        TEST 2

     TEST 3                     TEST 3


                Overwrite




                                TEST 5




                                           27
TwoWaySync-Ablauf
 MYPICTURES 1               MYPICTURES 2

     TEST 2       Create        TEST 2

     TEST 3                     TEST 3


                Overwrite




                  Copy




                                TEST 5




                                           27
TwoWaySync-Ablauf
 MYPICTURES 1                     MYPICTURES 2

     TEST 2       Create              TEST 2

     TEST 3                           TEST 3


                Overwrite




                  Copy




                  MD5, same file




                                      TEST 5




                                                 27
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
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
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
Testing



          29
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
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
Usability Tests


     Resultate
        Erstellung des Wizards
        Vereinfachung Synchronisationseinstellungen
        Umbenennung von einzelnen Programmelementen




                                                                                                  32
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
Projektmanagement



                    33
6288




  Wie GROSS klein wirklich Ist
                                                                                                  34
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
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
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
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
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
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
Geschlafen wird später

                                            Soll                            Ist



               ø                            162                           210



     210 h = 27 working days


                                                                                                  39
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
Projektauswertung



                    40
More shiny stars!
                       Aufgabenteilung

                       Wöchentliche Teamsitzung

                       Dokumentation

                       Zeitplanung

                       Fertiges Produkt

                       Lerneffekt

                                                                                                  41
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
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
Motiviert
     Infrastruktur und Trac Ticketing
     Kommunikation und Arbeit im Team
     Kein Teamleader
     Realitätsnah



                                                                                                  43
Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
Zusammenfassung



                  44
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
Download

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


                                 46
Download

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


                                 46
Merci



        47
48

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (20)

El matrimonio
El matrimonioEl matrimonio
El matrimonio
 
Velázquez
VelázquezVelázquez
Velázquez
 
COMERCIO
COMERCIOCOMERCIO
COMERCIO
 
Mirror2.0
Mirror2.0Mirror2.0
Mirror2.0
 
Damian moran
Damian moranDamian moran
Damian moran
 
Control de convencionalidad cuarto tribunal colegiado
Control de convencionalidad cuarto tribunal colegiadoControl de convencionalidad cuarto tribunal colegiado
Control de convencionalidad cuarto tribunal colegiado
 
Practicas Monica_Valeria
Practicas Monica_ValeriaPracticas Monica_Valeria
Practicas Monica_Valeria
 
HManual
HManualHManual
HManual
 
Lernen Mit Und Durch Medien
Lernen Mit Und Durch MedienLernen Mit Und Durch Medien
Lernen Mit Und Durch Medien
 
betterplace.org: Projektbelebung
betterplace.org: Projektbelebungbetterplace.org: Projektbelebung
betterplace.org: Projektbelebung
 
Trabajo de estructura discreta
Trabajo de estructura discretaTrabajo de estructura discreta
Trabajo de estructura discreta
 
Labmetrics Februar 2011
Labmetrics Februar 2011Labmetrics Februar 2011
Labmetrics Februar 2011
 
Que es ensayo
Que es ensayoQue es ensayo
Que es ensayo
 
Blower proyecto ciencias
Blower proyecto cienciasBlower proyecto ciencias
Blower proyecto ciencias
 
MENSAJERIA INSTANTANEA
MENSAJERIA INSTANTANEAMENSAJERIA INSTANTANEA
MENSAJERIA INSTANTANEA
 
Hintergrundinfos
HintergrundinfosHintergrundinfos
Hintergrundinfos
 
Historia de los Blogs en Internet
Historia de los Blogs en InternetHistoria de los Blogs en Internet
Historia de los Blogs en Internet
 
Diálogos de saberes en Santa Fé de Antioquia. noviembre de 2012.
Diálogos de saberes en Santa Fé de Antioquia. noviembre de 2012.Diálogos de saberes en Santa Fé de Antioquia. noviembre de 2012.
Diálogos de saberes en Santa Fé de Antioquia. noviembre de 2012.
 
Journalistische Recherche im Social Web
Journalistische Recherche im Social WebJournalistische Recherche im Social Web
Journalistische Recherche im Social Web
 
Innovacion
InnovacionInnovacion
Innovacion
 

Ähnlich wie Titchysync Presentation

Hightway to Hell - Responsive Webdesign Testen
Hightway to Hell - Responsive Webdesign TestenHightway to Hell - Responsive Webdesign Testen
Hightway to Hell - Responsive Webdesign TestenPeter Rozek
 
OOP 2012 - Udo Pracht - DevOps Einführung und Überblick
OOP 2012 - Udo Pracht - DevOps Einführung und ÜberblickOOP 2012 - Udo Pracht - DevOps Einführung und Überblick
OOP 2012 - Udo Pracht - DevOps Einführung und ÜberblickUdo Pracht
 
JavaScript und trotzdem Softwerker
JavaScript und trotzdem SoftwerkerJavaScript und trotzdem Softwerker
JavaScript und trotzdem SoftwerkerDennis Wilson
 
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?punkt.de GmbH
 
Continuous Delivery - Nett oder nötig? Erfahrungsbericht der FriendScout24 - ...
Continuous Delivery - Nett oder nötig? Erfahrungsbericht der FriendScout24 - ...Continuous Delivery - Nett oder nötig? Erfahrungsbericht der FriendScout24 - ...
Continuous Delivery - Nett oder nötig? Erfahrungsbericht der FriendScout24 - ...Michael Maretzke
 
Agile Softwareentwicklung Bei Geschäftsanwendungen
Agile Softwareentwicklung Bei GeschäftsanwendungenAgile Softwareentwicklung Bei Geschäftsanwendungen
Agile Softwareentwicklung Bei GeschäftsanwendungenLars Jankowfsky
 
Roadshow 2018 - Camunda in der Praxis: So geht's
Roadshow 2018 - Camunda in der Praxis: So geht'sRoadshow 2018 - Camunda in der Praxis: So geht's
Roadshow 2018 - Camunda in der Praxis: So geht'scamunda services GmbH
 
Einführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungEinführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungChristian Baranowski
 
Team Foundation Server
Team Foundation ServerTeam Foundation Server
Team Foundation Serverguest23319
 
Cusy Developer-Baukasten
Cusy Developer-BaukastenCusy Developer-Baukasten
Cusy Developer-Baukastencusy GmbH
 
Quo vadis-devops-nuernberg
Quo vadis-devops-nuernbergQuo vadis-devops-nuernberg
Quo vadis-devops-nuernbergcusy GmbH
 
Quo vadis DevOps
Quo vadis DevOpsQuo vadis DevOps
Quo vadis DevOpscusy GmbH
 
DWX 2014 - Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
DWX 2014 -  Coded UI in der Praxis: Von Lokalisierung bis NachhaltigkeitDWX 2014 -  Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
DWX 2014 - Coded UI in der Praxis: Von Lokalisierung bis NachhaltigkeitNico Orschel
 
Agile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsAgile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsHussein Morsy
 
Creasoft - Software QS Review
Creasoft - Software QS ReviewCreasoft - Software QS Review
Creasoft - Software QS ReviewCreasoft AG
 
Creasoft - Software QS
Creasoft - Software QSCreasoft - Software QS
Creasoft - Software QSCreasoft AG
 
Software Measurement in agilen Projekten mit Open Source Tools
Software Measurement in agilen Projekten mit Open Source ToolsSoftware Measurement in agilen Projekten mit Open Source Tools
Software Measurement in agilen Projekten mit Open Source ToolsDominik Dary
 
Xp days2010 agile-usabiltytoolbox
Xp days2010 agile-usabiltytoolboxXp days2010 agile-usabiltytoolbox
Xp days2010 agile-usabiltytoolboxxpdaysgermany
 
Microsoftpowerpoint Sib Chmdalumnipresentation 090521031102 Phpapp01
Microsoftpowerpoint Sib Chmdalumnipresentation 090521031102 Phpapp01Microsoftpowerpoint Sib Chmdalumnipresentation 090521031102 Phpapp01
Microsoftpowerpoint Sib Chmdalumnipresentation 090521031102 Phpapp01aadiversity
 

Ähnlich wie Titchysync Presentation (20)

Hightway to Hell - Responsive Webdesign Testen
Hightway to Hell - Responsive Webdesign TestenHightway to Hell - Responsive Webdesign Testen
Hightway to Hell - Responsive Webdesign Testen
 
OOP 2012 - Udo Pracht - DevOps Einführung und Überblick
OOP 2012 - Udo Pracht - DevOps Einführung und ÜberblickOOP 2012 - Udo Pracht - DevOps Einführung und Überblick
OOP 2012 - Udo Pracht - DevOps Einführung und Überblick
 
JavaScript und trotzdem Softwerker
JavaScript und trotzdem SoftwerkerJavaScript und trotzdem Softwerker
JavaScript und trotzdem Softwerker
 
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?
Punkt.de – Layout-Testing: was geht, was bringt´s, wer braucht´s?
 
Continuous Delivery - Nett oder nötig? Erfahrungsbericht der FriendScout24 - ...
Continuous Delivery - Nett oder nötig? Erfahrungsbericht der FriendScout24 - ...Continuous Delivery - Nett oder nötig? Erfahrungsbericht der FriendScout24 - ...
Continuous Delivery - Nett oder nötig? Erfahrungsbericht der FriendScout24 - ...
 
Agile Softwareentwicklung Bei Geschäftsanwendungen
Agile Softwareentwicklung Bei GeschäftsanwendungenAgile Softwareentwicklung Bei Geschäftsanwendungen
Agile Softwareentwicklung Bei Geschäftsanwendungen
 
Roadshow 2018 - Camunda in der Praxis: So geht's
Roadshow 2018 - Camunda in der Praxis: So geht'sRoadshow 2018 - Camunda in der Praxis: So geht's
Roadshow 2018 - Camunda in der Praxis: So geht's
 
Einführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungEinführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software Entwicklung
 
Team Foundation Server
Team Foundation ServerTeam Foundation Server
Team Foundation Server
 
Cusy Developer-Baukasten
Cusy Developer-BaukastenCusy Developer-Baukasten
Cusy Developer-Baukasten
 
Design OOA OOD
Design OOA OODDesign OOA OOD
Design OOA OOD
 
Quo vadis-devops-nuernberg
Quo vadis-devops-nuernbergQuo vadis-devops-nuernberg
Quo vadis-devops-nuernberg
 
Quo vadis DevOps
Quo vadis DevOpsQuo vadis DevOps
Quo vadis DevOps
 
DWX 2014 - Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
DWX 2014 -  Coded UI in der Praxis: Von Lokalisierung bis NachhaltigkeitDWX 2014 -  Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
DWX 2014 - Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
 
Agile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsAgile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit Rails
 
Creasoft - Software QS Review
Creasoft - Software QS ReviewCreasoft - Software QS Review
Creasoft - Software QS Review
 
Creasoft - Software QS
Creasoft - Software QSCreasoft - Software QS
Creasoft - Software QS
 
Software Measurement in agilen Projekten mit Open Source Tools
Software Measurement in agilen Projekten mit Open Source ToolsSoftware Measurement in agilen Projekten mit Open Source Tools
Software Measurement in agilen Projekten mit Open Source Tools
 
Xp days2010 agile-usabiltytoolbox
Xp days2010 agile-usabiltytoolboxXp days2010 agile-usabiltytoolbox
Xp days2010 agile-usabiltytoolbox
 
Microsoftpowerpoint Sib Chmdalumnipresentation 090521031102 Phpapp01
Microsoftpowerpoint Sib Chmdalumnipresentation 090521031102 Phpapp01Microsoftpowerpoint Sib Chmdalumnipresentation 090521031102 Phpapp01
Microsoftpowerpoint Sib Chmdalumnipresentation 090521031102 Phpapp01
 

Titchysync Presentation

  • 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
  • 5. einfach bedienbare… √ erweiterbare… √ plattformunabhängige… √ konfigurierbare… √ kleine… …SYNCHRONISATIONSSOFTWARE 4 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
  • 6. 5
  • 8. Vorgehen 6 Wer & Was & Wie | Demo | Design & Architektur | Testing | Projektmanagement | Projektauswertung
  • 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. 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. 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
  • 37. TwoWaySync-Ablauf MYPICTURES 1 MYPICTURES 2 TEST 2 TEST 3 TEST 3 TEST 5 27
  • 38. TwoWaySync-Ablauf MYPICTURES 1 MYPICTURES 2 TEST 2 Create TEST 2 TEST 3 TEST 3 TEST 5 27
  • 39. TwoWaySync-Ablauf MYPICTURES 1 MYPICTURES 2 TEST 2 Create TEST 2 TEST 3 TEST 3 Overwrite TEST 5 27
  • 40. TwoWaySync-Ablauf MYPICTURES 1 MYPICTURES 2 TEST 2 Create TEST 2 TEST 3 TEST 3 Overwrite Copy TEST 5 27
  • 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. 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. 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. 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. Testing 29
  • 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
  • 63. Download Version 1.0 (build 20090526.1) http://TitchySync.com/ Windows Mac OS X Linux 46
  • 64. Download Version 1.0 (build 20090526.1) http://TitchySync.com/ Windows Mac OS X Linux 46
  • 65. Merci 47
  • 66. 48

Hinweis der Redaktion

  1. Im Namen des ganzen Teams m&#xF6;chte ich euch recht herzlich zur SE2P-Pr&#xE4;sentation userer Software begr&#xFC;ssen. Noch 1 administrativer Hinweise: Fragen jederzeit erlaubt. Steigen wir auch direkt ein.
  2. Hier ein kurzer &#xDC;berblick &#xFC;ber die Themen der n&#xE4;chsten 30 Minuten. Beginnen wir mit dem &#x201C;Wer&#x201D;
  3. Unser Team besteht aus L&#xE9;onie Fierz, welche die Verantwortung &#xFC;ber das File-Handling sowie die API hatte. .... Betreut wurden wir von Herrn Axel D&#xF6;ring.
  4. Nun das was. Wir wollten eine einfach bedienbare ..... kleine Synchronisationssoftware schaffen. Oder kennt zuf&#xE4;llig jemand eine Software, die unseren Anforderungen entspricht?
  5. Nun das was. Wir wollten eine einfach bedienbare ..... kleine Synchronisationssoftware schaffen. Oder kennt zuf&#xE4;llig jemand eine Software, die unseren Anforderungen entspricht?
  6. Nun das was. Wir wollten eine einfach bedienbare ..... kleine Synchronisationssoftware schaffen. Oder kennt zuf&#xE4;llig jemand eine Software, die unseren Anforderungen entspricht?
  7. Nun das was. Wir wollten eine einfach bedienbare ..... kleine Synchronisationssoftware schaffen. Oder kennt zuf&#xE4;llig jemand eine Software, die unseren Anforderungen entspricht?
  8. Nun das was. Wir wollten eine einfach bedienbare ..... kleine Synchronisationssoftware schaffen. Oder kennt zuf&#xE4;llig jemand eine Software, die unseren Anforderungen entspricht?
  9. Wie sind wir in unserem Projekt vorgegangen. Was ist Trac: Ticketing System, mit Wiki, Timeline und Roadmap
  10. Wie sind wir in unserem Projekt vorgegangen. Was ist Trac: Ticketing System, mit Wiki, Timeline und Roadmap
  11. Wie sind wir in unserem Projekt vorgegangen. Was ist Trac: Ticketing System, mit Wiki, Timeline und Roadmap
  12. Wie sind wir in unserem Projekt vorgegangen. Was ist Trac: Ticketing System, mit Wiki, Timeline und Roadmap
  13. Wie sind wir in unserem Projekt vorgegangen. Was ist Trac: Ticketing System, mit Wiki, Timeline und Roadmap
  14. Wie sind wir in unserem Projekt vorgegangen. Was ist Trac: Ticketing System, mit Wiki, Timeline und Roadmap
  15. Wie sind wir in unserem Projekt vorgegangen. Was ist Trac: Ticketing System, mit Wiki, Timeline und Roadmap
  16. Das erste Highlight: Die Live Demo. Dazu ben&#xF6;tigen wir nun den zweiten Beamer.
  17. Nach dieser tollen Demo f&#xFC;rs Auge folgen nun einige Erkl&#xE4;rungen zum Design und Architektur f&#xFC;r den Kopf mit Amon.