MSP:HÜ Dateien

Aus THM-Wiki
Wechseln zu: Navigation, Suche


Allgemein

Mitglieder der Gruppe:

  • Braden, Nils
  • Weber, Florian


Nicht-funktionale Anforderungen an das Modul

  • Benutzbarkeit
  • Performance
  • Fehlertoleranz
  • Verfügbarkeit
  • Sicherheit (BSI)
  • Datenschutz
  • Barrierefreiheit (WAI)
  • Benutzerdokumentation
  • WIKI


Reverse-Engineering

Link zur Dokumentation mit doxygen: http://n.pentabarf.de/MSP/doxygen

Datenbank

Tabelle Filelist: Hier werden Dateien/Links oder Ordner dargestellt

  • name = Nutzer-Dateiname
  • link = Link-Adresse
  • orig_filename= realer Dateiname
  • extension = Dateiendung
  • parent_object = ein in der Fileliste übergeordnetes Objekt
  • description = beschreibender Text
  • userID = ID Uploader
  • size = Dateigröße in Byte
  • create_time = Timestamp
  • counter = Anzahl der Aufrufe
  • courseID = Kurs
  • thumbnail = Thumbnail
  • type = enum mit Typ der Datei
  • visible_type = Sichtbarkeit
  • start_time = Sichtbarkeitszeitraum Start
  • end_time = Sichtbarkeitszeitraum Ende
  • student_write = Berechtigung


Tabelle filelog: Upload Log

  • userID = Nutzer ID
  • fileID = ID aus filelist
  • date = Upload Datum


Tabelle filetreelayout: Ordnerstruktur Layout

  • userID = Nutzer ID
  • folderID = Ordner ID


Tabelle filevisible: Sichtbarkeit

  • fildeID = ID aus filelist
  • userID = Nutzer ID


Metriken

CacheGrind

PHPsniffer Analyse nach Zend code conventions

Siehe: http://framework.zend.com/manual/de/coding-standard.html

Analyse der Datenbankzugriffe

Bei der Analyse der Mitschnitte ist deutlich zu sehen, dass in diesem Modul keinerlei unnötige Datenbankabfragen durchgeführt werden. Die Fülle an Abfragen im Mitschnitt entsteht nur durch häufiges Aktualisieren der Benutzer-Sitzung, was aber unabhängig von dem betrachteten Modul ist.

Aufgabenstellung

Das Modul "Ressourcen" soll hinsichtlich nicht-funktionaler Aspekte (wie oben aufgezählt) überarbeitet werden. Im Detail sind die Anforderungen des Kunden zu erfüllen, sofern die Arbeitsbelastung für 2CrP angemessen ist.

Walkthrough

