drei Fragen zu den Lösungshinweisen:
Müsste bei Aufgabe 1c) die unterste Anomalie in der Tabelle (givenReferences, 35-...-51) nicht eine ur-Anomalie sein? Ihr habt den Pfad dort als du-Anomalie klassifiziert. Es gibt aber im gesamten Graphen kein d(givenReferences), also kann das irgendwie nicht richtig sein?
Zeile 60 im Code "children.next();" wird im Graph mit d(children) markiert (siehe auch Datenflussgraph in der Augabenstellung). Die Frage ist hier, warum es sich um eine Zuweisung handelt? Man könnte das so verstehen dass der "Wert" von children verändert wird, weil die Operation next() den Zustand der Variable ändert. Das ist aber auch streng genommen nicht garantiert, da man nie wissen kann, ob eine Operation den Zustand eine Objektes verändert oder nicht. Bei next() hilft man sich wohl über die Benamung, aber was wäre bei foo.bar() ?
Dann nehmt ihr an der Stelle noch verwirrenderweise Bezug auf einen Hinweis in der Aufgabenstellung: Dort steht aber nur, dass next() eine berechnende Operation (c) ist. Stünde dort "zustandsverändernde Operation" wäre es klarer, aber so? Wir hatten das damals auch in der Abgabe unserer Übung bemerkt, und der Tutor hat auch geschrieben das es richtig ist, aber den angegebenen Grund können wir leider nicht entziffern

1f) Warum geht der Rückwärtsslice über 46, 45, 43? Dafür müsste es eine Datenflusskante von 45 nach 46 geben. Es gibt diese Kante aber nicht im Graphen (was auch korrekt ist). Unserer Meinung nach müsste der Slice 46, 43, 38, 36, 35 sein.