Aufgabe Vorschlag AJ · Abitur Hessen Informatik GK 2022
Thema: Objektorientierte Modellierung mit UML · Aus der Prüfung GK (2022)
Aufgabenstellung
Ausleihsystem StadtRad
Eine Großstadt hat ein Ausleihsystem namens StadtRad für Fahrräder eingeführt. Nach dem Motto „Aufsteigen und losfahren“ soll für die Bürgerinnen und Bürger an zahlreichen Leihstationen im gesamten Stadtgebiet die Möglichkeit bestehen, ein Rad auszuleihen und dieses wieder an derselben oder einer anderen Station zurückzugeben. Jede Station verfügt dabei über Stellplätze, an denen die Räder angeschlossen werden. Die Anzahl der Stellplätze ist an jeder Station gleich.
Zur Verwaltung des StadtRad-Ausleihsystems
erhalten die Stationen eine eindeutige Stationsnummer,
muss jeder Kunde im System registriert sein; er ist dann über seine Kundennummer zu identifizieren,
verfügt jedes Rad über eine eindeutige Radnummer, die bei der Ausleihe beim Kunden eingetragen wird. Ist ein Rad gerade nicht verliehen, ist die Radnummer beim Stellplatz eingetragen, an dem das Rad angeschlossen ist.
Den Kunden wird eine App zur Verfügung gestellt, mit der sie sich im System registrieren, die Verfügbarkeit von Rädern an einer Station überprüfen sowie deren Ausleihe und Rückgabe durchführen können.
Material 1
GUI der StadtRad-App
Material 2
Klassendiagramm der Klasse Station
Material 3
Methode zurückgeben(...) der Klasse Verwaltung
01 public boolean zurückgeben(int KundenNr, int StationsNr) {
02 Kunde einKunde = gibKunde(KundenNr);
03 Station eineStation = gibStation(StationsNr);
04 if (einKunde != null && eineStation != null) {
05 int RadNr = einKunde.getAusgeliehenesRad();
06 if (eineStation.abstellen(RadNr) == true) {
07 einKunde.setAusgeliehenesRad(0);
08 einKunde.setEndzeit();
09 einKunde.berechneGebühren();
10 return true;
11 }
12 }
13 return false;
14 }
Material 4
Methoden suche(...) und suche2(...)
01 public int suche(String Nachname, String Vorname) {
02 return suche2(0, AnzahlKunden - 1, Nachname, Vorname);
03 }
04
05 private int suche2(int a, int b, String Nachname, String Vorname) {
06 if (b < a)
07 return 0;
08 int m = (a + b) / 2;
09 if (Kunden[m].getNachname().equals(Nachname) &&
10 Kunden[m].getVorname().equals(Vorname))
11 return Kunden[m].getKundenNr();
12 if (Kunden[m].getNachname().compareTo(Nachname) > 0 ||
13 Kunden[m].getNachname().equals(Nachname) &&
14 Kunden[m].getVorname().compareTo(Vorname) > 0)
15 return suche2(a, m - 1, Nachname, Vorname);
16 else
17 return suche2(m + 1, b, Nachname, Vorname);
18 }
Aufgaben 1 und 2
1
Benennen Sie alle Komponenten der GUI in Material 1 und beschreiben Sie, welchem Zweck diese Komponenten jeweils dienen.
[4 BE]
2.1
Modellieren Sie das StadtRad-Ausleihsystem als UML-Klassendiagramm mit den Klassen Verwaltung, Station, Kunde und Rad unter Berücksichtigung folgender Aktionen, wobei nur für die Klasse Verwaltung eine detaillierte Modellierung mit Attributen und Methoden gefordert ist:
Registrieren eines neuen Kunden mit Nachname und Vorname
Ausleihen eines Rades an einer Station durch einen Kunden: Falls kein Rad mehr verfügbar ist, liefert die Methode den Wert 0, ansonsten wird die Radnummer zurückgegeben.
Rückgabe eines Rades an einer Station durch einen Kunden: Falls alle Stellplätze an der Station belegt sind, die Rückgabe also nicht möglich ist, wird false zurückgegeben.
[9 BE]
2.2
Beschreiben Sie Ihre Modellierung und gehen Sie dabei auch auf die Klassenbeziehungen ein.
[7 BE]

Lösung
Nach den offiziellen Korrekturhinweisen
1 Benennen Sie alle Komponenten der GUI in Material 1 und beschreiben Sie, welchem Zweck diese Komponenten jeweils dienen.
Lösung: Die GUI-Oberfläche enthält eine TextArea-Komponente zur Anzeige eines mehrzeiligen Textes. Die beiden Label-Komponenten für Stations- und Kundennummer dienen zur Beschriftung des Formulars. Zur Eingabe der Nummern wird jeweils ein NumberField (TextField) verwendet, zur Ausgabe der Information dient ein TextField. Die Ausleihe und Rückgabe eines Rades sowie die Registrierung können über die jeweiligen Button-Komponenten ausgeführt werden.
2.1 Modellieren Sie das StadtRad-Ausleihsystem als UML-Klassendiagramm mit den Klassen Verwaltung, Station, Kunde und Rad unter Berücksichtigung folgender Aktionen, wobei nur für die Klasse Verwaltung eine detaillierte Modellierung mit Attributen und Methoden gefordert ist
Lösung: Hinweis: Die Beziehung zwischen den Klassen Verwaltung und Kunde kann auch als Assoziation modelliert werden.
2.2 Beschreiben Sie Ihre Modellierung und gehen Sie dabei auch auf die Klassenbeziehungen ein.
Lösung: Die Klasse Verwaltung hat vier Attribute mit der Sichtbarkeit private: Stationen, Kunden, AnzahlKunden und Räder. AnzahlKunden ist vom Datentyp int, die drei anderen Attribute sind Felder der Datentypen Station, Kunde bzw. Rad. Der Konstruktor hat keinen Parameter. Die Klasse hat drei weitere öffentliche Methoden. Die Methoden ausleihen(...) und zurückgeben(...) benötigen beide die Parameter KundenNr und StationsNr vom Datentyp int. ausleihen(...) liefert einen int-Wert, zurückgeben(...) einen booleschen Wert zurück. Die Methode registriereKunde(...) wird mit dem Nach- und dem Vornamen des Kunden als String-Parameter aufgerufen. Die Beziehungen zwischen der Klasse Verwaltung und den Klassen Station, Kunde und Rad sind Aggregationen, da Stationen, Kunden und Räder Teile des Verwaltungssystems sind.
Die ausführliche Erklärung Schritt für Schritt (mit KI) gibt es mit Premium. Premium
Löse sie direkt hier: automatische Korrektur, Hinweise und Lösung Schritt für Schritt.
Aufgabe Vorschlag AJ - 3.1 - UML-Modellierung · GK 2022 ›
Mehr Aufgaben zu Objektorientierte Modellierung mit UML
- Aufgabe Vorschlag AJ - 3.1 - UML-Modellierung · GK 2022
- Aufgabe Vorschlag AJ - Aufgabe 1 · LK 2022
- Aufgabe Vorschlag AJ - Aufgabe 5 · LK 2022
- Aufgabe Vorschlag AJ - Aufgabe 1 · GK 2021
- Aufgabe Vorschlag AJ - Aufgabe 4.1 - Objektorientierte Mo… · GK 2021
- Aufgabe Vorschlag AJ - Aufgabe 1 · LK 2021
- Aufgabe Vorschlag AJ - Aufgabe 3.1 - Objektorientierte Mo… · LK 2021