Übungsaufgaben zur Verwaltung und zu Diagrammen: Mitfahrgesuche auswerten

https://bildung.social/@oerinformatik/

https://oer-informatik.de/javafx-verwaltung-diagramme-uebungsaufgaben

JavaFX, JavaFX Charts, BarChart, PieChart, Diagrammtyp, OpenAPI, Vertragserweiterung, Expedite, Kanban, Durchlaufzeit, Übungsaufgaben, Prüfungsvorbereitung

tl/dr; (Bearbeitungszeit insgesamt 51 min, mehrere Aufgaben): Übungen zur Verwaltungssicht der JavaFX-Desktop-App: Du wählst zu Fragen über Mitfahrgesuche den passenden Diagrammtyp, erweiterst den OpenAPI-Vertrag um eine Auswertung der Gesuche, bereitest die Gesuche als Daten für PieChart und BarChart auf und bewertest, was zwei Expedite-Tickets auf dem Kanban-Board bewirkt haben [AI-Assisted]. (Zuletzt geändert am 11.11.2026)

Dieser Artikel ist Teil einer Artikelreihe über eine Desktop-App mit JavaFX: Übersicht / Kanban-Projektstart / Projekt anlegen / FXML, Layouts und CSS / Properties, Bindings und MVVM / Backend anbinden / TableView für Buchungen / Formulare und Dialoge / Anmeldung mit Keycloak / Verwaltung und Diagramme / GUI-Tests mit TestFX / Abnahmetest und Kanban-Metriken / Paketieren mit jpackage

Diese Übungsaufgaben gehören zum Artikel Verwaltung und Diagramme: Haltepunkte pflegen, Auslastung zeigen und ein Expedite-Ticket für den Vertrag. Sie spielen im Projekt Mitfahrlabor und führen den Strang der Mitfahrgesuche weiter: Seit den Übungen zur Anmeldung zeigt das Gesuche-Fenster nach Rolle, wer Gesuche eintragen und entfernen darf. Jetzt möchte die Verwaltung sehen, wo und in welche Richtung gesucht wird.

Kanban-Board am Projekttag 26 mit dem Expedite-Ticket JFX-26 in der eigenen Bahn und JFX-09 mit dem Vermerk „wartend (Expedite)“ neben JFX-10 in „läuft“ (mit KI erstellt)

Hinweise zur Bearbeitung: Bis zur Teil-1-Prüfung der IT-Berufe solltest Du die Basiskompetenz beherrschen, also Aufgabe 1.1. Als FIA, FIDP oder FIDV musst Du zur Teil-2-Prüfung Aufgaben auf Kernkompetenz-Ebene lösen können, das sind Aufgabe 2.1 und Aufgabe 2.2. Von FIA wird zusätzlich erwartet, dass ihnen Aufgaben auf Profilkompetenz-Ebene (Aufgabe 3.1) keine Probleme bereiten. Startcode für die Aufgaben 2.1 und 2.2 ist der Ordner src/08-anmeldung-keycloak/uebung-mitfahrgesuche; eine vollständige Lösung steht in src/09-verwaltung-diagramme/uebung-mitfahrgesuche. Schreib Deine Lösung zuerst vollständig auf, bevor Du die Beispiellösung aufklappst. Code-Aufgaben prüfst Du am besten mit gradlew test.

Du möchtest eigene Aufgaben zum Üben von einem KI-Sprachmodell generieren lassen?

Kopiere den Text in ein KI-Sprachmodell Deiner Wahl und passe Kompetenzstufe, Anzahl, Bearbeitungszeit und Szenario bei Bedarf an. Wie die Aufgaben aufgebaut sind, beschreibt der Artikel Wie sind die Aufgaben aufgebaut?. Prüfe die Ergebnisse mit dem Lehrartikel: KI-Sprachmodelle machen Fehler.

Erstelle neue Übungsaufgaben zum Thema „Verwaltung und zu Diagrammen:
Mitfahrgesuche auswerten“.

