OOM

Die vorliegenden Materialien wurden von Daniel Hoherz und André Tempel erstellt. Sollten andere Editoren die Materialien erstellt haben, werden diese explizit genannt.

Der neue Lieferdienst „Food Now!“ soll bald seine erste Filiale überhaupt und sogar in Osnabrück eröffnen.
Ein Logo und ein Gebäude mit kompletter Ausstattung gibt es bereits.

Bildquelle: Bild von KI erstellt

Sie sind in der Technikabteilung von „Food Now!“ angestellt und sollen sich um die digitale Modellierung der gesamten Unternehmensstruktur kümmern. Und ja, das ist eine sehr große und anspruchsvolle Aufgabe. Wie gut, dass es weitere Mitarbeitende in der Abteilung gibt, sodass die Arbeit aufgeteilt werden kann. Aber dazu später mehr.
Ihre erste Aufgabe ist es, die Restaurants, von denen Gerichte und Getränke abgeholt werden, zu modellieren, sodass diese später algorithmisch umgesetzt werden können.
Ein erster Vorschlag des Praktikanten Till kommt per Email an:

Vorschlag von Till

  1. Bearbeiten Sie in Partnerarbeit die folgenden Aufgaben. Beachten Sie, dass Sie Ihre Ergebnisse schriftlich dokumentieren.
  2. Beschreiben Sie Tills Vorschlag.

    Analysieren Sie Tills Vorschlag.

Ihre Mitarbeiterin Kara hat ebenfalls einen Vorschlag erstellt. Dieser ist unten abgebildet.

Vorschlag von Kara

Karas Konzept für ein einheitliches Restaurant-Management:
Kara möchte eine universelle Vorlage – eine Art Bauplan – für Restaurants entwickeln. Dieser Bauplan soll als Standard für die Erstellung neuer Restaurant-Einträge dienen. Jedes Restaurant wird dann nach diesem einheitlichen Schema angelegt.
Dazu plant Kara eine spezielle Operation, die im Bild mit „c“ gekennzeichnet ist. Diese Operation erhält die spezifischen Werte für die Eigenschaften (Attribute) des jeweiligen Restaurants, wie z. B. Adresse, Sitzplätze oder Öffnungszeiten, und fügt sie in die Vorlage ein.
Falls ein neuer Datentyp benötigt wird, weil die vorhandenen nicht ausreichen, hat Kara dies vorerst mit dem Platzhalter „unbekannter Datentyp“ markiert. Die genaue Ausarbeitung dieses Problems soll zu einem späteren Zeitpunkt erfolgen.

  1. Vergleichen Sie in Partnerarbeit Karas und Tills Vorschläge anhand der folgenden Situationen miteinander, indem Sie beurteilen, wie hoch der notwendige Programmieraufwand ist, wenn…
  2. zu den ersten drei Restaurants sechs neue hinzukommen.

    bspw. die Operation bestellEmpfangen nicht so zu funktioniern, wie es gedacht war. Betrachten Sie für diesen Fall die beiden folgenden Situationen:

    • Von maximal zwei Partnerrestaurants gehen Bestellungen ein. Wie verändert sich der Programmieraufwand für das Problem?
    • Von einer zweistelligen Anzahl an Partnerrestaurants gehen die Bestellungen ein. Wie verändert sich der programmieraufwand für das Problem?

    Eine neue Operation soll implementiert werden und für alle Restaurants verfügbar sein. Betrachten Sie die beiden folgenden Situationen:

  3. Bei maximal zwei Partnerrestaurants soll die Operation ergänzt werden.
  4. Bei einer zweistelligen Anzahl an Partnerrestaurants soll die Operation ergänzt werden.

Grundsätzlich gibt es zwei zentrale Ansätze, um ein Problem algorithmisch zu lösen:

  1. Prozedurale Vorgehensweise
    Bei dieser Methode wird für jedes Restaurant ein eigenständiges digitales „Abbild“ erstellt, das unabhängig von anderen Restaurants existiert. Jedes Restaurant wird also separat programmiert, was zu einer eher linearen und schrittweisen Umsetzung führt.
  2. Objektorientierte Vorgehensweise
    Hier geht man anders vor: Zunächst analysiert man die gemeinsamen Eigenschaften (Attribute) und Fähigkeiten (Operationen) aller in Frage kommenden Restaurants. Daraus wird ein allgemeiner „Bauplan“ – eine sogenannte Klasse – erstellt. Ein konkretes Restaurant ist dann ein Objekt dieser Klasse, das nach dem vorgegebenen Bauplan erzeugt wird.

