Objektorientierte Systemanalyse

Dr Franke Ghostwriter
würde mich mal interessieren wie fit ihr in dem Thema schon seit?
Find es ein wenig schade, dass es dazu keine EA gibt =/
Grad bei den Klassendiagrammen hab ich echt Probleme dass alles aus dem Text richtig zu verstehen.
Irgendwelche Tipps wie ihr das macht bzw. lernt?

Gruß
ChDotzi
 
Von mir aus könnte die Klausur morgen stattfinden 🙄

Wie, es gibt keine EA? Ich habe rund ein Dutzend.
Die waren auf der Seite vom Lehrstuhl zu finden.
Auch zu Diplomzeiten gab es "unsere" drei Kurse.

Ich weiß ja nicht, wo du wohnst ...
... es gibt noch zwei Klausurvorbereitungswochenenden in Neuss und Coesfeld.
Beide Mentoren sind richtig gut.

https://www.fernuni-hagen.de/stz/neuss/betreuung/m_31751.shtml

https://www.fernuni-hagen.de/stz/coesfeld/betreuung/modul31751.shtml


Ansonsten: Übung macht den Meister!
 
Dazu gibt es ja nette Komilitonen die einen das bereitstellen könnten 🙂. OOT: Mhm gerade wieder Fehler in der Ersten EA in der Musterlösung entdeckt xD. Der Lehrstuhl täte gut daran eventuell die Musterlösung vorher durch SQL zu jagen um die Aufgabenstellung mit der Lösung zu vergleichen.
 
Ja das mit den Kardinalitäten und unterschiedlichen Modellen ist schrecklich, da schreiben die immer was von Repository hier Repository da und kriegen es nichtmal hin sich auf ein Modell zu einigen. Besonders toll ist dann wieder das in Datenbanken 1 auch noch eine unterschiedliche Notation war da gabs kein c ...
 
Also Bei MedienID ist natürlich falsch sollte ein alphanumerischer schlüssel sein, Bei AnzahlExemplare ist die Klasse falsch müsste Medienexemplar sein, Bei SäumnisTage genau das gleiche dies ist nicht bei Benutzer vermerkt sondern auf Konto, bei ExemplarNr ist das aber tatsächlich merkwürdig, denn hier sollte eine Fortlaufende Nummer erfasst werden die durch UInt dargestellt werden kann
 
Die EA habe ich nicht, aber das scheint die Aufgabe 1 aus Klausur WS 08/09 zu sein

Mag mal jemand meine Lösung mit der Musterlösung vergleichen?
1b)
[TABLE="class: grid"]
[TR]
[TD]MediumID[/TD]
[TD="align: right"]0
[/TD]
[TD]falsch weil nicht alphanumerisch
[/TD]
[/TR]
[TR]
[TD]Titel[/TD]
[TD="align: right"]1[/TD]
[TD][/TD]
[/TR]
[TR]
[TD]Anzahl Exemplare[/TD]
[TD="align: right"]0[/TD]
[TD]falsche Klasse[/TD]
[/TR]
[TR]
[TD]Mitarbeiter 1[/TD]
[TD="align: right"]0[/TD]
[TD]falscher Datentyp, müsste Mitarbeiter sein[/TD]
[/TR]
[TR]
[TD]Mitarbeiter 2[/TD]
[TD="align: right"]0[/TD]
[TD]falscher Datentyp, müsste Mitarbeiter sein[/TD]
[/TR]
[TR]
[TD]DatumVorstellung[/TD]
[TD="align: right"]1[/TD]
[TD][/TD]
[/TR]
[TR]
[TD]Telefon[/TD]
[TD="align: right"]0[/TD]
[TD]falscher Datentyp[/TD]
[/TR]
[TR]
[TD]Qualifikation[/TD]
[TD="align: right"]1[/TD]
[TD][/TD]
[/TR]
[TR]
[TD]AnzahlSäumnisTage[/TD]
[TD="align: right"]0[/TD]
[TD]falsche Klasse[/TD]
[/TR]
[TR]
[TD]ExemplarNr[/TD]
[TD="align: right"]0
[/TD]
[TD]falscher Datentyp (falls das referenzierte Exemplar gemeint ist)
oder falsche Klasse
[/TD]
[/TR]
[TR]
[TD]SummeMahngebühren[/TD]
[TD="align: right"]0[/TD]
[TD]falscher Datentyp[/TD]
[/TR]
[TR]
[TD]MedienExplbeschädigt[/TD]
[TD="align: right"]0[/TD]
[TD]falscher Datentyp, falsche Klasse[/TD]
[/TR]
[/TABLE]

