MSP-Projektwoche XPWeb

Aus THM-Wiki
Wechseln zu: Navigation, Suche
Dokumentation
Arbeitstitel MSP-Projektwoche XPWeb
Kurs Methoden des Software-Entwicklungsprozesses
Semester WS 09/10
Teilnehmer Beimborn, Tobias (Entwickler), Clemens, Jochen (Teamleiter), Ehnes, Alexander (stelv. Teamleiter), Krauss, Christian (Entwickler), Rupp, Steffen (Entwickler), Tavukcu, Fatih (Entwickler)
Programmiersprache PHP

Einleitung

Dieses Dokument beschreibt das Projekt 'Integration von XPWeb in eStudy' im Kurs MSP WS 09/10. Das Tool XPWeb kann web-basiert Extreme Programming Projekte verwalten. Das Tool ist zur Zeit als externes Tool in eStudy eingebunden und verlangt eine separate Anmeldung. Da das Tool schon seit mehreren Jahren nicht weiterentwickelt wird soll es nun soweit angepasst werden, dass es als voll integriertes Modul in eStudy zur Verfügung steht.

Teammitglieder

  • Beimborn, Tobias (Entwickler)
  • Clemens, Jochen (Teamleiter)
  • Ehnes, Alexander (stelv. Teamleiter)
  • Krauss, Christian (Entwickler)
  • Rupp, Steffen (Entwickler)
  • Tavukcu, Fatih (Entwickler)

Vorraussetzungen

  • Anpassen der Entwicklungsumgebung:
    • UTF-8 Kodierung einstellen
    • PHP 5.3 einstellen
    • Unix Zeilenumbruch

Vision Document

XPWeb ist ein Tool, welches die Planung von XP-Projekten in Iterationen und User-Stories organisiert. Das browserbasierte Tool stellt alle Methoden zur Verfügung, die für die Umsetzung der agilen Entwicklungsmethode des Extreme Programming benötigt werden. Die Lernplattform eStudy integriert XPWeb bereits als externes Tool. Die Sourcen und die Datenbank liegen jedoch auf einem anderen Server als eStudy. Als Vision soll XPWeb vollständig in eStudy integriert werden. Es soll möglich sein, XPWeb als Tool in eStudy zu verwenden. Die angenommenen Rollen, Benutzergruppen und die damit verbundenen Rechte der Teilnehmer eines Kurses in eStudy, sollen automatisch in die Rechteverwaltung von XPWeb integriert werden. Da die Authorisierung bereits in eStudy erfolgt, muss sich ein User von eStudy nicht mehr bei XPWeb anmelden.

Das übliche Vorgehen für die Verwendung von XPWeb in eStudy soll analog zu den vorhandenen Modulen wie folgt möglich sein. Zunächst muss ein Kurs angelegt werden. Im Administrationsmenü unter 'Module aktivieren/deaktivieren' kann der Administrator oder Dozent eines Kurses XPWeb auswählen, wodurch nach dem Speichern ein Menülink für XPWeb im Hauptmenü erscheint. Der Administrator/Dozent kann dann Studenten über die Administration für den angelegten Kurs einladen. Nachdem die Studenten die Einladung akzeptiert haben sollen sie automatisch ohne Anmeldung auch Zugang zu XPWeb haben. Nach klicken auf den Link für XPWeb erscheint die Startseite von XPWeb.

XPWeb basiert auf einer eigenen Datenbank und erstellt bei der Installation automatisch alle notwendigen Tabellen für die Ausführung. Damit XPWeb vollständig in eStudy integriert werden kann, muss das schon vorhanden Installationsskript von XPWeb in die Installationsroutinen von eStudy integriert und somit direkt mit der Installation von eStudy ausgeführt werden.

