Navigationsrichtung Komposition / Vererbung incl. Name ... · 2 Entferne eine Vererbung, bei der A...

20
A B c 2..* 0..1 D C a 1 b 1 2 c : C y a : A z : B y x x Which of the links in the object diagram (OD) corresponds to which relationship in the class 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

Transcript of Navigationsrichtung Komposition / Vererbung incl. Name ... · 2 Entferne eine Vererbung, bei der A...

  • 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