Wahl des Paradigmas
Beide Ansätze sind legitim, wobei die Entscheidung von der Programmiersprache und der konkreten Problemstellung abhängt. In einer Lieferservice-Situation mit vielen Restaurants ist die objektorientierte Vorgehensweise jedoch meist vorteilhafter.

Vorteile der objektorientierten Programmierung
Aus Aufgabe 2 lassen sich folgende Vorzüge ableiten:

  • Effizientere Fehlersuche: Da die Logik in der Klasse zentralisiert ist, muss man nur dort nach Fehlern suchen.
  • Einfachere Änderungen und Erweiterungen: Anpassungen müssen nur in der Klassendefinition vorgenommen werden und wirken sich automatisch auf alle Objekte aus.
  • Schnelle Erzeugung von Objekten: Durch Instanziierung können viele Objekte schnell und einheitlich erzeugt werden.
  • Bessere Übersichtlichkeit: Statt langen, redundanten Code zu schreiben, nutzt man die Methoden der Klasse, was den Programmcode strukturierter und wartbarer macht.

Fazit
Je nach Anwendungsfall haben beide Programmier-Paradigmen – prozedural und objektorientiert – ihre spezifischen Vor- und Nachteile. Die objektorientierte Programmierung bietet jedoch besonders bei komplexen oder wiederkehrenden Strukturen deutliche Vorteile.

Sie haben bereits erfahren, dass es unterschiedliche Formen des Programmierns gibt. Sie haben zuvor immer prozedural programmiert. Dabei haben Sie die Kontrollstrukturen (Anweisung, Sequenz, Bedingte Anweisung, Schleife), Variablen und Operationen kennengelernt. Wir werden all diese Sachen wieder brauchen und nochmal lernen. Denn wir brauchen das, um zukünftig objektorientiert zu programmieren, doch dazu müssen Sie erstmal objektorientiert denken und planen. Zu diesem Zweck werden Sie zunächst einiges über die objektorientierte Modellierung lernen.
In der folgenden Übersicht sehen sie, welche Kompetenzen Sie im Laufe dieser Einheit erwerben. Sie können diese zur Selbstkontrolle nutzen, dazu können Sie diese Übersicht herunterladen, um Ihren Lernfortschritt zu dokumentieren.

Inhalt Mindeststandard Regelstandard Expertenstandard
Klassenkarten Ich kann die Bestandteile von Klassenkarten benennen, sowie Klassen und Objekte definieren. Ich kann gegebene Klassenkarten unter Verwendung der Fachbegriffe im Sachkontext analysieren und Teile ergänzen. Ich kann aus einem Sachkontext Klassenkarten samt Attributen und Operationen modellieren.
Beziehungen Ich kann die beiden Beziehungstypen Vererbung und Assoziation beschreiben und sie in einem Klassendiagramm bestimmen. Ich kann in einem gegeben Klassendiagramm die Beziehungstypen im Sachkontext fachsprachlich erläutern. Ich kann aus einem Sachkontext die Beziehungstypen in ein Klassendiagramm ergänzen.

Diese UML-Klassenkarte (Unified Modelling Language) sieht sehr ähnlich zu den Kästen der ersten Variante aus. Der Name der Klasse befindet sich ganz oben. Im darunter liegenden Bereich befinden sich die Attribute und im Bereich darunter die Operationen, die ein nach dem Bauplan instanziiertes Objekt der Klasse Restaurant ausführen kann. Attribute und Operationen werden klein geschrieben und Klassennamen groß.
Weiterhin befinden sich vor allen Attributen ein „-“ und vor allen Operationen, außer c Restaurant(...) ein „+“. Die Bedeutung von „-“ und „+“ wird zunächst ignoriert und zu einem späteren Zeitpunkt geklärt.
Die Operation Restaurant(s: Zeichenkette, po: Zeichenkette,...,zBank: Wahrheitswert) ist ein sogenannter Konstruktor. Mit Hilfe dieser Operation kann man im Computer ein Objekt der Klasse Restaurant instanziieren, wenn man dem Computer die notwendigen Werte der Attribute mitgibt. Man „sagt“ dem Computer also, dass er ein Objekt der Klasse Restaurant mit der Straße s, der Postleitzahl po usw. erstellen soll.
So, nun erzeugt man z. B. mit der hier vereinfacht dargestellten Anweisung