Die Informationen die in XPWeb einem User zugeordnet werden können, sollen später im Modul Rollen unter Chronik in eStudy nachvollzogen werden, indem die Kategorie XPWeb ausgewählt wird. Auf diese Weise wird es allen Teilnehmern, aber auch vor allem dem Team- und Projektleiter möglich sein, die zugeordneten Tasks und den Fortschritt der Arbeit zu erkennen. Um diese Visionen umzusetzen wird das Tool einem erheblichen Reverse-Engineering und Refactoring unterzogen. Mit Hilfe von UML Diagrammen und einem Datenbankschema soll die vorhandene Struktur vor und nach der Umsetzung der Iterationen veranschaulicht werden. XPWeb soll zusätzlich an einigen Stellen verbessert und die Usability erhöht werden. Darunter sollen unter anderem die Änderungen in Drop-Down Boxen erkannt und ohne klicken des "OK"-Buttons aktualisiert werden.

Nachdem alle Änderungen vorgenommen wurden, soll XPWeb als PHAR-Archiv gepackt werden und in eStudy eingebunden werden. Es handelt sich bei XPWeb um fremden Code, welcher nur soweit geändert wird, dass er in eStudy integriert werden kann. Jedoch sind an einigen Stellen auch kosmetische Verbesserungen nötig, z.B. in der Kalenderansicht. Die Vision ist es eStudy mit XPWeb verwenden zu können und den Code von XPWeb in Phar zu kapseln.

Programmierrichtlinien für das Modul XPWeb in eStudy

DB-Präfix

Falls Datenbank von XPWeb in eStudy DB integriert wird

  • Datenbank: Alle Statements in der xpweb.sql müssen mit dem Präfix 'xpweb_' ausgestattet werden
  • Code(Sql-Statements): Das Präfix 'xpweb_' wird in der Config.php von XPWeb als Konstante hinterlegt. Im Code an einer globalen Stelle wird die Konstante einer Variablen zugewiesen. Die Variable wird in SQL-Statements mit dem Tabellennamen konkateniert. Zusätzlich muss das eStudy DB Präfix ebenfalls hinzugefügt werden.

Ordnerstruktur

  • XPWeb liegt im Ordner web/xpweb/lib
    • somit ist der Code isoliert von den eStudy Klassen, Templates und Tests des eStudy Moduls XPWeb (web/xpweb/classes, web/xpweb/templates, web/xpweb/tests). Diese dienen lediglich zur Integration von XPWeb in eStudy und implementieren selbst keine Logik des Projektverwaltungstools

Richtlinien um das Testen der Klassen in web/xpweb/classes zu erleichtern

  • SQL-Statements bzw. Transaktionen sollten in eigenen Methoden der Klassen gekapselt werden. Sie geben das Ergebnis eines Select-Statements als Array zurück oder die Anzahl der betroffenen Zeilen bei Insert, Update und Delete als Integer Wert oder -1 im Fehlerfall.

Ausgabe von HTML Code

  • PHP Code steht zwischen dem HTML-Code und nicht umgekehrt. Template Dateien sind somit .php Dateien.

Reverse Engineering

XPWeb Datenbankschema

Dbschema.png


XPWeb Klassendiagramme

Die XPWeb Quellen wurden mit dem Tool Enterprise Architect untersucht. Das Projectfile welches alle Diagramme enthällt kann hier heruntergeladen werden.

Media:XPWebUML.zip

Eine 30 Tage Testversion des Enterprise Architect kann hier herruntergeladen werden.

User Stories

(Tabelle mit allen stories/tasks der ersten Iteration und Link zum XPWeb Projekt) Link: Da XPWeb dynamische Links erzeugt gibt es keinen direkten Link zu unserem Projekt. Stattdessen muss man hier: https://xpweb.mni.fh-giessen-friedberg.de/Projects.php das Projekt MSP-PW: XPWeb auswählen und dann oben auf Planung klicken.

Iteration - Integration von XPWeb in eStudy

Planung der Iteration