Wie sehen laut Musterlösung die Kardinalitäten für MedienExemplar und Ausleihe (1 / 1), Neuanschaffung und Medienvorstellung (1..* / 1) sowie Medienvorstellung und Mitarbeiter (* / 2) aus? Bei den rot markierten bin ich mir nicht so sicher
 
Wuah, sagtmal wie geht ihr denn jetzt vor bei der Objektorientierten Systemanalyse? Bei mir schaut es im Moment so aus das ich mir die Klassen vorstelle, mit fiktiven public und private Methoden. Heißt also konkret das wenn ich eine Beziehung zwischen den beiden Modelliere, die Klasse auf diese Methoden zugreift um die Instanzen zu Manipulieren. Ferner sollte natürlich in der zugreifenden Klasse dann eine entsprechende Methode implementiert sein die mir dies ermöglicht.
 
........Ich finde es sehr muehsam aus diesem verwirrenden Text ueberhaupt Infos zu siehen.

Ich stell mir den Kram eigentlich nicht anders wie die Modellierung im 817er Kurs vor. Nur halt nicht m, mc etc. sondern 1..* etc.

So isses, total wirrer Text. Aber die Klausur-Aufgaben sind einfach, wenn man das Prinzip einmal verstanden hat. Nur aus dem Text ist dieses Prinzip halt nicht zu "extrahieren".

Ich drücke morgen auch allen anderen Mitstreitern die Daumen. Viel Glück!

Martin
 
Blackhawk und ich sind das gestern Abend nochmal kurz durchgegangen, zentrale Frage hier ist es ja, welchen Zugriff auf andere Instanzen von Klassen, die jeweilige Instanz haben muss um wie im Aufgabentext gewünscht zu operieren und nicht wie im ERM wieviele Tupel einem Tupel einer Relation zugeordnet sind. Das heißt das Klassendiagramm ist das Überdiagramm und das ERM dann die konkrete Umsetzung auf Datenebene in Vorbereitung der Daten für ein relationales Datenbankkonzept. Völlig wurscht sind hier irgendwelche Primärschlüssel, da diese wenn überhaupt nur in der objektorientierten Programmierung als Pointer bestehen, die ich mit den jeweiligen implementierten Methoden der Klasse manipuliere. Um den Sachverhalt mal an einem Beispiel Zu Konkretisieren:

Jeder Ausleihe ist genau einem Medienexemplar zugeordnet:
ERM: Ausleihe 1:1 Medienexemplar
Klassendiagramm: Ausleihe 1:1..* Medienexemplar

Die Unterschiede ergeben sich aus dem genannten Sachverhalt, also auf Datenebene ist jedem Tupel der Relation Ausleihe ein Tupel der Relation Medienexemplar zugeordnet. Aber die konkrete Instanz im Klassendiagramm braucht zu jedem beliebigen Zeitpunkt natürlich Vollzugriff auf alle Verfügbaren Medienexemplare um das gewünschte auszuwählen.

Ich hoffe dies hilft dem ein oder anderen.

Gruß
 
Was mir hierzu gerade noch einfällt ist das Konzept der Polymorphie, das heißt ich kann einer Abstrakte Oberklasse eine Beziehung zuordnen, mit der Annahme diese stellt mir alle Methoden bereit, die ich für einen Abruf einer Unterklasse benötige. Also das Konzept der dynamischen Bindung zur Laufzeit. Erst während des Aufrufs der Methode wird festgestellt, welche eine geeignete Signatur aufweist um das Objekt zu manipulieren. Ist mir heute Nacht um 1e wieder eingefallen 😉.
 
Das ueberzeugt mich! Danke Dir.

Ich hab das noch nie so als Vererbung gesehen, sondern immer eher als "entweder" "oder". Aber ich hab eben auch nochmal ins Skript gelunzt. Entscheidend ist, dass die unteren Klassen alle "Eigenschaften" der Oberklasse enthalten und noch weiter spezifizieren. Dem Fitnesskonto ist es aber ziemlich rund ob der Kunde auch Gymnastik ausgewaehlt hat.
 
