was habt ihr für eine Note? weiß jemand was der Schnitt ist?
View 3 more comments
@Kreditkarte woher weißt du die %?
@Mond Kannst du im Learnweb unter Dieser Kurs und dann Bewertungen sehen
Ist es normal, dass man in Learweb als Abgabestatus "Kein Versuch" aber man unter Bewertung eine Note stehen hat?
Ja, das ist normal. Steht bei mir genauso
Seid ihr mit eurer Note zufrieden?
2,7 .. bisschen was verkehrt gemacht aber im ganzen hatte ich da schon ahnung von, also genau wie erwartet
Weiß jemand, wie lange die Korrektur üblicherweise dauert? Bei den letztem Klausuren war Kuchen ja immer relativ schnell
ich gehe mal davon aus, dass wir die Ergebnisse spätestens nächste Woche bekommen
Stehen im learnweb
Noten sind im learnweb eingetragen
Kann jemand vielleicht nochmal kurz etwas dazu sagen, was in der Klausur dran kam und inwiefern die sich evtl. von den Altklausuren unterschieden hat? :)
View 2 more comments
was genau wurde zur OCL gefragt?
Nur invarianten. Sehr einfach gehalten. Man musste max. 1 mal über ein Attribut rüber und dies "eingrenzen". z.B bei Student zu Vorlesungen beziehung. context inv: self.vorlesungen und dann dazu z.B ->size() <= 5 . Sehr simpel gehalten.
Wie fandet ihr die Klausur?
View 4 more comments
völlig unzumutbar das war viel zu schwer!
War gut das Ding
Hat jemand die Lösung der Implementierungsaufgabe WS 17-18
View 7 more comments
Ein Cheftrainer ist ja so gesehen nur ein "Spezialfall" eines Co-Trainers, wenn er dann von der Trainer Klasse erbt und man seine "speziellen Methoden" selber dazu definiert ist er ja so gesehen ein Co-Trainer, da er alles machen kann was ein Co-Trainer auch kann, nur halt noch dazu das was er halt mehr kann als ein Co-Trainer, oder nicht?
Ja, aber es gibt keinen Trainer der kein Cheftrainer ist. Daher sehe ich keinen Grund eine zusätzliche Klasse dafür zu machen.
Die Aufgabe 8 aus dem Lösungsvorschlag derAltklausur SS16 funktioniert so aber nicht. In (a) wird nur eine neue Variable mit dem Namen "restBuget" gemacht. Das ändert an der Variable in der Klasse Abteilung nichts (auch wenn Unterabteilung die Klasse Abteilung erweitern würde). Nur weil der Name gleich ist, ist es nicht die gleiche Variable. Man müsste die Variable der Abteilungs-Klasse im Konstruktor der Unterabteilung ändern, was den gewünschten Effekt hat. Wenn man die Attribute (anders als Kuchen) nicht immer protected machen würde, dann gäbe es das Problem btw. nicht. Zum Lösungsvorschlag in (b) sei angemerkt, dass man Variablen nicht überschreiben kann (wie in (a) versucht wurde). Die Begründung fußt ebenso darauf, dass man Attribute immer protected machen würde (wie Kuchen macht), und lässt sich ebenfalls durch private verhindern. Ein allgemeineres Argument wäre, dass Voraussetzungen, die die Unterklasse getroffen hat, nach der Änderung eventuell nicht mehr gelten, und die Unterklasse daher nicht mehr korrekt funktionieren könnte.
Wie ermittelt man die minimale Anzahl an Testfällen am besten ? (Def-Use Ketten) zB die Tutoriumsaufgabe
Ob das Problem die minimale Anzahl an Testfällen zu finden i.A. überhaupt algorithmisch entscheidbar ist weiß ich nicht genau. Aber es gibt auf jedenfall ein paar Regeln. z.B. wird in der Regel mindestens ein Testfall pro return-Anweisung benötigt, da ein Testfall nicht beide returns abdecken kann (sofern die returns zu def-use-Ketten gehören).
Fehlen hier nicht noch die Ketten, je nach Input, also z.B.: {x, x = input x<= 0] etc?
View 5 more comments
Man kann aber halt auch keine nicht initialisierte Variable vergleichen :D
Die Variablen werden schon iwie initialisiert sein ^^ (Vielleicht sind es auch Objekt- oder Klassenvariablen). Man kann sie wahrscheinlich auch einfach hinzufügen. Eventuell braucht man dann aber auch mehr Testfälle, und es wird alles ein wenig komplizierter.
Denkt ihr die Themen von Zettel 5 sind klausurrelevant?
Entwurfsentscheidungen, Kommunikationsdiagramme sind relevant, Java Beans eher nicht
Hat jemand das dazugehörige Beobachter und kann das einmal hochladen ?
So hab ich das gelöst ist im Prinzip wie auf der Vorlesungs Folie
ist hier das Dekorierermuster richtig oder wäre ein Kompositum auch möglich?
Dekorierer macht hier mehr Sinn, da Zutaten nicht wiederum weiteren Zutaten haben
Hier muss auf jeden Fall das Dekorierer Muster verwendet werden. Du hast aber natürlich auch irgendwo recht: Der Dekorierer verwendet natürlich auch das Kompsitum-Muster
Moin, hat jemand die Lösungen zu dem „Entwurfsmusterlückentext“ aus dem Tut am Freitag?
View 2 more comments
Genauso wenig wie die MP fragen von olm
Würde mich dennoch über die Lösungen freuen.
Gibt doch nur eine Kursverwaltung zu einem Kurs?
Die Objekte der Kursverwaltung besteht aus Objekten mit zwei Attributen "teilnehmer" und "kurs". Es wird praktisch den Personen die Kurse zugeordnet. Folglich existiert pro Objekt der Kursverwaltung nur eine Person und ein Kurs. Was hier meiner Meinung nach noch fehlt, ist die Buchungszeit als Attribut. Es sollen auch eigentlich über die Assoziationen die Attributbezeichnungen geschrieben werden und nicht Verben, die das Verhältnis beschreiben.
Hat jemand die Lösung für die Function-Point Aufgabe aus dem WS 17/18?
wäre nice, da die Folien ja echt nichts verraten
No area was marked for this question
Bei Aufgabe 11 muss das doch return this.a.getValue() + this.b.getValue(); heißen
Bitte ignoriert diesen Teil. Es gibt in dem Ablauf keinen rekursiven Methodenaufruf
View 3 more comments
weil die als Liste in Lager gespeichert sind oder?
Ja genau
Hier vergessen, dass T0 immer schalten kann oder nicht ? Außerdem nach t0,t1, t2 müsste (u,1,1,0)
Ja
Ich glaube (u, 1,1,0) braucht man hier nicht, weil das ja größer als (u, 1,0,0) ist. Dann kann man das ja direkt als (u,1,u,0) schreiben...
Hatte die Aufgabe vergessen einzufügen... import java.util.ArrayList; public abstract class Subjekt { protected ArrayList beobachter; public Subjekt() { beobachter=new ArrayList(); } public void beobachterAnmelden(Beobachter b) { beobachter.add(b); } public void benachrichtige() { for (Beobachter b: beobachter) b.aktualisiere(); } public ArrayList getBeobachter() { return beobachter; } } import java.util.ArrayList; public class Kunde extends Subjekt{ protected String name; protected ArrayList konten; public Kunde(String name) { super(); konten = new ArrayList(); this.name=name; } public void friendAddKonto(Bankkonto k) { konten.add(k); benachrichtige(); } public String getName() { return name; } public ArrayList getKonten() { return konten; } } public class Bankkonto extends Subjekt{ protected int kontoNummer; protected String bezeichnung; protected Kunde kunde; public Bankkonto(Kunde k, String bezeichnung, int kontoNummer) { super(); this.bezeichnung=bezeichnung; this.kontoNummer=kontoNummer; kunde=k; k.friendAddKonto(this); } public void setBezeichnung(String bezeichnung) { this.bezeichnung=bezeichnung; benachrichtige(); } public int getKontoNummer() { return kontoNummer; } public String getBezeichnung() { return bezeichnung; } public Kunde getKunde() { return kunde; } }
t2 kann hier auch schalten
Habt ihr irgendwelche Tipps was sehr wahrscheinlich drankommt? Außer Petri-Netze und OCL..
View 3 more comments
Wissensfragen zu Scrum, Klassendiagramm implementieren, Klassendiagramm mit Enwurfsmuster erstellen, FP-Analyse iwas und vllt was mit Sequenzdiagrammen oder so
Sequenzdiagramme und Def-Use/Kontrollfluss würde ich mir auf jeden Fall nochmal angucken
Könnte vielleicht jemand eine Lösung zu dem 5. Übungsblatt hochladen? Wäre echt korrekt
Das müsste glaube ich sum = sum + anzahl * wert; sein, weil sonst diese Summe bei jedem Lagerplatz überschrieben und nicht hinzugefügt wird.
Müsste hier Artikel nicht als Einzelobjekt dargestellt werden laut Klassendiagramm?
Ja.
Müsste die Komposition (genau wie die zwischen Transition und PetriNetz) nicht andersherum. Eine Stelle ist doch Teil eines PetriNetzes und muss beim Löschen des Netzes mitgelöscht werden und nicht anders herum oder?
Keine Komposition wäre hier die richtige Wahl.
Müssten die nicht an der Transition sein. Eine Kante kann ja ohne Transition oder Stelle nicht exisiteren.
View 1 more comment
wie würdest du die Aufgabe denn Lösen?
Eine Kante hat immer nur 2 ihr zugeordnete Objekte: Stelle und Transition. Es gibt 2 Kantentypen: Stelle -> Transition & Transition -> Stelle
hier müsste t4 stehen
du meinst t1
Ja xD
müsste doch 1,0,0,0,1,0 sein
So ist es richtig
Den ersten Punkt habe ich leider vergessen: 1. Zielbestimmung: Was soll durch den Einsatz der Software erreicht werden
Müsste man von hier aus nicht auch mit T2 zu (0,1,u,0) schalten können?
Ja sehe ich genau so
3 und 5 vielleicht?
Nach dem return ist die Funktion beendet, es finden keine weiteren Anweisungen statt.
Bezieht sich die Frage nicht auf die Anfangsmarkenbelegung? (1,0,1,0) dann wäre doch T0 lebendig oder nicht?
Ja die Frage bezieht sich auf die Anfangsbelegung und nein die Transition ist nicht Lebendig. Die Definition einer lebendigen Transition ist: Eine Transition ist lebendig falls sie in keiner (ggf. indirekt) folgenden Markenbelegung tot ist.
Wäre hier als Ruckgabetyp nicht der konkrete Typ der List/ des Buttons besser, also bei StandardFabrik z.B.: erzeugeListe():StandardList bzw. ist das überhaupt erlaubt, da ich ja eine Methode überschreibe und den return Typ ändere, Standard List ist ja immer noch instance-of List
View 1 more comment
Die Anwendung speichert ja eine Liste und einen Button. Um die Referenzen mit was zu belegen wird die Methode der abstrakten Fabrik verwendet, um ein Objekt von List/Button zu erzeugen, damit die Anwendung dieses Speicher kann
Ja, mein Fehler. Natürlich muss es eine Rückgabe geben. So wie es hier gemacht wurde ist es auch richtig. Du kannst ruhig den abstrakten Typen als Rückgabetyp verwenden, weil die konkreten davon erben und das somit kein Unterschied macht.
Müsste dieser Zustand nicht (1,0,1,0,0,0) sein ?
Ja, sehe ich auch so
Anweisung ist ein Blatt und deshalb nicht teil von kompositium
Das ist nicht ganz eindeutig. Das Kompositummuster ist in erster Linie nur eine Verschachtelung von Objekten. Meiner Ansicht nach gehört ein Blatt mit zu einer Verschachtelung und somit auch mit zum Kompositummuster. Auf Folie 275 sind auch zwei Blätter eingezeichnet
Du löschst hier bereits abgegebene, doppelte Gebote wieder raus. Es sollte aber gar nicht möglich sein, welche doppelt abzugeben. context: Artikel inv: Gebote.allInstances -> select( g| g.artikel = self.artikel) -> forall (g | g != self implies g.gebote -> intersection (self.gebote) -> isEmpty() )
Der Testfall deckt bei der Bedingung (a[index] < min -> "Ja") nicht ab. Hier wäre a[] = {1,0,2} besser oder nicht?
Ja stimmt
Hier müsste m.M.n. "return min" stehen.
Ja stimmt