Was ist bei der Implementierung zu beachten?

  • eStudy und XPWeb verwenden eigene <head> Elemente im HTML Code, dies führt zu Konflikten bei der Einbindung von XPWeb in den HTML Code von eStudy. Folge: Es muss bei allen Dateien im Ordner 'View' von XPWeb der Kopfbereich der HTML Ausgabe entfernt werden. Dies ist jedoch problematisch wenn im Kopf JavaScript oder CSS Code eingebunden wird. Die Alternative ist XPWeb in einem IFrame einzubinden. Dabei ist zu beachten, dass alle Links überprüft werden müssen, denn beim Klick auf einen Link von XPWeb im IFrame öffnet sich die Zielseite in einem eigenen Fenster außerhalb des IFrame und sprengt somit den HTML Code von eStudy.
  • Was ist mit Präfixen von eStudy?
  • Der Code von XPWeb ist durchgängig mit PHP 4 geschrieben und enthält viele Funktionen die in PHP 5.3 deprecated sind.
  • eStudy User müssen in 2 Tabellen verwaltet werden: 'user' Tabelle von eStudy und die 'team_members' Tabelle von XPWeb. Darin wird die Zuordnung eines Nutzers zu einem XPWeb Profil vorgenommen, welches wiederum für die Rechtevergabe zuständig ist. Daher müssen die vier user Methoden in der Automatisierungsklasse des XPWeb Moduls implementiert werden. Diese stellen dann sicher, dass Änderungen an eStudy Usern (neu, ändern, löschen,...) automatisch auch in die Tabelle team_members übernommen werden. Initial existiert ein Migration Skript, welches vorhandene Nutzer nach XPWeb übernimmt. (SQL/migration_3980.sql)

Was ist bei der XPWeb Datenbank zu beachten?

Ziel ist es die XPWeb Datenbank über die eStudy Setup Routine automatisch mitzuinstallieren.

Option 1: Eine gemeinsame DB für eStudy und XPWeb

  • Annahme: Mit Präfixen sind zu viele Anpassungen in XPWeb nötig.
    • Bisher konnte SQL Code nur in einer Datei entdeckt werden: web/xpweb/lib/Model/BaseDatabase_Model.inc.php. Dort wird DML sogar dynamisch erzeugt. Anpassungen also nur in diesen ca. 2500 Zeilen.
  • Ohne Präfixe kann man die eStudy und XPWeb Tabellen nicht mehr unterscheiden. Daher ist wie bei anderen Modulen der Modulname das Tabellenpräfix für die XPWeb Tabellen vorzusehen. In diesem Fall: 'xpweb_'.

Option 2: Zwei separate DBs

  • Kein Problem mit Präfixen
  • Probleme beim Setup von eStudy, da man Änderungen in zwei DBs vornehmen muss.
    • Möglichkeiten das Problem zu lösen:
      1. Im .mkf die SQL Datei von XPWeb ausführen. Problem: Tabellen werden dadurch standardmäßig in die eStudy DB importiert.
      2. Setup Routine von XPWeb mit PHP so manipulieren, dass die Tabellen in der für XPWeb vorgesehenen DB angelegt werden.
      3. Setup Routine von eStudy mit PHP so manipulieren, dass erst die eStudy Tabellen installiert werden. Danach muss mit SQL-Statement 'USE xpwebDBName;' die DB gewechselt, die SQL Befehle für XPWeb ausgeführt und dann wieder mit 'USE eStudyDBName;' auf die eStudy DB gewechselt werden.

Gedanken zu Datenbanktabellen von XPWeb

  • Wenn man schon jedes SQL-Statement von XPWeb bezüglich Präfixe anpackt, könnte man sich auch um die teilweise Umbenennung der Datenbanktabellen von XPWeb Gedanken machen, da einige Tabellen mit tbl_ beginnen und andere nicht
  • Wie kommt eine Verknüpfung der User in Tabelle tbl_users mit den Teammitgliedern in Tabelle team_members zustande?
  • was hat es mit der Tabelle tbl_group auf sich? Es gibt sonst keine Gruppen auf die gid verweisen könnte!

Gedanken zu den Rollen und Benutzergruppen in beiden Programmen

  • Welche Rollen und Benutzergruppen gibt es jeweils?
  • Wie soll das Mapping erfolgen?
