UML-Klassendiagramm Tutorial Lucid Software Deutsch https://www.youtube.com/watch?v=8P4mTilZCf0 Transkript (automatisch erstellt) 0:00 hallo mein Name ist Zack und ich arbeite für Lucy Chart heute werde ich Ihnen etwas über UML Klassendiagramme erzählen beginnen wir mit einigen der 0:07 grundlegenden Merkmale dann werden wir über Beziehungen sprechen und zum Schluss gehen wir gemeinsam einige Beispiele durch gut lassen Sie uns über 0:14 einige der grundlegenden Merkmale von Klassendiagrammen sprechen um diese Merkmale zu erklären werde ich ein Beispiel zur Veranschaulichung 0:21 präsentieren nehmen wir also an wir bauen ein System für einen Zoo übrigens würden diese Beispiele die ich verwenden werde wahrscheinlich nie den Weg in ein 0:29 tatsächliches Programm finden aber es wird all diese Konzepte leichter zu verstehen machen in unserem so wollen wir also die verschiedenen Dinge 0:36 beschreiben die sich im System befinden sie stellen diese Dinge durch Klassen da und eine Klasse wird mit dieser Form hier dargestellt was gibt es also in 0:44 einem so nun es gibt eine ganze Menge Tiere wir könnten also eine Klasse für unsere Tiere schaffen dazu schreiben Sie einfach den Namen der Klasse in diesen 0:52 oberen Abschnitt wenn unsere Klasse Tier heißt wäre eine Instanz dieser Klasse ein bestimmtes Tier die die Frage ist also wie man die einzelnen Instanzen 1:02 dieser Klassen identifizieren kann sie tun dies durch Attribute ein Attribut ist ein signifikanter Teil von Daten der Werte enthält die jede Instanz dieser 1:11 Klasse beschreiben sie werden auch als Felder Variablen oder Eigenschaften bezeichnet und gehören in den mittleren Bereich hier für unsere Tierklasse 1:20 können wir also Attribute wie Name ID und Alter erstellen auf diese Weise konnten wir eine bestimmte Instanz der Tierklasse identifizieren wie Ruth ID 1:30 Nummer 304 Alter 114 diese müssen allerdings auf eine bestimmte Weise formatiert werden sie beginnen mit der Sichtbarkeit über die wir später noch 1:39 sprechen werden der Name des Attributs der mit einem kleinen Buchstaben beginnt danach folgen ein Doppelpunkt und der Datentyp für den Namen möchten wir eine 1:47 Zeichenkette angeben die anderen Attribute können auf die gleiche Weise formatiert werden außer dass wir eine ganze Zahl angeben wollen da es sich um 1:55 Zahlen handelt nun da wir einige Attribute für unsere Klasse Tiere haben kommen wir zum unteren Abschnitt hier hier fügen Sie Methoden ein die auch als 2:04 Operationen oder Funktionen bezeichnet werden mit Methoden können Sie alle Verhaltensmerkmale einer Klasse angeben wir könnten uns also fragen welche 2:13 unterschiedlichen Verhaltensweisen diese Tierklasse aufweist vielleicht sollten wir die Namen unserer Tiere ändern können so sollte Ruth eigentlich Rita 2:22 heißen erstellen wir also eine Funktion Set Name festlegen wir könnten auch eine Methode zum Essen erstellen denn alle unsere Tiere essen auch diese Methoden 2:32 müssen auf eine bestimmte Weise formatiert werden sie beginnen mit der Sichtbarkeit über die wir als nächstes sprechen werden dann die Methode die mit 2:40 einem kleinen Buchstaben beginnt anschließend setzen sie klammern um die Funktion zu kennzeichnen die sie später programmieren werden sie können hier 2:48 auch Variablen und den Datentyp hinzufügen aber in den meisten Fällen ist das nicht wirklich notwendig wir fügen auch der Methode Essen 2:55 Sichtbarkeit und Klammern hinzu lassen Sie uns nun über Sichtbarkeit sprechen die Sichtbarkeit eines Attributs oder eine Methode liegt die Zugänglichkeit 3:04 für dieses Attribut oder diese Methode fest im Moment haben wir also ein Minuszeichen für alle diese Attribute und Methoden was bedeutet dass Sie 3:12 privat sind auf sie kann von keiner anderen Klasse oder unter Klasse zugegriffen werden das genaue Gegenteil ist das Pluszeichen das bedeutet dass 3:21 ein Attribut oder eine Methode öffentlich ist und von jeder anderen Klasse aufgerufen werden kann eine andere Art der Sichtbarkeit wird 3:29 durch die Raute angezeigt was bedeutet das ein Attribut oder eine Methode geschützt ist auf diese kann nur von der gleichen Klasse oder ihren Unterklassen 3:37 zugegriffen werden und schließlich ist dann noch die Tilde oder die verschnörkelte Tilde wie ich sie gerne nenne diese setzt die Sichtbarkeit auf 3:46 Paket oder Standard was bedeutet dass sie von jeder anderen Klasse verwendet werden kann solange sie sich im selben Paket befindet dies wird jedoch nur 3:54 selten genutzt in den meisten Fällen werden ihre Attribute privat oder geschützt sein und die Methoden sind öffentlich lassen Sie uns diese 4:01 Grundlagen anhand eines weiteren Beispiels kurz durchgehen lassen Sie uns eine Klasse für Mitarbeitende erstellen wir können mitarbeiten der Attribute wie 4:11 Name emploie ID Telefonnummer und Abteilung geben wir wollen das alle diese Attribute 4:19 privat sind und dann könnten wir eine einfache Methode erstellen wie die Aktualisierung der Telefonnummer die wir dann auf öffentlich setzen sie haben 4:28 vielleicht bemerkt dass ich zur Erstellung dieser uml-klassendiagramme eine diagramm-software verwendet die gleichen 4:34 Grundsätze gelten auch wenn sie mit Stift und Papier arbeiten aber eine diagramm-software macht es viel einfacher die Diagramm Software die ich 4:42 heute benutze ist Lucid Chart und sie können sich kostenlos anmelden indem Sie auf den Link oben rechts klicken alles was Sie brauchen ist eine E-Mail-Adresse 4:51 und dann können Sie mitverfolgen wie wir diese Klassendiagramme erstellen als nächstes müssen wir uns mit den verschiedenen Beziehungen zwischen den 4:59 Klassen befassen die erste Art der Beziehung die wir beschreiben werden ist die Vererbung ich werde mit dem z.B weitermachen weil es die Logik dieser 5:07 Beziehungen leicht verständlich macht wir werden uns später mit einem technischeren Beispiel aus der Praxis befassen okay also Vererbung nehmen wir 5:16 an in unserem so geht es nur Schildkröten Otter und die weniger bekannten aber dennoch faszinierenden Plumploris in unserem System wollen wir 5:25 jede von ihnen als eigene Klasse unterscheiden wir machen also drei neue Klassen für Schildkröte Otter und Plumploris ich werde sie etwas kleiner 5:33 machen damit man sie besser sehen kann anstatt nun Attribute für Name ID und Alter zu duplizieren können wir diese Klasse zu Unterklassen der Klasse Tiere 5:43 machen indem wir offene Pfeile wie diese zeichnen dies ist eine vererbungsbeziehung wir sagen dass diese Unterklassen alle Attribute und Methoden 5:52 der Oberklasse Erben sie können auch die Begriffe Kind und Elternklasse verwenden unsere otterklasse wird also die Attribute Name Alter und ID Erben und 6:03 dann könnten wir ein otterspezifisches Attribut hinzufügen zum Beispiel die schnurrhallenge einer der Vorteile der Vererbung besteht darin dass wir wenn 6:12 wir einen Attribut für alle Tiere ändern oder hinzufügen wollen nicht erst die Schildkröte und dann den und dann den Plumploris ändern müssen wir nehmen die 6:20 Änderungen nur in der Tierklasse vor und sie gilt für alle Unterklassen in diesem Szenario gibt es auch das was man Abstraktionen nennt Tier ist eine 6:29 abstrakte Klasse denn in unserem System wird jedes Mal wenn wir eine unserer Klassen instanziieren wollen eine Schildkröte ein Otter oder ein 6:37 Plumploris sein wir würden die Tierklasse selbst nicht instanziieren die Tierklasse ist nur eine Möglichkeit die Dinge zu vereinfachen und den Code 6:46 trocken zu halten damit sie sich nicht wiederholen müssen um zu zeigen dass es sich um eine abstrakte Klasse handelt setzen wir den Namen in Kursivschrift 6:54 man könnte auch den Klassennamen in diese Dinger schreiben aber ich bevorzuge Kursivschrift eine andere Art von Beziehung ist die Assoziation wenn 7:03 wir also eine Klasse für Seeigel hätten könnten wir eine Assoziation zwischen Otter und Seeigel ziehen die nur durch eine einfache Linie dargestellt wird und 7:12 wir könnten sagen Otter fressen Seeigel es besteht keine Abhängigkeit zwischen ihnen es handelt sich nur um eine grundlegende assoziationsbeziehung die 7:22 ziemlich einfach ist die nächste Art der Beziehung ist Aggregation es handelt sich um eine ganz besondere Art der Assoziation die ein ganzes und seine 7:31 Teile spezifiziert um also mit unserem Zoo Beispiel fortzufahren noch einmal die soll nur helfen die Logik zu erklären lassen Sie uns eine neue Klasse 7:39 für eine Gruppe von Schildkröten erstellen eine Gruppe von Schildkröten wird als creep bezeichnet und das ist ziemlich cool hier ist also unsere 7:47 creep-klasse und sie hat eine Beziehung zur Schildkröte jede der Schildkröten in unserem Zoo könnte ein Teil eines Kriegs sein aber nicht zwangsläufig eine 7:57 Schildkröte könnte jederzeit aus dem Krieg ausgenommen werden und trotzdem alleine existieren diese Art der Beziehung bei der ein Teil außerhalb des 8:05 ganzen existieren kann ist Aggregation und wir nehmen Sie mit einem offenen Diamanten zu Erkenntnis es gibt auch eine Beziehung bei der der Teil nicht 8:14 außerhalb des ganzen existieren kann das und man Komposition um dies zu veranschaulichen werde ich ein paar neue Klassen erstellen sagen wir einfach wir 8:24 haben mehrere verschiedene Besucherzentren in unserem Zoo und jedes dieser Besucherzentren hat eine Lobby und eine Toilette wenn nun eines unserer 8:34 Besucherzentren abgerissen würde würde auch die Lobby und die Toilette dieses Besucherzentrums zerstört werden diese Räume könnten ohne das Besucherzentrum 8:42 in dem sie sich befinden gar nicht existieren das ist Komposition wenn ein untergeordnetes Objekt ohne sein übergeordnetes Objekt nicht existieren 8:51 kann wir stellen eine kompositionsbeziehung mit einem geschlossenen Diamanten da ein weiteres wichtiges Konzept wenn es um Beziehungen 9:00 in ulml Klassendiagrammen geht ist Multiplizität mit der Multiplizität können sie nur mehrere Beschränkungen für ihre Beziehungen festlegen nehmen 9:09 wir zum Beispiel an wir möchten festlegen dass unsere Besucherzentren nur eine Lobby haben sollen wir schreiben hier einfach die Zahl 1 was 9:17 bedeutet das ist nur eine einzige Lobby pro Besucherzentrum geben kann aber bei den Toiletten sollten wir vielleicht so vorgehen dass es mindestens eine 9:26 Toilette pro Besucherzentrum gibt aber die Möglichkeit besteht so viele zu haben wie man möchte wir würden diese Schreibweise verwenden um eine oder 9:34 mehrere Toiletten zu bezeichnen andere Arten der Multiplizität sind 0-1 was eine optionale Beziehung ist n steht für eine bestimmte Anzahl die in unserem 9:44 Beispiel eins war aber je nach Anwendungsfall auch eine andere Zahl sein kann null bis viele eins bis viele oder einen bestimmten Zahlenbereich 9:53 hoffentlich haben unsere z.B dazu beigetragen diese Konzepte zu erklären aber ich möchte Ihnen zeigen wie ein Beispiel aus der realen Welt aussehen 10:02 würde dies ist ein UML Klassendiagramm für einen Online Warenkorb wenn Sie sich dieses Diagramm mit mir ansehen möchten klicken Sie einfach auf den Link in der 10:11 oberen rechten Ecke wie Sie sehen gibt es in diesem System mehrere Klassen und Beziehungen gehen wir also einige davon durch wir beginnen 10:20 mit der benutzerklasse sie enthält Attribute für Benutzer-ID Passwort Anmeldestatus und registrierungstatum auf der rechten Seite befinden sich die 10:29 verschiedenen rückgabearten und auf der linken Seite ist die Sichtbarkeit die auf privat eingestellt ist sie können sehen wie diese von den Attributen 10:37 zurückgegebenen Werte speziell eine Instanz der benutzerklasse beschreiben würden weiter unten haben wir eine öffentliche Methode zur Überprüfung der 10:45 Anmeldung die einen Burschen Wert zurückgibt das macht Sinn oder Methoden sind Verhaltensweisen einer Klasse wenn Sie sich also bei Ihrem Benutzerkonto 10:53 anmelden gibt es eine Funktion die ihre Anmeldedaten überprüft kommen wir nun zur Klasse Kunde dieser Pfeil sagt uns dass Kunde ein Kind von 11:02 Benutzer ist Kunde erbt also alle Attribute und Methoden der Klasse Benutzer das gleiche gilt für die Klasse Administrator beide Erben vom Benutzer 11:11 haben aber auch ihre eigenen spezifischen Attribute und Methoden so kann der Administrator den Katalog Aktualisieren der Kunde aber nicht 11:20 ausgehend vom Kunden gibt es mehrere Linien mit dem geschlossenen Diamanten wie Sie sich erinnern handelt es sich also um kompositionsbeziehungen was 11:28 bedeutet dass die Teile nicht ohne das ganze existieren können wenn eine Instanz der Klasse Kunde wenn das Konto dieses Kunden zerstört wurde würde sein 11:37 wahren Kopf zerstört werden und seine Bestellungen würden verloren gehen sie können nicht außerhalb des Kunden existieren 11:45 das gleiche gilt für die Versand Informationen und die Bestellangaben wenn es keine Bestellungen gibt gibt es auch keine bestell oder 11:52 Versandinformationen der letzte Punkt den wir in diesem Beispiel betrachten ist die Multiplizität sie können sehen dass ein Kunde 0 oder viele Bestellungen 12:00 haben kann macht Sinn oder sie könnten einen Kundenkonto für einen Onlineshop anlegen aber nie etwas kaufen oder sie sind ein Stammkunde und geben mehrere 12:10 Bestellungen auf auf der anderen Seite kann ein Auftrag nur einem Kunden gehören es wäre ziemlich verwirrend wenn eine bestimmte Bestellung mit einer 12:18 eindeutigen bestell-id bei mehreren verschiedenen Kunden doppelt vorhanden wäre und hier können Sie eine Eins zu 12:26 eins-beziehung erkennen jede Bestellung hat nur eine einzige Bestellnummer und Bestellnummern gehören nur zu einer einzigen Bestellung vielen Dank dass Sie 12:35 sich dieses Tutorial zu OML Klassendiagrammen angesehen haben abonnieren Sie den Kanal und hinterlassen Sie unten einen Kommentar 12:42 vergessen Sie nicht sich über diesen Link für ein kostenloses Lucy Chart Konto anzumelden und sie werden im Handumdrehen in der Lage sein ihre 12:50 eigenen uml-klassendiagramme zu erstellen [Musik] 13:02 [Musik]