Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
A
B
c2..*
0..1
D
C
a
1
b1
2c : C y
a : A
z
: By
x x
Which of the links in theobject diagram (OD)corresponds to whichrelationship in theclass diagram (CD)?
Marcellus Siegburg und Janis Voigtländer 19.02.2020
Generating Diverse Exercise Tasks on UML Class and Object Diagrams, Using Formalisations in Alloy
www.uni-due.de/fmi 19.02.2020 2
• Objektdiagramm (OD) ‣ Kanten (Links)
» incl. Name, Navigationsrichtung
• Klassendiagramm (CD) ‣ Kanten (Beziehungen):
Assoziation / Aggregation / Komposition / Vererbung » incl. Name, Multiplizitäten
UML – Vereinfachte Klassen- und Objektdiagramme
c : C y
a : A
z
: By
x x
A
B
x2..*
0..1
D
C
z
1
y
1
2
http://www.uni-due.de/fmi
www.uni-due.de/fmi 19.02.2020 3
• Ordnen Sie den CDs ihre validen OD- Instanzen zu!
• Generierung mittels CD2Alloy nach [KSV19]
Bereits existierender Aufgabentyp
1) 2)
a) b) c)
d) e)
A
B
z0..1
1
C
D
y
2
A
B
z1..2
1
C
x0..1
0..1
D
y2
b : B
c : C
: Cx
a : Aa1 : A
: Bz
z
c : C
x
: A
c : C
c1 : Cz
d : Dy
y a : A
c : C
: C
d : D
zy
ya : A
b : Bz
http://www.uni-due.de/fmi
www.uni-due.de/fmi 19.02.2020 3
• Ordnen Sie den CDs ihre validen OD- Instanzen zu!
• Generierung mittels CD2Alloy nach [KSV19]
Bereits existierender Aufgabentyp
1) 2)
a) b) c)
d) e)
1: c, d, e 2: b, d, e
A
B
z0..1
1
C
D
y
2
A
B
z1..2
1
C
x0..1
0..1
D
y2
b : B
c : C
: Cx
a : Aa1 : A
: Bz
z
c : C
x
: A
c : C
c1 : Cz
d : Dy
y a : A
c : C
: C
d : D
zy
ya : A
b : Bz
http://www.uni-due.de/fmi
www.uni-due.de/fmi 19.02.2020 4
• Alloy: deklarative Sprache, Beschreibung mittels Relationen, verwendet SAT-Solver
⇒ Übersetzung von CDs in Alloy-Spezifikationen
➡ Interpretation der gefundenen OD-Instanzen
Benutzung von Alloy (spezieller CD2Alloy [MRR11])
... one sig y extends FName {}... fun ASubsCD : set Obj { A } fun BSubsCD : set Obj { B + CSubsCD }fun CSubsCD : set Obj { C + ASubsCD }... ObjLUAttrib[ASubsCD, y, BSubsCD, 1, 1] ObjLU[BSubsCD, y, ASubsCD, 0, 1] ...
⇒ ➡
d : D
: D
a : A
z
a1 : A
y
z
y
A
B
0..1
C
D
0..1
1..*z
1
y
http://www.uni-due.de/fmi
www.uni-due.de/fmi 19.02.2020 5
• Aufgaben mit unterschiedlichen Schwierigkeitsgraden • verschiedene Aufgaben (idealerweise pro Studierender) mit
ähnlichem Schwierigkeitsgrad • Korrektheit durch Synthese von Aufgaben
↪ Automatische Überprüfung von Einreichungen und automatisches Feedback zu Einreichungen
⇒ Abrufen und Überprüfen unterschiedlicher Lernkompetenzen durch verschiedene Aufgabentypen
Ziele der automatischen Generierung von Übungsaufgaben
http://www.uni-due.de/fmi
www.uni-due.de/fmi 19.02.2020
A
B
c2..*
0..1
D
C
a
1
b1
2
6
• Aufgabe: ‣ Ordnen Sie allen Links im OD,
Beziehungen im CD zu! • Generierung: ‣ CD erstellen, wie bei altem
Aufgabentyp ‣ OD erstellen, wie bei altem
Aufgabentyp ‣ CD Beziehungen neu benennen
Aufgabentyp: Zuordnen von OD-Links zu CD-Beziehungen
c : C y
a : A
z
: By
x x
http://www.uni-due.de/fmi
www.uni-due.de/fmi 19.02.2020 6
• Aufgabe: ‣ Ordnen Sie allen Links im OD,
Beziehungen im CD zu! • Generierung: ‣ CD erstellen, wie bei altem
Aufgabentyp ‣ OD erstellen, wie bei altem
Aufgabentyp ‣ CD Beziehungen neu benennen
Aufgabentyp: Zuordnen von OD-Links zu CD-Beziehungen
A
B
x2..*
0..1
D
C
z
1
y
1
2
c : C y
a : A
z
: By
x x
http://www.uni-due.de/fmi
www.uni-due.de/fmi 19.02.2020
A
B
c2..*
0..1
D
C
a
1
b1
2
6
• Aufgabe: ‣ Ordnen Sie allen Links im OD,
Beziehungen im CD zu! • Generierung: ‣ CD erstellen, wie bei altem
Aufgabentyp ‣ OD erstellen, wie bei altem
Aufgabentyp ‣ CD Beziehungen neu benennen
Aufgabentyp: Zuordnen von OD-Links zu CD-Beziehungen
c : C y
a : A
z
: By
x x
http://www.uni-due.de/fmi
www.uni-due.de/fmi 19.02.2020 7
• Aufgabe: ‣ Entscheiden Sie für die
gegebenen CD, ob sie gültig sind!
• Generierung: ‣ Erstellung eines
ungültigen CD ‣ Änderung des CD
» 4 (un)gültige CDs
Aufgabentyp: Gültigkeit von CDs entscheiden
A
C
B
x1
0..1
v1
D
y0..1
z
2..*
A
B
C
x1
0..1
D
y
0..1z2..*
A
B
C
x1
0..1
D
y
0..1z2..*
A
C
w*..2
*..2
B
x1
0..1
D
y0..1
z
2..*
http://www.uni-due.de/fmi
www.uni-due.de/fmi 19.02.2020 7
• Aufgabe: ‣ Entscheiden Sie für die
gegebenen CD, ob sie gültig sind!
• Generierung: ‣ Erstellung eines
ungültigen CD ‣ Änderung des CD
» 4 (un)gültige CDs
Aufgabentyp: Gültigkeit von CDs entscheiden
A
C
B
x1
0..1
v1
D
y0..1
z
2..*
A
B
C
x1
0..1
D
y
0..1z2..*
A
B
C
x1
0..1
D
y
0..1z2..*
A
C
w*..2
*..2
B
x1
0..1
D
y0..1
z
2..*
A
C
B
x1
0..1
D
y0..1
z
2..*
http://www.uni-due.de/fmi
www.uni-due.de/fmi 19.02.2020 7
• Aufgabe: ‣ Entscheiden Sie für die
gegebenen CD, ob sie gültig sind!
• Generierung: ‣ Erstellung eines
ungültigen CD ‣ Änderung des CD
» 4 (un)gültige CDs
Aufgabentyp: Gültigkeit von CDs entscheiden
A
C
B
x1
0..1
v1
D
y0..1
z
2..*
A
B
C
x1
0..1
D
y
0..1z2..*
A
B
C
x1
0..1
D
y
0..1z2..*
A
C
w*..2
*..2
B
x1
0..1
D
y0..1
z
2..*
A
C
B
x1
0..1
D
y0..1
z
2..*
http://www.uni-due.de/fmi
www.uni-due.de/fmi 19.02.2020 8
• CD besteht aus Klassen und Beziehungen
• Eigenschaften des CD werden durch Prädikate ausgedrückt ‣ z.B. keine Vererbungszyklen ‣ Prädikate können gezielt
(de)aktiviert werden • Generator erzeugt alle CDs, die zur
entsprechenden Beschreibung passen (bis zu festgelegter Größe)
Alloy: Generierung von CDs
abstract sig Class {}
abstract sig Relationship { from : one Class, to : one Class} ... sig Inheritance extends ↩↪ Relationship {}... pred noInheritanceCycles [is : ↩↪ set Inheritance] { no c : Class | c in ↩↪ c.^((~ from :> is).(is
www.uni-due.de/fmi 19.02.2020 9
• die Anzahl der Kompositionen mit falschen Multiplizitäten am Rautenende,
• die Anzahl der Relationen mit anderen falschen Multiplizitäten
• die Anzahl der Selbst-Beziehungen • ob es Doppelbeziehungen gibt • ob es gegenläufige Beziehungen gibt • ob es Mehrfachvererbungen gibt • ob es Vererbungszyklen gibt • ob es Kompositionszyklen gibt
Alloy: Prädikat zur Klassifikation von CDs
classDiagram[ ..., 0, 0, 0, False, False, False, False, False]
http://www.uni-due.de/fmi
www.uni-due.de/fmi 19.02.2020 10
• Definition von Veränderungen eines CD als Hinzufügen / Entfernen maximal einer Beziehung
• Definition von Eigenschaften eines veränderten CD mit Hilfe des Prädikats classDiagram
Alloy: Änderungen von CDs
...
abstract sig Change { add : lone ↩↪ Relationship, remove : lone ↩↪ Relationship }
...
http://www.uni-due.de/fmi
www.uni-due.de/fmi 19.02.2020 11
• Aufgabe: ‣ Wählen Sie alle gültigen Reparaturen für das
gegebene CD! 1 Füge eine Aggregation für C aus Bs hinzu, bei
der C 0..* mal und B genau einmal partizipiert 2 Entferne eine Vererbung, bei der A von C erbt 3 Ersetze eine Vererbung bei der A von C erbt
durch eine Vererbung bei der C von A erbt 4 Ersetze eine Vererbung bei der A von C erbt
durch eine Assoziation von A nach C, bei der A *..2 mal und C *..2 mal partizipiert
• Generierung: ‣ exakt wie bei vorherigem Aufgabentyp
Aufgabentyp: Reparieren eines invaliden CD
A
C
B
x1
0..1
D
y0..1
z
2..*
http://www.uni-due.de/fmi
www.uni-due.de/fmi 19.02.2020 11
• Aufgabe: ‣ Wählen Sie alle gültigen Reparaturen für das
gegebene CD! 1 Füge eine Aggregation für C aus Bs hinzu, bei
der C 0..* mal und B genau einmal partizipiert 2 Entferne eine Vererbung, bei der A von C erbt 3 Ersetze eine Vererbung bei der A von C erbt
durch eine Vererbung bei der C von A erbt 4 Ersetze eine Vererbung bei der A von C erbt
durch eine Assoziation von A nach C, bei der A *..2 mal und C *..2 mal partizipiert
• Generierung: ‣ exakt wie bei vorherigem Aufgabentyp
Aufgabentyp: Reparieren eines invaliden CD
A
C
B
x1
0..1
D
y0..1
z
2..*
A
B
C
x1
0..1
D
y
0..1z2..*
http://www.uni-due.de/fmi
www.uni-due.de/fmi 19.02.2020 11
• Aufgabe: ‣ Wählen Sie alle gültigen Reparaturen für das
gegebene CD! 1 Füge eine Aggregation für C aus Bs hinzu, bei
der C 0..* mal und B genau einmal partizipiert 2 Entferne eine Vererbung, bei der A von C erbt 3 Ersetze eine Vererbung bei der A von C erbt
durch eine Vererbung bei der C von A erbt 4 Ersetze eine Vererbung bei der A von C erbt
durch eine Assoziation von A nach C, bei der A *..2 mal und C *..2 mal partizipiert
• Generierung: ‣ exakt wie bei vorherigem Aufgabentyp
Aufgabentyp: Reparieren eines invaliden CD
A
C
B
x1
0..1
D
y0..1
z
2..*
A
C
w*..2
*..2
B
x1
0..1
D
y0..1
z
2..*
http://www.uni-due.de/fmi
www.uni-due.de/fmi 19.02.2020 12
• Weitere Konfiguration der Aufgabentypen ist möglich: ‣ Komplexität anpassbar durch Änderung der Anzahl der
Elemente ‣ Wahl der angezeigten Komponenten in CD und OD
(Navigationsrichtung, Name) • Aufgabenvariationen möglich • Automatische Bewertung der erstellten Aufgaben möglich • Verwendung der Generatoren ‣ E-Learning-Kurs mit Aufgaben aller vorgestellter Typen ‣ Großflächiger Einsatz im Wintersemester 2020/21 geplant
Generierung verschiedener Aufgabentypen
http://www.uni-due.de/fmi
www.uni-due.de/fmi 19.02.2020 13
Demo der E-Learning-Integration
https://autotool.fmi.iw.uni-due.de/mohol20
http://www.uni-due.de/fmihttps://autotool.fmi.iw.uni-due.de/mohol20