eStudy Gruppe XPWeb Gruppe Anmerkung
Admin Admin Darf alles
Dozent Manager Kann Kursprojekte anlegen und Studenten Coachrechte geben
Student mit Tutorrechten Manager wie Dozent
Student als Teamleiter Coach Studenten können die Rolle Coach vom Dozenten zugeteilt bekommen
Student Developer Kann in Projekten arbeiten (Iterationen, Stories, Tasks)
Sekretariat Anonym
Alumnus Anonym
Schüler Developer
Gast Anonym nur Leserechte (Nichtangemeldete Benutzer sind in XPWeb automatisch anonym)

Umsetzung der Iteration

Story 286 - XPWeb Datenbank als separate Datenbank verfügbar machen

Beschreibung:

Als Administrator möchte ich die Datenbanktabellen von XPWeb in einer separaten Datenbank halten, damit die Quelldateien von XPWeb nicht angepasst werden müssen (Präfix).

Probleme, die bei der Implementierung vermutlich auftreten werden

  • Die Verfügbarkeit vom DB Namen muss von überall sichergestellt sein.

Gedanken zu Task 422 - eStudy-Setup anpassen

  • Im eStudy-Setup gibt es ein neues Feld, in das der Datenbankname der XPWeb-Datenbank eingetragen wird. Die Datenbank muss die gleichen Zugagnsdaten haben und auf dem selben Server liegen, wie die eStudy-Datenbank. Aus dem Eintrag für die XPWeb-Datenbank, wird eine neue Settings-Variable ($settings['xpweb_db_name']) erstellt und deren Wert in die Datenbanktabelle "settings" geschrieben. Somit ist gewährleistet, dass in jeder Session der Datenbankname der XPWeb-Datenbank verfügbar ist.
  • Zunächst war geplant, dass das XPWeb-Setup erst beim ersten Aufrufen des Moduls ausgeführt wird. Da dieses aber die Benutzer irritieren könnte, haben wir das eStudy-Setup erweitert. Es gibt ein zweites SQL-Skript, welches von XPWeb stammt. Dieses SQL-Skript wird vor dem SQL-skript von eStudy ausgeführt. Bevor jedoch das Skript ausgeführt werden kann, wird die Datenbankverbindung ($db) auf die XPWeb-Datenbank geändert und nach dem XPWeb-Skript zurück auf die eStudy-Datenbank geändert. Dies geht mit einem SQL-Befehl, der dynamisch aus dem XPWeb-DB-Namen bzw. eStudy-DB-Namen generiert wird.

Probleme, die bei der Implementierung aufgetreten sind

  • Durch grundlegende Änderungen an der eStudy-Architektur durch das PHAR-Team war das Setup ebenso, wie das ganze eStudy, für einen Nachmittag lahmgelegt. Tests konnten nicht durchgeführt werden und viel Zeit ist verloren gegangen.

Gedanken zu Task 423 - XPWeb-Setup anpassen

  • Die Konfigurationsdatei von XPWeb muss so angepasst werden, dass XPWeb der Datenbankname, die Zugangsdaten und der Datenbankserver bekannt sind.
  • Dazu muss die eStudy-Variable $settings in XPWeb verfügbar sein.
  • Die settings-Variable wirde durch includieren der init.inc.php von eStudy in der Konfigurationsdatei von XPWeb ermöglicht. Die Parameter von XPWeb, die für den Zugang zu der Datenbank nötig sind, wurden so angepasst, dass diese aus der Variablen ausgelesen werden. Somit hat XPWeb immer Zugriff auf die im Setup angegebene Datenbank.

Probleme, die bei der Implementierung aufgetreten sind

  • Kleines Problem mit dem include, aber leicht zu beheben.

Gedanken zu Task 421 - XPWeb aus CVS auschecken

  • die aktuellste Version von XPWeb muss ausgecheckt werden und dann in eStudy eingecheckt.

Probleme, die bei der Implementierung aufgetreten sind

  • in der aktuellen Version gab es einige Fehler, die das Tool laufunfähig gemacht haben. Korrektur hat einige Zeit beansprucht.
  • Pre-Commit Hooks haben einen commit verhindert. Sie mussten komplett aus geschaltet werden.