neues Restaurant: Restaurant(Am Neumarkt 2, 49074,...,false)

das digitale Abbild des Restaurants McDonnells. Wenn ein Objekt der Klasse Restaurant, z. B. McDonnells, existiert und die Operation bestellungSenden() ausführen soll, schaut der Computer in der Klasse Restaurant nach, was das Objekt McDonnells genau machen soll.

Formale Darstellung und Fachbegriffe von Klassenkarten
  1. Entwerfen Sie in Einzelarbeit eine geeignete Klassenkarte für einen Klasse Kunde. Sie können selbst kreativ sein, welche Attribute und Operationen Sie für notwendig erachten. Nutzen Sie dafür das Tool yEd Graph Editor. Nutzen Sie die graphischen Elemente aus dem Reiter „UML“.
  2. Beschäftigen wird uns nun mit dem Personal von „Food Now!“.
    Vorschlag für die vier Klassen der Mitarbeitenden

    Beschreiben Sie fachsprachlich präzise eine der Klassenkarten.

    Vergleichen Sie die vier Klassen miteinander.

Praktikant Till möchte sich profilieren, nachdem sein erster Vorschlag abgelehnt wurde.
Er präsentiert die folgende Idee.

Idee von Till

Interpretieren Sie Tills Idee.

Filialleitung, Abteilungsleitende, Verwaltungsmitarbeitende und Lieferdienstfahrende sind spezielle Personen. Alle gemeinsamen Attribute und Operationen wurde in eine sogenannten Oberklasse Person, auch Superklasse genannt, ausgelagert. Die vier anderen Klassen sind von der Klasse Person abgeleitete Klassen, auch Subklassen genannt.
Wenn ein Objekt der Klasse Filialleitung oder von einer der anderen drei Klassen erstellt wird, erbt dieses Objekt alle Attribute und Operationen der Superklasse Person.
Also besitzt auch jedes Objekt der Klasse Filialleitung und jeder Lieferdienstfahrende die Attribute name, adresse usw. und es kann alle Operationen der Klasse Person ausführen.
Die Besonderheiten der Subklassen, also zusätzliche Attribute oder Operationen finden sich nun nur in der jeweiligen Klassenkarte der Subklasse.
Diese Vorgehensweise, Vererbung genannt, bietet sich immer an, wenn mehrere Klassen, bis auf wenige Attribute und Operationen, identisch sind.
Die Beziehung der Vererbung stellt man im UML-Klassendiagramm mit einem Pfeil mit leerer Spitze, wobei diese auf die Superklasse zeigt, dar.
Die Vorteile bei der Nutzung des Vererbungskonzeptes sind:

  • Weniger Programmieraufwand, da man die meisten Attribute und Operationen nur in der Superklasse implementieren muss.
  • Datensparsamkeit: Jedes Objekt erhält nur genau die Attribute und Operationen, die es tatsächlich benötigt.
  • Wartungsfreundlichkeit: Bei Fehlern oder Änderungen, wird man häufig nur in der Superklasse arbeiten müssen.
  • Es können leichter andere spezielle Klassen ergänzt werden.

Gerade bei komplexeren Softwaredesigns ist dieses Vorgehen von Vorteil und vor allem effizient.

