Aufgabe Vorschlag C - 1 - Klassendiagramme und Objektdiag… · Abitur Hessen Praktische Informatik LK 2021

Thema: Klassendiagramme und Objektdiagramme · Aus der Prüfung LK (2021)

Aufgabenstellung

Impfzentrum

Für das Management eines kommunalen Impfzentrums sollen eine Verwaltungsapplikation und eine Datenbank entwickelt werden. Das Einwohnermeldeamt stellt in Kooperation mit den Krankenkassen die Daten aller Personen zur Verfügung. Alle Personen ab dem 16. Lebensjahr sollen geimpft werden.

Material 1: UML-Klassendiagramm Impfzentrum

Hinweise zu Material 1

Die Konstante STRASSEN der Klasse ImpfzentrumVerwaltung legt die Anzahl der Impfstraßen fest, die Konstante PERSONEN_TAG_STRASSE die maximale Anzahl an Impflingen je Impfstraße und Tag. Die Methode anmelden() der Klasse ImpfzentrumVerwaltung sucht die Impfstraße mit der geringsten Anzahl wartender Personen, fügt die übergebene Person der entsprechenden Warteschlange hinzu und gibt die Nummer der Impfstraße zurück. Die Methode abmelden() entfernt die Person nach Abschluss des Impfvorgangs aus der entsprechenden Warteschlange. Der Impftermin der Klasse Impfung ist das aktuelle Datum bei der Objekterzeugung.

Material 2: Klassendokumentationen

Klasse Date

Date()

erzeugt ein Date-Objekt mit dem aktuellen Systemdatum.

Date(day: int, month: int, year: int)

erzeugt ein Date-Objekt mit den Werten von day, month und year.

addDays(numberOfDays: int): Date

liefert eine Kopie des Date-Objekts mit der addierten Anzahl von Tagen.

isBefore(d: Date): boolean

liefert true, wenn das Date-Objekt vor dem des Parameters d liegt.

isAfter(d: Date): boolean

liefert true, wenn das Date-Objekt nach dem des Parameters d liegt.

isBetween(d1: Date, d2: Date): boolean

liefert true, wenn das Date-Objekt zwischen den Parametern d1 und d2 liegt.

toString(): String

liefert eine String-Repräsentanz des Date-Objekts im Format dd.mm.yyyy.

Klasse List

List<T>()

erzeugt eine generische Liste mit Elementen des Typs T.

add(obj: T)

hängt das Objekt obj vom Typ T am Ende der Liste an.

add(index: int, obj: T)

fügt das Objekt obj vom Typ T an der Position index in die Liste ein.

contains(obj: T): boolean

liefert true, wenn das Objekt obj in der Liste enthalten ist, ansonsten false.

get(index: int): T

liefert das Listenelement an der Position index zurück bzw. null, falls index negativ oder größer gleich der Anzahl der momentan enthaltenen Elemente ist.

remove(index: int): T

entfernt das Objekt vom Typ T an der Position index aus der Liste und gibt es zurück.

remove(obj: T): boolean

entfernt das Objekt obj aus der Liste. Falls obj mehrmals in der Liste enthalten ist, wird nur das erste Vorkommen entfernt. Der Rückgabewert ist true, falls das Objekt gefunden und entfernt wurde, sonst false.

size(): int

liefert die Anzahl der Elemente in der Liste zurück.

Klasse String

equals(str: String): boolean

liefert true, wenn beide Strings gleich sind, ansonsten false.

split(str: String): String[]

teilt einen String am Trennzeichen str. Die Teil-Strings werden in einem Feld zurückgeliefert.

startsWith(str: String): boolean

liefert true, wenn der String mit str beginnt, ansonsten false.

Material 3: UML-Anwendungsfalldiagramm

1.5.3 Modellierung des erweiterten UML-Klassendiagramms

