TestTool/Dokumentation: Unterschied zwischen den Versionen

Aus Foxwiki
Zeile 30: Zeile 30:
===Datenbank===
===Datenbank===
*Grundgedanken
*Grundgedanken
**Zwei Blöcke: ''Fragen-Antworten''-Block und ''Prüfung-Teilnehmer''-Block
**Drei Blöcke: ''Fragen-Antworten''-Block, ''Prüfung''-Block und ''Teilnehmer''-Block
**Eine Frage hat mehrere Antworten(mind. 1-2 je nach Frageart); Eine Antwort gehört zu einer Frage
**Eine Frage hat mehrere Antworten(mind. 1-2 je nach Frageart); Eine Antwort gehört zu einer Frage
**Eine Prüfung hat mehrere Teilnehmer und ein Teilnehmer belegt mehrere Prüfungen.
**Eine Prüfung hat mehrere Teilnehmer und ein Teilnehmer belegt mehrere Prüfungen.
**Eine Frage kommt in mehreren Prüfungen vor, eine Prüfung hat mehrere Fragen.
**Eine Frage kommt in mehreren Prüfungen vor, eine Prüfung hat mehrere Fragen.
**Ein Teilnehmer gehört zu einer Gruppe(Team) und hat eine bestimmte Rolle in der Anwendung(Admin, Editor, Prüfling).
[[Datei:tabellenmodell_testtool.png|1200px]]
[[Datei:tabellenmodell_testtool.png|1200px]]
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.
*Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.

Version vom 6. November 2020, 14:00 Uhr

Projektdokumentation zur Webanwendung

Einleitung

In dieser Projektdokumentation wird der Ablauf des Abschlussprojektes erläutert, das der Autor im Rahmen seiner Abschlussprüfung zum Fachinformatiker für Anwendungsentwicklung durchführt.

Projektbeschreibung

Für die Dirk Wagner Berlin soll eine Webanwendung mit HTML und PHP entwickelt werden. Diese Webanwendung soll bestimmte Anforderungen erfüllen, die das Erstellen von Prüfungen erleichtern sollen.

Projektziel

Das Ziel dieses Projektes ist die erfolgreiche Umsetzung einer Webanwendung, die alle Prüfungen von Prüfern verwaltet. Die Prüfer sollen Fragen und mögliche Antworten eintragen können. Die Prüfungen sollen von Prüflingen durchgeführt werden und anschließend ein Ergebnis der Prüfung präsentiert.


Phasen des Projekts

Startphase

Ist-Zustand

Wirtschaftlichkeitsanalyse

Anwendungsfälle

  • Grundgedanken
    • Prüfer und Prüfling
    • Prüfer muss Fragen, Antworten, neue Prüflinge, neue Fachgebiete und Themen, neue Prüfungen erstellen können
    • Prüfer kann Ergebnisse von Prüflingen einsichten
    • Prüfling muss Prüfung ablegen können
    • Anwendung muss Ergebnis dem Prüfling präsentieren

Lastenheft

  • Beschreibung des Lastenhefts(Nicht das Lastenheft selber! Auszugsweise im Anhang!)
  • Soll nach der MoSCoW-Methode(Must, Should, Could, Won´t) formuliert werden.

Entwurf

Datenbank

  • Grundgedanken
    • Drei Blöcke: Fragen-Antworten-Block, Prüfung-Block und Teilnehmer-Block
    • Eine Frage hat mehrere Antworten(mind. 1-2 je nach Frageart); Eine Antwort gehört zu einer Frage
    • Eine Prüfung hat mehrere Teilnehmer und ein Teilnehmer belegt mehrere Prüfungen.
    • Eine Frage kommt in mehreren Prüfungen vor, eine Prüfung hat mehrere Fragen.
    • Ein Teilnehmer gehört zu einer Gruppe(Team) und hat eine bestimmte Rolle in der Anwendung(Admin, Editor, Prüfling).

  • Damit keine Redundanzen entstehen bei den Fragen, wird auf fg_fragetext ein UNIQUE KEY gesetzt.
  • Hilft nicht 100%, da ähnliche Fragen trotzdem in die Datenbank geschrieben werden können.
  • Macht keinen Unterschied, ob die Frage Groß- oder kleingeschrieben ist. Ist die Frage identisch, wird sie verworfen.
  • Ebenfalls UNIQUE KEY gesetzt:
    • fg_fachgebiet
    • pr_titel
    • tn_username
    • ro_rolle
    • gr_gruppe
    • sc_level
    • fa_frageart

