Aufgabe Vorschlag C - Aufgabe 1.5 · Abitur Hessen Technische Informatik LK 2021
Thema: Sequenzdiagramme und Netzwerkkommunikation · Aus der Prüfung LK (2021)
Aufgabenstellung
Boundary-Scan-Test
Das Verfahren des Boundary-Scan-Tests (BST) wurde entwickelt, um Leiterbahnen auf Leiterplatten (Platinen) mithilfe von Software auf ihre Funktionalität zu testen.
Der BST nutzt auf der Leiterplatte vorhandene spezielle integrierte Schaltkreise (ICs) 1, die über die vier zusätzlichen BST-Anschlüsse Testdata in (TDI), Testdata out (TDO), Testclock (TCK) und Test mode select (TMS) verfügen.
Eine detailliertere Übersicht eines solchen Boundary-Scan-ICs ist in Material 1 zu finden. In den ICs befinden sich Boundary-Scan-Zellen, die als Schieberegister zwischen den Anschlüssen der ICs und der internen Logik angeordnet sind. Der Boundary-Scan-Test wird softwareseitig von einem PC über einen Mikrocontroller gesteuert. Im Folgenden soll zuerst die Testsoftware erstellt werden.
1 Integrated Circuit, kurz IC; Plural ICs.
Material 1: Übersicht Boundary-Scan-IC
1.5 Die Klasse Testadapter stellt die Verbindung zu dem Testgerät über ein Netzwerk her. Im Folgenden ist der Ablauf der Kommunikation zwischen Testadapter (Client) und Testgerät (Server) beschrieben.
Nachdem die Verbindung aufgebaut ist, sendet der Testadapter das Wort „WAKEUP“, welches vom Testgerät mit „ACK“ beantwortet wird. Anschließend sendet der Testadapter die Testdaten Zeichen für Zeichen an das Testgerät. Dazu besitzt er die Methode getTestdatum(): int, die ihm das jeweils nächste Zeichen zurückliefert. Mit der Methode testdatenVorhanden(): boolean kann er prüfen, ob noch Zeichen zum Senden vorhanden sind. Sind keine Zeichen mehr vorhanden, signalisiert er das Ende der Übertragung mit dem Wert „-1“ (Endezeichen). Nach jedem Zeichen erwartet der Testadapter ein Antwortzeichen vom Testgerät.
Das Testgerät liest die Zeichen vom Testadapter solange ein, bis es das Endezeichen bekommt. Solange das Testgerät kein Endezeichen bekommt, schiebt es das jeweilige Zeichen mit der Methode shiftData(zeichen: int): int der Klasse Testgeraet in die Testschaltung und erhält direkt eine Testantwort zurück. Diese Testantwort überträgt es zurück an den Testadapter. Das Endezeichen quittiert das Testgerät mit dem Wort „ACK“ und beendet anschließend die Verbindung.
Modellieren Sie zu der obenstehenden Beschreibung unter der Verwendung der Klassen ServerSocket und Socket das Sequenzdiagramm (Serverseite) in Material 4.
Hinweis: Die Klassendiagramme der Klassen Socket und ServerSocket stehen in Material 3 zur Verfügung.
Material 3: Klassendiagramme ServerSocket und Socket
Material 4: Sequenzdiagramm für Client-Server-Kommunikation

Lösung
Nach den offiziellen Korrekturhinweisen
Modellieren Sie zu der obenstehenden Beschreibung unter der Verwendung der Klassen ServerSocket und Socket das Sequenzdiagramm (Serverseite) in Material 4.
Lösung: Das Sequenzdiagramm auf der Serverseite muss folgende Interaktionen modellieren: 1. Empfang des Handshakes: Aufruf von `readLine()` auf dem Server-Socket `c: Socket`, Rückgabe von `"WAKEUP"`, gefolgt vom Senden der Bestätigung `write("ACK")` über den Socket an den Client. 2. Iterative Verarbeitung der Testdaten (`loop: while [d <> -1]`): - Einlesen des nächsten Zeichens: `d = read(): int` auf `c: Socket`. - Fallunterscheidung `alt`: * Operand `[d <> -1]`: Aufruf der internen Methode `a = shiftData(d): int` am `Testgeraet`, danach Rücksendung des Antwortzeichens mit `write(a)` über `c: Socket`. * Operand `[d == -1]`: Senden der Abschlussquittierung `write("ACK")` an den Socket `c`. 3. Verbindungsabbau: Beenden der Sockets mit `close(): void` und Zerstören der Objekte (`<<destroy>>`).
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 - Aufgabe 1.4 · LK 2021