Um herauszufinden, ob eine Klasse eine Subklasse einer anderen Klasse ist, hat der „Ist-ein“-Test bewährt. Dabei wird ein Satz gebildet wie „Ein Filialleitung ist eine Person.“ Wenn dieser Satz sinnvoll ist, handelt es sich um eine Vererbung.

  1. Unten sind zwei Klassenkarten für ein Adventurespiel abgebildet. Das Spiel soll dem Spieler am Anfang ermöglichen verschiedene Heldenklassen im Laufe des Spiels auszuwählen.
    Klassenkarten: Zauberer und Kriegerin

    Die Klassen sollen zu einer Oberklasse Held zusammengefasst werden.
    Entwickeln Sie ein entsprechendes Klassendiagramm mit Vererbung. e

    Erweitern Sie Ihr Klassendaigramm um die Klasse Priester. Ein Priester ist ein weiterer spielbarer Charakter, der andere Spieler und sich selbst mit einem Zauber heilen kann.

  2. Ein großer Softwareentwickler, dessen Name nicht genannt werden will, möchte eine Software zur Verwaltung von Bauernhöfen entwickeln. Im Vorfeld hat der Entwickler Beschreibungen von Landwirten eingeholt, um sich so einen Überblick über die Zusammenhänge eines Bauernhofes zu machen.
    In einem Bauernhof arbeiten Personen, diese haben stets einen Vor- und Nachnamen, Alter und ein Geschlecht. Weiterhin wird die geleistete Arbeitszeit im Monat und die Anzahl der verbleibenden Urlaubstage festgehalten. Jeder Person kann also Urlaub nehmen und muss arbeiten. Die Personen werden einmal unterteilt in Bauern, welche noch zusätzlich durch die Berufsjahre gekennzeichnet sind und die Knechte, welche durch ihre bisherige Ausbildungszeit gekennzeichnet sind. Die Bauern bilden die Knechte aus. Unter den Bauern gibt es einen Hofleiter, der neben den Attributen des Bauern noch eine ID hat, die ihn als Hofleiter kennzeichnet. Der Hofleiter hat wie die Bauern und Knechte auch die Arbeit auf dem Hof zu erledigen und die Verwaltungsarbeiten zu bewältigen. Dann gibt es natürlich den Bauernhof, der von dem Hofleiter betrieben wird und auf dem diverse Bauern und Knechte arbeiten. Jedes Tier auf einem Hof ist gekennzeichnet durch eine Tier-ID. Als Tiere sind auf einem Bauernhof Kühe und Hühner vertreten, die alle etwas fressen. Die Kühe kennzeichnen sich durch die Menge Milch aus, die sie bisher in ihrem Leben abgegeben haben, ihr Alter, Geschlecht und ob sie trächtig sind. Die Hühner sind durch ihre durchschnittlichen Eier pro Woche und ihr Alter charakterisiert. Jedes Fahrzeug hat ebenfalls eine Fahrzeug-ID und das Baujahr, sowie das Anschaffungsdatum. Die Fahrzeuge werden hinsichtlich Trecker, Anhänger und Mähdrescher unterschieden. Anhänger haben eine gewisse Ladekapazität, wohingegen Trecker und Mähdrescher eine gewisse Leistung besitzen. Die Trecker können eine Anhängerkupplung haben. Ein solcher Hof ist gekennzeichnet durch einen Namen, die Anzahl der Bauern und Knechte, die Anzahl der Tiere auf dem Hof und der Anzahl der Fahrzeuge.
  3. Entwickeln Sie ein geeignetes Klassendiagramm mit dem yEd Graph Editor. Hinweis: Die Klassenkarten werden nicht alle miteinander verbunden sein.

    Beschreiben Sie verbal, welche Beziehung zwischen dem Hofleiter und dem Hof vorliegt.

Wir haben uns zuvor mit dem Bauernhoffszenario beschäftigt und dort gesehen, dass es neben der Vererbung noch andere Beziehungen zwischen Klassen geben sollte.

Hof und Hofleiter

Beschreiben Sie nochmal zur Wiederholung, wie die beiden Klassen Hof und Hofleiter in Beziehungen stehen.

Eine Assoziation konkretisiert die Beziehung zwischen Klassen genauer. In unserem beispiel leitet der Hofleiter einen Hof und somit würde mal im Klassendiagramm einen Strich zwischen diesen beiden Klassen ziehen und auf dem Strich schreiben „leitet“ samt einem Pfeil, damit klar ist, in welche Richtung die Beziehung zu lesen ist.

Assoziation zwischen Hof und Holfeiter

