Falsche Annahmen, die Programmierer über die Luftfahrt glauben
(flightaware.engineering)- Luftfahrtdaten sind komplex und weisen viele nicht standardisierte Eigenschaften auf
- Entwickler treffen häufig falsche Annahmen über Flüge, Flughäfen, Navigation und Transponderinformationen
- Reale Flugverfolgungssysteme müssen flexibel auf vielfältige Ausnahmesituationen und Datenanomalien reagieren
- Viele Missverständnisse verursachen unerwartete Fehler in Software oder Kundensystemen
- Beim Entwurf von Datenmodellen ist eine Perspektive nötig, die die Komplexität der Realität sorgfältig abbildet
Überblick
FlightAware ist ein Unternehmen, das Software zur Verarbeitung und Verteilung von Luftfahrtdaten weltweit entwickelt. Tatsächliche Luftfahrtdaten sind jedoch entgegen der Intuition nicht streng strukturiert und voller Ausnahmen und Unregelmäßigkeiten. Viele Entwickler gehen bei Datenstrukturen, Abläufen und Identifikationssystemen von bestimmten Voraussetzungen aus, doch diese erweisen sich in der Praxis als falsch und führen zu Systemfehlern und Inkonsistenzen. Dieser Beitrag setzt die Reihe über falsche Annahmen fort und fasst häufige Missverständnisse in Software für die Luftfahrtindustrie sowie daraus entstehende Fälle zusammen.
Flights (Fluginformationen)
- Es ist ein Irrtum, dass ein Flug immer am Gate startet; tatsächlich kann er mehrfach das Gate wechseln oder viel später oder früher als geplant abfliegen
- Flugpläne oder Abflug- und Zielflughäfen wirken oft eindeutig, aber etwa bei Hubschraubern oder Militärflugzeugen gibt es Fälle, in denen Starts und Landungen nicht an Flughäfen stattfinden
- Flugzeiten und Einsatzpläne scheinen regelmäßig zu sein, doch mehrtägige Langzeitflüge oder unregelmäßige Operationen kommen ebenfalls häufig vor
- Man nimmt leicht an, dass eine Flugkennung (z. B. UAL1234) eindeutig ist, in Wirklichkeit werden einem Flugzeug jedoch mehrere Kennungen oder Nummern zugeordnet, und dieselbe Nummer kann in verschiedenen Situationen verwendet werden
- Selbst bei äußerlich gleicher Nummer vermischen sich Flugkennungen, Registrierungen und andere Bezeichnungen, was zu Verwirrung führt, und Ticketing, Flugsicherung und Piloten können unterschiedliche Identifikationsangaben verwenden
Airports (Flughafeninformationen)
- Man könnte annehmen, dass Flughafenstandorte und Identifikationscodes fest sind, doch Flughäfen werden geschlossen, verlegt oder zusammengelegt, wodurch sich Standort oder Code ändern können
- Auch die Benennungssysteme für Terminal-/Gate-Nummern, Start- und Landebahnen usw. sind nicht einheitlich und enthalten viele Ausnahmeregeln
- Auch bei den ICAO-/IATA-Codes gibt es zahlreiche Fälle von Überschneidungen, mehrfach vergebenen Codes und Missverständnissen über Standortcodes, die nicht mit der Realität übereinstimmen
- Das Vorhandensein bestimmter Identifikationsangaben (z. B. eines IATA-Codes) garantiert nicht, dass es sich tatsächlich um einen Flughafen handelt; es gibt auch IATA-Codes für Bahnhöfe oder Bus-Terminals
- Einige ICAO-Codes wurden sogar Orten außerhalb der Erde zugewiesen (z. B. außerirdischen Kratern)
Airlines (Fluggesellschaftsinformationen)
- Da keine konkreten falschen Annahmen in einem eigenen Abschnitt genannt wurden, wird dieser Teil ausgelassen
Navigation (Navigations- und Routeninformationen)
- Es ist ein Irrtum zu glauben, Wegpunktnamen seien eindeutig; tatsächlich gibt es Duplikate
- Die in der Luftfahrt verwendete Definition von Höhe ist nicht auf einen einzigen Standard festgelegt, sondern wird je nach Bezugsgröße unterschiedlich interpretiert
- Man könnte meinen, Flugsicherungsdaten seien vollkommen präzise, doch in der Praxis treten häufig Fehler oder Änderungen auf
- Stornierungen von Flugplänen oder Planänderungen spiegeln sich nicht unbedingt im tatsächlichen Flug wider, und derselbe Flug kann sein Ziel mehrfach ändern
- Es gibt auch Radar-Inkonsistenzen, Datenabweichungen zwischen Flugsicherungsstellen und Positionsunterschiede bei gleichzeitigen Beobachtungen
Transponders and ADS-B (Transponder- und ADS-B-Informationen)
- Man nimmt an, ADS-B-Signale würden nur von Flugzeugen gesendet, tatsächlich können sie aber auch von Flughafenfahrzeugen oder anderen Geräten ausgesendet werden
- Auch ein übermäßiges Vertrauen in die Genauigkeit von GPS-Koordinaten und die Zuverlässigkeit von Signalen ist ein Irrtum
- Durch Fehler, Duplikate, fehlende Wartung oder Formatfehler bei Transponder-Registrierungsdaten (Kennnummern, Mode-S-Adressen usw.) treten häufig Abweichungen zwischen Echtzeitdaten und tatsächlichen Informationen auf
- Es ist leicht anzunehmen, dass ADS-B-Informationen unverändert empfangen und gespeichert werden, doch in Wirklichkeit gibt es verschiedenste Probleme wie Übertragungsfehler oder Signalmanipulation
- Geräteausfälle, mangelhafte Verwaltung und externe Faktoren (z. B. von Mäusen beschädigte Kabel) sind ebenfalls reale Variablen
Schluss
Diese Liste zeigt die Komplexität der Zuverlässigkeit von Luftfahrtdaten, basierend auf den Erfahrungen und Erkenntnissen, die die Entwicklungsteams von FlightAware und Hyperfeed über viele Jahre aus zahlreichen realen Fällen gewonnen haben. Sie unterstreicht die Bedeutung von Datenmodellierung und Betrieb, die bestehende Ausnahmesituationen konsequent berücksichtigen, um verschiedenste Fehler und Missverständnisse zu reduzieren.
4 Kommentare
Deshalb ist Datenstandardisierung ... wichtig .. hehe
Der Text selbst ist wirklich sehr knapp, aber die darin mitschwingende Emotion;;
Allein beim Lesen steigt mir schon der Blutdruck, haha.
Hacker-News-Kommentare
Erklärung der Situation, dass es bei Flugzeugen keine einzelne, eindeutige Kennung gibt, die sich im Lauf der Zeit nicht ändert. Jedes Luftfahrzeug erhält zwar eine Seriennummer, doch diese allein garantiert keine Eindeutigkeit, wie aus praktischer Erfahrung berichtet wird. Die Kombination aus „Hersteller, Typ, Seriennummer“ ist noch am ehesten eine über die gesamte Lebensdauer eindeutige Kennung, aber selbst diese kann sich ändern, wenn sich der Typ durch strukturelle Umbauten verändert. Ergänzt wird die persönliche Beobachtung, dass es erstaunlich ist, dass es in einem so großen und komplexen System wie der Luftfahrt keine unveränderliche Kennung gibt. Die Luftfahrzeug-Registrierungsnummern (Tail Numbers) ändern sich wie Kfz-Kennzeichen, und auch die 24-Bit-ICAO-Kennung ist an ADS-B-Geräte gebunden und kann daher frei mitgenommen oder geändert werden
Verwunderung darüber, dass die Kombination „Hersteller, Typ, Seriennummer“ patentiert wurde. Es wird gefragt, wie so etwas als neuartig anerkannt und patentfähig sein konnte
Verbindung dieser Geschichte mit dem Paradoxon vom Schiff des Theseus und eine philosophische Assoziation zur Identität eines Flugzeugs und zu Änderungen seiner Kennungen Wikipedia-Link zu Ship of Theseus
Historischer Hintergrund, dass sich die Luftfahrtindustrie je nach Land in isolierten Silos unterschiedlich entwickelt hat und sich die Standardisierung deshalb verzögert hat. Aus dieser Sicht ist es bereits erstaunlich, dass sich überhaupt globale Standards durchsetzen konnten. Die Analyse dazu: Das ist heute zumindest teilweise möglich, weil große Hersteller inzwischen auf wenige Akteure konsolidiert wurden
Praktische Erfahrung, dass die Frage nach einer „wirklich“ eindeutigen Kennung in realen Umgebungen häufig wichtig wird. Die Lösung ist fast immer die Kombination aus „Modell, Hersteller, Seriennummer“, bei Bedarf ergänzt um das Produktionsjahr. Erwähnt wird sogar ein Fall, in dem bei Personendaten anhand von Kriterien wie Sprache bzw. Muttersprache ein De-Duplizierungsversuch unternommen wurde
Als Beispiel dafür, dass sich sogar Startbahnnummern im Lauf der Zeit ändern, wird der Wikipedia-Artikel Runway geteilt
Meinung, dass solche Listen immer viel nützlicher wären, wenn sie mit ausführlicheren Erklärungen versehen würden. Allerdings seien unter den verlinkten Quellen viele interessante Informationen, zum Beispiel der Fall, dass ein Marskrater einen ICAO-Flughafencode erhalten hat (JZRO) Wikipedia-Link zum Jezero-Krater, Beispiel für einen Flug mit normalem Abflug, aber 40 Stunden Verspätung bei der Landung
Es wird infrage gestellt, wie die Kombination aus Hersteller, Typ und Seriennummer so offensichtlich erscheinen und dennoch patentiert werden konnte, und ob heute noch jemand von diesem Patent profitiert
Aus der Erfahrung bei der Entwicklung von Software zur Analyse von Flugdaten wird berichtet, dass sowohl Hubschrauber als auch Flugzeuge an den unterschiedlichsten Orten starten und landen — Krankenhäuser, Dächer, Parkplätze, Sportplätze, Flughäfen, Golfplätze usw. — weshalb Entwickler in der Praxis die meiste Zeit inmitten solcher „Lügen über die Luftfahrt“ verbringen
Sichtweise, dass bei der Reihe „Falsehoods...“ immer wieder interessant ist, wie viele Entwickler der Illusion erliegen, menschenzentrierte Systeme würden sich nach strengen Regeln richten
Entwickler reduzierten gern alles auf ein striktes Regelwerk, müssten aber anerkennen, dass die reale Welt nicht so funktioniert
Analyse, dass der Beruf des Programmierers im Kern die Schnittstelle zwischen flexiblen menschlichen Systemen und streng regelbasierten Maschinen ist
Geteiltes Dilemma und die Verwirrung aus Sicht von Programmierern, wenn sie die Welt in Software modellieren und dabei gewisse Annahmen für selbstverständlich halten, die in der Realität überhaupt nicht gelten. Beispiel: die Annahme, dass ein Flug selbstverständlich einen Abflug- und einen Ankunftsflughafen hat, obwohl die Realität anders aussehen kann
Behauptung, dass man beim Wesen von Software Domain-Modellierung zwangsläufig in ein Regelwerk übersetzen muss, weil man sonst keinerlei Funktionalität anbieten kann. Da Ausnahmen wie „Leap Second“ Laien schnell wie Unsinn vorkommen, seien es oft gerade Entwickler, die sich der Ausnahmen und Komplexität der Welt besonders bewusst sind
Vorschlag, in der Reihe „Falsehoods Programmers Believe...“ jeden Punkt als Testfall zu behandeln. So könne man daraus Unit- oder Integrationstests ableiten, um falsche, im Programm verankerte Annahmen zu überprüfen
Es wird erwähnt, dass die Annahme „Flüge starten und landen an Flughäfen“ in älteren brasilianischen Luftfahrtsystemen bedingungslos eingebaut war und man das mit einem Workaround lösen musste. Auch die Annahme „Flughäfen/Startbahnen verändern weder ihre Position noch ihre Ausrichtung“ sei viel zu oft fälschlich getroffen worden. Dazu wird vorgeschlagen, zusätzlich die Annahme „Luftfahrzeuge landen nur auf Startbahnen oder Helipads“ aufzunehmen
Geteilt wird ein Video von CGP Grey, das das chaotische Zustandekommen von Flughafencodes gut zusammenfasst YouTube-Link. Es erklärt auch die Eigenheiten des Systems
Ebenfalls vorgestellt wird eine Diskussion im FlightAware-Forum zum gleichen Thema Link zum FlightAware-Forum
Aus Sicht eines Programmierers wird geschildert, dass alle Annahmen in dieser Liste zunächst vernünftig wirkten, bis die Realität auf schmerzhafte Weise klar wurde und einem dabei fast der Kopf explodiert. Abschließend wird die Liste als hervorragende Zusammenfassung gelobt