Gedanken zu Task 420 - XPWeb Code aufräumen

  • Die Abfrage auf das Vorhandensein der Datenbank muss integriert werden und die CSV-Metadaten müssen entfernt werden

Probleme, die bei der Implementierung aufgetreten sind

  • Keine aufgetreten

Gedanken zu Task 422 - eStudy Setup anpassen

  • Im eStudy-Setup wird der Datenbankname der XPWeb-Datenbank abgefragt und in die Settings geschrieben.

Die Initialisierung der Datenbank soll beim ersten Aufrufen von XPWeb durchgeführt werden.

Probleme, die bei der Implementierung aufgetreten sind

  • Keine aufgetreten

Gedanken zu Task 423 - XPWeb Setup anpassen

  • Anpassen des Setups, so dass die korrekte DB für XPWeb bei der ersten Installation verwendet wird.
  • anlegen einer xpweb.sql Datei, die alle für XPWeb nötigen Abfragen an die Datenbank enthält

Probleme, die bei der Implementierung aufgetreten sind

  • Wechsel zwischen eStudy DB und XPWeb DB war eine kleine Hürde, die aber leicht zu bewältigen war.

Story 257 - XPWeb als Modul von eStudy anlegen

Beschreibung:

Als Benutzer hätte ich gerne die Möglichkeit das XPWeb Planungstool direkt aus der eStudy-Umgebung auszuführen, so, dass sie auch integriert und als direkter Bestandteil funktioniert, damit alle Informationen zentral verwaltet werden können.

Probleme, die bei der Implementierung vermutlich auftreten werden

Gedanken zu Task 387 - Modul anlegen und Modulgruppen Datei definieren

  • In dieser Datei muss die init.inc.php, header.inc.php und footer.inc.php includiert werden (siehe eStudy Wiki: Erstellung eines neuen Moduls). Anschließend wird XPWeb über ein IFrame eingebunden.

Probleme, die bei der Implementierung aufgetreten sind

  • XPWeb links sind so angelegt, dass sie das IFrame immer wieder verlassen und in neuer Seite öffnen.

Gedanken zu Task 388 - XPWeb Modul in die Modulaktivierungsliste

  • Beim Anlegen eines neuen Kurses soll im Menü "Module aktivieren" das Modul XPWeb selectierbar sein. Anschließend soll das Modul im Kursmenü verfügbar sein. Hier für ist zu ermitteln wie diese Funktion im eStudy umgesetzt ist.

Probleme, die bei der Implementierung aufgetreten sind

  • Konnte nie richtig getestet werden, da es nicht möglich war einen Kurs anzulegen.
  • Die Einstellungen wurden nicht übernommen. Lokal funktionierte es jedoch.

Gedanken zu Task 424 - Darstellung von XPWeb in eStudy realisieren

  • XPWeb soll innerhalb von eStudy dargestellt werden.

Probleme, die bei der Implementierung aufgetreten sind

  • keine aufgetreten

Gedanken zu Task 426 - Login Button in der XP Web Oberfläche entfernen

  • Nachdem das XPWeb in das eStudy als Modul integriert ist, muss der Login Button in XPWeb Oberfläche entfernt werden.
  • Übernahme von Gruppen aus eStudy und mappen auf die Gruppen von XPWeb
  • Automatisch die Rechte entsprechend der des Kurses für XPWeb setzen.

Probleme, die bei der Implementierung aufgetreten sind

  • Rechteverwaltung war problematisch.
  • Mapping war nicht trivial

Story 263 - XPWeb Namespace

Beschreibung:

Als Auftraggeber möchte ich die Quellen zu XPWeb in einem eigenen Namespace haben.

Probleme, die bei der Implementierung vermutlich auftreten werden

Gedanken zu Task 390 - XPWeb Quellen mit Namespaces versehen

  • Die XPWeb Quellen müssen mit namespace xpweb versehen werden.
  • alle Dateien müssen entsprechend angepasst werden.

Probleme, die bei der Implementierung aufgetreten sind

  • keine aufgetreten

Angefangene Stories für nächste Iteration

