SourceCode Konfiguration

Aus Letto-Wiki
Wechseln zu: Navigation, Suche

Allgemeines

Das CodeCheck-Plugin wird verwendet um Programme von Schülern in verschiedenen Programmiersprachen (aktuell nur Java) automatische korrigieren zu können.

ClipCapIt-181029-120730.PNG

Der Konfigurationsdialog besteht aus den Bereichen:

  • statisch : Statische Codeprüfung für die das Programm nicht gestartet werden muss
  • dynamische Ausgabe: Hierbei wird die Programmausgabe des Schülerprogrammes mit einem Beispielprogramm verglichen
  • dynamische Methoden: Hierbei wird das Ergebnis von klar definierten Methoden zwischen Schüler und Mustercode verglichen
  • Mustercode : Der Code welcher eine richtige Lösung für die dynamische Bewertung enthält

statisch

ClipCapIt-181031-140456.PNG

Grundkonfiguration

  • Auswahl der verwendeten Programmiersprache (aktuell ist nur Java realisiert)

Imports

  • imports überprüfen: Ist dies angehakt sind nur die in der Liste angegebenen imports zulässig. Sind andere imports im Schülercode vorhanden, so wird die dynamische Codeprüfung verweigert, und der Schüler erhält dafür auch keine Punkte.
  • Import hinzufügen: hier kann ein Import definiert werden, der zur Liste hinzugefügt werden kann
  • Liste der Imports: Hier werden alle erlaubten imports eingetragen. Die Einträge können nur gelöscht und hinzugefügt, nicht geändert werden.

Schlüsselwörter

Hier können über einen Java-Regular-Expression Ausdrücke definiert werden, die im Schülercode vorkommen sollen oder nicht vorkommen dürfen.

Ein Eintrag in der Liste wird zuerst definiert, und dann mit "Hinzufügen" zur Liste hinzugefügt. Beim Hinzufügen wird der Regexp auch auf Gültigkeit geprüft, und nur dann hinzugefügt wenn er korrekt angegeben wurde.

  • Ausdruck : Regulärer Ausdruck nach dem gesucht wird
  • Art: Gibt an ob der Ausdruck vorkommen muss(relevant) oder nicht vorkommen darf(verboten)
  • Von: Definiert, ab welcher Anzahl von Vorkommen des Ausdrucks Punkte vergeben/abgezogen werden.
  • Bis: Definiert, bis zu welcher Anzahl von Vorkommen des Ausdrucks Punkte vergeben/abgezogen werden. Liegt die Anzahl zwischen Von und Bis werden immer alle Punkte erreicht. Soll die Anzahl nach oben offen sein, muss Bis=0 definiert werden.
  • Punkte: Die Punkte, welche für die Erfüllung des Ausdrucks vergeben werden. Wenn "verboten" als Art gewählt wird, dann werden die Punkte dann gegeben, wenn die Anzahl des Vorkommens des Ausdrucks außerhalb von Von-Bis liegt. Bei relevant genau dann, wenn sie innerhalb liegt.
  • Abzug: Punkte die abgezogen werden bei jeglicher Nichterfüllung der Definition. ZB. "verboten" ist als Art gewählt, Von=1, Bis=0, und die Anzahl des Vorkommens des Audrucks im Code = 2, dann werden Punkte nicht vergeben und Abzug wird zusätzlich abgezogen. Bei "relevant" wird Abzug genau dann abgezogen wenn die Anzahl des Vorkommens des Ausdrucks außerhalb des definierten Bereiches liegt, zB. Von=1, Bis=2, Anzahl des Vorkommens des Ausdrucks im Code = 0. Hier werden keine Punkte vergeben und der Abzug abgezogen.
  • Teilpunkte: Gibt an ob Teilpunkte gegeben werden sollen wenn "relevant" als Art gewählt wird. ZB. Von=3, Bis=5, Punkte=9, Anzahl des Vorkommens des Ausdrucks im Code = 2, dann werden (Punkte/Von)*Vorkommen Punkte vergeben, also (9/3)*2=6. Liegt die Anzahl des Vorkommens des Ausdrucks über- oder ist gleich dem Von-Wert, werden alle Punkte gegeben. Wenn Teilpunkte=true, dann werden, falls die Anzahl des Vorkommens des Ausdrucks im Code>Bis ist trotzdem alle Punkte gegeben, jedoch wird der Abzug dann abgezogen. Wenn Teilpunkte=false, dann werden die Punkte in so einem Fall nicht gegeben.

Style-Check

Hier kann eine Prüfung des Code-Aufbaues definiert werden.

  • Abzug bei Syntaxfehler: Wenn true, dann werden im Falle eines Syntaxfehlers im Programm alle Punkte des Style-Checks abgezogen. Wenn false, dann wird der Style-Check nicht gewertet.
  • Dokumentation: Testet die Dokumentation mit gültiger Java-Doc. Es wird überprüft, ob eine nicht-leere Dokumentation vorhanden ist und ob alle Parameter und Return-Values entsprechend Dokumentiert wurden.
    • Punkte: Diese Punkte können erreicht werden.
    • Teilpunkte: So viele Teilpunkte werden vergeben. ZB. ist Punkte=5, Teilpunkte=5 und Anz. der Fehler=2, werden Punkte-(Punkte/Teilpunkte)*Fehler=3 Punkte vergeben.
    • max-Fehler: Wenn Die Anzahl der Fehler über diesem Wert liegt, werden die in Abzug definierten Punkte abgezogen.
    • Abzug: So viele Punkte können abgezogen werden.
    • Main-Methode prüfen: Wenn true, wird die Dokumentation der Main Methode geprüft und in die Bewertung miteinbezogen.
  • Name-Conventions: Hier wird geprüft, ob die Java-Naming-Conventions korrekt eingehalten werden.
    • Punkte: Diese Punkte können erreicht werden.
    • Teilpunkte: So viele Teilpunkte werden vergeben. ZB. ist Punkte=5, Teilpunkte=5 und Anz. der Fehler=2, werden Punkte-(Punkte/Teilpunkte)*Fehler=3 Punkte vergeben.
    • max-Fehler: Wenn Die Anzahl der Fehler über diesem Wert liegt, werden die in Abzug definierten Punkte abgezogen.
    • Abzug: So viele Punkte können abgezogen werden.
    • Methodennamen: Wenn true, werden Methodennamen geprüft. Prüfung mit: "^[a-z_]\\w*$"
    • Klassennamen: Wenn true, werden Klassennamen geprüft. Prüfung mit: "^[A-Z_]\\w*$"
    • lokaleVariablen: Wenn true, werden alle lokalen Variablen geprüft. Prüfung mit: "^[a-z_]\\w*$"
    • Instanzvariablen: Wenn true, werden Instanzvariablen geprüft. Prüfung mit: "^[a-z_]\\w*$"
    • Konstanten: Wenn true, werden Konstanten geprüft. "^[A-Z_]*$"
    • Packagename: Wenn true, werden packagenamen geprüft. Prüfung mit: "^[a-z_]\\w*$" (mit Punkt getrennt)

dynamische Ausgabe

ClipCapIt-181031-140706.PNG

dynamische Methoden

Mustercode

ClipCapIt-181031-140807.PNG

Server Konfiguration für Security-Prüfung