Joint Proceedings of Modellierung 2020 Short, Workshop and Tools & Demo Papers Workshop zur Modellierung in der Hochschullehre 77 Ansätze zur automatischen Generierung von Aufgaben zum Modellverstehen am Beispiel von UML-Sequenzdiagrammen René Ponto, Tobias Schüler, Michael Striewe1 Abstract: 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. Keywords: Modellierung; Modellverstehen; Aufgabengenerierung; Übungsaufgaben 1 Einleitung In der Hochschullehre der Informatik spielt die Modellierung in vielfältiger Weise eine zen- trale Rolle im Curriculum [Gl08]. 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 [Co03] und die auch im nicht-akademischen Berufsleben von hoher Relevanz sind [Da06]. 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. [Li13]). 1 Universität Duisburg-Essen, paluno - The Ruhr Institute for Software Technology, Gerlingstraße 16, 45127 Essen, Deutschland, michael.striewe@paluno.uni-due.de Copyright © 2020 for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0). 78 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 illustrie- ren: (1) Es muss das konzeptionelle Verständnis dafür geschaffen werden, dass Algorithmen in imperativen Programmiersprachen schrittweise entsprechend der Reihenfolge der An- weisungen 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ück- gaben 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 Grundkon- zepten (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 Auf- rufparameter 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 be- leuchtet: Abschnitt 2 differenziert die möglichen Aufgaben zum Modellverstehen genauer hinsichtlich ihrer Komplexität und Anforderungen an die automatische Aufgabengenerie- rung 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 Generierung von Aufgaben zum Modellverstehen 79 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ög- liche 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 Se- quenzdiagramme beschränkt, sondern können auch auf andere Diagrammtypen übertragen werden. 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 Pro- grammcode 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 un- terscheiden sich damit deutlich von Modellierungsaufgaben, bei denen eine wiederholte 80 René Ponto, Tobias Schüler, Michael Striewe Fragetyp Aufgabe Kategorie „Syntax“ Ja/Nein Gibt es im Diagramm eine Nachricht von Objekt A zu Objekt B mit dem Inhalt C? Multiple Choice Welche der folgenden Elemente kommen im Diagramm vor? Single/Multiple Welche der im Diagramm markierten Stellen markiert die Aktivierung Choice eines Prozesses? Single Choice Wie nennt man das im Diagramm markierte Element? Single/Multiple Welche der im Diagramm markierten Nachrichten ist synchron? Choice Freitext Geben Sie den Inhalt einer synchronen Nachricht aus dem Diagramm an. Freitext Gibt es im Diagramm einen Fehler oder ein fehlendes Element? Falls ja, benennen Sie den Fehler. Kategorie „Diagramm“ Multiple Choice Welche Objekte kommunizieren miteinander, indem sie mindestens eine Nachricht an den jeweiligen Partner senden oder von ihm empfangen? Freitext oder Single Welches Objekt ist der Empfänger/Sender der Nachricht X? Choice Ja/Nein Ist die Nachricht X die letzte in der zeitlichen Abfolge? Single Choice An welcher Stelle in der zeitlichen Abfolge steht die Nachricht X? Freitext Wie viele Nachrichten werden maximal/mindestens innerhalb des XY- Fragments verschickt? Kategorie „Modell“ Single/Multiple Welches der im Folgenden angegebenen Klassendiagramme passt zum Choice Sequenzdiagramm? Single Choice In welchem der beiden folgenden Diagramme ist der Kontrollfluss zentraler organisiert? Freitext Schreiben Sie ein Stück Programmcode, welches das Programmverhalten realisiert, das im Diagramm gegeben ist. Tab. 1: Beispielaufgaben zum Modellverstehen im Kontext von UML-Sequenzdiagrammen. Bearbeitung 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. 3 Template-basierte Generierung von Aufgaben Ein gängiger Ansatz zur automatischen Generierung von Aufgaben basiert auf Aufga- bentemplates [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. Fü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. 2. Sind alle Voraussetzungen erfüllt, kann mit der Sammlung möglicher Werte begonnen werden. Im gewählten Beispiel müssen dazu alle benannten Objekte und alle Nach- richten durchlaufen werden. Für jede Kombination muss dann geprüft werden, ob die Frage mit Ja oder Nein zu beantworten ist. Gegebenenfalls können als zusätzliche Distraktoren in diesem Schritt auch weitere Werte eingefügt werden, die nicht dem Diagramm entnommen sind. 3. Nach diesen beiden Schritten kann die entstandene Aufgabe bei Bedarf manuell auf ihre Sinnhaftigkeit überprüft werden, indem alle erzeugten Belegungen geprüft und einzelne Tupel ggf. manuell ausgeschlossen werden. 4. Anschließend werden alle verbleibenden Tupel dazu verwendet, um konkrete Instanzen der Aufgabe zu erzeugen. 82 René Ponto, Tobias Schüler, Michael Striewe 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, 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. 4 Parametrisierte Generierung von Diagrammen Die automatische Generierung von Aufgaben auf Basis eines gegebenen Diagramms reduziert den Aufwand für die Erstellung von Aufgaben erheblich, aber trotzdem nur teilweise. Da es nicht immer sinnvoll ist, ein möglichst großes, vielfältiges Diagramm in einer Aufgabe zu verwenden, ist es insbesondere notwendig, viele kleine Diagramme zur Verfügung zu haben. Diese sollten in ihrer Gesamtheit alle relevanten Kombinationen von Diagrammelementen enthalten, so dass alle gewünschten Fragen auch tatsächlich gestellt werden können. Der Zugriff auf Online-Repositorien mit realen Diagrammen (z. B. [KC13, Ge]) ist dabei nicht immer zielführend, da die dort enthaltenen Diagramme in der Regel unter anderen Gesichtspunkten ausgewählt oder erstellt wurden und sich eine Verschlagwortung nicht an den Bedürfnissen der Aufgabengenerierung orientiert. Ein 2 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. Generierung von Aufgaben zum Modellverstehen 83 alternativer Lösungsansatz besteht darin, auch die Diagramme aufgrund von vorgegebenen Parametern automatisiert so zu erzeugen, dass sie die gewünschten Eigenschaften erfüllen. Für das Beispiel der UML-Sequenzdiagramme können die folgenden Anforderungen an eine Parametrisierung gestellt werden: • Kommunikationspartner: Die Menge der im Diagramm enthaltenen Objekte soll festgelegt werden können. Als weitergehende Option soll auch die genaue Benennung der Objekte festgelegt werden können. • Nachrichten: Die Menge der im Diagramm enthaltenen Nachrichten soll festgelegt werden können. Als weitergehende Option soll auch eine Vorgabe von Inhalten oder sonstigen Merkmalen der Nachrichten möglich sein. Sofern die Benennung von Objekten festgelegt wurde, soll auch der Nachrichtenaustausch zwischen bestimmten Objekten festgelegt werden können. Schließlich soll es auch möglich sein, die Nachrichten „anonym“ durchzunummerieren, um Aufgaben zu vereinfachen, die sich nur auf die Syntax oder Position von Nachrichten beziehen und nicht auf deren Inhalt. • Fragmente: Es soll festgelegt werden können, welche Fragmente im Diagramm auftauchen dürfen oder müssen. Sofern bestimmte Nachrichten zwischen Objek- ten festgelegt wurden, soll es auch möglich sein, diese bestimmten Fragmenten zuzuordnen. Im Rahmen dieser Anforderungen ist es möglich, ein Diagramm komplett zufällig generieren zu lassen, indem keine Vorgaben zu Kommunikationspartnern und Nachrichten gemacht werden und alle Fragmente erlaubt (aber keines zwingend gefordert) werden. Ebenso ist es möglich, ein komplett festgelegtes Diagramm erzeugen zu lassen, indem alle Möglichkeiten der Vorgabe vollständig ausgenutzt werden. Zu beachten ist, dass der Generator im Rahmen der genannten Vorgaben nicht in der Lage sein kann, spezifische Objektnamen oder Nachrichteninhalte zu erzeugen, die einer vorgegebenen Modellsemantik folgen. Alle Labels müssen stattdessen aus einer generischen, universell verwendbaren Menge zufällig gezogen werden, sofern keine weiteren Anforderungen an die Parametrisierung festgelegt werden, die sich auf die Einhaltung einer Modellsemantik oder zumindest die Konformität der Bezeichnungen zu einer bestimmten fachlichen Domäne beziehen. Auch für dieses Konzept wurde eine prototypische Umsetzung im Rahmen eines studenti- schen Projektes realisiert. Der Java-basierte Generator stellt dazu eine Benutzerschnittstelle bereit (siehe Abbildung 1), in der schrittweise die oben genannten Einstellung für die Erzeugung eines Sequenzdiagramms gemacht werden können. Anschließend wird ein passendes Diagramm generiert und in Form einer Grafikdatei und eines passenden Modells im XMI-Format zum Export zur Verfügung gestellt, so dass die Ausgabe nahtlos als Eingabe für den Aufgabengenerator aus Abschnitt 3 verwendet werden kann. Das oben angespro- chene Problem der Benennung von Objekten und Nachrichten wurde dabei so gelöst, dass Objekte im Stile klassischer Aufgaben der Nachrichtentheorie („Alice-und-Bob-Aufgaben“) 84 René Ponto, Tobias Schüler, Michael Striewe Abb. 1: Benutzeroberfläche des Diagrammgenerators mit einigen exemplarisch ausgewählten Einstel- lungen. mit Personennamen versehen werden und Nachrichten generische Inhalte haben, die den Charakter der Nachricht wiedergeben. Als besondere Herausforderung erwies sich bei der Entwicklung, eine Java-Bibliothek zu finden, die eine API zum Erstellen von Grafiken zu einem Sequenzdiagramm zur Verfügung stellt. Die bisher gefundene Lösung ist noch nicht optimal und soll im Idealfall in Zukunft durch eine bessere Bibliothek ersetzt werden, die mehr Optionen bei der Erzeugung von Objekten und Nachrichten und eine präzisere Kontrolle über die Aktivierungslinien bietet. Durch den Export im XMI-Format steht allerdings schon jetzt die Möglichkeit offen, das ex- portierte Modell manuell in einem UML-Werkzeug zu öffnen und ein geeignetes Diagramm auf diesem Wege zu erstellen. Eine automatische Kopplung mit dem Aufgabengenerator aus Abschnitt 3 ist dadurch dann allerdings nicht möglich. Der Prototyp ist bisher auf die Generierung von Sequenzdiagrammen beschränkt. Ein analoges Vorgehen für andere Diagrammtypen ist möglich, wirft aber noch stärker die Frage der automatischen Erzeugung Generierung von Aufgaben zum Modellverstehen 85 Abb. 2: Drei Beispiele für Sequenzdiagramme, die automatisch auf Basis der Einstellung aus Abbildung 1 erzeugt wurden. von Grafiken auf, da beispielsweise bei Klassendiagrammen die Berechnung eines guten Layouts noch aufwendiger ist als bei Sequenzdiagrammen. In Abbildung 2 sind drei Beispiele für Sequenzdiagramme angegeben, die mit den Einstel- lungen wie in Abbildung 1 gezeigt erzeugt wurden. Zwei der Diagramme enthalten mehr als die eingestellten zehn Nachrichten. Dies liegt am derzeit implementierten Verfahren, bei dem es vorkommen kann, dass die letzte generierte Nachricht eine synchrone Nachricht ist, auf die noch eine asynchrone Antwort folgen soll. Diese wird dann als überzählige Nachricht hinzugefügt. Abbildung 3 zeigt exemplarisch eine Aufgabe, die auf Basis des ersten Diagramms aus Abbildung 2 mit dem Generator aus Abschnitt 3 erzeugt wurde. Generiert wurde eine Multiple-Choice-Frage zum Verständnis des Diagramms. 5 Fazit und Ausblick Wie im Titel dieses Beitrags bereits angedeutet, stellen die bisherigen Arbeiten lediglich Ansätze dar, um die automatische Generierung von Aufgaben zum Modellverstehen zu ermöglichen. Die beiden Prototypen zeigen, dass die gewählten Konzepte technisch umsetzbar sind und auch in einer hinreichenden Breite über verschiedene Diagrammtypen und Aufgabentypen hinweg einsetzbar sind. Durch die Nutzung des XMI-Standards ist zudem eine problemlose Kopplung mit anderen Werkzeugen möglich. Der Export ist derzeit zwar noch spezifisch auf ein bestimmtes E-Assessment-System zugeschnitten, aber die Nutzung für verschiedene Systeme und auch für klassische Papier-Klausuren ist konzeptionell ohne Einschränkung möglich. 86 René Ponto, Tobias Schüler, Michael Striewe Abb. 3: Beispiel für eine Multiple-Choice-Aufgaben, die mit dem Generator aus Abschnitt 3 auf Basis des ersten Diagramms aus Abbildung 2 erzeugt wurde. Die zutreffenden Antworten sind in der Abbildung angekreuzt. Generierung von Aufgaben zum Modellverstehen 87 In der inhaltlichen Tiefe gehen jedoch beide Werkzeuge noch nicht weit genug, um das Modellverstehen umfassend mit Übungsaufgaben abdecken zu können. Dazu müssen in kommenden Arbeiten noch weitere Aufgabentemplates im Aufgabengenerator realisiert und weitere Einstellungsmöglichkeiten im Diagrammgenerator geschaffen werden. Letzteres betrifft insbesondere die Erzeugung von Diagrammlabels sowie die Möglichkeit, auf eine vorgegebene Diagrammsemantik Bezug zu nehmen. Zudem muss der Diagrammgenerator erweitert bzw. durch weitere Werkzeuge ergänzt werden, die andere Diagrammtypen behandeln. Idealerweise entsteht daraus ein System, welches verschiedene Diagramme unterschiedlicher Typen zum selben Modell erzeugen kann und darauf aufbauend auch Fragen ermöglicht, die verschiedene Diagrammtypen einbinden. Literaturverzeichnis [ASI07] Ali, Noraida Haji; Shukur, Zarina; Idris, Sufian: Assessment System For UML Class Diagram Using Notations Extraction. IJCSNS International Journal of Computer Science and Network Security, VOL.7 No.8, August 2007, 7(8):181–187, 2007. [Ci] Ciancarini, Paolo: , Exercises on basic UML behaviors. Online [http://www.cs.unibo.it/cianca/wwwpages/ids/esempi/uml-b.pdf]. [CLP18] Correia, Helder; Leal, José Paulo; Paiva, José Carlos: Improving Diagram Assessment in Mooshak. In (Ras, Eric; Roldán, Guerrero; Elena, Ana, Hrsg.): Technology Enhanced Assessment (TEA 2017). Springer International Publishing, Cham, S. 69–82, 2018. [Co03] Cowling, A. J.: Modelling: a neglected feature in the software engineering curriculum. In: Proceedings 16th Conference on Software Engineering Education and Training, 2003. (CSEE&T 2003). S. 206–215, March 2003. [Da06] Davies, Islay; Green, Peter; Rosemann, Michael; Indulska, Marta; Gallo, Stan: How do practitioners use conceptual modeling in practice? Data & Knowledge Engineering, 58(3):358 – 380, 2006. Including the special issue : ER 2004. [Fi17] Figl, Kathrin: Comprehension of Procedural Visual Business Process Models. Business & Information Systems Engineering, 59(1):41–67, Feb 2017. [Ge] GenMyModel Repository. Online [https://repository.genmymodel.com/]. [Gi13] Gierl, Mark J.: Automatic Item Generation. Routledge, 2013. [Gl08] Glinz, Martin: Modellierung in der Lehre an Hochschulen: Thesen und Erfahrungen. Informatik-Spektrum, 31(5):425–434, Oct 2008. [HFL12] Houy, Constantin; Fettke, Peter; Loos, Peter: Understanding Understandability of Concep- tual Models – What Are We Actually Talking about? In (Atzeni, Paolo; Cheung, David; Ram, Sudha, Hrsg.): Conceptual Modeling. Springer Berlin Heidelberg, Berlin, Heidelberg, S. 64–77, 2012. [KC13] Karasneh, Bilal; Chaudron, Michel R. V.: Online Img2UML Repository: An Online Repository for UML Models. In: EESSMOD@MoDELS. 2013. 88 René Ponto, Tobias Schüler, Michael Striewe [KSV19] Kafa, Violet; Siegburg, Marcellus; Voigtlander, Janis: Exercise Task Generation for UML Class/Object Diagrams, via Alloy Model Instance Finding. In: SACLA 2019. CCIS 1136, 2019. [Le06] Le, Nguyen-Thinh: A Constraint-based Assessment Approach for Free-Form Design of Class Diagrams using UML. In: Proceedings of the Workshop on Intelligent Tutoring Systems for Ill-Defined Domains. S. 92, 2006. [Li13] Linck, B.; Ohrndorf, L.; Schubert, S.; Stechert, P.; Magenheim, J.; Nelles, W.; Neugebauer, J.; Schaper, N.: Competence model for informatics modelling and system comprehension. In: 2013 IEEE Global Engineering Education Conference (EDUCON). S. 85–93, March 2013. [MB08] Moritz, Sally; Blank, Glenn: Generating and Evaluating Object-Oriented Designs for Instructors and Novice Students. In: Intelligent Tutoring Systems for Ill-Defined Domains: Assessment and Feedback in Ill-Defined Domains. S. 35, 2008. [Mo] Modelling exercises. Online [http://sce2.umkc.edu/bit/burrise/pl/modeling/qanda.html]. [Sc12] Schramm, Joachim; Strickroth, Sven; Le, Nguyen-Thinh; Pinkwart, Niels: Teaching UML Skills to Novice Programmers Using a Sample Solution Based Intelligent Tutoring System. In (Youngblood, G. M.; McCarthy, P., Hrsg.): Proceedings of the 25th International Conference of the Florida Artificial Intelligence Research Society (FLAIRS). AAAI, Marco Island, FL, USA, S. 472–477, 2012. [SG14] Striewe, Michael; Goedicke, Michael: Automated Assessment of UML Activity Diagrams. In: Proceedings of the 2014 conference on Innovation & technology in computer science education (ITiCSE 2014). S. 336, 2014. [Sh16] Shenoy, Varun; Aparanji, Ullas; Sripradha, K.; Kumar, Viraj: Generating DFA Construction Problems Automatically. In: International Conference on Learning and Teaching in Computing and Engineering (LaTICE). S. 32–37, 2016. [St16] Striewe, Michael: An architecture for modular grading and feedback generation for complex exercises. Science of Computer Programming, 129:35–47, 2016. [TSW08] Thomas, Pete; Smith, Neil; Waugh, Kevin: Automatically assessing graph-based diagrams. Learning, Media and Technology, 33(3):249–267, 2008.