Assoziationen modellieren die Beziehungen zwischen Objekten und stellen eine „hat-ein“- oder „Arbeitet-mit“-Bezeihungen dar. Sie stellen also dar, wie und ob die Klassen miteinander interagieren können.

  1. Sie haben im Abschnitt über die Vererbung die Oberklasse Held aus den beiden Unterklassen Kriegerin, Zauberer und Priester gebildet. Dieses Klassendiagramm werden wir nun erweitern. Sie können sich die Datei hier herunterladen und im yEd Graph Editor öffnen.

    Finden Sie sich 3er- bis 4er-Gruppen zusammen. Jeder aus der Gruppe (Einzelarbeit) entwirft ein spezfisches Monster als Klassenkarte (Attribute und Operationen nicht vergessen), welches in einem solchen Videospiel auftauchen könnte.

    Tauschen Sie sich in der Gruppe über Ihre Monster aus und entwickeln Sie eine gemeinsamen Oberklasse Monster.

    Sie sollten nun in Ihrem Klassendiagramm Monster und Helden und die jeweiligen Unterklassen haben.
    Modellieren Sie zwischen diesen Klassen weitere Beziehungen, um kenntlich zu machen, wie die Klassen miteinander interagieren.

  1. Nun soll ein komplexes UML-Klassendiagramm für unseren Lieferdienst entworfen werden. Die Vorgehensweise wird nun erläutert.
    In vielen Bereichen wird das Lösen von Problem und die Umsetzung von Anforderungen mit agilen Methoden bearbeitet.
    Agile Methoden sind in Wirtschaft und Wissenschaft moderne Arbeitsformen, welche unter anderem die folgenden besonderen Eigenschaften haben:
    • Es geht um das Lösen kleinerer Aufgaben, welche aus der Aufteilung eines großen Problems entstanden sind,
    • Es werden Selbstorganisation und Eigenverantwortlichkeit gefördert und das „Management“ ist im eigentlichen Entwicklungsprozess nicht involviert,
    • Sie sind besonders für Teams geeignet, die häufig Schritte überdenken und anpassen müssen (hier Schülerinnen und Schüler),
    • Es gibt mehr Transparenz und Verantwortlichkeit der Teams,
    • Probleme können durch die regelmäßigen Wiederholungen schneller erkannt und behoben werden.
    Dezidierte Rollen:
    Product Owner Master Entwickler
    Ziele (Anforderungen an das Produkt und spezifische Anforderungen) festlegen → Kann als Kunde/Auftraggeber betrachtet werden Beseitigen von Hindernissen im Arbeitsablauf, Einhaltung der Rahmenstruktur, Moderator, nicht weisungsbefugt Diejenigen, welche selbstorganisiert das Produkt entwickeln. Die Teams werden, je nach Modell, aus interdisziplinären Experten oder aus Experten aus einem Gebiet besetzt.
    Nicht im Team → Lehrkraft Teammitglied s.-Team

    Die Arbeit wird von den Schülerteams selbst organisiert, nachdem der „Product Owner“, hier die Lehrkraft, die konkreten Anforderungen an des Produkt festgelegt hat. Anschließend läuft die Arbeit in mehreren festgelegten Schriften ab:

    Ablauf des Agilen Workflows
    Aktion Aufgaben
    Planung des Schritts Überblick verschaffen, was bereits erledigt ist
    Planung der Ziele des aktuellen Schritts
    Aufteien von Aufgaben
    Sicherstellen, dass alle Teammitlgieder wissen, was zu tun ist
    Täglicher Schritt Fertigstellung der aktuellen Ziele
    Reflexion des Schritts Mit allen zusammen, auch der Lehrkraft
    Wurde das aktuelle Ziel erreicht?
    Was soltlen wir nicht mehr tun?
    Was sollten wir beibehalten?
    Ergebnisse der Reflexion dokumentieren

    (Gruppenarbeit) Identifizieren Sie als Gruppe weitere Klassen, welche in die Modellierung des Lieferdienstes einbezogen werden sollten.
    Besprechen Sie mit den Personen Ihrer Gruppe den Planungsschritt und teilen Sie untereinander die Arbeit auf.

    (Einzel- oder Partnerarbeit) Arbeiten Sie die Ihnen zugewiesenen Dinge ab.

    (Gruppenarbeit) Stellen Sie sich gegenseitig Ihre Ergebnisse vor.
    Finden Sie gemeinsam Optimierungsmöglichkeiten und stellen Sie geeignete Verbindungen zwischen den Klassen her.

    Wiederholen Sie gegebenenfalls die Aufgabenteile a bis c.

  1. (optional, PA) Die Schulleiterin eines Gymnasiums möchte ein digitales System einführen, das die Verwaltung von Lehrkräften, Schülerinnen und Schülern sowie Klassen unterstützt. Dazu hat sie dem IT-Dienstleister des Schulträgers eine Reihe von Anforderungen übermittelt, die nun in ein UML-Klassendiagramm umgesetzt werden sollen.
    Das Programm soll es ermöglichen, Lehrkräfte, Schüler:innen und Klassen anzulegen und zu verwalten. Lehrkräfte müssen mit ihrem Namen sowie den beiden Fächern, die sie unterrichten, erfasst werden. Darüber hinaus sollen sie in der Lage sein, auf Anfrage eine Note für eine:n bestimmte:n Schüler:in in einem ihrer Fächer zu vergeben.
    Besondere Beachtung verdienen dabei Schulleitungsmitglieder und Klassenlehrkräfte: Während Schulleitungsmitglieder eine zusätzliche Aufgabe wahrnehmen und Zeugnisse unterschreiben dürfen, sind Klassenlehrkräfte einer bestimmten Klasse zugeordnet und sollen ebenfalls Zeugnisse unterschreiben können.
    Für die Schüler:innen müssen der Name, das Alter und die zugehörige Klasse gespeichert werden. Zudem soll festgehalten werden, ob eine Schülerin oder ein Schüler bereits einen Jahrgang wiederholt hat. Darüber hinaus soll das System abbilden, dass Schüler:innen am Unterricht teilnehmen, also zuhören und lernen.
    Klassen werden durch eine Bezeichnung (z. B. „9b“) und die Angabe des Jahrgangs definiert.
    Ihre Aufgabe besteht darin, auf Basis dieser Anforderungen ein UML-Klassendiagramm zu erstellen. Berücksichtigen Sie dabei alle notwendigen Klassen, Attribute und Methoden sowie die passenden Datentypen. Orientieren Sie sich an den gängigen primitiven Datentypen wie Ganzzahlen (Integer), Zeichenketten (String), Wahrheitswerten (Boolean) oder Dezimalzahlen (Double).
  2. (optional, PA) Stellen Sie sich vor, Sie sollen das klassische Spiel Pac-Man programmieren. Um ein passendes UML-Klassendiagramm zu entwerfen, müssen Sie zunächst die zentralen Spielmechaniken verstehen:
    Pac-Man selbst ist die Hauptfigur des Spiels. Er bewegt sich ständig in die Richtung, in die er gerade blickt – diese Blickrichtung lässt sich durch Tastendrücke (nach oben, unten, links oder rechts) steuern. Sobald Pac-Man über kleine oder große Punkte im Labyrinth läuft, werden diese automatisch „gefressen“ und erhöhen seine Punktzahl – wobei größere Punkte mehr Punkte einbringen als kleine.
    Die Gegner des Spiels sind farbige Geister, die sich zufällig durch das Labyrinth bewegen. An jeder Kreuzung ändern sie ihre Richtung. Obwohl die Geister unterschiedliche Farben haben, verhalten sie sich im Grunde gleich: Sie starten in einer speziellen Box, aus der sie in regelmäßigen Abständen herauskommen. Berührt Pac-Man einen Geist, verliert er ein Leben und erscheint wieder an seiner Ausgangsposition. Für kurze Zeit ist er danach unverwundbar, um ihm eine faire Chance zu geben.
    Zusätzlich tauchen im Spiel gelegentlich Früchte auf, die für kurze Zeit sichtbar sind und bei Einsammeln die Punktzahl stark erhöhen. Noch seltener erscheint ein Power-Up: Nimmt Pac-Man dieses auf, kann er für begrenzte Zeit die Geister fressen. Während dieser Phase verändern die Geister ihr Aussehen (z. B. werden sie blau), und nach dem „Gefressenwerden“ kehren sie in ihre Startbox zurück.
    Analysieren Sie gemeinsam in Ihrer Gruppe die beschriebenen Spielmechaniken und erstellen Sie ein UML-Klassendiagramm, das die notwendigen Klassen, Attribute und Methoden abbildet. Überlegen Sie dabei, welche Objekte (z. B. Pac-Man, Geister, Punkte, Früchte) benötigt werden, wie sie interagieren und welche Datentypen (z. B. für Positionen, Punktzahlen, Zeitlimits) sinnvoll sind. Berücksichtigen Sie auch besondere Zustände wie die Unverwundbarkeit oder den Power-Up-Modus.
  3. Die folgenden Aufgabe bearbeiten Sie in arbeitsteiliger Partnerarbeit und bitte Ihres Kursniveaus entsprechend. Stellen Sie sich anschließend Ihre Lösungen vor.
    Person 1 Person 2
    Beschreiben Sie den Grundsätzlichen Aufbau einer Klasse anhand der Klasse WortPunkt.
    Klassenkarte WortPunkt
    Beschreiben Sie den gurndsätzlichen Aufbau einer Klasse anhand der Klasse Umwelt.
    Klassenkarte Umwelt
    Sie sind Teil eines Entwicklungsteams, das ein Online-Buchungssystem für ein Hotel entwerfen soll. Das System soll es den Nutzern ermöglichen, Zimmer zu buchen, Reservierungen zu verwalten und Zahlungen durchzuführen.
    Entwerfen Sie eine Klasse Buchung, welche die folgenden Aspekte berücksichtigt:
    • Identifikation der Buchung: Die Klasse sollte eine Möglichkeit bieten, jede Buchung eindeutig zu identifizieren.
    • Informationen zur Buchung: Die Klasse sollte Informationen über das gebuchte Zimmer, den Gast und die Buchungsdaten enthalten.
    • Preisberechnung: Die Klasse sollte eine Methode zur Berechnung des Gesamtpreises der Buchung basierend auf der Aufenthaltsdauer und dem Preis pro Nacht besitzen.
    • Buchungsdetails anzeigen: Die Klasse sollte eine Methode enthalten, um die Details der Buchung anzuzeigen.
    • Erweiterungsmöglichkeiten: Lassen Sie Raum für eigene Ideen und Erweiterungen. Überlegen Sie, welche zusätzlichen Attribute und Methoden sinnvoll sein könnten, um die Klasse zu erweitern.
    Stellen Sie sich vor, Sie sind Teil eines Entwicklungsteams, das eine Online-Dating-App entwerfen soll. Die App soll es den Nutzern ermöglichen, Profile zu erstellen, nach potenziellen Partnern zu suchen und Nachrichten auszutauschen.
    Entwerfen Sie eine Klasse DatingApp, welche die folgenden Aspekte berücksichtigt:
    • Identifikation des Benutzers: Die Klasse sollte eine Möglichkeit bieten, jedes Benutzerprofil eindeutig zu identifizieren.
    • Informationen zum Benutzer: Die Klasse sollte grundlegende Informationen über den Benutzer enthalten, wie Name, Alter, Geschlecht und Standort.
    • Profilbeschreibung: Die Klasse sollte eine Methode haben, um eine kurze Beschreibung oder Biografie des Benutzers zu speichern und anzuzeigen.
    • Interessen und Vorlieben: Die Klasse sollte eine Möglichkeit bieten, die Interessen und Vorlieben des Benutzers zu speichern.
    • Profilbild: Die Klasse sollte eine Methode haben, um ein Profilbild hochzuladen und anzuzeigen.
    • Erweiterungen: Lassen Sie Raum für eigene Ideen und Erweiterungen. Überlegen Sie, welche zusätzlichen Attribute und Methoden sinnvoll sein könnten, um die Klasse zu erweitern.
    Person 1 Person 2
    Entwerfen Sie ein UML-Klassendiagramm für eine Onlinedating-Plattorm. Das System soll Benutzerprofile, Nachrichten und Matches verwalten. Es soll auch die Möglichkeit bieten, nach anderen Benutzern zu suchen und Profile zu bewerten. Entwerfen Sie ein UML-Klassendiagramm für ein Hotelbuchungssystem. Das System soll Hotels, Zimmer, Gäste und Buchungen verwalten. Es soll auch die Möglichkeit bieten, Zimmer zu reservieren und Bewertungen abzugeben.