Wochenberichte

Woche 1 (4 Tage)

  • Anforderungsdokument erstellt
  • relevante Teile vorheriger DPP-Arbeiten gelesen (I-III)
  • Entwurfsalternativen für die Verbindung von Umfrage mit Statistik ausgearbeitet
  • UML Klassendiagramm erstellt, um zu überlegen welche Klassen für das Feedback benötigt werden
  • Standard SWT- und JFace-Dialoge nach passendem für Umfrageaufforderung durchgesehen
    • Ergebnis: MessageDialog mit selbst verwalteter Checkbox gewählt, da MessageDialogWithToggle andere Semantik hat, als gebraucht wird und somit keine Vorteile bringt
  • FeedbackDialog nach obiger Erkenntnis implementiert
  • FeedbackHandler als Singleton Klasse (von PicoContainer verwaltet), die den Dialog am Ende einer Sitzung anzeigt, implementiert
  • Anzeigen einer beliebigen Seite in externem Browser (Desktop API) mit Fallback auf internen Eclipse Browser (IWorkbenchBrowserSupport) realisiert
  • Auseinandersetzung mit PreferencePages und dem PreferenceStore
    • Ergebnis: FeedbackPreferencePage erstellt, die als Unterseite von der bestehenden Saros-Seite angezeigt wird, enthält bisher Möglichkeit der Deaktivierung der Umfrage sowie einen Button zum direkten Start selbiger
    • dabei Entscheidung gegen Erben von FieldEditorPreferencePage, da benötigte Objekte nicht alle mit FieldEditor Objekten abgebildet werden können (z.B. Button, der die Umfrage startet)
  • Vertrautmachung mit unserem Bug-Tracker, Bug eingetragen und anschließend gefixt (Bug #2777353)

Woche 2 (3 Tage)

  • Freitag 24.04.09: Großer Test vor Beta Release mit Sandor, Testplan durchgearbeitet, Bugs gesammelt und Christopher geschickt
  • Multidriver Test mit Christopher und Marc mit dem Ziel die Warnings im Saros Projekt zu beseitigen (Saros.getDefault() ist deprecated)
    • Neue Probleme gefunden (z.B. OutOfMemoryException)
  • Möglichkeit gesucht Informationen pro Eclipse Installation also über alle Workspaces zu speichern
    • Ergebnis: Den ConfigurationScope benutzen, die Daten werden dann in eclipse/configuration/.settings/.prefs global gespeichert
  • Mit obiger Erkenntnis das Zählen der Sitzungen eines Benutzers im FeedbackManager realisiert
  • FeedbackPreferencePage um die Möglichkeit zur Festlegung eines Intervalls, indem die Umfrageaufforderung erscheint, erweitert
  • FeedbackManager so erweitert, dass die Umfrage nur im festgelegten Intervall angezeigt wird, dabei musste darauf geachtet werden, dass das Intervall neu gestartet wird, wenn es auf der PreferencePage geändert oder wenn die Umfrage manuell ausgeführt wird (noch zu testen)
  • Internet-Recherche nach einer Möglichkeit, beim ersten Start des Plugins einen Konfigurations-Dialog anzuzeigen
    • Ergebnis: Von Eclipse gibt es keine passende Extension dafür. Es gibt zwar org.eclipse.ui.intro für die "Willkommensseite" nach der Installation eines Plugins, aber ich sehe dort keine Möglichkeit einen Wizard unter- zubringen, der auf jeden Fall ausgeführt wird
    • die Methode, die wir schon mal kurzfristig hatten (Start des Wizards in Saros.start()) kann so auch nicht funktionieren, da unser Plugin ja lazy gestartet wird, d.h. start() wird erst ausgeführt, wenn eine der Saros Klassen geladen wird… man muss also erst irgendwas anklicken, schlecht. Aber Soll man dafür extra den lazy Start abschaffen?
    • Ja, org.eclipse.ui.startup implementieren

Woche 3 (4 Tage)

  • FeedbackPreferencePage so erweitert, dass sie sowohl den ConfigurationScope, als auch den PreferenceStore benutzt, globale Preferences haben Vorrang, Workspace-Einstellungen zum Feedback gehen also nicht verloren, wenn man Eclipse neu installiert
  • Extension org.eclipse.ui.startup implementiert, um den ConfigurationWizard nach der Installation anzeigen zu können, dieser fragt nach
    • Jabber Account (mit Möglichkeit einen neuen zu erstellen)
    • Netzwerk Einstellungen
    • Zustimmung zur Übertragung von Nutzungsstatistiken
    • zusätzlich denkbar: Willkommensseite am Anfang außerdem wird Roster View am Anfang geöffnet
  • Problem identifiziert, dass globale Preferences nicht gelöscht werden, wenn Plugin deinstalliert wird, d.h. bei erneuter Installation wird Wizard nicht angezeigt werden. Akzeptabel? Man kann so argumentieren, dass der Benutzer bei erneuter Installation schon wissen sollte, wo er den Jabber Account angeben muss, außerdem sollte der nächste Punkt dies zusätzlich erleichtern:
  • ConnectDisconnectAction erweitert
    • ist nun immer enabled
    • wenn kein Benutzername oder noch keine Zustimmung oder Ablehnung der Statistikübertragung vorhanden ist, wird wieder der ConfigurationWizard angezeigt (nur die relevanten Seiten)
  • FeedbackPreferencePage um Möglichkeit erweitert, die Statitikübertragung zu aktivieren/deaktivieren (wird sowohl global als auch pro Workspace gepeichert)
  • Patch für Bug: FileDecorations not removed on end of session and not updated on role change
  • Beta Release mit Sandor

Woche 4 (4 Tage)

  • Ideensammlung zur Umfrage
  • Klassendiagramm auf den neusten Stand gebracht
  • Es wird nun anhand der Revisionsnummer bestimmt, ob ein Update bzw. eine Neuinstallation des Plugins stattgefunden hat, um daraufhin den ConfigurationWizard anzeigen zu können
  • Patch: [INTERNAL] Util.runSWTSync() is not taking a Logger anymore because it throws all Exceptions anyway.
  • Christopher erstmalig den Code zum Feedback Feature gezeigt und seine Verbesserungsvorschläge umgesetzt
  • Nochmals gründlich die verschiedenen Fälle durchgegangen (Mindmap), die bei der Arbeit mit den Preferences auftreten können (Preferences können nur im PreferenceScope oder nur im ConfigurationScope vorhanden sein etc.)
  • Dabei Problemfälle identifiziert, die es erfordern, dass bei jedem Plugin-Start die Konsistenz zwischen Workspace und globalen Preferences hergestellt wird.
    • Es konnte bisher passieren, dass der Nutzer mit zwei Workspaces arbeitet, die unterschiedliche Einstellungen bzgl. des Feedbacks haben. Die des einen wären überschrieben worden, wenn im anderen Workspace erstmalig Werte auf der PreferencePage geändert worden wären. Verwirrend für den Nutzer.
    • Was wir eigentlich wollen, ist, dass die Preferences immer global gehalten werden und nur wenn nach der Installation die globalen Preferencs noch leer sind, die im Workspace verwendet werden. In diesem Fall müssen die globalen Preferences aber auch auf die Workspace Einstellungen gesetzt werden, sonst kann es zum oben beschriebenen verwirrenden Verhalten kommen. Es soll gar keine Inkonsistenzen zwischen den beiden Scopes geben.
  • Die Konsistenz wird nun beim Plugin-Start überprüft und gegebenfalls hergestellt.

Woche 5 (2,5 Tage)

  • Umsetzen der Verbesserungsvorschläge von Christopher, u.a.
    • Links zur AGSE und FU in allen Dialogen
    • Kontakt-Informationen auf der FeedbackPreferencePage
    • verbesserte Oberfläche des ConfigurationWizards
  • Interval des FeedbackDialogs angepasst, um den Benutzer weniger zu stören
  • Wikiseite zum Feedbacksystem angelegt
  • [FIX] #2596378: Autoclose of invitation dialog
  • [FEATURE] Added a check button in the invitation dialog that lets the user specify whether he wants the dialog to close automatically if all invitations are completed or not.
  • [INTERNAL] CreateAccountWizard is not responsible for activating the Roster View anymore. This should only be done when needed and is therefore moved to NewAccountAction.

Woche 6 (4 Tage)

  • Einlesen in GQM
  • Ausarbeiten von drei möglichen Umfragezielen nach GQM-Ansatz und möglichen Fragen zu jedem Ziel
  • Meeting mit Christopher und Stephan zur Umfrage
  • Umsetzung einer kurzen (Übergangs-) Umfrage (4 Fragen) für Release 9.5.29r.1374, siehe http://survey.mi.fu-berlin.de/public/survey.php?name=SarosFastUserFeedback
  • [FIX] Yes button of FeedbackDialog doesn't have the initial keyboard focus
  • [FIX] Roster view is maximized when Eclipse's welcome screen appears
  • [INTERNAL] Code to show the Roster and the ConfigurationWizard on start-up is deferred to extra methods in StartupSaros
  • Testcases ins Testdokument hinzugefügt
    • 1.1 Erster Eindruck nach Start von Eclipse
    • 7.1 Datei-Annotationen und Viewport
    • 11.1 FeedbackDialog
    • das war viel zeitaufwändiger, als gedacht, da ich mehrfach Probleme mit Word und dem umfangreichen Dokument hatte (Formatierung war plötzlich kaputt, alle Zeilen waren durchnummeriert, ließ sich nicht mehr rückgängig machen; Word mehrfach abgestürtzt)
    • Ziel für nächstes Release: Testdokument aufteilen

Woche 7 (2 Tage)

  • Planung für AP2 (Statistik sammeln und übertragen) ausgearbeitet, dabei insbesondere nach Möglichkeiten zur Übertragung von Dateien zum Server, sowie zur serverseitigen Speicherung gesucht
  • StatisticManager erweitert, sodass er mehr Daten sammelt
    • session time
    • session count
    • feedback settings
    • role changes
  • [FIX] #2800968 Feedback system should log more events
  • [FIX] Full stop is inside of "tell me more" link on StatisticPage
  • [INTERNAL] Feedback settings are logged on plugin start-up

Woche 8 (4 Tage)

  • Architektur für's Statistik sammeln verbessert
    • für jede Aufgabe gibt es eine Collector Klasse
      • RoleChangeCollector
      • ParticipantCollector
      • SessionDataCollector
    • gemeinsame abstrakte Super-Klasse: StatisticCollector, enthält Methoden, um sich beim StatisticManager anzumelden und ihn zu benachrichtigen, wenn alle Daten gesammelt wurden
    • StatisticManager holt gesammelte Daten der Collectoren ab, sobald sie ihm bescheid gesagt haben und überträgt sie in SessionStatistic Klasse (kapselt Properties Objekt)
    • hat der StatisticManager alle Daten der Collectoren eingesammelt, schickt er sie als Datei an den Server
      • (Senden ist noch zu implementieren)
  • Daten sammeln erweitert
    • General Informations (Saros Version, OS, Java Version, …)
    • Session ID
    • Teilnehmerzahlen und Zeiten (z.B. session.users.2=00:02:34, d.h. 2 Benutzer haben 2:34 zusammen gearbeitet)
  • Erzeugen einer Random User ID (z.B. 2009-06-11_17-09-43_1657146664) pro Eclipse Installation (wird in den globalen Preferences gespeichert)
  • Statistik Datei wird nun vor Absenden im Workspace gespeichert (Standard Plugin Location: .metadata\.plugins\), Name besteht aus Session ID und Random User ID, Datei wird nach jeder neuen Session überschrieben
  • Implementierung eines Servlets das serverseitig die gesendeten Statistik Dateien handhabt und speichert (benutzt Apache Commons FileUpload)

Woche 9 (4 Tage)

  • FileSubmitter Klasse implementiert, die mittels Apache Commons HTTPClient Dateien an einen Server übertragen kann
  • SessionStatistic um getter und setter für jeden Wert erweitert
  • Daten sammeln erweitert
    • Rollenwechsel des lokalen Users, Ausübungsdauer, prozentualer Anteil von Driver-Rolle und Observer-Rolle
  • Testvorbereitung
  • Testteilnahme, Rolle TM
    • Beschreibung neuer Bugs an die Mailing-Liste
    • Bugs im Tracker eingetragen

Probleme

  • Aufteilen des Testdokuments mithilfe der Word-Gliederung endete mit nicht zufriedenstellendem Ergebnis
    • Formatierung (z.B. Schriftart) teilweise verloren, Nummerierungen (Aufzählungen + Kapitel) völlig falsch
  • Manuelles Aufteilen - ok
  • Masterdokument für die manuell erstellten Subdokumente
    • Wieder problematisch, gleiche Probleme wie oben

Woche 10 (4 Tage)

  • RoleChangeCollector und ParticipantCollector nach Christophers Vorschlägen überarbeitet und noch ins Release aufgenommen
  • "Last sanity test" mit Sebastian vor Release
  • Wiki-Seite zur Statistikübertragung auf den neusten Stand gebracht: siehe DPPFeedback
  • Announcement von Release 9.6.23 auf JavaLobby
  • Weitereintwicklung des TextEditsCollector
  • [FIX] #1619587 DEV documentation does not mention how to start developing
  • [INTERNAL] The preference value of ForceFileTransferByChat is not read from the PreferenceStore every time sendData() is called, but is kept up-to-date locally.
  • [INTERNAL] Changed Saros version to 9.7.9.DEVEL [INTERNAL] If a plugin version that's ends with DEVEL is used, the prefix "sarosTeam" is appended to the user ID, mostly to keep track of the statistic data submitted by ourselves.
  • Servlet, das die Statistik-Dateien entgegen nimmt, so erweitert, dass es Dateien aus den folgenden Netzen in einen Unterordner "internal" speichert. Noch nicht deployed.
    • Localhost 127.0.0.1
    • Eduroam: 87.77.x.x
    • FU VPN: 130.133.x.x
    • FU Netz: 160.45.x.x

Comments