<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.uni-due.de/jack/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pbabucke</id>
	<title>JACK Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.uni-due.de/jack/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pbabucke"/>
	<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Spezial:Beitr%C3%A4ge/Pbabucke"/>
	<updated>2026-04-26T10:19:18Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=KovidaChecker_(Jack2)&amp;diff=2542</id>
		<title>KovidaChecker (Jack2)</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=KovidaChecker_(Jack2)&amp;diff=2542"/>
		<updated>2018-06-06T10:25:02Z</updated>

		<summary type="html">&lt;p&gt;Pbabucke: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der KovidaChecker führt keine Checks im eigentlichen Sinne aus, sondern erzeugt zu einem Programmlauf eines Java-Programms eine Visualisierung der erzeugten Datenstruktur. Die nötige Konfiguration besteht aus der Angabe der zu prüfenden Dateien (“Source files”) sowie des Testtreibers (“Test driver class”) zur Erzeugung des Programmlaufs und einer Datei mit Anweisungen für die Erzeugung der Visualisierung (“Visualization configuration”).Der Testtreiber muss eine main-Methode enthalten, die von JACK aufgerufen wird, um den Programmlauf anzustößen. In welcher Form diese Methode Aufrufe auf die zu visualisierende Lösung durchführt, ist nicht beschränkt.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel einer Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
Eine beispielhafte Konfiguration der Visualisierung ist im unten stehenden XML-Code dargestellt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line=&amp;quot;line&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;project&amp;gt;&lt;br /&gt;
    &amp;lt;classes&amp;gt;&lt;br /&gt;
        &amp;lt;class name=&amp;quot;Getraenk&amp;quot; style=&amp;quot;list_element&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;class name=&amp;quot;Strichliste&amp;quot; style=&amp;quot;list_element&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;class name=&amp;quot;Deckel&amp;quot; style=&amp;quot;list&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;class name=&amp;quot;Gast&amp;quot; style=&amp;quot;list&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;class name=&amp;quot;Kassensystem&amp;quot; style=&amp;quot;list&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/classes&amp;gt;&lt;br /&gt;
    &amp;lt;breakpoints name=&amp;quot;Miniprojekt5Kovida.java&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;breakpoint orderId=&amp;quot;1&amp;quot;&amp;gt;99&amp;lt;/breakpoint&amp;gt;&lt;br /&gt;
    &amp;lt;/breakpoints&amp;gt;&lt;br /&gt;
    &amp;lt;info&amp;gt;&lt;br /&gt;
        Standardbelegung und Getraenkekarte wie in der Aufgabenstellung vorgegeben.&lt;br /&gt;
    &amp;lt;/info&amp;gt;&lt;br /&gt;
&amp;lt;/project&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Einträge im Tag &amp;lt;code&amp;gt;&amp;lt;classes&amp;gt;&amp;lt;/code&amp;gt; geben an, welche Klassen für die Visualisierung berücksichtigt werden sollen. Über das style-Attribut kann optional angegeben werden, ob diese Klassen eine Datenstruktur in Form einer Liste definieren oder Listenelemente darstellen. Dies wirkt sich auf die Darstellung aus. Weitere gültige Werte für dieses Attribut sind &#039;&#039;“tree”&#039;&#039;, &#039;&#039;“tree_element”&#039;&#039;, &#039;&#039;“tree_list”&#039;&#039;, &#039;&#039;“tree_list_element”&#039;&#039;, &#039;&#039;“tree_list_element_subgraph”&#039;&#039;, &#039;&#039;“array”&#039;&#039;, &#039;&#039;“graph”&#039;&#039;, &#039;&#039;“graph_node”&#039;&#039; und &#039;&#039;“graph_edge”&#039;&#039;. Über den Tag &amp;lt;code&amp;gt;&amp;lt;breakpoints&amp;gt;&amp;lt;/code&amp;gt; wird gesteuert, zu welchem Zeitpunkt der Programmausführung eine Visualisierung erzeugt wird. Es ist empfehlenswert, diese nur auf Dateien zu beziehen, die von Studierenden nicht verändert werden können, um ein verlässliches Ergebnis zu erzielen. Wird ein Breakpoint im Laufe einer Programmausführung mehrfach durchlaufen, wird nur zum letzten Durchlauf eine Visualisierung erzeugt. Im Tag &amp;lt;code&amp;gt;&amp;lt;info&amp;gt;&amp;lt;/code&amp;gt; kann eine beliebige Nachricht eingetragen werden, die den Studierenden als allgemeine Information zur Visualisierung angezeigt wird. &lt;br /&gt;
&lt;br /&gt;
Ein mögliches Ergebnis einer Visualisierung ist in der folgenden Abbildung zu sehen.&lt;br /&gt;
&lt;br /&gt;
[[File:KovidaBeispiel.png |1000px]]&lt;/div&gt;</summary>
		<author><name>Pbabucke</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Datei:KovidaBeispiel.png&amp;diff=2541</id>
		<title>Datei:KovidaBeispiel.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Datei:KovidaBeispiel.png&amp;diff=2541"/>
		<updated>2018-06-06T10:08:33Z</updated>

		<summary type="html">&lt;p&gt;Pbabucke: Ergebnis einer Visualisierung mit dem KovidaChecker&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ergebnis einer Visualisierung mit dem KovidaChecker&lt;/div&gt;</summary>
		<author><name>Pbabucke</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=KovidaChecker_(Jack2)&amp;diff=2540</id>
		<title>KovidaChecker (Jack2)</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=KovidaChecker_(Jack2)&amp;diff=2540"/>
		<updated>2018-06-06T10:07:32Z</updated>

		<summary type="html">&lt;p&gt;Pbabucke: Die Seite wurde neu angelegt: „Der KovidaChecker führt keine Checks im eigentlichen Sinne aus, sondern erzeugt zu einem Programmlauf eines Java-Programms eine Visualisierung der erzeugten D…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der KovidaChecker führt keine Checks im eigentlichen Sinne aus, sondern erzeugt zu einem Programmlauf eines Java-Programms eine Visualisierung der erzeugten Datenstruktur. Die nötige Konfiguration besteht aus der Angabe der zu prüfenden Dateien (“Source files”) sowie des Testtreibers (“Test driver class”) zur Erzeugung des Programmlaufs und einer Datei mit Anweisungen für die Erzeugung der Visualisierung (“Visualization configuration”).Der Testtreiber muss eine main-Methode enthalten, die von JACK aufgerufen wird, um den Programmlauf anzustößen. In welcher Form diese Methode Aufrufe auf die zu visualisierende Lösung durchführt, ist nicht beschränkt.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel einer Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
Eine beispielhafte Konfiguration der Visualisierung ist im unten stehenden XML-Code dargestellt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line=&amp;quot;line&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;project&amp;gt;&lt;br /&gt;
    &amp;lt;classes&amp;gt;&lt;br /&gt;
        &amp;lt;class name=&amp;quot;Getraenk&amp;quot; style=&amp;quot;list_element&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;class name=&amp;quot;Strichliste&amp;quot; style=&amp;quot;list_element&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;class name=&amp;quot;Deckel&amp;quot; style=&amp;quot;list&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;class name=&amp;quot;Gast&amp;quot; style=&amp;quot;list&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;class name=&amp;quot;Kassensystem&amp;quot; style=&amp;quot;list&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/classes&amp;gt;&lt;br /&gt;
    &amp;lt;breakpoints name=&amp;quot;Miniprojekt5Kovida.java&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;breakpoint orderId=&amp;quot;1&amp;quot;&amp;gt;99&amp;lt;/breakpoint&amp;gt;&lt;br /&gt;
    &amp;lt;/breakpoints&amp;gt;&lt;br /&gt;
    &amp;lt;info&amp;gt;&lt;br /&gt;
        Standardbelegung und Getraenkekarte wie in der Aufgabenstellung vorgegeben.&lt;br /&gt;
    &amp;lt;/info&amp;gt;&lt;br /&gt;
&amp;lt;/project&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Einträge im Tag &amp;lt;code&amp;gt;&amp;lt;classes&amp;gt;&amp;lt;/code&amp;gt; geben an, welche Klassen für die Visualisierung berücksichtigt werden sollen. Über das style-Attribut kann optional angegeben werden, ob diese Klassen eine Datenstruktur in Form einer Liste definieren oder Listenelemente darstellen. Dies wirkt sich auf die Darstellung aus. Weitere gültige Werte für dieses Attribut sind &#039;&#039;“tree”&#039;&#039;, &#039;&#039;“tree_element”&#039;&#039;, &#039;&#039;“tree_list”&#039;&#039;, &#039;&#039;“tree_list_element”&#039;&#039;, &#039;&#039;“tree_list_element_subgraph”&#039;&#039;, &#039;&#039;“array”&#039;&#039;, &#039;&#039;“graph”&#039;&#039;, &#039;&#039;“graph_node”&#039;&#039; und &#039;&#039;“graph_edge”&#039;&#039;. Über den Tag &amp;lt;code&amp;gt;&amp;lt;breakpoints&amp;gt;&amp;lt;/code&amp;gt; wird gesteuert, zu welchem Zeitpunkt der Programmausführung eine Visualisierung erzeugt wird. Es ist empfehlenswert, diese nur auf Dateien zu beziehen, die von Studierenden nicht verändert werden können, um ein verlässliches Ergebnis zu erzielen. Wird ein Breakpoint im Laufe einer Programmausführung mehrfach durchlaufen, wird nur zum letzten Durchlauf eine Visualisierung erzeugt. Im Tag &amp;lt;code&amp;gt;&amp;lt;info&amp;gt;&amp;lt;/code&amp;gt; kann eine beliebige Nachricht eingetragen werden, die den Studierenden als allgemeine Information zur Visualisierung angezeigt wird. &lt;br /&gt;
&lt;br /&gt;
Ein mögliches Ergebnis einer Visualisierung ist in der folgenden Abbildung zu sehen.&lt;/div&gt;</summary>
		<author><name>Pbabucke</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=TracingChecker&amp;diff=2531</id>
		<title>TracingChecker</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=TracingChecker&amp;diff=2531"/>
		<updated>2018-06-06T09:50:25Z</updated>

		<summary type="html">&lt;p&gt;Pbabucke: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der TracingChecker führt dynamische Tests auf Java Programmcode aus, die dem Prinzip von Unit-Tests folgen. Es müssen daher die zu prüfenden Dateien (“Source files”) sowie ein Testtreiber (“Test driver”) angegeben werden. Im Eintrag “Classes to trace” kann zudem eine kommaseparierte Liste von Klassennamen angegeben werden, für die während der Testausführung ein Trace erzeugt werden soll. Jeder ausgeführte Programmschritt in diesen Klassen wird dann in den Trace aufgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel einer Testklasse ===&lt;br /&gt;
&lt;br /&gt;
Die Test-Klasse muss dem Grundgerüst des folgenden Programmcodes folgen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&#039;line&#039;&amp;gt;&lt;br /&gt;
import de.uni_due.s3.jack2.backend.checkers.tracingchecker.framework.TracingFramework;&lt;br /&gt;
import de.uni_due.s3.jack2.backend.checkers.tracingchecker.framework.TracingFramework.Test;&lt;br /&gt;
&lt;br /&gt;
public class DemoprojektDynamisch {&lt;br /&gt;
&lt;br /&gt;
    private int punkte = 0;&lt;br /&gt;
&lt;br /&gt;
    public int getResult() {&lt;br /&gt;
        return punkte;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    @Test(name=&amp;quot;Test 1&amp;quot;)&lt;br /&gt;
    public void test1() {&lt;br /&gt;
&lt;br /&gt;
        Demoprojekt p = new Demoprojekt();&lt;br /&gt;
&lt;br /&gt;
        float faktor1 = p.faktor(&amp;quot;Andre&amp;quot;, 36, 4, 10);&lt;br /&gt;
        float result1 = p.betrag(faktor1, 50000);&lt;br /&gt;
&lt;br /&gt;
        if (result1 &amp;lt; 3207.78f || result1 &amp;gt; 3207.79f){&lt;br /&gt;
            if (faktor1 &amp;lt; 6.41f || faktor1 &amp;gt; 6.42f) {&lt;br /&gt;
                TracingFramework.printError(&amp;quot;Falsches Ergebnis und falscher Faktor!&amp;quot;);&lt;br /&gt;
            } else {&lt;br /&gt;
                TracingFramework.printError(&amp;quot;Falsches Ergebnis, aber richtiger Faktor!&amp;quot;);&lt;br /&gt;
                punkte += 20;&lt;br /&gt;
            }&lt;br /&gt;
        } else {&lt;br /&gt;
            punkte += 50;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    @Test(name=&amp;quot;Test 2&amp;quot;)&lt;br /&gt;
    public void test2() {&lt;br /&gt;
        // ...&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Klasse importiert das Tracing-Framework von JACK, das in der Datei “&#039;&#039;jack-tracing-framework.jar&#039;&#039;” bereitgestellt wird (Zeile 1 und 2). Die einzige Methode, die ein Testtreiber in jedem Fall anbieten muss, ist die Methode &amp;lt;code&amp;gt;getResult()&amp;lt;/code&amp;gt;, die die erreichte Punktzahl von 0 bis 100 Punkten als Ganzzahl zurück gibt (Zeile 8-10). Zusätzlich kann der Testtreiber beliebig viele weitere, beliebig komplexe Methoden enthalten, die mit der Annotation @Test(name=“&amp;lt;Name_des_Testfalls&amp;gt;”) versehen werden (Zeile 12 und 32). Ist vor dem Start des gesamte dynamischen Tests eine einmalige Initialisierung notwendig, kann eine Methode &amp;lt;code&amp;gt;init()&amp;lt;/code&amp;gt; ergänzt werden. Die Deklaration von zusätzlichen Hilfsmethoden und&lt;br /&gt;
beliebigen Feldern ist zulässig. &lt;br /&gt;
&lt;br /&gt;
Die Testmethoden werden in der Reihenfolge abgearbeitet, in der sie im Programmcode deklariert sind. Sie führen Aufrufe auf dem zu testenden Programmcode durch und vergleichen die Rückgaben mit den erwarteten Werten. Zur Erzeugung einer textuellen Rückmeldung an die Studierenden stellt das Tracing-Framework die Methode &amp;lt;code&amp;gt;TracingFramework.printError(“&amp;lt;Meldung&amp;gt;”)&amp;lt;/code&amp;gt; bereit (Zeile 22 und 24). Wird eine solche Zeile erreicht, führt dies im Fehlerbericht von JACK zu einer Ausgabe der Form “Fehler in &amp;lt;Name_des_Testfalls&amp;gt;: &amp;lt;Meldung&amp;gt;”. Die Ausführung der Testmethode wird danach weiter fortgesetzt, d.h. eine Testmethode kann mehrere Meldungen erzeugen. Jede Meldung wird automatisch um einen Trace ergänzt, der die ausgeführten Programmschritte seit dem Start der Testmethode bis zur Erzeugung der Fehlermeldung erhält. Analog zur Erzeugung von Fehlermeldungen steht auch eine Methode &amp;lt;code&amp;gt;TracingFramework.printWarning(“&amp;lt;Meldung&amp;gt;”)&amp;lt;/code&amp;gt; zur Verfügung. Diese erzeugt Ausgaben der Form “Warnung in &amp;lt;Name_des_Testfalls&amp;gt;: &amp;lt;Meldung&amp;gt;”. Treten während der Ausführung eines Testfalls Exceptions im geprüften Programmcode auf, führt dies automatisch zu einer Ausgabe der Form “Fehler in &amp;lt;Name_des_Testfalls&amp;gt;: &amp;lt;Beschreibung_der_Exception&amp;gt;&amp;quot;. In diesem Fall wird die Ausführung der Testmethode abgebrochen und der dynamische Test mit dem Aufruf der nächsten Testmethode fortgesetzt. Auch bei einer Exception wird die Meldung um einen Trace ergänzt. Tritt hingegen eine Exception im Testtreiber auf, führt diese zu einem Abbruch des gesamten dynamischen Tests. Es wird keine Punktzahl vergeben, sondern die Lösung wird stattdessen mit einem “internal error” markiert. Die aufgetretene Exception wird als interne Fehlernachricht ausgegeben.Das Erzeugen der Traces zum Programmablauf führt zu einer signifikant verlängerten Laufzeit für die zu testenden Programme. Um den Server nicht zu lange mit einem einzelnen Test zu blockieren, ist die Erzeugung von Traces daher auf eine Länge von 500 Schritten begrenzt. Das Programm wird nach erreichen dieser Grenze weiter ausgeführt, aber es wird kein Trace mehr dazu aufgezeichnet. Die Traceaufzeichnung kann gezielter gesteuert werden, indem die Aufrufe &amp;lt;code&amp;gt;TracingFramework.switchOffTracing()&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;TracingFramework.switchOnTracing()&amp;lt;/code&amp;gt; verwendet werden. Damit kann für Abschnitte eines Testfalls das zeitaufwändige Tracing abgeschaltet und später wieder eingeschaltet werden. Die Ein-/Ausschaltung gilt immer nur pro Testfall. Insbesondere beginnt jeder Testfall standardmäßig mit eingeschaltetem Tracing. &lt;br /&gt;
&lt;br /&gt;
Schreibt der geprüfte Programmcode während der Testausführung Ausgaben auf die Standardausgabe, werden diese unabhängig von den einzelnen Testfällen gespeichert und als zusätzliche Information in der Web-Oberfläche von JACK mit ausgegeben. Eine automatische inhaltliche Auswertung der Ausgaben ist nicht möglich.&lt;/div&gt;</summary>
		<author><name>Pbabucke</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=TracingChecker&amp;diff=2530</id>
		<title>TracingChecker</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=TracingChecker&amp;diff=2530"/>
		<updated>2018-06-06T09:49:56Z</updated>

		<summary type="html">&lt;p&gt;Pbabucke: Die Seite wurde neu angelegt: „Der TracingChecker führt dynamische Tests auf Java Programmcode aus, die dem Prinzip von Unit-Tests folgen. Es müssen daher die zu prüfenden Dateien (“Sou…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der TracingChecker führt dynamische Tests auf Java Programmcode aus, die dem Prinzip von Unit-Tests folgen. Es müssen daher die zu prüfenden Dateien (“Source files”) sowie ein Testtreiber (“Test driver”) angegeben werden. Im Eintrag “Classes to trace” kann zudem eine kommaseparierte Liste von Klassennamen angegeben werden, für die während der Testausführung ein Trace erzeugt werden soll. Jeder ausgeführte Programmschritt in diesen Klassen wird dann in den Trace aufgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel einer Testklasse ===&lt;br /&gt;
&lt;br /&gt;
Die Test-Klasse muss dem Grundgerüst vie dem folgendem Programmcode folgen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line=&#039;line&#039;&amp;gt;&lt;br /&gt;
import de.uni_due.s3.jack2.backend.checkers.tracingchecker.framework.TracingFramework;&lt;br /&gt;
import de.uni_due.s3.jack2.backend.checkers.tracingchecker.framework.TracingFramework.Test;&lt;br /&gt;
&lt;br /&gt;
public class DemoprojektDynamisch {&lt;br /&gt;
&lt;br /&gt;
    private int punkte = 0;&lt;br /&gt;
&lt;br /&gt;
    public int getResult() {&lt;br /&gt;
        return punkte;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    @Test(name=&amp;quot;Test 1&amp;quot;)&lt;br /&gt;
    public void test1() {&lt;br /&gt;
&lt;br /&gt;
        Demoprojekt p = new Demoprojekt();&lt;br /&gt;
&lt;br /&gt;
        float faktor1 = p.faktor(&amp;quot;Andre&amp;quot;, 36, 4, 10);&lt;br /&gt;
        float result1 = p.betrag(faktor1, 50000);&lt;br /&gt;
&lt;br /&gt;
        if (result1 &amp;lt; 3207.78f || result1 &amp;gt; 3207.79f){&lt;br /&gt;
            if (faktor1 &amp;lt; 6.41f || faktor1 &amp;gt; 6.42f) {&lt;br /&gt;
                TracingFramework.printError(&amp;quot;Falsches Ergebnis und falscher Faktor!&amp;quot;);&lt;br /&gt;
            } else {&lt;br /&gt;
                TracingFramework.printError(&amp;quot;Falsches Ergebnis, aber richtiger Faktor!&amp;quot;);&lt;br /&gt;
                punkte += 20;&lt;br /&gt;
            }&lt;br /&gt;
        } else {&lt;br /&gt;
            punkte += 50;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    @Test(name=&amp;quot;Test 2&amp;quot;)&lt;br /&gt;
    public void test2() {&lt;br /&gt;
        // ...&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Klasse importiert das Tracing-Framework von JACK, das in der Datei “&#039;&#039;jack-tracing-framework.jar&#039;&#039;” bereitgestellt wird (Zeile 1 und 2). Die einzige Methode, die ein Testtreiber in jedem Fall anbieten muss, ist die Methode &amp;lt;code&amp;gt;getResult()&amp;lt;/code&amp;gt;, die die erreichte Punktzahl von 0 bis 100 Punkten als Ganzzahl zurück gibt (Zeile 8-10). Zusätzlich kann der Testtreiber beliebig viele weitere, beliebig komplexe Methoden enthalten, die mit der Annotation @Test(name=“&amp;lt;Name_des_Testfalls&amp;gt;”) versehen werden (Zeile 12 und 32). Ist vor dem Start des gesamte dynamischen Tests eine einmalige Initialisierung notwendig, kann eine Methode &amp;lt;code&amp;gt;init()&amp;lt;/code&amp;gt; ergänzt werden. Die Deklaration von zusätzlichen Hilfsmethoden und&lt;br /&gt;
beliebigen Feldern ist zulässig. &lt;br /&gt;
&lt;br /&gt;
Die Testmethoden werden in der Reihenfolge abgearbeitet, in der sie im Programmcode deklariert sind. Sie führen Aufrufe auf dem zu testenden Programmcode durch und vergleichen die Rückgaben mit den erwarteten Werten. Zur Erzeugung einer textuellen Rückmeldung an die Studierenden stellt das Tracing-Framework die Methode &amp;lt;code&amp;gt;TracingFramework.printError(“&amp;lt;Meldung&amp;gt;”)&amp;lt;/code&amp;gt; bereit (Zeile 22 und 24). Wird eine solche Zeile erreicht, führt dies im Fehlerbericht von JACK zu einer Ausgabe der Form “Fehler in &amp;lt;Name_des_Testfalls&amp;gt;: &amp;lt;Meldung&amp;gt;”. Die Ausführung der Testmethode wird danach weiter fortgesetzt, d.h. eine Testmethode kann mehrere Meldungen erzeugen. Jede Meldung wird automatisch um einen Trace ergänzt, der die ausgeführten Programmschritte seit dem Start der Testmethode bis zur Erzeugung der Fehlermeldung erhält. Analog zur Erzeugung von Fehlermeldungen steht auch eine Methode &amp;lt;code&amp;gt;TracingFramework.printWarning(“&amp;lt;Meldung&amp;gt;”)&amp;lt;/code&amp;gt; zur Verfügung. Diese erzeugt Ausgaben der Form “Warnung in &amp;lt;Name_des_Testfalls&amp;gt;: &amp;lt;Meldung&amp;gt;”. Treten während der Ausführung eines Testfalls Exceptions im geprüften Programmcode auf, führt dies automatisch zu einer Ausgabe der Form “Fehler in &amp;lt;Name_des_Testfalls&amp;gt;: &amp;lt;Beschreibung_der_Exception&amp;gt;&amp;quot;. In diesem Fall wird die Ausführung der Testmethode abgebrochen und der dynamische Test mit dem Aufruf der nächsten Testmethode fortgesetzt. Auch bei einer Exception wird die Meldung um einen Trace ergänzt. Tritt hingegen eine Exception im Testtreiber auf, führt diese zu einem Abbruch des gesamten dynamischen Tests. Es wird keine Punktzahl vergeben, sondern die Lösung wird stattdessen mit einem “internal error” markiert. Die aufgetretene Exception wird als interne Fehlernachricht ausgegeben.Das Erzeugen der Traces zum Programmablauf führt zu einer signifikant verlängerten Laufzeit für die zu testenden Programme. Um den Server nicht zu lange mit einem einzelnen Test zu blockieren, ist die Erzeugung von Traces daher auf eine Länge von 500 Schritten begrenzt. Das Programm wird nach erreichen dieser Grenze weiter ausgeführt, aber es wird kein Trace mehr dazu aufgezeichnet. Die Traceaufzeichnung kann gezielter gesteuert werden, indem die Aufrufe &amp;lt;code&amp;gt;TracingFramework.switchOffTracing()&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;TracingFramework.switchOnTracing()&amp;lt;/code&amp;gt; verwendet werden. Damit kann für Abschnitte eines Testfalls das zeitaufwändige Tracing abgeschaltet und später wieder eingeschaltet werden. Die Ein-/Ausschaltung gilt immer nur pro Testfall. Insbesondere beginnt jeder Testfall standardmäßig mit eingeschaltetem Tracing. &lt;br /&gt;
&lt;br /&gt;
Schreibt der geprüfte Programmcode während der Testausführung Ausgaben auf die Standardausgabe, werden diese unabhängig von den einzelnen Testfällen gespeichert und als zusätzliche Information in der Web-Oberfläche von JACK mit ausgegeben. Eine automatische inhaltliche Auswertung der Ausgaben ist nicht möglich.&lt;/div&gt;</summary>
		<author><name>Pbabucke</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Erstellen_von_Pr%C3%BCfungen_(Jack2)&amp;diff=2507</id>
		<title>Erstellen von Prüfungen (Jack2)</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Erstellen_von_Pr%C3%BCfungen_(Jack2)&amp;diff=2507"/>
		<updated>2018-04-17T09:36:31Z</updated>

		<summary type="html">&lt;p&gt;Pbabucke: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Prüfungen dienen in JACK dem Abfragen des aktuellen Kenntnisstands zu einem Thema.&lt;br /&gt;
&lt;br /&gt;
=== Prüfung erstellen ===&lt;br /&gt;
&lt;br /&gt;
[[File:neuePruefung.png|thumb]]&lt;br /&gt;
&lt;br /&gt;
Ist man in JACK angemeldet, kann man im Menü rechts &#039;&#039;&#039;Prüfungen erstellen&#039;&#039;&#039; auswählen, um eine neue Prüfung einzurichten. Auf der anschließenden Seite &#039;&#039;&#039;Neue Prüfung&#039;&#039;&#039; muss man der Prüfung einen &#039;&#039;&#039;Titel&#039;&#039;&#039; geben. Optional kann man ein &#039;&#039;&#039;Datum&#039;&#039;&#039; mit einer  &#039;&#039;&#039;Zeit&#039;&#039;&#039; festlegen, sowie einstellen ob die Prüfung &#039;&#039;&#039;aktiviert&#039;&#039;&#039; ist und den zu Prüfenden erlaubt ist, nur ein Ergebnis einzureichen.&lt;br /&gt;
&lt;br /&gt;
Durch einen Klick auf den &#039;&#039;&#039;Speicher&#039;&#039;&#039;-Button wird die Prüfung erstellt.&lt;br /&gt;
&lt;br /&gt;
=== Prüfung bearbeiten ===&lt;br /&gt;
&lt;br /&gt;
Unmittelbar nach dem Erstellen einer Prüfung oder später auch durch das Auswählen einer Prüfung in JACK gelangt man auf die Bearbeitungsseite der Prüfung. Hier lassen sich diverse Informationen einsehen bzw. Änderungen an der Prüfung vornehmen.&lt;br /&gt;
&lt;br /&gt;
==== Basiseinstellungen ====&lt;br /&gt;
&lt;br /&gt;
Im Abschnitt “Basiseinstellungen” der Detailansicht können allgemeine Einstellungen zu einer Prüfung vorgenommen werden. Folgende Parameter sind in den Basiseinstellungen vorzufinden:&lt;br /&gt;
&lt;br /&gt;
[[File:PrüfungBearbeiten.png|thumb]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Titel:&#039;&#039;&#039; Der Titel dient der Repräsentation einer Prüfung innerhalb der Benutzeroberfläche.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Eigentümer/-in:&#039;&#039;&#039; Der Anmeldenamen des Benutzers, der eine Prüfung erstellt hat. Dieser Benutzer ist neben Administratoren automatisch zur uneingeschränkten Bearbeitung der Prüfung berechtigt. Alle anderen Lehrenden müssen zur Bearbeitung explizit autorisiert werden.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Datum/Zeit:&#039;&#039;&#039; Der Veranstaltungszeitpunkt dient rein der Information und beinhaltet keine automatische Zugriffssteuerung.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Prüfung ist aktiviert:&#039;&#039;&#039; Prüfung können einzeln aktiviert und deaktiviert werden.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Prüfung erlaubt nur eine Einreichung:&#039;&#039;&#039; Für jede Prüfung kann explizit festgelegt werden, ob nur eine Lösung oder beliebig viele erlaubt sind.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Minimales korrektes Ergebnis:&#039;&#039;&#039; Festlegung des minimalen Ergebnisses, das zum Bestehen einer Prüfung erreicht werden muss.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Evaluierungsregel:&#039;&#039;&#039; Die Evaluierungsregel legt fest, wie die Gesamtbewertung aus den einzelnen Bewertungen der Prüfungsaufgaben errechnet wird. Eine Evaluierungsregel besteht aus Variablenwerten (#{Variablenname}) und den prozentualen Anteilen dieser am Gesamtergebnis. Eine Variable repräsentiert jeweils einen Teilaufgabe und der Variablenwert das Aufgabenergebnis. Der Variablenname einer Aufgabe kann der Liste der Prüfungsaufgaben entnommen werden. Ein Beispiel für eine Regel: #{c582} * 0.7 + #{c61} * 0.3.&lt;br /&gt;
&lt;br /&gt;
==== Prüfungsaufgabe ====&lt;br /&gt;
&lt;br /&gt;
In einer Prüfung verwendete Aufgaben werden in der Detailansicht unter der Überschrift “Prüfungsaufgaben” angezeigt. Typischerweise ist dies nur eine, auch wenn mehrere möglich sind. Vorhandene Einträge können aus der Liste gelöscht werden. Das Hinzufügen von Aufgaben zu Prüfungen setzt voraus, dass die Aufgaben aktiviert sind. Wird eine verwendete Aufgabe im Laufe der Zeit deaktiviert, so wird die Deaktivierung in der Aufgabenliste kenntlich gemacht. Für die Zuweisung zu einer Prüfung stehen alle aktivierten Aufgaben zur Auswahl, deaktivierte Aufgaben sind in der Auswahlliste nicht vorhanden. Ob eine Aufgabe öffentlich ist oder nicht, ist dagegen irrelevant. Ist der Benutzer zur Einsicht und Bearbeitung&lt;br /&gt;
einer zugewiesenen Aufgabe berechtigt, kann die Detailansicht durch Anklicken des&lt;br /&gt;
Aufgaben-Titels geöffnet werden, andernfalls wird der Aufgaben-Titel als Text ausgegeben. Die Prüfungsverwaltung dient lediglich zur Zugriffssteuerung.&lt;br /&gt;
&lt;br /&gt;
==== Zugriffsrechte ====&lt;br /&gt;
&lt;br /&gt;
Die Einsicht und Bearbeitung von Prüfungen ist nur dem Eigentümer und Administratoren gestattet. Prüfungen, denen ein Lehrender nicht explizit zugewiesen wurde, werden in dessen Prüfungsliste nicht angezeigt. Um einem Lehrenden den Zugriff auf eine Prüfung zu gestatten, kann dieser unter der Überschrift “Lehrende für diese Prüfung autorisieren” zur Einsicht und Bearbeitung explizit berechtigt werden. Es dürfen alle Benutzer autorisiert werden, die in der Benutzerverwaltung als “Lehrende” freigeschaltet sind.&lt;br /&gt;
&lt;br /&gt;
==== Prüfungsteilnehmer und TAN-Generierung ====&lt;br /&gt;
&lt;br /&gt;
Der Zugriff auf Prüfung ist für Studierende nur über TANs möglich. Diese werden von der Detailseite aus über den Button “Teilnehmer hinzufügen” erzeugt. JACK verlangt dann eine Liste von Eingabedaten mit einem Eintrag pro Zeile. Falls JACK mit lazy-Authentifizierung betrieben wird, muss jede Zeile eine Nutzerkennung enthalten, bei remote-Authentifizierung eine Matrikelnummer. Zu jedem dieser Studierenden wird dann eine individuelle TAN erzeugt und gemeinsam mit dem Verwendungsstatus auf der Detailseite angezeigt. TANs können von dort aus entfernt werden. Bei Verwendung von lazy-Authentifizierung werden für unbekannte Benutzerkennungen keine TANs erzeugt. Bei remote-Authentifizierung wird für jede angegebene Matrikelnummer eine TAN erzeugt, ohne ihre Gültigkeit gegenüber dem&lt;br /&gt;
LDAP-Server zu prüfen.&lt;br /&gt;
&lt;br /&gt;
=== Prüfung abnehmen ===&lt;br /&gt;
&lt;br /&gt;
Damit Prüfungen abgenommen werden können, muss das System im Prüfungsmodus laufen&lt;br /&gt;
und mindestens eine Prüfung aktiviert sein. JACK schaltet dann automatisch in den TAN-Anmeldemodus. Studierende, die sich über die Weboberfläche anmelden, erhalten dann ausschließlich die Aufgabenstellung und die Möglichkeit, eine Lösung durch Hochladen mehrere Dateien abzugeben. Die Abgabe kann nur abgeschlossen werden, wenn alle angeforderten Dateien hochgeladen werden. Die Lösungen werden vom Server geprüft und können durch die Administratoren auf der Detailseite der jeweiligen Aufgabe abgerufen werden.&lt;/div&gt;</summary>
		<author><name>Pbabucke</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Datei:Pr%C3%BCfungBearbeiten.png&amp;diff=2506</id>
		<title>Datei:PrüfungBearbeiten.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Datei:Pr%C3%BCfungBearbeiten.png&amp;diff=2506"/>
		<updated>2018-04-17T09:31:24Z</updated>

		<summary type="html">&lt;p&gt;Pbabucke: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pbabucke</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Datei:NeuePruefung.png&amp;diff=2505</id>
		<title>Datei:NeuePruefung.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Datei:NeuePruefung.png&amp;diff=2505"/>
		<updated>2018-04-17T07:39:13Z</updated>

		<summary type="html">&lt;p&gt;Pbabucke: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pbabucke</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-due.de/jack/index.php?title=Erstellen_von_Pr%C3%BCfungen_(Jack2)&amp;diff=2503</id>
		<title>Erstellen von Prüfungen (Jack2)</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-due.de/jack/index.php?title=Erstellen_von_Pr%C3%BCfungen_(Jack2)&amp;diff=2503"/>
		<updated>2018-04-16T09:10:05Z</updated>

		<summary type="html">&lt;p&gt;Pbabucke: Die Seite wurde neu angelegt: „Prüfungen dienen in JACK dem Abfragen des aktuellen Kenntnisstands zu einem Thema.  === Prüfung erstellen === Ist man in JACK angemeldet, kann man im Menü r…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Prüfungen dienen in JACK dem Abfragen des aktuellen Kenntnisstands zu einem Thema.&lt;br /&gt;
&lt;br /&gt;
=== Prüfung erstellen ===&lt;br /&gt;
Ist man in JACK angemeldet, kann man im Menü rechts &#039;&#039;&#039;Prüfungen erstellen&#039;&#039;&#039; auswählen, um eine neue Prüfung einzurichten. Auf der anschließenden Seite &#039;&#039;&#039;Neue Prüfung&#039;&#039;&#039; muss man der Prüfung einen &#039;&#039;&#039;Titel&#039;&#039;&#039; geben. Optional kann man ein &#039;&#039;&#039;Datum&#039;&#039;&#039; mit einer  &#039;&#039;&#039;Zeit&#039;&#039;&#039; festlegen, sowie einstellen ob die Prüfung &#039;&#039;&#039;aktiviert&#039;&#039;&#039; ist und den zu Prüfenden erlaubt ist, nur ein Ergebnis einzureichen.&lt;br /&gt;
&lt;br /&gt;
Durch einen Klick auf den &#039;&#039;&#039;Speicher&#039;&#039;&#039;-Button wird die Prüfung erstellt.&lt;br /&gt;
&lt;br /&gt;
=== Prüfung bearbeiten ===&lt;br /&gt;
&lt;br /&gt;
Unmittelbar nach dem Erstellen einer Prüfung oder später auch durch das Auswählen einer Prüfung in JACK gelangt man auf die Bearbeitungsseite der Prüfung. Hier lassen sich diverse Informationen einsehen bzw. Änderungen an der Prüfung vornehmen.&lt;br /&gt;
&lt;br /&gt;
==== Basiseinstellungen ====&lt;br /&gt;
&lt;br /&gt;
Im Abschnitt “Basiseinstellungen” der Detailansicht können allgemeine Einstellungen zu einer Prüfung vorgenommen werden. Folgende Parameter sind in den Basiseinstellungen vorzufinden:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Titel:&#039;&#039;&#039; Der Titel dient der Repräsentation einer Prüfung innerhalb der Benutzeroberfläche.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Eigentümer/-in:&#039;&#039;&#039; Der Anmeldenamen des Benutzers, der eine Prüfung erstellt hat. Dieser Benutzer ist neben Administratoren automatisch zur uneingeschränkten Bearbeitung der Prüfung berechtigt. Alle anderen Lehrenden müssen zur Bearbeitung explizit autorisiert werden.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Datum/Zeit:&#039;&#039;&#039; Der Veranstaltungszeitpunkt dient rein der Information und beinhaltet keine automatische Zugriffssteuerung.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Prüfung ist aktiviert:&#039;&#039;&#039; Prüfung können einzeln aktiviert und deaktiviert werden.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Prüfung erlaubt nur eine Einreichung:&#039;&#039;&#039; Für jede Prüfung kann explizit festgelegt werden, ob nur eine Lösung oder beliebig viele erlaubt sind.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Minimales korrektes Ergebnis:&#039;&#039;&#039; Festlegung des minimalen Ergebnisses, das zum Bestehen einer Prüfung erreicht werden muss.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Evaluierungsregel:&#039;&#039;&#039; Die Evaluierungsregel legt fest, wie die Gesamtbewertung aus den einzelnen Bewertungen der Prüfungsaufgaben errechnet wird. Eine Evaluierungsregel besteht aus Variablenwerten (#{Variablenname}) und den prozentualen Anteilen dieser am Gesamtergebnis. Eine Variable repräsentiert jeweils einen Teilaufgabe und der Variablenwert das Aufgabenergebnis. Der Variablenname einer Aufgabe kann der Liste der Prüfungsaufgaben entnommen werden. Ein Beispiel für eine Regel: #{c582} * 0.7 + #{c61} * 0.3.&lt;br /&gt;
&lt;br /&gt;
==== Prüfungsaufgabe ====&lt;br /&gt;
&lt;br /&gt;
In einer Prüfung verwendete Aufgaben werden in der Detailansicht unter der Überschrift “Prüfungsaufgaben” angezeigt. Typischerweise ist dies nur eine, auch wenn mehrere möglich sind. Vorhandene Einträge können aus der Liste gelöscht werden. Das Hinzufügen von Aufgaben zu Prüfungen setzt voraus, dass die Aufgaben aktiviert sind. Wird eine verwendete Aufgabe im Laufe der Zeit deaktiviert, so wird die Deaktivierung in der Aufgabenliste kenntlich gemacht. Für die Zuweisung zu einer Prüfung stehen alle aktivierten Aufgaben zur Auswahl, deaktivierte Aufgaben sind in der Auswahlliste nicht vorhanden. Ob eine Aufgabe öffentlich ist oder nicht, ist dagegen irrelevant. Ist der Benutzer zur Einsicht und Bearbeitung&lt;br /&gt;
einer zugewiesenen Aufgabe berechtigt, kann die Detailansicht durch Anklicken des&lt;br /&gt;
Aufgaben-Titels geöffnet werden, andernfalls wird der Aufgaben-Titel als Text ausgegeben. Die Prüfungsverwaltung dient lediglich zur Zugriffssteuerung.&lt;br /&gt;
&lt;br /&gt;
==== Zugriffsrechte ====&lt;br /&gt;
&lt;br /&gt;
Die Einsicht und Bearbeitung von Prüfungen ist nur dem Eigentümer und Administratoren gestattet. Prüfungen, denen ein Lehrender nicht explizit zugewiesen wurde, werden in dessen Prüfungsliste nicht angezeigt. Um einem Lehrenden den Zugriff auf eine Prüfung zu gestatten, kann dieser unter der Überschrift “Lehrende für diese Prüfung autorisieren” zur Einsicht und Bearbeitung explizit berechtigt werden. Es dürfen alle Benutzer autorisiert werden, die in der Benutzerverwaltung als “Lehrende” freigeschaltet sind.&lt;br /&gt;
&lt;br /&gt;
==== Prüfungsteilnehmer und TAN-Generierung ====&lt;br /&gt;
&lt;br /&gt;
Der Zugriff auf Prüfung ist für Studierende nur über TANs möglich. Diese werden von der Detailseite aus über den Button “Teilnehmer hinzufügen” erzeugt. JACK verlangt dann eine Liste von Eingabedaten mit einem Eintrag pro Zeile. Falls JACK mit lazy-Authentifizierung betrieben wird, muss jede Zeile eine Nutzerkennung enthalten, bei remote-Authentifizierung eine Matrikelnummer. Zu jedem dieser Studierenden wird dann eine individuelle TAN erzeugt und gemeinsam mit dem Verwendungsstatus auf der Detailseite angezeigt. TANs können von dort aus entfernt werden. Bei Verwendung von lazy-Authentifizierung werden für unbekannte Benutzerkennungen keine TANs erzeugt. Bei remote-Authentifizierung wird für jede angegebene Matrikelnummer eine TAN erzeugt, ohne ihre Gültigkeit gegenüber dem&lt;br /&gt;
LDAP-Server zu prüfen.&lt;br /&gt;
&lt;br /&gt;
=== Prüfung abnehmen ===&lt;br /&gt;
&lt;br /&gt;
Damit Prüfungen abgenommen werden können, muss das System im Prüfungsmodus laufen&lt;br /&gt;
und mindestens eine Prüfung aktiviert sein. JACK schaltet dann automatisch in den TAN-Anmeldemodus. Studierende, die sich über die Weboberfläche anmelden, erhalten dann ausschließlich die Aufgabenstellung und die Möglichkeit, eine Lösung durch Hochladen mehrere Dateien abzugeben. Die Abgabe kann nur abgeschlossen werden, wenn alle angeforderten Dateien hochgeladen werden. Die Lösungen werden vom Server geprüft und können durch die Administratoren auf der Detailseite der jeweiligen Aufgabe abgerufen werden.&lt;/div&gt;</summary>
		<author><name>Pbabucke</name></author>
	</entry>
</feed>