Die "Anzahl gewählter Disziplinen" und die "gesamte Anzahl an Trainingstagen" können nicht vererbt werden, weil die Attribute keinen Sinn machen im Fitness-, Gymnastik- und Badmintonkonto.
Wo bekommt man denn die Musterlösung her, finde sie nicht? Ist auch alles ein bißchen chaotisch mit den Downloads an fünf verschiedenen Ecken im Internet finde ich.
 
Von Klausuren gibt es keine MLs.

Ab und zu sind alte Klausuraufgaben in EAs verarbeitet worden. Dann gibt es MLs.

Wie man daran kommt? Da gibt es mehrere Möglichkeiten:
1. Man die Kurse im betreffenden Semester belegt und die EAs/MLs runtergeladen.
2. Man hat sich die EAs/MLs älterer Semester (also vor SoSe 2009) im STZ vor Ort kopiert.
3. Man geht zu mentoriellen Betreuungen und bearbeitet/diskutiert alte Aufgaben in der Gruppe.
4. ...
5. ...
 
Also ich denke das hier in der Klausur unabhängig von Vererbungsbeziehungen folgendes möglich war: Einmal Zugriff aus der Klasse Trainingskonto auf die drei anderen Konten oder aber auch der Zugriff aus der Klasse Kunde direkt auf die 4 Konten. Der erste Ansatz wäre natürlich, um eine möglichst lose Kopplung zu gewährleisten, dem anderen vorzuziehen. Achja denkt morgen eventuell an einen Tacker um die Klausur zu entklammern um gemütlich ohne viel blättern den GPS und das ERM und auch das Klassendiagramm zu zeichnen
 
Also ich denke das hier in der Klausur unabhängig von Vererbungsbeziehungen folgendes möglich war: Einmal Zugriff aus der Klasse Trainingskonto auf die drei anderen Konten oder aber auch der Zugriff aus der Klasse Kunde direkt auf die 4 Konten. Der erste Ansatz wäre natürlich, um eine möglichst lose Kopplung zu gewährleisten, dem anderen vorzuziehen. Achja denkt morgen eventuell an einen Tacker um die Klausur zu entklammern um gemütlich ohne viel blättern den GPS und das ERM und auch das Klassendiagramm zu zeichnen 🙂


Chef, ich habe alles schon bereit gelegt!

Im Ernst: Da weisen die Mentoren auch drauf hin, dass wir die Klausur auseinander nehmen sollen und am Ende wieder zusammentackern sollen.
 
naja von mir aus können die zusätzlich zum erm zum malen noch diese grafischen kardinalitäten zum überprüfen mit dazutun, das kostet ja kaum was an zeit bringt aber massiv Punkte, siehste Dennis und genau aus dem Grund hab ichs nochmal erwähnt 😀 geht ja nicht jeder zu Mentoren
 
Das mit den grafischen Kardinalitäten zum Überprüfen verstehe ich nicht so ganz. Ich habe da eine falsche Vorgehensweise, die zwar meistens zum richtigen Ergebnis führt, aber nicht immer. Wie macht ihr das denn bei EA SS10, Kurs 817, Aufgabe 2? Vor allem wenn "m" vorkommt lieg ich oft daneben.
 
Ihrs

Sorry für die ev. blöde Nachfrage aber könnt ihr mir bitte 3 Fragen bzgl. verschiedener Notationen beantworten:
1. Kommt nach einer SQL Abfrage ein abschliessendes Semikolon oder nicht ";" ?
2. Werden strings bei den Abfragen in "" oder ' ' gesetzt?
3. Können beim GPM mehrere Verbindungen wieder in ein XOR laufen oder ist das per Definition auf 2 Eingänge und einen Ausgang (oder andersrum) festgelegt?

Ich habe die Skripte leider nicht vorliegen...

Danke im Voraus,
LG Orkum
 
Also Orkum zu 3. dies ist sehr wohl möglich siehe hierzu auch das GPM IKEPA und diese Reifenrücknahme, einzig was nicht erlaubt ist sind multiple Ein- und Ausgänge, diesen Sachverhalt kann man entgegenwirken indem man dann einfach 2 xor hintereinanderschreibt. Achja und bei Strings halt ich mich an die Lehrstuhlnotation und setze es in " ". Was auch dem entspricht was ich hier zum füttern der Datenbank benutze.
 