Bauplan: Halte Dich an Aufbau, Kompetenzstufen, Operatoren,
Anforderungsbereiche, Punkte und Zeitschätzung, die im Artikel
https://oer-informatik.de/aufgaben-aufbau beschrieben sind.

Fachliche Grundlage:
- https://oer-informatik.de/javafx-verwaltung-diagramme
- https://oer-informatik.de/szenario-mitfahrlabor
- https://oer-informatik.de/javafx-kanban-projektstart
- Stilbeispiel: https://oer-informatik.de/javafx-verwaltung-diagramme-uebungsaufgaben

Die Aufgaben sollen Inhalte zu diesen Schlagwörtern abdecken:
- JavaFX
- JavaFX Charts
- BarChart
- PieChart
- Diagrammtyp
- OpenAPI
- Vertragserweiterung
- Expedite
- Kanban
- Durchlaufzeit

Kompetenzstufe: Kernkompetenz (alternativ: Basiskompetenz, Profilkompetenz, Expertise)
Anzahl: 1 Aufgabe mit Teilaufgaben
Bearbeitungszeit in Minuten ca.: <5 bis 30 min>
Szenario: eines der Szenarien aus dem Bauplan

Vorgehen:
1. Lies zuerst die verlinkten Artikel. Kannst Du keine Webseiten
   abrufen, sag mir das, statt zu raten.
2. Steht bei einer Angabe noch ein Platzhalter in <…>, frag mich
   zuerst danach. Richte Punkte und Zahl der Teilaufgaben nach der
   Bearbeitungszeit (ca. 0,9 min je Punkt).
3. Gib je Aufgabe Titel mit Kompetenzstufe, Ausgangssituation und
   Teilaufgaben mit Operator und Punktzahl aus, dazu die geschätzte
   Bearbeitungszeit.
4. Gib die Beispiellösungen mit Punkteverteilung erst aus, wenn ich
   danach frage.

Aufgabe 1.1: Den passenden Diagrammtyp wählen (Basiskompetenz)

(ca. 11 min Bearbeitungszeit)

Rotkehlchen (Lina Hartwig) hilft der Verwaltung bei einer Auswertung der Mitfahrgesuche für die nächste Schulkonferenz. Sie hat fünf Fragen notiert und möchte zu jeder ein Diagramm in der Desktop-App zeigen.

  1. Gib für jede Frage ein Chart-Control aus JavaFX an, das sie gut beantwortet, und begründe Deine Wahl in Stichworten. (5 Punkte)
Fragen zu den Mitfahrgesuchen
Nr. Frage Chart-Control Begründung
1 Wie viele Gesuche gab es je Haltepunkt im Oktober?
2 Wie hat sich die Zahl der Gesuche von Woche zu Woche entwickelt?
3 Welchen Anteil haben Gesuche zur Schule und Gesuche nach Hause an allen Gesuchen?
4 Wie viele Gesuche gab es je Wochentag, aufgeteilt in „erfüllt“ und „offen“, und wie viele insgesamt?
5 Suchen Mitfahrende, die weiter von der Schule entfernt wohnen, früher am Morgen?
  1. Nenne die Klassen, in denen ein BarChart und ein PieChart ihre Daten erwarten, und die beiden Achsen, die ein BarChart für Frage 1 braucht. (3 Punkte)

  2. Für Frage 1 liegen diese Zahlen vor: Gütersloh 3, Bielefeld 1, Halle (Westf.) 1. Gib an, welchen Anteil in Prozent und welchen Winkel das Stück für Gütersloh in einem PieChart derselben Zahlen hätte. (2 Punkte)

  3. Ein Mitglied des Übungsteams zeigt Frage 1 als LineChart, „weil das moderner aussieht“. Erläutere, warum das die Lesenden in die Irre führt. (2 Punkte)

  1. Je Frage 1 Punkt (Control und Begründung je ½ Punkt); andere Controls mit stimmiger Begründung sind ebenfalls richtig, z. B. ein BarChart für Frage 3:
Fragen zu den Mitfahrgesuchen (Lösung)
Nr. Frage Chart-Control Begründung
1 Wie viele Gesuche gab es je Haltepunkt im Oktober? BarChart Vergleich von Kategorien ohne Reihenfolge
2 Wie hat sich die Zahl der Gesuche von Woche zu Woche entwickelt? LineChart Verlauf über die Zeit
3 Welchen Anteil haben Gesuche zur Schule und nach Hause an allen Gesuchen? PieChart zwei Teile eines Ganzen
4 Gesuche je Wochentag, aufgeteilt in „erfüllt“ und „offen“, und insgesamt StackedBarChart Zusammensetzung und Summe in einem Balken
5 Suchen Mitfahrende mit weiterem Weg früher am Morgen? ScatterChart Zusammenhang zweier Zahlengrößen je Gesuch
  1. 3 Punkte: BarChart erwartet eine Liste von XYChart.Series, deren Punkte XYChart.Data sind (1 Punkt); PieChart erwartet eine Liste von PieChart.Data (1 Punkt). Für Frage 1 braucht das BarChart eine CategoryAxis für die Haltepunkte und eine NumberAxis für die Anzahl (1 Punkt).

  2. 2 Punkte: Gütersloh hat 3 von 5 Gesuchen, also 60 % (1 Punkt) und 0,6 · 360° = 216° (1 Punkt). Das PieChart berechnet das selbst aus den Werten; Du übergibst nur 3, 1 und 1.

  3. 2 Punkte: Eine Linie verbindet benachbarte Punkte und deutet damit einen Übergang oder Verlauf an. Zwischen Gütersloh und Bielefeld gibt es aber keinen Zwischenwert, und die Reihenfolge der Haltepunkte ist beliebig; mit einer anderen Sortierung sähe die Linie ganz anders aus. Für Kategorien ohne Reihenfolge sind Balken richtig.

Aufgabe 2.1: Den Vertrag um eine Auswertung der Gesuche erweitern (Kernkompetenz)

(ca. 12 min Bearbeitungszeit)

Das Übungsteam hat das Ticket JFX-27 „Gesuche je Haltepunkt und Richtung auswerten“ gezogen. Das Backend soll dafür einen neuen Endpunkt anbieten; die Desktop-App erzeugt ihren Client wie gewohnt aus openapi/openapi.yaml. Die Absprache mit dem Backend-Team:

  • Pfad /auswertung/gesuche, Methode GET, nur mit Rolle ORGA; Tag auswertung wie bei der Auslastung.
  • Pflicht-Parameter von und bis als Datum in der Abfrage.
  • Antwort: je Haltepunkt ein Eintrag mit haltepunktId, zurSchule und nachHause (Anzahl der offenen Gesuche, nie negativ); Haltepunkte ohne Gesuch erscheinen mit 0.
  • Fehler wie bei den übrigen Endpunkten: ungültige Anfrage, nicht angemeldet, keine Berechtigung.
  1. Schreibe den Eintrag unter paths für den neuen Endpunkt im Format von OpenAPI 3.0. Verwende die vorhandenen Antworten unter components/responses. (6 Punkte)

  2. Schreibe das Schema GesuchAuswertung unter components/schemas. (3 Punkte)

  3. Der Vertrag hat zurzeit die Version 2.1.0. Gib die neue Versionsnummer an und begründe sie. Nenne außerdem eine Änderung an diesem Endpunkt, die eine andere Stelle der Versionsnummer erhöhen würde. (2 Punkte)

  4. Gib an, welche Klasse und welche Methode der OpenAPI Generator (Bibliothek native, Endung Dto für Modelle) aus Deinem Eintrag erzeugt, und wovon die Namen abhängen. (2 Punkte)

  1. 6 Punkte: Pfad und Methode (1), Tag und operationId (1), beide Parameter mit in: query, required: true und format: date (2), Antwort 200 als Liste von GesuchAuswertung (1), Fehlerantworten über $ref (1). Ein Hinweis auf die Rolle in summary oder description ist erwünscht; ein eigenes security ist nicht nötig, weil bearerAuth für den ganzen Vertrag gilt.
  /auswertung/gesuche:
    get:
      tags: [auswertung]
      operationId: holeGesuchAuswertung
      summary: offene Mitfahrgesuche je Haltepunkt und Richtung (Rolle ORGA)
      parameters:
        - name: von
          in: query
          required: true
          schema:
            type: string
            format: date
        - name: bis
          in: query
          required: true
          schema:
            type: string
            format: date
      responses:
        '200':
          description: je Haltepunkt ein Eintrag, auch ohne Gesuch (mit 0)
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GesuchAuswertung'
        '400':
          $ref: '#/components/responses/UngueltigeAnfrage'
        '401':
          $ref: '#/components/responses/NichtAngemeldet'
        '403':
          $ref: '#/components/responses/KeineBerechtigung'
  1. 3 Punkte: alle drei Felder als Pflichtfelder (1), passende Typen (1), minimum: 0 für die Zähler (1).
    GesuchAuswertung:
      type: object
      required: [haltepunktId, zurSchule, nachHause]
      properties:
        haltepunktId:
          type: integer
          format: int64
        zurSchule:
          type: integer
          minimum: 0
        nachHause:
          type: integer
          minimum: 0
  1. 2 Punkte: Version 2.2.0, weil nur ein Endpunkt und ein Schema dazukommen und alle bisherigen Clients weiter funktionieren (Minor, 1 Punkt). Würde später zum Beispiel zurSchule umbenannt oder der Parameter bis gestrichen, wäre das inkompatibel, und die Version stiege auf 3.0.0 (1 Punkt).

  2. 2 Punkte: Klasse AuswertungApi (aus dem ersten Tag; es gibt sie schon wegen der Auslastung, sie bekommt eine weitere Methode) mit der Methode holeGesuchAuswertung(LocalDate von, LocalDate bis), die eine List<GesuchAuswertungDto> liefert (1 Punkt). Die Namen hängen von tags, operationId und dem Schemanamen mit der Endung aus modelNameSuffix ab (1 Punkt).

