Wir sind immer noch beim Problembereichsmodell und kommen jetzt zum Klassendiagramm, das ist der Gliederungspunkt 1,5.
Bevor wir dazu kommen, noch kurz etwas zu diesem Problembereichsmodell.
Wir hatten ganz zu Anfang gesagt, das Motrembereichsmodell steht,
das Statische dar, stellt die Struktur dar,
organisatorische Strukturen, Datenstrukturen, das sind Sachen,
die ein Softwaresystem aufweisen muss, funktionale Struktur,
eine Gliederung und dass wir dafür das Klassendiagramm verwenden wollen.
Für dieses Diagramm könnten wir,
besteht das Ziel trotzdem damit darin, dass wir das erfüllen,
was ein Anforderungsmodell braucht
Und das Ziel war dann,
das hatten wir schon mal bei der Anforderungsbeschreibung aufgeschrieben, Kommunikation.
Alle sollen diese Anforderungen verstehen, insbesondere die nicht technische Anforderung
der Auftraggeber
Musik Und dabei kommt es darauf an,
dass wir die Sprache des Anwenders verwenden.
Wir verwenden dabei fachliche Begriffe. Und diese Begriffe Sollen fachliche Zusammenhänge,
fachliche Sachverhalte beschreiben. Wir wollen die letztendlich als Objekte,
das war als Objekt zunächst der realen Welt, modellieren.
Dass wir später auch mit Objekten arbeiten,
ist noch ein anderer Punkt.
Und wir wollen
auch die Beziehungen untereinander verstehen
Verstehen und beschreiben, modellieren, sagt beschreiben dabei.
Wir erinnern aber jedenfalls dran, dass wir dabei
keine technischen Bei einem technischen Entscheidungen vorgreifen wollen.
Wenn wir Objekte darstellen wollen, Strukturen darstellen wollen,
statische Dinge,
ist das Klassendiagramm
sehr gut geeignet
Denn es ist in der Lage, Objekte und deren Beziehungen darzustellen.
So, das ist die Überleitung zum Klassendiagramm. Wir haben dazu
nochmal Fragen. Das ist der Fragenblock hier in Nummer 3.
Zur Antwortungsbeschreibung, und zwar, wenn wir kurz darstellen,
welche Beziehungen wir darin kennen, das wird eine Erinnerung sein,
was sie in SE1 und SE2 gehört haben,
dann werden wir
darüber sprechen
Was assoziiert wird und Akkreditation. Komposition ist,
bevor wir dann bei 1,5 zu dem Zustandsdiagramm kommen,
also die Fragen 14 und 15 behören hier dazu.
Zunächst erstmal das Klassendiagramm. So ganz viel, so ganz elementar,
was sind die Elemente des Klassendiagramms, da sind wir schon drüber weg.
Das haben sie schon in SE1 und SE2 gehört. Sie wissen,
dass diese Kästen, wie wir, wie wir sie hier haben,
ja, dass so ein Kasten eine Klasse darstellt,
dass wir manchmal hier kursiv geschrieben, das schreiben wir vielleicht nochmal dran,
Das Rechteck steht für eine Klasse, mit dem Namen drin,
kursiv geschrieben, sind abstrakte Klassen und dieser Pfeil hier,
das ist die Generalisierungsbeziehung.
Diese Generalisierungsbeziehung, wenn man im Bildschirm was schalten,
diese Generalisierungsbeziehung ist eine Beziehung vom Typ, ist ein Aber mit romutieren.
Uwe, auf Englisch. Also ein Dreieck ist eine
geometrische Figur. Und ein Kreis ist eine geometrische Figur.
Und ein Rechte ist eine geometrische Figur. Das ist Generalisierung.
Generalisierung, hier haben wir noch einen Begriff Taxonomie drin.
Taxonomie ist eine Vererbungshierarchie, der Hierarchie gegliedert nach Eigenschaften.
So haben wir das, das ist auch letztlich am Ende
aus der Biologie entlehnt. Da gibt es also die Pflanzen,
die dann irgendwo anfangen mit,
ich bin ja kein Experte dafür, aber ich weiß nur,
da gibt es irgendwie die einkalten Plötriken und die zwei kaltblättigen Pflanzen,
die sich dann, wie sich das dann weiterverteilt,
ja, oder bei den Diam,
da gibt es dann die Insekten und die Spinnen und ja,
die warmen Überlegkaltbüter.
Es verteilt sich immer weiter und am Ende gibt es dann konkrete Dinge,
ja, die abstrakten Dinge, die hier geometrische Figur,
davon gibt es keine wirklichen Instanzen.
Also es gibt nicht den Kaltblüter oder den Vogel,
sondern es gibt dann konkrete Vögel, ja,
also hierfür gibt es nicht wirklich Exemplare, erst für die Blätter,
die weiter unten im Baum stehenden Klassen.
Dafür gibt es konkrete Exemplare. Diese Beziehung,
die wir hier darstellen, das ist die Generalisierungsbeziehung,
also zu erkennen an diesem offenen Pfeil.
Wir nutzen den, um Eigenschaften zusammenzufassen,
das ist das wesentliche Ding und zu strukturieren und dabei lassen wir Sachen weg,
ja, und weniger Aufwand,
das durch die Abstraktion
Durch das Abstrahieren. Da lassen wir Details weg. Und dabei ist natürlich die Frage,
was ist ein Detail, was wir weglassen können?
Was brauchen wir davor nicht? Wir gucken es auf der nächsten Folie,
dass ein Beispiel aus dem Kalendersystem haben, was wir schon ein paar Mal hatten.
Und zwar haben wir hier eine Hierarchie von an mehreren Stellen,
haben wir eine Generalisierungsbeziehung, nicht wirklich eine Hierarchie.
Wir haben zunächst, dass wir Sachen,
wie wir sie für einen Kalender erwarten können,
in einem Kalender sollte, wir machen das nicht,
wenn ich mich nicht drin malen, sollen nur was zeigen.
In dem Kalender haben wir hier einen Kalendereintrag,
etwa ein To-Do, was ich machen möchte.
Ich habe einen Termin und dieser Termin kann Teil einer Terminserie sein,
dass sie, das Symbol sollten sie sich erinnern.
Das war die Teilen von Beziehung, Teil ganzes Beziehung.
Und dann haben wir verschiedene Ansichten. Die Monatsansicht, die Wochenansicht,
die Tagesansicht. So, am Ende ist es so,
dass so ein Termin einen Benutzer zugeordnet ist.
Was man hier gemacht hat und der To-Do-Eintrag ist auch ein
Benutzer zugeordnet. Und die Terminserie ist auch ein Benutzer zugeordnet
Was man hier gemacht hat, man hat die gemeinsamen Eigenschaften
von diesen Sachen, die ich in den Termin eintrage,
zu einem allgemeinen Element zusammengefasst, zu einem abstrakten Element.
Sie sehen das sehr kursiv beschrieben, ist eine abstrakte Klasse.
Dieses abstrakte Element, das hat man dann tatsächlich dem Benutzer zugeordnet.
Und dadurch, dass die hier über Generalisierung und Spezialisierung,
dass sie alles speziellere Einträge sind,
das ist ein spezieller Eintrag, das um das,
um diese speziellen Einträge übernehmen Eigenschaften von ihr Erbeneigenschaften von hier.
Dadurch erben sie auch diese Beziehung zu benutzen,
also in Wirklichkeit werden wir hier vom Termin eine Beziehung zu Benutzer haben,
von der Serie,
vom Kultureintrag von überall,
weil das hier
diese Beziehung ist
Das Gleiche haben wir hier oben nochmal. Es gibt die Monatsansicht,
die Wochenansicht, die Tagesansicht, aber allen ist etwas gemeinsam.
Ja, und deswegen hat man hier eine allgemeine Ansicht noch führbar gehängt.
Auch die allgemeine Ansicht ist ein abstraktes Element.
Man hat es porsiv gezeichnet. Nun, dann haben wir
hier noch weitere Beziehungen, die wir dann gleich nochmal anschauen.
Nämlich, wir hatten diese Aggregation hier,
so da kommen wir gleich, aber hier,
das ist die Generalisierungsbeziehung mit diesem leeren Kreis,
mit dem leeren Dreieck,
sorry,
hier und hier
haben wir die
Lassen Sie uns auf der nächsten Folie noch etwas zur Abstraktion sehen.
Und zwar die Abstraktion zwischen von den Objektbeziehungen und Exemplaren,
Beziehungen zwischen Exemplaren. Ich schreibe das mal mit dran hier,
weil wir diesen Begriff häufiger benutzen,
als den des Objekts, die Beziehung zwischen Exemplaren,
sieht so aus, das ist hier der untere Teil.
Ich trenne das mal, ja, das Unterentspricht im Oberen.
Wir haben einen konkreten Benutzer und das ist in dem Fall Hier,
vielleicht frage ich Sie mal kurz, was ist denn das?
Kleine, hier haben wir ein Bezeichnungen, dann ein Doppelpunkt.
Und dann kommt hier ein Name. Der Name sieht aus wie der Name der Klasse.
Was ist denn das hier vor dem Namen der Klasse?
Diese Frage sollten Sie beantworten können, vielleicht für sich selbst.
Das ist der Name des Objekts, der Name des Exemplares.
Also vor dem Doppelpunkt ist der Name des Exemplares, dann kommt der Name der Klasse.
Dann mit diesem Business ist einfach das hier zu sagen,
also Sie haben da einen Termin namens T1,
wir haben einen Termin namens TIT2, also der Benutzer,
Auf jeden Fall heißt der Hund bei uns B2,
ziemlich gewöhnlicher Name,
der nimmt teil bei dem Termin T1 im Teil,
an dem Termin T2.
Und um das verallgemeinert darzustellen, benutzen wir die Klassenbeziehung.
Wir expeabstrahieren von der Beziehung zwischen einzelnen Objekten und fassen das zusammen und sagen,
jemand vom Typbenutzer nimmt Teil von einem Typ Termin.
Und was wir hier haben, ist hier so ein kleines Sternchen.
Wer weiß denn, was das bedeutet? Wissen Sie das
? Das ist die Vielfachheit, die sagt aus,
dass hier beliebig viele Benutzer an einem Termin teilnehmen können oder
ein Benutzer hat beliebig viele Termine.
Diese beiden Sachen sind dabei
Ja. Dazu können wir also gleich,
das notieren wir uns gleich mal hier.
Ich nehme mal zu dem feinen Platz hier mal drin.
Das kann man hier vorschreiben. Nur so als Erinnerung.
Dieser Stern heißt beliebig viele. Sollten sie alle noch wissen,
dann gibt es noch die 1. No 1,
Keins. Und dann gibt es beliebige Kombinationen, 0 bis 1.
Es kann entweder leer oder genau ein Element sein.
0 bis Stern beliebig viele. Und da gibt es noch
eins bis Stern. Das bedeutet... Ja,
also hier unten ist auch beliebig viele,
aber mindestens eins
So, hier keins oder eins, das brauche ich nicht weiter reinschreiben.
Stattdessen beliebig viele schreibt man, kann man auch das so schreiben,
dass man nur den Stern schreibt, so,
weil sie hier unten, das ist also hier,
das machen wir wieder weg, das stand ja hier schon.
Das ist also das Gleiche. So,
also Null und Stern und Stern ist das Gleiche. So,
was wir hier gesehen haben, ist also die Abstraktion,
die Klassenbeziehung. Zusätzlich möchte ich Sie noch darauf hinweisen,
dass wir hier noch was weiteres haben. Wir haben schon
Assoziationen, die wir auf der Folgenfolie dann nochmal besprechen.
Also wir haben dann hier den Namen der Assoziation und die Richtung und hier eine Rolle.
Das ist etwas, was wir auf der folgenden Folie nochmal haben.
Ich gehe aber trotzdem mal einer zurück,
um die Fragen zu besprechen, welche Beziehungen haben wir hier im Klassendiagramm,
da haben wir schon gerade die erste gesehen,
die Generalisierungsbeziehung und jetzt kommt die Passoziation dazu,
die Aggregation kennen wir auch schon
Wir gehen mal weiter, jetzt zur Assoziation, hier die Definition dazu.
Es ist eine statische Beziehung zwischen Objekten und sie hat erstmal wenig Semantik.
Ja, wenn wir nur diese Linie darstellen.
Es ist grafisch, es ist eine durchgezogene Linie.
Ja, die Richtung ist ein Pfeil
Durch einen Pfeil gekennzeichnet, Pfeil in eine Richtung,
das ist diese Richtung, die wir hier haben.
Die Vielfachheit hat man gerade auf der vergangenen Folie und
die Rolle, das ist das, was hier dransteht.
Also hier zum Beispiel die Rolle Besitzer, das ist die Rolle.
Oder hier ist die Rolle Mitglied. Das kann so dranstehen
und hier sehen Sie die Richtung
Ja, also das ist ganz wichtig,
dass man die Richtung hat, weil wenn sie die Richtung andersrum machen,
dann ist es nicht mehr verwaltet, sondern wird verwaltet von.
So, also es gibt in unserem, sie haben zum Beispiel
einen Freundeskreis oder eine Mailingliste, das wird von ihnen verwaltet.
Sie sind vielleicht der Verwalter dieser Mailingliste. Also es gibt für jede Medienliste oder Gruppe hier WhatsApp-Gruppe,
was auch immer sie wollen, gibt es genau einen,
der ist der Verwalter dieser Liste,
der darf neue Löwen anlegen,
der darf die Liste löschen,
alle anderen dürfen das vielleicht nicht in unserem Kalendersystem
Ich möchte wieder zurückkommen, das Gewicht früher Entscheidungen,
sie entscheiden über die Gestaltung des Systems,
indem sie zum Beispiel solche Kleinigkeiten hier entscheiden.
Es gibt genau einen, der einer Teilnehmergruppe verwalten darf.
Oder gibt es mehrere. Dass es ihnen überlassen, das haben sie. So,
hier haben wir nochmal eine Beziehung, Sie sehen,
jetzt gibt es hier eine Beziehung zwischen Benutzung und Teilnehmergruppe,
da gibt es noch eine.
Und die haben eine unterschiedliche Bezeichnung, die haben also eine unterschiedliche Bezeichnung,
drückt die ja die Bedeutung aus die Semantik.
Ja, also das in die Richtung der Benutzer
verwaltet eine Teilnehmergruppe und die Teilnehmergruppe besteht aus Mitgliedern.
Scheinen wir uns die Vielfachheit an einen Benutzer
Ein Benutzer pro Teilnehmergruppe vorwahl, kann aber mehrere Teilnehmergruppen verweiden.
Das ist nicht beschränkt. Das Gleiche zu, dass
die Teilnehmergruppe aus Mitgliedern besteht. Hier steht jetzt eins bis
beliebig viele. Das heißt, null ist nicht erlaubt,
wenn die Gruppe leer wäre, wäre sie schon aufgelöst.
Ja, also die Teilnehmergruppe ist dann,
mit null ist es keine Teilnehmergruppe und andersrum,
ein Benutzer kann bei verschiedenen vielen, bei beliebig vielen Teilnehmergruppen ein Mitglied sein.
Und wenn wir, da wir vorher geschrieben haben,
bei der vorhergehenden Beziehung, sie ist ein,
so würde man das hier bezeichnen,
als hart
zu tun mit
Als Bedeutung, beziehungsweise wenn da gar nichts dran haben,
wenn wir durch den Pfeil haben, aber... Udo,
wir haben einen Namen der Beziehung, ja,
also das wäre jetzt hier der Name der Beziehung,
besteht aus Verwaltung, wenn nichts dran steht,
wissen wir nur,
hat zu tun mit.
Mehr wissen wir da nicht
So. Manchmal möchte man weitere Informationen haben für so eine Beziehung,
zum Beispiel, dass ich, wenn ich einem, der Benutzer nimmt an einem Termin teil,
also hier der Benutzer nimmt Teil an dem Dings und das wäre die Beziehung heißt Teilnahme, aber wir wissen noch ein bisschen mehr.
Zum Beispiel wissen wir, er wird vorgewandt, ja,
und wie sieht diese Vorwarnung aus, vibriert er sein Handy,
kriegt er eine E-Mail, was auch immer,
das sind weitere Informationen hier dran stehen oder zum Beispiel können wir sagen,
ja, er nimmt ganz bestimmt teil oder nimmt nur eventuell teil,
das sind auch Informationen, das sind sozusagen als Tribute dieser Assoziation,
und das kann man hier mit so einer Assoziationsklasse darstellen.
Das wären sozusagen Attribute, die man hier dranhängen kann.
Man muss dazu sagen, dass so eine Assoziationsklasse nicht wirklich implementiert
werden kann in den meisten Programmiersprachen. Häufig mache ich das dann so,
dass ich hier diese Klasse sozusagen dazwischen schalte,
weil diese Beziehung hier mit den geschichteten Feilen,
also da gehört noch eine Klasse dazwischen,
das gibt es in der Realität meistens nicht,
jedenfalls nicht durch Entwurfsmuster, sondern ich mache es dann so,
dass ich hier noch eine M2N-Beziehung habe über die Teilnahme
Ja, also ich könnte dann das so machen,
dass also ein Benutzer nimmt einen beliebig vielen Sachen teil,
einen Termin und hier die Teilnahme ziehen sich immer auf einen Termin.
Das wäre so denkbar und hier sehen wir das Gleiche nochmal in der Objektsicht.
Also letztlich ist das beides hier die gleiche Information. Hier sagen wir,
wir haben verschieden viele Teilnahmen und wir sagen ja auch,
wir haben verschieden viele Teilnahmen,
hier sagen wir es durch das Sternchen
Das ist natürlich eine sehr viel kompaktere Darstellung, aber das
müssen Sie auch verstanden haben, was damit gemeint ist.
Und das ist dann schon häufig die Grenze,
wo es für einen Auftraggeber schwierig wird, zu verstehen.
So, eine weitere Beziehung haben wir noch, nämlich,
beziehungsweise sogar zwei Aggregationen und Kompositionen.
Dieses Symbol haben wir schon gesehen, ganz zu Anfang,
als wir so eine Anforderung ums Anforderungsmodell ging,
nämlich dieses Symbol mit dieser Raute. Dieses Raute ist Teil von,
ja, wir hatten ja eben schon immer dran geschrieben,
was die Bezeichnung der Beziehung ist, Part-Off,
Teilen von oder Teil ganzes Beziehung.
Am Ende ist das sowas
wie ein Assoziation
Weiter eine verschärfte Form oder genauer plötzlich spezifizierte Form der Assoziation. Und in dem Fall,
mir steht ja noch, dass der Begriff asymmetrisch, ja,
asymmetrisch im Sinne von, nein, ich wollte das eigentlich nicht einschreiben,
sondern ich wollte das nur mal hervorheben, ja,
mit meinem Leuchtstift hier, asymmetrisch ist das,
weil die beiden Teile sind nicht gleich, ja,
und zwar, hier haben wir auf dieser Seite ist das Ganze
Und auf diese Seite ist der Teil, ja, also von dem,
von dieser Raute, der Raute ist auf der Seite des Ganzen,
das ist deine Teil ganzen Beziehung, ja.
Hinzu kommt, dass wir hier noch Vielfachheiten angeben können,
zum Beispiel hier ist ein Stern dran, hier ist ein Stern dran,
also ein Eintrag kannst du beliebig vielen To-do-Einträgen gehören zu weiten anderen Gehirn,
hier haben wir noch so eine Bezeichnung dran sortiert,
dass vielleicht im Moment jetzt nicht so genau.
So wie zur Aggregation
Eine ebenso ein Teil ganzes Beziehung, ist die Komposition.
Die haben wir hier weiter unten stehen.
Also ich mache mal hier eine Strichlinie hin.
Das ist oben die Aggregation und die Komposition.
Und diese Komposition ist auch eine Teil ganzes Beziehung.
Hier steht eine spezielle Form der Aggregation, eine Teil ganzes Beziehung.
Jedoch ist insofern speziell, weil die Einschränkungen dabei sind.
Ein Teil darf nur zu einem Ganzen gehören und es existiert
nur, solange das Ganze existiert.
Das heißt, so ein Termin hier in unserem Beispiel,
der hat einen Beginn und eine Dauer
Wenn der Big Termin aufgelöst wird, dann gibt es auch den Beginn um die Dauer nicht mehr.
Das wäre ein Beispiel für so eine Aggregationsbeziehung. Wir gehen noch mal zu den Folien zurück,
zu den Fragen zurück, die dazu waren, wir haben,
sie sollen sagen, was für Beziehungen wir haben im Klassendiagramm,
da hatten wir jetzt gehabt, die Assoziation, die Generalisierung,
die Aggregration um die Komposition, das waren die Beziehungen,
die wir hier gesehen haben und hier sollen sie noch erklären,
was das ist.
Damit sind wir erst mal bei diesem Abschnitt
durch und es wird dann gleich weitergehen mit 1,5,
aber das war es mal