Story 261 - Wichtige Informationen von XPWeb in Rollenchronik integrieren

Beschreibung:

Als Teamleiter oder Projektleiter möchte ich in der Rollenchronik nach einem Kriterium alle wichtigen Informationen zu den aktiven Tasks der Entwickler angezeigt bekommen.

Probleme, die bei der Implementierung vermutlich auftreten werden

  • Die Daten müssen nur je nach Rolle angezeigt werden
  • Es muss auf eine andere DB als die des eStudy zugegriffen werden
  • Es könnte Probleme mit Benutzerrechten geben
  • Die SQL Abfrage muss auf eine neue DB ausgedehnt werden, wobei Probleme bei der Implementierung entstehen können.

Gedanken zu Task 395 - Relevante Daten für Kategorie XPWeb festlegen

  • Iteration und Story werden keine Benutzerinfos hinterlegt
  • Tasks sind relevanten Infos die man als Projektleiter will
    • hier gibts responsible_team_member_id und pair_team_member_id
    • die Namen müssen mit den Usern von eStudy übereinstimmen, was aber dann schon nach der Integration gegeben sein sollte!

Integration von XPWeb-Login in eStudy-Login

XPWeb-Profile

Für die Nutzung von XPWeb ist es erforderlich das jedem Benutzer ein Profil zugeordnet wird. Für diesen Zweck wurden im XPWeb Benutzerprofile erstellt welche mit den eStudy Benutzergruppen gemappt werden. Zusätzlich steht im XPWeb noch das Profil Teamleiter zur Verfügung. Dieses Profil kann einem Teammitglied zugeordnet werden um ihn zum Teamleiter zu ernennen. Achtung: Da die XPWeb Datenbank keine Zuordnung zu Kursen unterstützt wirken sich Profiländerungen kursübergreifend aus.

Wie die eingerichteten Profile vorkonfiguriert sind und mit welcher eStudy-Benutzergruppe diese gamappt werden, kann folgener Tabelle entnommen werden:

Profiles1.png

Profiles2.png

Profiles3.png

Ein eStudy-Administrator ist in der Lage über die XPWeb-Oberfläche die jeweiligen Profile zu verändern und an evtl. kommende Anforderungen anzupassen.

XPWeb-Automation

Es wurde die Modelautomation Schnittstelle implementiert. Zu den implementierten Methoden gehöhrt:

/* Wenn sich ein neuer Benutzer am Portal Registriert */
newUser($userID);
/* Wenn ein Benutzer die Benutzergruppe wechselt */
changeUserGroup($userID);
/* Wenn ein Benutzer gelöscht wird */
deleteUser($userID);

Datenbank Migration

Im Rahmen der XPWeb-Login Einrichtung war es erforderlich alle bestehenden eStudy-User mit einem XPWeb-Profil auszustatten. Hierfür wurde ein SQL-Script geschrieben. Das Script ermittelt von den jeweiligen Usern die ID, den Namen und die Benutzergruppenzugehörigkeit und mappt diese auf ein XPWeb-Profil. Nachdem alle erforderlichen Informationen gesammelt und aufbereitet wurden, werden diese in die Tabelle xpweb.team_members gespeichrt. Mithilfe des Profils kann nun ein eStudy-User das Modul XPWeb verwenden.

Das hierfür erforderliche Script ist hier abgebildet:

INSERT INTO xpweb.team_members
SELECT user.id,
       CASE usergroups.name
       WHEN 'Admin' THEN (SELECT id FROM xpweb.user_profiles WHERE name = "Admin")
       WHEN 'Student' THEN (SELECT id FROM xpweb.user_profiles WHERE name = "Developer")
       WHEN 'Dozent' THEN (SELECT id FROM xpweb.user_profiles WHERE name = "Manager")
       WHEN 'Sekretariat' THEN (SELECT id FROM xpweb.user_profiles WHERE name = "Anonymous")
       WHEN 'Schüler' THEN (SELECT id FROM xpweb.user_profiles WHERE name = "Developer")
       WHEN 'Alumnus' THEN (SELECT id FROM xpweb.user_profiles WHERE name = "Anonymous")
       WHEN 'Gast' THEN (SELECT id FROM xpweb.user_profiles WHERE name = "Anonymous")
      END as profile_id,
      user.nachname,
      ' ' as description