Die Lösung steht in openapi/openapi.yaml des Lösungsordners; gradlew build erzeugt daraus GesuchAuswertungDto.

Aufgabe 2.2: Gesuche als Diagramm-Daten aufbereiten (Kernkompetenz)

(ca. 14 min Bearbeitungszeit)

Bis das Backend JFX-27 umgesetzt hat, soll das Gesuche-Fenster die Auswertung aus den geladenen Gesuchen selbst berechnen. Zum Ausprobieren gibt es die Beispieldaten aus Beispielgesuche:

public record Gesuch(long id, String haltepunkt, String richtung, LocalDate datum,
                     LocalTime fruehestens, LocalTime spaetestens, String notiz) { }

// Beispielgesuche.offeneGesuche():
//  1  Hauptbahnhof, ZOB Steig 3 (Gütersloh)  zur-schule  16.11.2026
//  2  Bahnhof Brackwede (Bielefeld)          nach-hause  16.11.2026
//  3  Hauptbahnhof, ZOB Steig 3 (Gütersloh)  zur-schule  16.11.2026
//  4  Hauptbahnhof, ZOB Steig 3 (Gütersloh)  nach-hause  16.11.2026
//  5  Marktplatz (Halle (Westf.))            zur-schule  17.11.2026
  1. Schreibe im Paket …desktop.viewmodel eine Klasse GesucheAuswertung mit der statischen Methode List<PieChart.Data> anteileJeHaltepunkt(List<Gesuch> gesuche). Sie liefert je Haltepunkt ein Stück mit der Zahl der Gesuche als Wert und dem Namen „ ()“, alphabetisch nach Haltepunkt sortiert. (4 Punkte)

  2. Ergänze die statische Methode List<XYChart.Series<String, Number>> richtungenJeHaltepunkt(List<Gesuch> gesuche). Sie liefert zwei Serien mit den Namen „zur Schule“ und „nach Hause“; beide enthalten jeden Haltepunkt als Kategorie in derselben Reihenfolge, auch wenn es in einer Richtung kein Gesuch gibt (Wert 0). (5 Punkte)

  3. Schreibe einen Komponententest GesucheAuswertungTest mit mindestens drei Testfällen: Anteile mit den Beispieldaten, Serien mit gleichen Kategorien und 0 für fehlende Werte, leere Liste. (4 Punkte)

  4. Erläutere, was im BarChart passiert, wenn die Serie „nach Hause“ die Kategorie „Marktplatz (Halle (Westf.))“ nicht enthält, statt sie mit 0 zu führen. (2 Punkte)

  1. und b) 9 Punkte: Zählen je Haltepunkt (2), Sortierung über eine TreeMap (1), Name und Wert der Tortenstücke (1); zwei Serien mit Namen (1), Zähler je Richtung (2), jede Kategorie in beiden Serien, auch mit 0 (2).
