WEB/Praktikum3/bt/doc/Praktikum4.md
darthsandmann 2f677551bb fishished
2017-01-19 17:28:35 +01:00

7.6 KiB

WEB Praktikum

Termin 4

  • Datum: 19.1.2017
  • Gruppe A
    • Kai Wansart: 921862
    • Felix Hoster:

Einleitung

Allgemeine Beschreibung der Lösung

Die Lösung beschreibt einen Bug-Tracker, welcher in der Lage ist, Fehler zu verwalten. Es gibt die Möglichkeit einen Bug zu "melden"/hinzuzufügen, welcher dann von den Rollen "QS-Mitarbeiter" und "SW-Entwickler" verwaltet und verarbeitet werden kann. Hier gibt es die Möglichkeit, den Fehler, sowie den "Bug-Fix", zu Kategorisieren. Um die "Bugs" vernünftig einzusortieren, gibt es eine Einteilung in Komponenten, welche eingeteilt sind in Projekte. Sowohl die Komponenten, als auch die Projekte können verwaltet werden. Es gibt eine Auswertung für die Fehler, sowohl für die Projekte, als auch die Fehlerkategorien.

Implementierung des Servers

REST-Interface

  • /projekt/
    • GET
      • alle anfordern
      • einzelnen Eintrag anfordern (":id")
    • PUT
      • neuen Eintrag speichern (Daten übergeben)
    • POST
      • Eintrag ändern (":id")
    • DELETE
      • Eintrag löschen (":id")
  • /projektkomponenten/
    • GET
      • alle Komponenten eines Projekts anfordern (":id")
  • /komponente/
    • GET
      • alle anfordern
      • einzelnen Eintrag anfordern (":id")
    • PUT
      • neuen Eintrag speichern (Daten übergeben)
    • POST
      • Eintrag ändern (":id")
    • DELETE
      • Eintrag löschen (":id")
  • /qsmitarbeiter/
    • GET
      • alle anfordern
      • einzelnen Eintrag anfordern (":id")
    • PUT
      • neuen Eintrag speichern (Daten übergeben)
    • POST
      • Eintrag ändern (":id")
    • DELETE
      • Eintrag löschen (":id")
  • /swentwickler/
    • GET
      • alle anfordern
      • einzelnen Eintrag anfordern (":id")
    • PUT
      • neuen Eintrag speichern (Daten übergeben)
    • POST
      • Eintrag ändern (":id")
    • DELETE
      • Eintrag löschen (":id")
  • /katfehler/
    • GET
      • alle anfordern
      • einzelnen Eintrag anfordern (":id")
    • PUT
      • neuen Eintrag speichern (Daten übergeben)
    • POST
      • Eintrag ändern (":id")
    • DELETE
      • Eintrag löschen (":id")
  • /katursache/
    • GET
      • alle anfordern
      • einzelnen Eintrag anfordern (":id")
    • PUT
      • neuen Eintrag speichern (Daten übergeben)
    • POST
      • Eintrag ändern (":id")
    • DELETE
      • Eintrag löschen (":id")
  • /fehler/
    • GET
      • alle anfordern
      • einzelnen Eintrag anfordern (":id")
      • alle erkannten Fehler anfordern ("?type=erkannt")
      • alle behobenen Fehler anfordern ("?type=behoben")
    • PUT
      • neuen Eintrag speichern (Daten übergeben)
    • POST
      • Eintrag ändern (":id")
    • DELETE
      • Eintrag löschen (":id")
  • /prolist/
    • GET
      • Auswertung Fehler nach Projekt/Komponente/Status als Liste anfordern
  • /katlist/
    • GET
      • Auswertung Fehler nach Kategorie/Status als Liste anfordern
  • /templates/
    • GET
      • Templates im JSON-Format