Das UML-Klassendiagramm in Material 1 soll um das Personal und die Anwendungsfälle aus Aufgabe 1.5.2 erweitert werden. Folgende weitere Festlegungen sind zu berücksichtigen:

Alle Mitarbeiter und Mitarbeiterinnen (im Folgenden Mitarbeiter genannt) sind Personen, die geimpft werden können. Jeder Mitarbeiter hat eine eindeutige Personalnummer.

Mitarbeiter haben Einsätze, die mit dem Datum zu speichern sind.

Bei den Mitarbeitern handelt es sich entweder um Empfangskräfte oder medizinische Fachkräfte. Empfangskräfte erhalten eine Aufwandsentschädigung. Medizinische Fachkräfte verfügen über eine Qualifikation.

Ärzte sind spezielle Fachkräfte mit einer bestimmten Fachrichtung (z.B. Allgemeinmedizin).

Die Impfreaktion einer Person und der für die Impfung verantwortliche Arzt sind im System festzuhalten.

Modellieren und zeichnen Sie das erweiterte UML-Klassendiagramm inklusive der erforderlichen Konstruktoren und Methoden.

Hinweise: Die Sichtbarkeit von Methoden und Attributen sowie set- und get-Methoden müssen nicht dargestellt werden. Datentypen, Übergabeparameter und Rückgabetypen sind aufzuführen.

Die Lösung wurde freigeschaltet. Vergleichen Sie Ihre Modellierung und Zeichnung mit dem Lösungsvorschlag.

Aufgabenstellung: Aufgabe Vorschlag C - 1 - Klassendiagramme und Objektdiag… · Abitur Hessen Praktische Informatik LK 2021

Lösung

Nach den offiziellen Korrekturhinweisen

1.5.3 Modellieren und zeichnen Sie das erweiterte UML-Klassendiagramm inklusive der erforderlichen Konstruktoren und Methoden.

Lösung: Mitarbeiter-Hierarchie und Klassen: - `Person`: Ergänzung um das Attribut `- reaktion : String`. - `Mitarbeiter` (abstrakt): Erbt von `Person` (Generalisierung/Vererbung). Attribute: `- personalNr : int`, ggf. `- autowert : int = 1`. Konstruktor: `+ Mitarbeiter(mitarbeiterDaten : String)`. Methode: `+ hinzufuegenEinsatz(e : Einsatz) : void`. - `Einsatz`: Attribut `- datum : Date`. Konstruktor `+ Einsatz(datum : Date, ma : Mitarbeiter)`. Assoziation zwischen `Mitarbeiter` (1) und `Einsatz` (*) mit Rollenbezeichnungen `einsaetze` und `mitarbeiter`. - `Empfangskraft`: Erbt von `Mitarbeiter`. Attribut: `- aufwandsentschaedigung : int`. Konstruktor und Methoden (z. B. `+ anmeldenImpfung(personID : int) : int`, `+ pruefeTermin(p : Person) : boolean`, `+ vereinbareTermin(p : Person) : Date`). - `Fachkraft`: Erbt von `Mitarbeiter`. Attribut: `- qualifikation : String`. Konstruktor und Methoden (z. B. `+ impfen(p : Person) : Impfung`, `+ druckeBestaetigung(i : Impfung) : String`, `+ abmelden(p : Person)`). - `Arzt`: Erbt von `Fachkraft`. Attribut: `- fachrichtung : String`. Konstruktor und Methoden (z. B. `+ pruefeImpftauglichkeit(p : Person) : boolean`, `+ dokumentiereImpfreaktion(p : Person)`). - `Impfung`: Beziehung zum verantwortlichen Arzt (1 Arzt für * Impfungen, Rolle `- verantwortlicher`). Konstruktorerweiterung: `+ Impfung(p : Person, verantwortlicher : Arzt)`.

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 B - 1 - Klassendiagramme und Objektdiag… · LK 2021

Mehr Aufgaben zu Klassendiagramme und Objektdiagramme