So hab jetzt so langsam die faxen Dicke kann den Lernstoff nicht mehr sehen 😀. Mach jetzt noch einmal kurz die Klassendiagramme und dann sollte es auch genügen. Euch allen morgen um 9:00 Uhr viel Erfolg. Schreibt von euch noch einer in Veitshöchheim LK Würzburg?
 
Aber angenommen Du hast (wie es glaub ich in einer Aufgabe war) eine Bewertung eines Aufsatzes. Also die Moeglichkeit zu sagen "ausreichend" oder "unzureichend". Und in der Aufgabe steht dies als Boolean gekennzeichnet und ist der richtigen Klasse zugeordnet. Ist es dann richtig oder falsch? Also 0 oder 1?
 
Es bezieht sich immer nur auf eine Aussage. Also z.b. "ausreichend" dann kann der Wert true oder false, also 1 oder 0 annehmen. Oder "bestanden"...

Ahhhhh jetzt hab ich es verstanden. Ok, also wenn dort steht ein Aufsatz wird entweder mit "ausreichend" oder "nichtausreichend" bewertet. Und in der Loesungstabelle steht dann zB

Bewertung String Aufsatz (ist dies richtig)
Bewertung Boolean Aufsatz (waere falsch)
 
Achsoooo das. Das ist eigentlich echt einfach.

Links steht z.B.

m-mc (mind. 1 ist einem/keinem/mehreren zugeordnet)

Jetzt schaust Du Dir das Bild daneben an. Jedes obere gehoert zu m und jedes untere zu mc. Ich glaube das Beispiel damals war was mit Auto und Werkstatt oder so. Du pruefst jetzt einfach, ob die Verknuepfungen zu der links stehenden Regel passen oder nicht.

Es muessen also in unserem Beispiel m mindest von jedem unteren Element (mindestens, da m!!!) 1 Strich nach oben zu den oberen Elementen gehen. Das rechte Bild ist also praktisch nur eine grafische Darstellung der Regeln links. Wenn links z.B. steht 1-1, dann muss jedes obere Element mit genau einem (und nicht mehr oder weniger) Elementen untendrunter verbunden sein.

Die Frage ist das grafisch dargestellte Beispiel so richtig abgebildet, um die Regel links zu erfuellen.

Oh Gott - war das verstaendlich?
 
wichtig ist in jedem fall dass rechts nur ein Beispiel angegeben ist. soll heissen: es kann auch noch Assoziationen geben die dort nicht dargestellt sind. solange die dargestellen beispiele dem links angegebenen typen entsprechen sind sie richtig.
wegen der assoziationen selber: z.B. filiale - Kunde
Eine Filiale hat m (= 1 bis unendlich) Kunden: im dargestellen bild hat jede filiale 2 Kunden; ist im angegebenen Bereich von 1 bis unendlich, also richtig
Ein Kunde kauft in genau 1 Filiale: im Bild hat Kunde 2 (k2) 2 Filialen zugeordnet, also nicht genau eine, also falsch

Ist das verständlich?
 
Ich hab die EA leider nicht vorliegen. Was genau ist das denn?

Das ist Aufgabe 1 der EA - die mit den ganzen Strichzeichnungen.

Du musst für jeden Strich prüfen, ob die angegebenen Kardinalitäten dadurch abgedeckt werden können (aber nicht müssen).

Das erste Beispiel ist bspw. "nicht korrekt". Von g2 geht kein Strich aus. Eine 1-1-Beziehung kann so nicht dargestellt werden.
 
Noch eine Frage falls jemand Lust hat:

Kredit( KreditId, PersonId, Betrag, Zinssatz, Status, …)
Kreditnehmer( PersonId, Bonität, … )
Person( PersonId, Name, … )

Wie viele an Kreditnehmer der Bonitätsklassen „F“, „G“ oder „H“ vergebene Kredite sindderzeit insgesamt in Verzug? (7 P)

SELECT COUNT(*)FROM Kreditnehmer KN, Kredit K
WHERE KN.PersonId = K.PersonId
AND K.Status = 2AND KN.Bonität IN (‘F’, ‘G’, ‘H’)

Könnte ich stattdessen nicht auch SELECT COUNT(K.KreditID) verwenden oder warum der "*"?
 
Oben