Module

  • Server - Verwaltung der Anfragen/von CherryPy
    • Application - Weiterleitung der Anfragen zu Modulen/Fehlerrückgabe
      • Database - Verwaltung der Datensätze
        • Database - Verwaltung der jeweils instanzierten Datenbank
          • ProjektDatabase - Funktionen für die Projekt-Datenbank
            • getDefault_px - Rückgabe der Default-Werte
          • KomponenteDatabase - Funktionen für die Komponenten-Datenbank
            • getDefault_px - Rückgabe der Default-Werte
          • QsMitarbeiterDatabase - Funktionen für die QS-Mitarbeiter-Datenbank
            • getDefault_px - Rückgabe der Default-Werte
          • SwEntwicklerDatabase - Funktionen für die SW-Entwickler-Datenbank
            • getDefault_px - Rückgabe der Default-Werte
          • KatFehlerDatabase - Funktionen für die Fehlerkategorien-Datenbank
            • getDefault_px - Rückgabe der Default-Werte
          • KatUrsacheDatabase - Funktionen für die Fehlerursachen-Datenbank
            • getDefault_px - Rückgabe der Default-Werte
          • FehlerDatabase - Funktionen für die Fehler-Datenbank
            • getDefault_px - Rückgabe der Default-Werte
      • Error - Verwaltung der Fehler + deren Kategorien und Ursachen
        • KatFehler - Fehlerkategorien
          • GET - Rückgabe von Daten
          • PUT - Verändern von Daten
          • POST - Hinzufügen von Daten
          • DELETE - Löschen von Daten
        • KatUrsache - Fehlerursachen
          • GET - Rückgabe von Daten
          • PUT - Verändern von Daten
          • POST - Hinzufügen von Daten
          • DELETE - Löschen von Daten
        • Fehler
          • GET - Rückgabe von Daten
          • PUT - Verändern von Daten
          • POST - Hinzufügen von Daten
          • DELETE - Löschen von Daten
      • Eval - Auswertung der Daten
        • ProList - Auswertung nach Projekten
          • GET - Rückgabe von Daten
        • KatList - Auswertung nach Kategorien
          • GET - Rückgabe von Daten
      • Navigation - Inhalt der Navigationsleiste
        • Navigation
          • GET - Rückgabe von Daten
      • Projekt - Verwaltung der Projekte + deren Kategorien
        • Projekt
          • GET - Rückgabe von Daten
          • PUT - Verändern von Daten
          • POST - Hinzufügen von Daten
          • DELETE - Löschen von Daten
        • ProjektKomponenten - Komponenten eines Projektes
          • GET - Rückgabe von Daten
        • Komponente
          • GET - Rückgabe von Daten
          • PUT - Verändern von Daten
          • POST - Hinzufügen von Daten
          • DELETE - Löschen von Daten
      • Staff - Verwaltung der Benutzer
        • QsMitarbeiter - QS-Mitarbeiter
          • GET - Rückgabe von Daten
          • PUT - Verändern von Daten
          • POST - Hinzufügen von Daten
          • DELETE - Löschen von Daten
        • SWEntwickler - SW-Entwickler
          • GET - Rückgabe von Daten
          • PUT - Verändern von Daten
          • POST - Hinzufügen von Daten
          • DELETE - Löschen von Daten
      • Templates - Verwaltung der Templates
        • Templates
          • GET - Rückgabe von Daten

Datenhaltung

  • Datensatz - für die jeweiligen Instanzen
    • projekt
    • komponenten
    • qsmitarbeiter
    • swentwickler
    • katfehler
    • katursache
    • fehler

Implementierung des Clients

Klassen

  • Application - Instanzieren aller Klassen, Verwalten der Anfragen (durch Eventservice)

    • DetailView - Verwalten der Detail-Ansicht
    • ListView - Verwalten der List-Ansicht
    • Nav - Verwalten des Navigationsbereiches
  • EventService

  • Generator

  • TemplateManager

Eventservice

Der Eventservice implementiert das "Publish-Subscriber-Muster". Das bedeutet, dass es einen, oder mehrere "Subscriber" und einen "Publisher" gibt. Melden die "Subscriber" sich bei dem System an, erhalten sie jegliche "Notifications", die der "Publisher" sendet. Der Vorteil dieses Systems ist es, dass die Subscriber Nachrichten von Objekten erhalten können, von dessen Existenz sie garnicht wissen.

Templateverarbeitung

Die Templates liegen in Form von modifizierten "HTML-Dateien" vor. Diese wurde um Code der Sprache "Javascript" erweitert und mit einer speziellen Syntax gekennzeichnet. Die Template-Engine kann hiermit dynamisch Inhalt erzeugen.