Benutzeroberfläche

Funktionen

Pflichtenheft

Implementierungsphase

Erstellung der Datenbank

CREATE DATABASE c8testtool;
USE c8testtool;

Fragentabelle erstellen mit Primärschlüssel und NOT NULL auf Fragetext.

CREATE TABLE fragen (fr_id INT AUTO_INCREMENT PRIMARY KEY, fr_fragetext TEXT NOT NULL, fr_th_id INT, fr_sc_id INT, fr_fa_id INT, fr_delete BOOLEAN);

Antworttabelle erstellen mit Primärschlüssel und UNIQUE-Index auf Antworttext.

CREATE TABLE antworten (an_id INT AUTO_INCREMENT PRIMARY KEY, an_antworttext TEXT UNIQUE, an_fr_id int, an_richtig boolean, an_delete boolean);

Im Nachhinein Beziehung aufsetzen zwischen Antworten und Fragen. Jede Frage hat mehrere Antworten, jede Antwort gehört zu einer Frage. Einsetzen der Lösch- und Änderungsweitergabe.

ALTER TABLE antworten ADD FOREIGN KEY(an_fr_id) REFERENCES fragen(fr_id) ON DELETE CASCADE ON UPDATE CASCADE;

Teilnehmertabelle erstellen mit UNIQUE-KEY auf tn_username

CREATE TABLE teilnehmer 
(tn_id INT PRIMARY KEY AUTO_INCREMENT,
tn_vorname VARCHAR(40) NOT NULL,
tn_nachname VARCHAR(40) NOT NULL,
tn_ro_id INT NOT NULL,
tn_gr_id INT NOT NULL,
tn_username VARCHAR(40)UNIQUE NOT NULL, 
tn_passwort VARCHAR(255) NOT NULL,
tn_delete BOOLEAN);

Prüfungstabelle erstellen mit Standardwert 90 für pr_dauer

CREATE TABLE pruefung
(pr_id INT PRIMARY KEY AUTO_INCREMENT,
pr_titel VARCHAR(40) NOT NULL,
pr_datum DATE NOT NULL,
pr_dauer INT NOT NULL DEFAULT 90,
pr_wiederholbar BOOLEAN,
pr_delete BOOLEAN);

Implementierung der Entitäten

Implementierung der Programmierlogik

Testphase

Abschlussphase

Abnahme

Einführung

Dokumentation

Fazit

Soll/Ist-Vergleich

Ausblick/Verbesserungen

Quellen

Anhang

  • Auszug aus dem Lastenheft
  • Auszug aus dem Pflichtenheft
  • ER-Modell

  • Tabellenmodell

  • Use-Case-Szenarien
  • Use-Case-Diagramm
  • Aktivitätsdiagramm
  • Auszug aus der Funktion "Bewerten einer Prüfung"

Formalien

Deckblatt

  • Projektbezeichnung: Datenbankbasierte Webanwendung zur Verwaltung und Durchführung von Prüfungen
  • Namen und Vornamen: Rogers, Alexander
  • Prüfungsausschuss
  • Ausbildungsberuf: Fachinformatiker Anwendungsentwicklung
  • Ausbildungsstätte bzw. Praktikumsbetrieb: itw gGmbH, Groninger Straße 25, 13347 Berlin bzw. Dirk Wagner Berlin, Carstennstraße 6, 12205 Berlin

Eidesstattliche Erklärung

TODO

Abkürzungsverzeichnis

TODO