Aufgabe Vorschlag A - 2.5.2 · Abitur Hessen Praktische Informatik LK 2022

Thema: Client-Server und Nebenläufigkeit · Aus der Prüfung LK (2022)

Aufgabenstellung

Material 6

UML-Klassendiagramm Aquariumssteuerung

Material 7

Belegung der Ports (schematisch)

Hinweise: Der Temperatursensor LM 35 hat eine Empfindlichkeit von 10 mV/∘C10\,\text{mV}/^\circ\text{C} und einen messbaren Temperaturbereich von 00 bis 100∘ Celsius100^\circ\text{ Celsius}. Die Formel zur Berechnung der Temperatur in Abhängigkeit vom gemessenen Wert am analogen Eingang lautet:

Temperatur [∘C]=5.0∗100.0∗analogWert1024.0Temperatur\ [^\circ\text{C}] = \frac{5.0 * 100.0 * analogWert}{1024.0}

2.5.2 Die Steuerung soll um die Lichtregelung mit folgenden Anforderungen erweitert werden:

Eine dimmbare LED-Beleuchtung für ein Aquarium zeichnet sich durch ihr Modell und die maximale Leistung in Lumen aus. Die optimale Lichtmenge, die Farbtemperatur und die Tageslänge (Dauer der Beleuchtung pro Tag) werden entsprechend der Herkunft der Lebensgemeinschaft festgelegt.

Die Lichtsteuerung soll durch entsprechendes Dimmen der Leuchte einen natürlichen Tagesablauf simulieren (Sonnenaufgang, Sonnenuntergang, Mondphasen usw.).

Die Steuerung von Temperatur und Licht müssen gleichzeitig ablaufen.

Entwickeln Sie auf Grundlage von Material 6 ein UML-Klassendiagramm mit Attributen, Konstruktoren, Methoden und Assoziationen, das die genannten Anforderungen zusätzlich umsetzt.

Hinweis: Set- und get-Methoden müssen nicht dargestellt werden.

Aufgabenstellung: Aufgabe Vorschlag A - 2.5.2 · Abitur Hessen Praktische Informatik LK 2022

Lösung

Nach den offiziellen Korrekturhinweisen

Entwickeln Sie auf Grundlage von Material 6 ein UML-Klassendiagramm mit Attributen, Konstruktoren, Methoden und Assoziationen, das die genannten Anforderungen zusätzlich umsetzt.

Lösung: Das erweiterte UML-Klassendiagramm umfasst: - Klasse `Thread` mit den Methoden `+ run()` und `+ start()`. - Klassen `LichtThread` und `HeizThread`, die von `Thread` erben. - `LichtThread`: Konstruktor `+ LichtThread(st : Steuerung)`, Methode `+ run()` sowie gerichtete Assoziation auf `Steuerung` (`- st`). - `HeizThread`: Konstruktor `+ HeizThread(st : Steuerung)`, Methode `+ run()`, `+ ermittleAktuelleTemp() : float` sowie gerichtete Assoziation auf `Steuerung` (`- st`). - Beide Threads werden von `Steuerung` erzeugt (`<<create>>`). - Klasse `Steuerung`: erweiterte Attribute (`optimaleLumenMax : int`, `optimaleFarbtemperatur : int`, `optimaleTageslaenge : int`), erweiterter Konstruktor sowie zusätzliche Methoden (`ermittleOptimaleLumenMax()`, `ermittleOptimaleFarbtemperatur()`, `ermittleOptimaleTageslaenge()`, `tageszeitInMinuten()`). Gerichtete Assoziation auf `LEDBeleuchtung` (`- led`). - Klasse `LEDBeleuchtung`: Attribute `- modell : String`, `- lumenMax : int`, `- lumenAktuell : int`, `- farbtemperatur : int`, Konstruktor `+ LEDBeleuchtung(modell : String, lumenMax : int)` und Methode `+ dimmen(werte : int[])`.

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 · LK 2022 ›

Mehr Aufgaben zu Client-Server und Nebenläufigkeit