package de.dbh.mitfahrlabor.desktop.viewmodel;

import java.util.List;
import java.util.Map;
import java.util.TreeMap;

import de.dbh.mitfahrlabor.desktop.model.Gesuch;
import javafx.scene.chart.PieChart;
import javafx.scene.chart.XYChart;

public final class GesucheAuswertung {

    public static final String ZUR_SCHULE = "zur Schule";
    public static final String NACH_HAUSE = "nach Hause";

    private GesucheAuswertung() {
    }

    public static List<PieChart.Data> anteileJeHaltepunkt(List<Gesuch> gesuche) {
        Map<String, Integer> anzahl = new TreeMap<>();
        for (Gesuch gesuch : gesuche) {
            anzahl.merge(gesuch.haltepunkt(), 1, Integer::sum);
        }
        return anzahl.entrySet().stream()
                .map(e -> new PieChart.Data(e.getKey() + " (" + e.getValue() + ")", e.getValue()))
                .toList();
    }

    public static List<XYChart.Series<String, Number>> richtungenJeHaltepunkt(List<Gesuch> gesuche) {
        Map<String, int[]> zaehler = new TreeMap<>();
        for (Gesuch gesuch : gesuche) {
            int[] werte = zaehler.computeIfAbsent(gesuch.haltepunkt(), h -> new int[2]);
            werte["zur-schule".equals(gesuch.richtung()) ? 0 : 1]++;
        }
        XYChart.Series<String, Number> hin = new XYChart.Series<>();
        hin.setName(ZUR_SCHULE);
        XYChart.Series<String, Number> zurueck = new XYChart.Series<>();
        zurueck.setName(NACH_HAUSE);
        zaehler.forEach((haltepunkt, werte) -> {
            hin.getData().add(new XYChart.Data<>(haltepunkt, werte[0]));
            zurueck.getData().add(new XYChart.Data<>(haltepunkt, werte[1]));
        });
        return List.of(hin, zurueck);
    }
}
  1. 4 Punkte: je sinnvollem Testfall 1 Punkt, 1 Punkt für Erwartungswerte aus den Beispieldaten (Bielefeld zuerst mit 1, Gütersloh mit 3; Gütersloh 2 zur Schule und 1 nach Hause; Bielefeld 0 zur Schule). Die Methoden brauchen keine laufende JavaFX-Plattform, denn PieChart.Data und XYChart.Series sind keine Controls.
class GesucheAuswertungTest {

    @Test
    void anteileZaehlenGesucheJeHaltepunkt() {
        List<PieChart.Data> stuecke = GesucheAuswertung.anteileJeHaltepunkt(Beispielgesuche.offeneGesuche());
        assertEquals(3, stuecke.size());
        assertEquals("Bahnhof Brackwede (Bielefeld) (1)", stuecke.get(0).getName());
        assertEquals(3, stuecke.get(1).getPieValue());
    }