Beim Walkthrough am Montag den 23.11.2009 wurde besprochen, welchen Teilen des Moduls wir uns besonders widmen und welche Bugs und Features wir im Fokus haben sollten. Dabei entstand folgende Liste an Aufgaben, sortiert nach Wichtigkeit (Einschätzung des Kunden):

  • Datenanzeige Sortierung
    • 1.Kriterium Datum (neuste zuerst)
    • 2.Alphabetisch
  • Daten auf Kursebene
    • Button zum rekursiven Herunterladen
    • Sichtbarkeit für alle Inhalte rekursiv ändern
    • Schreibrechte rekursiv setzen
  • Ordner in anderen Kurs kopieren
  • Gesamtübersicht aller angelegten Dateien (Datenauszug
    • Dateigröße in Mb/Kb (menschenlesbar)
  • Downloadstatistik
    • Prozentzahl, keine Fließkomma-Darstellung
    • Counter prüfen / anpassen
    • Download-Statistik-Übersicht, Zahlen kontrollieren
  • Dateien Ablage
    • prüfen ob konsistent immer der Unix-Zeitstempel verwendet wird
    • Link-Checker zur Suche nicht verlinkter Dateien

Überarbeitung des Code-Styles

Aufgrund der Einschränkung, dass nur geprüfter Code auf dem SVN-Server eingecheckt werden kann mussten alle Stil-Verstöße im Modul behoben werden. Der komplette Code des Moduls ist jetzt in einem Zustand, der vom Style-Check als "valide" angesehen wird. Das bedeutet:

Es sind alle...

  • ...Zeilen kürzer als 120 zeichen
  • ...Variablen im CamelCase-Format
  • ...Mehrzeiligen Statements durch Klammer am Ende der letzten und einzelne Klammer in der nächsten Zeile gegliedert
  • ...Funktionen mit Sichtbarkeits-Modifier versehen

(Auflistung der wichtigsten Punkte)

Dokumentation der Änderungen und Features

Link-Checker für Dead-Files/-Links

  • Wurde für einzelne Kurse implementiert. Auf diese Weise können die Methoden flexibler genutzt werden.
  • Findet Verwendung beim Kurs-Dozent um dort ungültige Einträge in der Datenbank zu finde. Diese könne dann manuell gelöscht werden um Fehler z.B. beim Export zu vermeiden.
  • Findet Anwendung für den Administrator, dieser kann auf diese Weise bei der Archivierung eines Kurses überflüssige Dateien auffinden und so Speicherplatz sparen.
  • Siehe hierzu auch die weitere Behandlung des Features im Rahmen der Projektwoche unter MSP-Projektwoche-FWbr-NBr#Feature

Rekursiv auf alle Ordner anwendbare Funktionen

Alle neuen Buttons auf Root-Ebene

Ordner rekursiv in Kurse auf Ordnerebene kopieren

  • Hierbei kann jeder Ordner mit Ausnahme der Root-Ebene in einen anderen Kurs kopiert werden, wobei die Schreibrechte des Benutzer natürlich überprüft werden.
    • Die Verwendung des Oberordners wurde in der Implementierung nicht vorgesehen, da sehr umfangreiche Änderungen des Codes nötig gewesen wären. E-Study unterscheidet hier zwischen Ordnern und Hauptordnern, wobei Hauptordner einfach nur Ordner auf der obersten Ebene sind. Allerdigns beziehen sich die hier genannten Funktionen auf alle Hauptordner, weshalb noch eine Ebene über den Hauptordnern benötigt wurde, welche mit der OrdnerID "0" geschaffen wurde. Diese ID ist natürlich nicht imganzen System eindeutig, was dazu führt, dass an vielen Stellen zusätzliche Maßnahmen zur Behandlung neuer Ordner mit dieser ID nötig gewesen wären.
  • Bei der Implementierung wurde eine neue Kopierfunktion implementiert, da die bereits vorhandene Kopierfunktion für Dateien sehr stark mit HTML-Code durchsetzt ist und so nur mit großem Aufwand hätte wiederverwended werden können.
  • Für die Darstellung der Kopiermaske konnte jedoch die bereits vorhandene Maske des Dateikopierens verwendet werden.

Schreibrechte rekursiv ändern

  • Dieses Feature ermöglicht es Dozenten, mit einem Klick im Root-Ordner die Zugriffsrechte auf alle Dateien im Kurs rekursiv zu ändern.
  • Es werden zwei Buttons zum Ändern der Rechte angezeigt, Schreibrechte für Studenten geben und entziehen.

Sichtbarkeit rekursiv ändern

Änderung der Sichtbarkeit aller Ordner

  • Dieses Feature ermöglicht es Dozenten, in einem Arbeitsschritt alle Dateien eines Kurses für Dozenten, Dozenten+Tutoren oder Studenten sichtbar zu machen oder zu verstecken.
  • Hierbei wird hauptsächlich auf die schon vorhandene Implementierung der Rechteverwaltung zurückgegriffen. Einzig die Anzeige des Buttons und das rekursiv Durchlaufen aller Ordner sind in diesem Fall neu.

Sortierung der Datensätze

  • Die Sortierung der angezeigten Dateien wurde so angepasst, dass immer die neusten Datensätze zuerst angezeigt werden und als zweites Kriterium nach dem Namen sortiert wird.

Statistiken

  • Hierbei wurde die Darstellung von Dateigrößen von Bytes in eine menschenlesbare Einheit geändert (Mb/Kb) geändert.
  • Hierzu wurde eine bereits vorhandene Funktion aus Tools verwendet.

Liste der angepassten Dateien

Diese Auflistung enthält alle im Rahmen dieses Projekts geänderten Dateien des Moduls. Der erste Link führt jeweils direkt zur Datei in der zuletzt bearbeiteten Revision, der zweite führt zu einem Side-by-side-Vergleich der Dateien zu Beginn und Ende unserer Arbeit.

Ordner: /ressourcen/

Ordner: /ressourcen/classes

Ordner: /ressourcen/classes/archiver

Ordner: /ressourcen/classes/filemanager

Ordner: /ressourcen/templates

Gruppenseite des Teams in der Projektwoche

MSP-Projektwoche-FWbr-NBr