Dies ist eine alte Version des Dokuments!
Abitur 2023: Informatik
Im Rahmen eines P-Seminars soll eine Software entwickelt werden, mit der sich verschiedene schulische Angebote leichter organisieren lassen. Die Anwendung soll verschiedene Module zur Verfügung stellen; unter anderem sind als Module ein Planer für Studienfahrten und eine Nachhilfebörse vorgesehen. Sowohl Schülerinnen und Schüler als auch Lehrkräfte sollen die Anwendung nutzen können.
- Das Modell für die Software soll eine Klasse PORTAL enthalten, die sowohl die Nutzenden als auch die Module verwaltet. Nutzende sollen die Möglichkeit haben, ihr Passwort zu ändern. Sie sollen bestimmte Module verwenden können, die sie zuvor für sich freischalten müssen. Modellieren Sie das beschriebene Szenario in einem Klassendiagramm. Verzichten Sie auf die Angabe von Attributen. Wenden Sie dabei an mindestens einer Stelle das Prinzip der Vererbung an.
- Die Nutzenden, die beim Portal registriert sind, werden in einem lexikografisch geordneten Binärbaum verwaltet. Die Ordnung beruht auf dem eindeutigen Loginnamen. Ein erster Vorschlag zur Umsetzung sieht vor, dass die Nutzenden sich selbst registrieren. Dabei wird automatisch ein Loginname generiert und anschließend das zugehörige Nutzer-Objekt in den Baum sortiert eingefügt.
- Die Schülerin Ada gibt zu bedenken, dass sich die Einfügereihenfolge bei der Verwendung des Baums als ungünstig erweisen kann. Zeichnen Sie für die folgenden Beispiele jeweils den Baum, der beim Einfügen der NutzerObjekte entsteht. Erläutern Sie, inwiefern Adas Einwand berechtigt ist. Einfügereihenfolge 1: mayer03, schubert02, lange01, bucher01, neupert01. Einfügereihenfolge 2: bucher01, lange01, neupert01, mayer03, schubert02
- Gehen Sie nun davon aus, dass sich bisher 600 Einträge im Baum befinden. Geben Sie begründet an, um wie viele Ebenen der Baum minimal und maximal erweitert werden muss, wenn weitere 220 Einträge eingefügt werden.
Nach dem Import wird für alle Nutzenden dasselbe Standardpasswort gesetzt, das gleich beim ersten Login geändert werden muss. Passwörter werden verschlüsselt gespeichert; der verschlüsselte Wert des Standardpassworts ist „GH7uu4“.
- Bewerten Sie das oben skizzierte Vorgehen zur Verteilung von Standardpasswörtern hinsichtlich Datenschutz und Datensicherheit unter der Voraussetzung, dass die Loginnamen nach einem allgemein bekannten Schema aus den Klarnamen gebildet werden.
- Es soll nun überprüft werden, welche Nutzenden das Standardpasswort noch nicht geändert haben. Dazu soll es eine Methode nutzerMitStandardpasswortAusgeben() geben, die die Loginnamen der betroffenen Nutzenden in lexikografischer Reihenfolge ausgibt. Ein Nutzer-Objekt hat eine Methode passwortGeben(), die den aktuellen Wert des verschlüsselten Passworts als Zeichenkette zurückgibt. Des Weiteren existiert eine Methode ausgeben(), die den Loginnamen des entsprechenden Nutzenden ausgibt. Gehen Sie im Folgenden von einem Baum aus, der unter Verwendung des Entwurfsmusters Kompositum mit den Klassen BAUM, BAUMELEMENT, ABSCHLUSS und KNOTEN implementiert wurde. Die Trennung von Struktur und Daten ist durch ein Referenzattribut inhalt der Klasse KNOTEN realisiert. Notieren Sie in einer auf dem Deckblatt angegebenen Programmiersprache eine Implementierung der Methode nutzerMitStandardpasswortAusgeben() in der Klasse BAUM und aller dafür benötigten Methoden in den Klassen der Baumstruktur. Verwenden Sie das Prinzip der Rekursion.