    @Test
    void richtungenHabenGleicheKategorienUndNullFuerFehlendes() {
        List<XYChart.Series<String, Number>> serien =
                GesucheAuswertung.richtungenJeHaltepunkt(Beispielgesuche.offeneGesuche());
        assertEquals(GesucheAuswertung.ZUR_SCHULE, serien.get(0).getName());
        assertEquals(3, serien.get(0).getData().size());
        assertEquals(3, serien.get(1).getData().size());
        assertEquals(0, serien.get(0).getData().get(0).getYValue().intValue());
        assertEquals(1, serien.get(1).getData().get(0).getYValue().intValue());
        assertEquals(2, serien.get(0).getData().get(1).getYValue().intValue());
    }

    @Test
    void ohneGesucheKeineDaten() {
        assertEquals(0, GesucheAuswertung.anteileJeHaltepunkt(List.of()).size());
        assertEquals(0, GesucheAuswertung.richtungenJeHaltepunkt(List.of()).get(0).getData().size());
    }
}
  1. 2 Punkte: Die CategoryAxis sammelt die Kategorien aus allen Serien in der Reihenfolge, in der sie auftreten. Fehlt Halle in einer Serie, steht dort einfach kein Balken; das ist für die Lesenden nicht von einer 0 zu unterscheiden. Fehlt eine Kategorie aber in der ersten Serie und kommt erst in der zweiten vor, rutscht sie ans Ende der Achse, und die Reihenfolge stimmt nicht mehr mit der Sortierung überein. Mit 0 in beiden Serien ist die Achse eindeutig.

Aufgabe 3.1: Die Folgen von Expedite-Tickets auf dem Board bewerten (Profilkompetenz)

(ca. 14 min Bearbeitungszeit)

Nach JFX-27 hat das Übungsteam zwei Wochen weitergearbeitet. In der Workflow-Definition gilt dieselbe Regel wie im Projekt: Expedite darf am WIP-Limit vorbei, höchstens eines gleichzeitig. Für Standard-Tickets nennt das Team im Replenishment höchstens vier Projekttage als Erwartung. Im Review des Ablaufs liegt diese Übersicht vor:

Tickets des Übungsteams, Projekttag 30 bis 36
Ticket Titel Serviceklasse gezogen am fertig am Vermerke
JFX-28 Gesuche nach Datum filtern Standard 30 33 –
JFX-29 Gesuch bearbeiten Standard 31 36 wartend an Projekttag 32 und 34 (Expedite)
JFX-31 Gesuche zeigen alten Haltepunktnamen Expedite 32 33 Nach der Änderung von Haltepunkt 2 zeigt das Gesuche-Fenster weiter „Park & Ride am Bahnhof (Herford)“; drei Mitfahrende standen am gesperrten Parkplatz.
JFX-32 Diagramm der Gesuche für den Elternabend Expedite 34 35 Thomas Becker möchte es am Elternabend an Projekttag 37 zeigen; eingetragen an Projekttag 29.
  1. Berechne die Durchlaufzeit jedes Tickets (wie auf dem Board: fertig − gezogen + 1) und den Mittelwert aller vier Tickets sowie den Mittelwert der Standard-Tickets. Vergleiche das Ergebnis mit der Erwartung des Teams. (4 Punkte)

  2. Beurteile für JFX-31 und JFX-32, ob die Serviceklasse Expedite angemessen war. Nenne für den Fall, dass sie es nicht war, die passende Serviceklasse und wie das Ticket dann hätte laufen sollen. (4 Punkte)

  3. Erläutere, welche Folgen die beiden Expedite-Tickets für das WIP in „läuft“ und für JFX-29 hatten, und warum der Mittelwert aller Tickets darüber wenig aussagt. (3 Punkte)

  4. Thomas Becker schlägt vor, Expedite-Tickets „der Fairness halber“ künftig ganz abzuschaffen und alles im normalen Fluss zu bearbeiten. Nimm Stellung und schlage eine Regel vor, die das Problem aus b) verhindert. (4 Punkte)

  1. 4 Punkte: Durchlaufzeiten (2 Punkte): JFX-28: 33 − 30 + 1 = 4; JFX-29: 36 − 31 + 1 = 6; JFX-31: 33 − 32 + 1 = 2; JFX-32: 35 − 34 + 1 = 2. Mittelwerte (1 Punkt): alle vier (4 + 6 + 2 + 2) / 4 = 3,5 Projekttage; nur Standard (4 + 6) / 2 = 5 Projekttage. Vergleich (1 Punkt): Der Mittelwert aller Tickets liegt unter der Erwartung, die Standard-Tickets liegen im Mittel darüber; JFX-29 überschreitet sie um zwei Projekttage.

  2. 4 Punkte: JFX-31 war zu Recht Expedite (1 Punkt): Ohne sofortige Bearbeitung entsteht ein Schaden, Mitfahrende warten am gesperrten Treffpunkt, und das ist schon passiert (1 Punkt). JFX-32 war kein Expedite (1 Punkt): Es gibt einen festen Termin, aber keinen Schaden, wenn die Arbeit im normalen Fluss läuft. Richtig wäre Fixed Date gewesen; eingetragen an Projekttag 29 und mit einer erwarteten Durchlaufzeit von höchstens vier Projekttagen hätte das Team es spätestens an Projekttag 33 (37 − 4) nach „Bereit“ holen und gleich ziehen können; dann wäre es an Projekttag 36 fertig gewesen, einen Tag vor dem Elternabend (1 Punkt).

  3. 3 Punkte: An Projekttag 32 lagen in „läuft“ drei Karten (JFX-28, JFX-29, JFX-31), eine über dem WIP-Limit; an Projekttag 34 lag JFX-32 neben dem wartenden JFX-29 (1 Punkt). JFX-29 musste beide Male warten und kam auf sechs statt höchstens vier Projekttage; zwei seiner sechs Tage hat niemand daran gearbeitet (1 Punkt). Der Mittelwert aller Tickets mischt kurze Expedite-Tickets mit verdrängten Standard-Tickets und sieht dadurch besser aus, als der Fluss für Standard-Tickets ist; aussagekräftig sind getrennte Werte je Serviceklasse (1 Punkt).

  4. 4 Punkte für eine begründete Stellungnahme mit Regel, z. B.: Abschaffen löst das Problem nicht, denn Fälle wie JFX-31 gibt es weiter; ohne Expedite hätten noch mehr Mitfahrende am falschen Ort gestanden (1 Punkt). Das Problem war nicht die Serviceklasse, sondern dass ein Termin als Notfall eingestuft wurde (1 Punkt). Regelvorschlag (2 Punkte), z. B.: Expedite vergibt nur das Team im Kanban-Meeting nach der Frage „Entsteht ein Schaden, wenn es erst im normalen Fluss bearbeitet wird?“; Tickets mit Termin bekommen Fixed Date und werden spätestens „Termin minus erwartete Durchlaufzeit“ nach „Bereit“ geholt; Durchlaufzeiten werden je Serviceklasse ausgewertet und Wartetage durch Expedite vermerkt.


Hinweis zur Nachnutzung als Open Educational Resource (OER)

Dieser Artikel und seine Texte, Bilder, Grafiken, Code und sonstiger Inhalt sind - sofern nicht anders angegeben - lizenziert unter CC BY 4.0. Nennung gemäß TULLU-Regel bitte wie folgt: “Übungsaufgaben zur Verwaltung und zu Diagrammen: Mitfahrgesuche auswerten” von oer-informatik.de (H. Stein), Lizenz: CC BY 4.0. Der Artikel wurde unter https://oer-informatik.de/javafx-verwaltung-diagramme-uebungsaufgaben veröffentlicht, die Quelltexte sind in weiterverarbeitbarer Form verfügbar im Repository unter https://gitlab.com/oer-informatik/javafx/javafx-einstieg. Erstellt mit KI-Assistenz; von mir umfassend redaktionell überarbeitet, geprüft und freigegeben. Stand: 11.11.2026.

[Kommentare zum Artikel lesen, schreiben] / [Artikel teilen] / [gitlab-Issue zum Artikel schreiben]

Kommentare gerne per Mastodon, Verbesserungsvorschläge per gitlab issue (siehe oben). Beitrag teilen: