<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="de">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Ansätze zur automatischen Generierung von Aufgaben zum Modellverstehen am Beispiel von UML-Sequenzdiagrammen</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">René</forename><surname>Ponto</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">paluno</orgName>
								<orgName type="institution" key="instit1">Universität Duisburg-Essen</orgName>
								<orgName type="institution" key="instit2">The Ruhr Institute for Software Technology</orgName>
								<address>
									<addrLine>Gerlingstraße 16</addrLine>
									<postCode>45127</postCode>
									<settlement>Essen</settlement>
									<country key="DE">Deutschland</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Tobias</forename><surname>Schüler</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">paluno</orgName>
								<orgName type="institution" key="instit1">Universität Duisburg-Essen</orgName>
								<orgName type="institution" key="instit2">The Ruhr Institute for Software Technology</orgName>
								<address>
									<addrLine>Gerlingstraße 16</addrLine>
									<postCode>45127</postCode>
									<settlement>Essen</settlement>
									<country key="DE">Deutschland</country>
								</address>
							</affiliation>
						</author>
						<author role="corresp">
							<persName><forename type="first">Michael</forename><surname>Striewe</surname></persName>
							<email>michael.striewe@paluno.uni-due.de</email>
							<affiliation key="aff0">
								<orgName type="department">paluno</orgName>
								<orgName type="institution" key="instit1">Universität Duisburg-Essen</orgName>
								<orgName type="institution" key="instit2">The Ruhr Institute for Software Technology</orgName>
								<address>
									<addrLine>Gerlingstraße 16</addrLine>
									<postCode>45127</postCode>
									<settlement>Essen</settlement>
									<country key="DE">Deutschland</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Ansätze zur automatischen Generierung von Aufgaben zum Modellverstehen am Beispiel von UML-Sequenzdiagrammen</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">13AEAA9AD3A1385ACCA1F1AB855CD068</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T10:28+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Modellierung</term>
					<term>Modellverstehen</term>
					<term>Aufgabengenerierung</term>
					<term>Übungsaufgaben</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Um das Verstehen von Diagrammen und Modellen trainieren zu können, ist eine hinreichend große Menge verschiedener Aufgaben notwendig. Die manuelle Erstellung von großen Mengen ähnlicher Aufgaben ist jedoch zeitaufwändig und wenig attraktiv. Dieser Beitrag stellt als Alternative zwei prototypisch implementierte, erweiterbare Generatoren vor, mit denen UML-Diagramme und darauf basierende Aufgaben auf Basis einiger weniger, manueller Vorgaben automatisch erstellt werden können. Die beiden Prototypen zeigen am Beispiel von UML-Sequenzdiagrammen, dass die gewählten Konzepte technisch umsetzbar und in einer hinreichenden Breite einsetzbar sind.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="de">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Einleitung</head><p>In der Hochschullehre der Informatik spielt die Modellierung in vielfältiger Weise eine zentrale Rolle im Curriculum <ref type="bibr" target="#b11">[Gl08]</ref>. Sowohl auf der Ebene abstrakter Modellkonzepte als auch auf der Ebener konkreter Modellierungssprachen werden in Einführungsveranstaltungen häufig Kompetenzen vermittelt, die wichtige Voraussetzungen für die erfolgreiche Teilnahme an fortgeschrittenen Lehrveranstaltungen sind <ref type="bibr" target="#b4">[Co03]</ref> und die auch im nicht-akademischen Berufsleben von hoher Relevanz sind <ref type="bibr" target="#b5">[Da06]</ref>.</p><p>Die Lehre zur Modellierung in einem konkreten Anwendungsbereich muss sich dabei mit mindestens vier disjunkten Aspekten auseinandersetzen: (1) Das konzeptionelle Verständnis für das Subjekt der Modellierung; (2) die Kenntnis der Syntax und Semantik einer konkreten Modellierungssprache, mit der Diagramme erstellt werden können, die das Modell angemessen repräsentieren; (3) die praktische Erstellung eines syntaktisch korrekten Diagramms, das eine geeignete Sicht auf das Modell bietet und dessen Semantik das Subjekt der Modellierung korrekt wiedergibt und (4) die korrekte Interpretation eines gegebenen Diagramms, um Aussagen über das zugrundeliegende Modell und letztlich das modellierte Subjekt zu treffen. Insbesondere der dritte und der vierte Aspekt stehen in unmittelbarer Beziehung zu gängigen Kompetenzmodellen zur informatischen Modellierung und zum Systemverstehen (vgl. <ref type="bibr" target="#b20">[Li13]</ref>). Bei genauerer Betrachtung der Aufgaben zeigt sich, dass die meisten von ihnen mutmaßlich nur eine kurze Bearbeitungszeit benötigen. Lediglich die allerletzte Aufgabe, in der Programmcode erstellt werden soll, dürfte eine deutlich längere Bearbeitungszeit erfordern. Allen Aufgaben ist zudem gemein, dass sie sich kaum für eine wiederholte Bearbeitung eignen, um den Lerneffekt zu steigern und gelernte Kompetenzen zu vertiefen. Sie unterscheiden sich damit deutlich von Modellierungsaufgaben, bei denen eine wiederholte  </p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>78</head><label></label><figDesc>René Ponto, Tobias Schüler, Michael Striewe Betrachtet man exemplarisch die Modellierung eines Algorithmus', der imperativ und objekt-orientiert implementiert werden soll, lassen sich die vier Aspekte wie folgt illustrieren: (1) Es muss das konzeptionelle Verständnis dafür geschaffen werden, dass Algorithmen in imperativen Programmiersprachen schrittweise entsprechend der Reihenfolge der Anweisungen im Programmcode ausgeführt werden, wobei Schleifen zu Wiederholungen und Fallunterscheidungen zu Auslassungen führen können. Ferner muss das konzeptionelle Verständnis dafür geschaffen werden, dass Objekte über Methodenaufrufe und deren Rückgaben miteinander kommunizieren und dass dadurch ein Aufruf-Stack entstehen kann, bei dem das oberste Element die Kontrolle hat und entweder weitere Aufrufe tätigen oder durch eine Rückgabe die Kontrolle wieder abgeben kann. (2) Man kann die Syntax und Semantik von UML-Sequenzdiagrammen nutzen, um den Ablauf eines Algortihmus auf der Ebene der Methodenaufrufe diagrammatisch zu beschreiben. Dazu müssen neben den Grundkonzepten (Objekte, Lebenslinie, synchrone und asynchrone Nachrichten) auch Fragmente bekannt sein, um Schleifen und Fallunterscheidungen zu modellieren. (3) Eine praktische Modellierungsaufgabe kann auf Basis dieser Kenntnisse einen Algorithmus in Form des Programmcodes oder einer hinreichend präzisen, textuellen Beschreibung vorgeben und die Erstellung eines UML-Sequenzdiagramms (ggf. unter Berücksichtigung bestimmter Aufrufparameter für den Algorithmus) erfordern. (4) Eine Aufgabe zum Modellverstehen kann ein UML-Sequenzdiagramm vorgeben und inhaltliche Fragen zum Ablauf des Algorithmus' oder zur mutmaßlichen Struktur des objekt-orientierten Programms stellen. Für alle vier Aspekte können geeignete Übungsaufgaben gestellt werden, die zu einem gewissen Grad auch automatisiert generiert oder bewertet werden können. Insbesondere der dritte Aspekt ist mit verschiedenen Ansätzen zur Generierung (z. B. [Sh16]) und insbesondere zur Bewertung (z. B. [ASI07, CLP18, Le06, Sc12, SG14, TSW08]) Gegenstand umfangreicher Forschungen. Die automatische Bewertung in den anderen drei Aspekten kann zudem zumindest teilweise mit Standardverfahren wie Multiple-Choice oder Lückentexten durchgeführt werden. Im Fokus des vorliegenden Beitrags steht daher die automatisierte Generierung von Aufgaben für den vierten Aspekt, also das Modellverstehen. Auch dazu gibt es bereits Ansätze, beispielsweise für Aufgaben zum Matching von Klassen-und Objektdiagrammen [KSV19]. Es können auch weitere Ansätze zur automatischen Erstellung von Lösungen für Modellierungsaufgaben [MB08] für diese Aufgabe genutzt werden. Dass das Modellverstehen kein einfacher Prozess ist und zahlreichen Einflussfaktoren unterliegt, wird durch zahlreiche Forschungen belegt ([HFL12, Fi17]) und untermauert damit die These, dass eine große Menge von Übungsaufgaben in diesem Bereich hilfreich sein kann. Im vorliegenden Beitrag wird der Aspekt der Aufgabengenerierung wie folgt näher beleuchtet: Abschnitt 2 differenziert die möglichen Aufgaben zum Modellverstehen genauer hinsichtlich ihrer Komplexität und Anforderungen an die automatische Aufgabengenerierung und Bewertung. Abschnitt 3 stellt ein Konzept zur template-basierten, automatischen Generierung von Aufgaben vor, welches bisher als Prototyp realisiert wurde. Abschnitt 4 geht auf die automatische Generierung von Diagrammen ein, die als Grundlage für Fragen zum Modellverstehen dienen können. Alle drei Abschnitte verwenden wie die Einleitung UML-Sequenzdiagramme als durchgehendes Beispiel, sind im Kern ihrer Betrachtung aber nicht auf diesen Diagrammtyp beschränkt. Abschnitt 5 zieht ein Fazit und schließt den Beitrag mit einem Ausblick auf weiteren Forschungsbedarf. 2 Aufgaben zum Modellverstehen Der Prozess des Modellverstehens kann auf mehrere, konsekutive Schritte heruntergebrochen werden. Zunächst einmal müssen relevante syntaktische Elemente in einem Diagramm überhaupt erkannt werden. Man kann annehmen, dass dieser Schritt vor allem eine Zeitfrage ist, die wesentlich von der Größe und Übersichtlichkeit des betrachteten Diagramms sowie der Erfahrung der betrachtenden Person abhängt. So kann es bei Anfängern schon zu Schwierigkeiten in diesem Schritt kommen, wenn beispielsweise überprüft werden soll, ob in einem UML-Sequenzdiagramm zwei Objekte A und B enthalten sind, die mindestens eine Nachricht austauschen. In einem zweiten Schritt können gefundene Elemente dann im Sinne der Diagrammsemantik interpretiert werden. Damit kann beispielsweise die Frage geklärt werden, welches Objekt in einem UML-Sequenzdiagramm den zeitlich gesehen letzten Methodenaufruf tätigt oder welche Nachricht innerhalb einer Schleife verschickt wird. Schließlich können in einem letzten Schritt diese Erkenntnisse auf das Modell und von dort auf das eigentliche Subjekt übertragen werden. Hier kann dann beispielsweise die Frage beantwortet werden, ob eine bestimmte Methode einer bestimmten Klasse rekursiv arbeitet oder ob basierend auf den Diagramminhalten Klasse A ausschließlich von Klasse B genutzt wird. Praktische Beispiele für entsprechende Übungsaufgaben aus der Hochschullehre sind im Internet verfügbar und über Suchmaschinen leicht auffindbar (z. B. [Mo, Ci] für Aufgaben zum Verständnis von UML-Sequenzdiagrammen). Tabelle 1 zeigt einige Beispiele für mögliche Aufgaben zu UML-Sequenzdiagrammen und kategorisiert diese nach dem Fragetyp. Tiefergehende Fragen zum Modellverständnis sind insbesondere durch die Kombination verschiedener Diagrammtypen möglich, indem beispielsweise fehlende Informationen in einem Diagramm durch Informationen aus dem anderen Diagramm vervollständigt werden sollen. Im vorliegenden Beitrag werden diese Fragentypen jedoch nicht weiter vertieft und es werden lediglich Fragen behandelt, die ausschließlich anhand von Sequenzdiagrammen bearbeitet werden können. Die betrachteten Konzepte sind dabei jedoch nicht auf Sequenzdiagramme beschränkt, sondern können auch auf andere Diagrammtypen übertragen werden.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>4</head><label></label><figDesc>Abb. 1: Benutzeroberfläche des Diagrammgenerators mit einigen exemplarisch ausgewählten Einstellungen.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0"><head></head><label></label><figDesc></figDesc><graphic coords="8,154.77,179.88,285.74,302.40" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head></head><label></label><figDesc>schon alleine deshalb interessant sein kann, weil es mehrere Wege geben kann, denselben Sachverhalt in einem Diagramm auszudrücken.Wenn eine wiederholte Bearbeitung derselben Aufgabe nicht sinnvoll ist, aber gleichzeitig trotzdem eine große Menge von Übungsmöglichkeiten bereitgestellt werden soll, die nicht in wenigen Minuten zu bearbeiten ist, dann ist dies nur über eine hinreichend große Menge von unterschiedlichen Aufgaben möglich. Die manuelle Erstellung solcher Aufgaben ist jedoch mühsam und bei der Vervielfältigung und Variation von Aufgaben in manueller "Massenproduktion" kann es leicht zu Flüchtigkeitsfehlern kommen. Es bietet sich daher an, Generierung von Aufgaben zum Modellverstehen 81 bei der Erstellung von Aufgaben auf Methoden der automatischen Aufgabengenerierung zurückzugreifen, um schnell eine große Menge gleichartiger Aufgaben zu erzeugen. Ein gängiger Ansatz zur automatischen Generierung von Aufgaben basiert auf Aufgabentemplates [Gi13]. Diese bestehen aus einem Aufgabenstamm, der den Aufgabentext sowie Platzhalter enthält. Für jeden dieser Platzhalter gibt es eine Menge von konkreten Werten, die für ihn in den Aufgabentext eingesetzt werden können. Die Platzhalter können dabei voneinander unabhängig oder abhängig sein. Bei unabhängigen Platzhaltern sind beliebige Kombinationen der konkreten Werte möglich. Bei abhängigen Platzhaltern gibt es dagegen nur eine Menge von Tupeln, die gültige Belegungen angeben und eine Teilmenge aller möglichen Kombinationen darstellen. Das Verfahren wurde ursprünglich nur für Multiple-Choice-Aufgaben entwickelt, aber es spricht aus technischer Sicht nichts dagegen, es auch für andere Aufgabentypen einzusetzen. Die ersten beiden Schritte sind deterministisch. Sie beginnen mit der manuellen Eingabe eines Diagramms und es schließt sich die manuelle Inspektion der generierten Werte an. Es bietet sich daher an, diesen Schritt für jedes eingegebene Diagramm nur einmalig und in einem separaten Editor-Werkzeug durchzuführen. Für den vierten Schritt kann die konkrete Erzeugung dann ebenfalls in diesem Werkzeug ablaufen, das dann eine größere Menge von Instanzen exportieren muss. Alternativ exportiert es lediglich eine Aufgabenbeschreibung zum Import in ein geeignetes Übungssystem, welches die Erzeugung von Instanzen auf Basis der ausgewählten Tupel dann selbständig durchführt. Eine prototypische Umsetzung dieses Konzepts wurde im Rahmen eines studentischen Projektes mit einem Java-basierten Editor und einem Export für das E-Assessment-System JACK [St16] realisiert. Der Editor liest UML-Modelle in Form von XMI-Dateien ein2 und analysiert anschließend die Anwendbarkeit mehrerer Templates auf das jeweilige Diagramm. Der Editor verfügt derzeit über insgesamt 34 Templates zu Aktivitätsdiagrammen,</figDesc><table><row><cell cols="2">Fragetyp</cell><cell>Aufgabe</cell></row><row><cell></cell><cell></cell><cell>Kategorie "Syntax"</cell></row><row><cell cols="2">Ja/Nein</cell><cell>Gibt es im Diagramm eine Nachricht von Objekt A zu Objekt B mit dem</cell></row><row><cell></cell><cell></cell><cell>Inhalt C?</cell></row><row><cell cols="3">Multiple Choice 3 Template-basierte Generierung von Aufgaben Welche der folgenden Elemente kommen im Diagramm vor?</cell></row><row><cell cols="2">Single/Multiple</cell><cell>Welche der im Diagramm markierten Stellen markiert die Aktivierung</cell></row><row><cell cols="2">Choice</cell><cell>eines Prozesses?</cell></row><row><cell cols="2">Single Choice</cell><cell>Wie nennt man das im Diagramm markierte Element?</cell></row><row><cell cols="2">Single/Multiple</cell><cell>Welche der im Diagramm markierten Nachrichten ist synchron?</cell></row><row><cell cols="2">Choice</cell></row><row><cell cols="2">Freitext</cell><cell>Geben Sie den Inhalt einer synchronen Nachricht aus dem Diagramm an.</cell></row><row><cell cols="2">Freitext</cell><cell>Gibt es im Diagramm einen Fehler oder ein fehlendes Element? Falls ja,</cell></row><row><cell></cell><cell></cell><cell>benennen Sie den Fehler.</cell></row><row><cell></cell><cell></cell><cell>Kategorie "Diagramm"</cell></row><row><cell cols="2">Multiple Choice</cell><cell>Welche Objekte kommunizieren miteinander, indem sie mindestens eine</cell></row><row><cell></cell><cell></cell><cell>Nachricht an den jeweiligen Partner senden oder von ihm empfangen?</cell></row><row><cell cols="2">Freitext oder Single</cell><cell>Welches Objekt ist der Empfänger/Sender der Nachricht X?</cell></row><row><cell cols="2">Choice</cell></row><row><cell cols="2">Ja/Nein</cell><cell>Ist die Nachricht X die letzte in der zeitlichen Abfolge?</cell></row><row><cell cols="2">Single Choice</cell><cell>An welcher Stelle in der zeitlichen Abfolge steht die Nachricht X?</cell></row><row><cell cols="2">Freitext</cell><cell>Wie viele Nachrichten werden maximal/mindestens innerhalb des XY-</cell></row><row><cell></cell><cell></cell><cell>Fragments verschickt?</cell></row><row><cell></cell><cell></cell><cell>Kategorie "Modell"</cell></row><row><cell cols="2">Single/Multiple</cell><cell>Welches der im Folgenden angegebenen Klassendiagramme passt zum</cell></row><row><cell cols="2">Choice</cell><cell>Sequenzdiagramm?</cell></row><row><cell cols="2">Single Choice</cell><cell>In welchem der beiden folgenden Diagramme ist der Kontrollfluss zentraler</cell></row><row><cell></cell><cell></cell><cell>organisiert?</cell></row><row><cell cols="2">Freitext</cell><cell>Schreiben Sie ein Stück Programmcode, welches das Programmverhalten</cell></row><row><cell></cell><cell></cell><cell>realisiert, das im Diagramm gegeben ist.</cell></row><row><cell>2.</cell><cell cols="2">Sind alle Voraussetzungen erfüllt, kann mit der Sammlung möglicher Werte begonnen</cell></row><row><cell></cell><cell cols="2">werden. Im gewählten Beispiel müssen dazu alle benannten Objekte und alle Nach-</cell></row><row><cell></cell><cell cols="2">richten durchlaufen werden. Für jede Kombination muss dann geprüft werden, ob die</cell></row><row><cell></cell><cell cols="2">Frage mit Ja oder Nein zu beantworten ist. Gegebenenfalls können als zusätzliche</cell></row><row><cell></cell><cell cols="2">Distraktoren in diesem Schritt auch weitere Werte eingefügt werden, die nicht dem</cell></row><row><cell></cell><cell cols="2">Diagramm entnommen sind.</cell></row><row><cell>3.</cell><cell cols="2">Nach diesen beiden Schritten kann die entstandene Aufgabe bei Bedarf manuell auf</cell></row><row><cell></cell><cell cols="2">ihre Sinnhaftigkeit überprüft werden, indem alle erzeugten Belegungen geprüft und</cell></row><row><cell></cell><cell cols="2">einzelne Tupel ggf. manuell ausgeschlossen werden.</cell></row><row><cell>4.</cell><cell cols="2">Anschließend werden alle verbleibenden Tupel dazu verwendet, um konkrete Instanzen</cell></row><row><cell></cell><cell cols="2">der Aufgabe zu erzeugen.</cell></row></table><note>Tab. 1: Beispielaufgaben zum Modellverstehen im Kontext von UML-Sequenzdiagrammen.BearbeitungFür die Generierung von Fragen zum Modellverständnis können die Platzhalter in einem Generator allerdings nicht mit festen Werten hinterlegt werden, sondern es müssen Abfragen formuliert werden, mit denen die konkreten Werte aus einem gegebenen Diagramm herausgelesen werden können. Das Vorgehen kann anhand der ersten Frage aus Tabelle 1 wie folgt beschrieben werden, wobei die Frage bereits die Platzhalter A, B und C enthält:1.Zunächst muss überprüft werden, ob das verwendete Diagramm überhaupt die notwendigen Eigenschaften erfüllt, um die gewünschte Frage zu stellen. Im gewählten Beispiel ist es dazu notwendig zu überprüfen, ob das Diagramm mindestens zwei benannte Objekte enthält, zwischen denen mindestens eine benannte Nachricht verschickt wird. Die meisten Sequenzdiagramm dürften diese Eigenschaft erfüllen, aber es sind auch Beispiele denkbar, in denen es nur anonyme Objekte gibt, die möglicherweise sogar alle derselben Klasse angehören. Klassendiagrammen, Sequenzdiagrammen und Zustandsdiagrammen. Diese decken derzeit vor allem den Bereich "Syntax" und "Diagramm" ab und sollen in Zukunft noch weiter im Bereich "Modell" ausgebaut werden.Eine erste Erprobung der automatisch erzeugten Aufgaben erfolgt im derzeit laufenden Wintersemester 2019/2020. Dazu wurden zu je einem Diagramm jeden Typs zwei bis fünf Aufgaben automatisch erzeugt, so dass insgesamt 15 der 34 verfügbaren Templates zum Einsatz kommen. Die Aufgaben wurden den Studierenden ergänzend zum regulären Übungsbetrieb einer Lehrveranstaltung (Bachelor, 3. Fachsemester) zur Verfügung gestellt, in der die vier genannten Diagrammtypen zum Lehrstoff gehören. Die Studierenden wurden dabei gebeten, einen Erhebungsbogen auszufüllen, in dem sie die Aufgaben hinsichtlich verschiedener Aspekte auf Likert-Skalen bewerten sowie in einem Freitextfeld Kommentare angeben können.</note></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_0">Um das Problem der automatische Erzeugung von Diagrammlayouts auszuklammern, muss zusätzliche eine Bilddatei mit dem gewünschten Diagramm eingelesen werden. Diese wird jedoch nicht weiter analysiert, sondern lediglich für die Anzeige in der Aufgabe verwendet.</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Assessment System For UML Class Diagram Using Notations Extraction</title>
		<author>
			<persName><forename type="first">Noraida</forename><surname>Ali</surname></persName>
		</author>
		<author>
			<persName><surname>Haji; Shukur</surname></persName>
		</author>
		<author>
			<persName><forename type="first">;</forename><surname>Zarina</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Sufian</forename><surname>Idris</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IJCSNS International Journal of Computer Science and Network Security</title>
		<imprint>
			<biblScope unit="volume">7</biblScope>
			<biblScope unit="issue">8</biblScope>
			<biblScope unit="page" from="181" to="187" />
			<date type="published" when="2007-08">August 2007. 2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<author>
			<persName><forename type="first">Paolo</forename><surname>Ciancarini</surname></persName>
		</author>
		<ptr target="http://www.cs.unibo.it/cianca/wwwpages/ids/esempi/uml-b.pdf" />
		<title level="m">Exercises on basic UML behaviors</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<title level="m" type="main">Improving Diagram Assessment in Mooshak</title>
		<author>
			<persName><forename type="first">Helder</forename><forename type="middle">;</forename><surname>Correia</surname></persName>
		</author>
		<author>
			<persName><forename type="first">José</forename><surname>Leal</surname></persName>
		</author>
		<author>
			<persName><forename type="first">José</forename><surname>Paulo; Paiva</surname></persName>
		</author>
		<author>
			<persName><surname>Carlos</surname></persName>
		</author>
		<editor>Ras, Eric</editor>
		<editor>Roldán</editor>
		<imprint>
			<pubPlace>, Guerrero</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<title level="m">Technology Enhanced Assessment (TEA</title>
				<editor>
			<persName><forename type="first">Ana</forename><surname>Elena</surname></persName>
		</editor>
		<meeting><address><addrLine>Cham, S.</addrLine></address></meeting>
		<imprint>
			<publisher>Springer International Publishing</publisher>
			<date type="published" when="2017">2017. 2018</date>
			<biblScope unit="page" from="69" to="82" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Modelling: a neglected feature in the software engineering curriculum</title>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">J</forename><surname>Cowling</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings 16th Conference on Software Engineering Education and Training</title>
				<meeting>16th Conference on Software Engineering Education and Training<address><addrLine>CSEE&amp;T</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2003-03">2003. 2003. March 2003</date>
			<biblScope unit="page" from="206" to="215" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">Islay</forename><surname>Davies</surname></persName>
		</author>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">Peter</forename><surname>Green</surname></persName>
		</author>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">How do practitioners use conceptual modeling in practice?</title>
		<author>
			<persName><forename type="first">Michael</forename><forename type="middle">;</forename><surname>Rosemann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Marta</forename><forename type="middle">;</forename><surname>Indulska</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Stan</forename><surname>Gallo</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Data &amp; Knowledge Engineering</title>
		<imprint>
			<biblScope unit="volume">58</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="358" to="380" />
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
	<note>Including the special issue : ER 2004</note>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Comprehension of Procedural Visual Business Process Models</title>
		<author>
			<persName><forename type="first">Kathrin</forename><surname>Figl</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Business &amp; Information Systems Engineering</title>
		<imprint>
			<biblScope unit="volume">59</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="41" to="67" />
			<date type="published" when="2017-02">Feb 2017</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<monogr>
		<ptr target="https://repository.genmymodel.com/" />
		<title level="m">GenMyModel Repository</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<monogr>
		<title level="m" type="main">Automatic Item Generation</title>
		<author>
			<persName><forename type="first">Mark</forename><forename type="middle">J</forename><surname>Gierl</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2013">2013</date>
			<publisher>Routledge</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Modellierung in der Lehre an Hochschulen: Thesen und Erfahrungen</title>
		<author>
			<persName><forename type="first">Martin</forename><surname>Glinz</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Informatik-Spektrum</title>
		<imprint>
			<biblScope unit="volume">31</biblScope>
			<biblScope unit="issue">5</biblScope>
			<biblScope unit="page" from="425" to="434" />
			<date type="published" when="2008-10">Oct 2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">Constantin</forename><forename type="middle">;</forename><surname>Houy</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Peter</forename><surname>Fettke</surname></persName>
		</author>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<monogr>
		<title level="m" type="main">Understanding Understandability of Conceptual Models -What Are We Actually Talking about?</title>
		<author>
			<persName><forename type="first">Peter</forename><surname>Loos</surname></persName>
		</author>
		<editor>Atzeni, Paolo</editor>
		<editor>Cheung, David</editor>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<monogr>
		<title level="m" type="main">Conceptual Modeling</title>
		<author>
			<persName><surname>Ram</surname></persName>
		</author>
		<author>
			<persName><surname>Sudha</surname></persName>
		</author>
		<author>
			<persName><surname>Hrsg</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2012">2012</date>
			<publisher>Springer</publisher>
			<biblScope unit="page" from="64" to="77" />
			<pubPlace>Berlin Heidelberg; Berlin, Heidelberg, S.</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">Online Img2UML Repository: An Online Repository for UML Models</title>
		<author>
			<persName><forename type="first">Bilal</forename><forename type="middle">;</forename><surname>Karasneh</surname></persName>
		</author>
		<author>
			<persName><surname>Chaudron</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">V</forename><surname>Michel</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">EESSMOD@MoDELS</title>
				<imprint>
			<date type="published" when="2013">2013</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">Violet</forename><surname>Kafa</surname></persName>
		</author>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">Marcellus</forename><surname>Siegburg</surname></persName>
		</author>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<analytic>
		<title level="a" type="main">Exercise Task Generation for UML Class/Object Diagrams, via Alloy Model Instance Finding</title>
		<author>
			<persName><forename type="first">Janis</forename><surname>Voigtlander</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">SACLA 2019</title>
				<imprint>
			<publisher>CCIS</publisher>
			<date type="published" when="2019">2019</date>
			<biblScope unit="volume">1136</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<analytic>
		<title level="a" type="main">A Constraint-based Assessment Approach for Free-Form Design of Class Diagrams using UML</title>
		<author>
			<persName><forename type="first">Nguyen-Thinh</forename><surname>Le</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the Workshop on Intelligent Tutoring Systems for Ill-Defined Domains. S. 92</title>
				<meeting>the Workshop on Intelligent Tutoring Systems for Ill-Defined Domains. S. 92</meeting>
		<imprint>
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b20">
	<analytic>
		<title level="a" type="main">Competence model for informatics modelling and system comprehension</title>
		<author>
			<persName><forename type="first">B</forename><surname>Linck</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Ohrndorf</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Schubert</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Stechert</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Magenheim</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Nelles</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Neugebauer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Schaper</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">IEEE Global Engineering Education Conference (EDUCON). S</title>
				<imprint>
			<date type="published" when="2013-03">2013. March 2013</date>
			<biblScope unit="page" from="85" to="93" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b21">
	<analytic>
		<title level="a" type="main">Generating and Evaluating Object-Oriented Designs for Instructors and Novice Students</title>
		<author>
			<persName><forename type="first">Sally</forename><forename type="middle">;</forename><surname>Moritz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Glenn</forename><surname>Blank</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Intelligent Tutoring Systems for Ill-Defined Domains: Assessment and Feedback in Ill-Defined Domains. S</title>
				<imprint>
			<date type="published" when="2008">2008</date>
			<biblScope unit="volume">35</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b22">
	<monogr>
		<ptr target="http://sce2.umkc.edu/bit/burrise/pl/modeling/qanda.html" />
		<title level="m">Modelling exercises</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b23">
	<analytic>
		<title level="a" type="main">Teaching UML Skills to Novice Programmers Using a Sample Solution Based Intelligent Tutoring System</title>
		<author>
			<persName><forename type="first">Joachim</forename><forename type="middle">;</forename><surname>Schramm</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Sven</forename><forename type="middle">;</forename><surname>Strickroth</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Nguyen-Thinh;</forename><surname>Le</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Niels</forename><surname>Pinkwart</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 25 th International Conference of the Florida Artificial Intelligence Research Society (FLAIRS). AAAI</title>
				<editor>
			<persName><forename type="first">G</forename><forename type="middle">M</forename><surname>Youngblood</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">P</forename><surname>Mccarthy</surname></persName>
		</editor>
		<meeting>the 25 th International Conference of the Florida Artificial Intelligence Research Society (FLAIRS). AAAI<address><addrLine>Marco Island, FL, USA</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2012">2012</date>
			<biblScope unit="page" from="472" to="477" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b24">
	<analytic>
		<title level="a" type="main">Automated Assessment of UML Activity Diagrams</title>
		<author>
			<persName><forename type="first">Michael</forename><forename type="middle">;</forename><surname>Striewe</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Michael</forename><surname>Goedicke</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 2014 conference on Innovation &amp; technology in computer science education (ITiCSE 2014)</title>
				<meeting>the 2014 conference on Innovation &amp; technology in computer science education (ITiCSE 2014)</meeting>
		<imprint>
			<date type="published" when="2014">2014</date>
			<biblScope unit="volume">336</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b25">
	<analytic>
		<title level="a" type="main">Generating DFA Construction Problems Automatically</title>
		<author>
			<persName><forename type="first">Varun</forename><forename type="middle">;</forename><surname>Shenoy</surname></persName>
		</author>
		<author>
			<persName><surname>Aparanji</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Ullas; Sripradha</surname></persName>
		</author>
		<author>
			<persName><surname>Kumar</surname></persName>
		</author>
		<author>
			<persName><surname>Viraj</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">International Conference on Learning and Teaching in Computing and Engineering (LaTICE). S</title>
				<imprint>
			<date type="published" when="2016">2016</date>
			<biblScope unit="page" from="32" to="37" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b26">
	<analytic>
		<title level="a" type="main">An architecture for modular grading and feedback generation for complex exercises</title>
		<author>
			<persName><forename type="first">Michael</forename><surname>Striewe</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Science of Computer Programming</title>
		<imprint>
			<biblScope unit="volume">129</biblScope>
			<biblScope unit="page" from="35" to="47" />
			<date type="published" when="2016">2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b27">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">Pete</forename><surname>Thomas</surname></persName>
		</author>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b28">
	<analytic>
		<title level="a" type="main">Automatically assessing graph-based diagrams</title>
		<author>
			<persName><forename type="first">Neil</forename><forename type="middle">;</forename><surname>Smith</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Kevin</forename><surname>Waugh</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Learning, Media and Technology</title>
		<imprint>
			<biblScope unit="volume">33</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="249" to="267" />
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