FROM user,usergroups
WHERE usergroups.id = user.usergroup

Die Profilbezeichnungen sind in der Datei "constants.inc.php" als Konstanten hinterlegt und können leicht umgestellt werden.

// XPWeb user Profiles
define("XPWEBADMIN","Admin");
define("DEVELOPER","Developer");
define("COACH","Coach");
define("MANAGER","Manager");
define("ANONYMOUS","Anonymous");

PHPUnit-Tests

Bei der integration des externen Tools "XPWeb" als eine neues eStudy-Modul wurden zu dem neuen Modul PHPUnit-Tests entwickelt. Die für das Modul programmierten Testcases können hier eingesehen werden.

https://trac.mni.fh-giessen.de/eStudy/browser/trunk/web/xpweb/tests/classes/ProfileModelTest.php

https://trac.mni.fh-giessen.de/eStudy/browser/trunk/web/xpweb/tests/classes/XPWebAutomationTest.php

https://trac.mni.fh-giessen.de/eStudy/browser/trunk/web/xpweb/tests/classes/XPWebClassesSuite.php

https://trac.mni.fh-giessen.de/eStudy/browser/trunk/web/xpweb/tests/XPWebTestsSuite.php

Einen Code-Coverage Bericht erhällt man wenn man die Tests mittels Zend Studio ausführt.

XPWeb im Datenauszug

Im Laufe der Arbeiten im Rahmen der XPWeb Integration haben wir es für wichtig befunden, dass ein Benutzer seine XPWeb Tasks im Datenauszug einsehen kann. Hierfür haben wir für das Modul XPWeb die Schnittstelle UserDataAdapter implementiert. Die Implementierung der Schnittstelle erfüllt folgende Aufgaben:

  • Es werden alle benutzerspezifischen Daten die ein Task betreffen aus der Datenbank abgefragt.
  • Mit Hilfe der Fremdschlüssel werden die zugehörigen Iterationen und Stories abgefragt.
  • Anschließend werden die Daten für die Ausgabe im Datenauszug vorbereitet und formatiert.

Die Rubrik XPWeb im Datenauszug ist im folgenden Bild dargestellt.

Userdataxpweb.png

Noch bestehende Probleme

  • Manche Links in funktionieren nicht (Löschen, Ändern von Projekten, User zu Projekten zuordnen)
  • Syntaxfehler in Planning_View.inc.php (Nach mehrstündigem Suchen nicht zu finden) Dadurch funktionieren einige Menülinks nicht.

Fazit des Teams zur Projektwoche

Positiv

  • Pair-Programming ermöglicht höheres Tempo beim Programmieren
  • StandUp-Meetings ermöglichen kurz und knapp einen Überblick über die geleisteten Arbeiten der anderen Teammitglieder zu erhalten.
  • XPWeb-Tool: Ermöglicht in einfacher Form das Projekt zu planen, den Fortschritt einzusehen und die Ergebnisse in Zahlen auszudrücken.
  • Kennenlernen der verschiedenen Tools, die durchaus in der Industrie auch eingesetzt werden. Zum Beispiel SVN, Trac und XPWeb. Diese drei Varianten findet man fast überall wieder. In der Industrie handelt es sich dann in der Regel nur um kommerzielle Produkte.
  • eine Woche lang konsequent an einem Projekt arbeiten, ohne von anderen Aufgaben aus anderen Fächern unterbrochen zu werden.

Negativ

  • StandUp-Meetings am Nachmittag sind eher hinderlich. Besser ein StandUp-Meeting morgens vor Beginn der Arbeit
  • Planning-Poker eher nutzlos (zumindest in der Form, wie es in der Woche angewendet wurde)
  • Fehler von anderen Teams können (und haben) die Arbeit der anderen Teams behindert oder unmöglich gemacht. Bessere Überprüfung der geleisteten Arbeiten könnte dies verhindern.