Lubeo schrieb:
Das umpassende an diesem Beispiel ist die Realität. Nehmen wir mal die F-22: Als der Prototyp entwickelt und gebaut wurde nahm man (irrtum vorbehalten) einen normalen Prozessor, der dann nach dem Erstflug bereits veraltet war. Dann wählten sie in weiser Voraussicht für die Serienausführung den modernsten/teuersten Prozessor den es damals gab. Heute dürfte dieser auch schon etwas veraltet sein und in ca. zehn Jahren, wenn man nicht Geld in die Hände nimmt um die Produktionslinie offen zu halten, wird man nur noch Ersatzprozessoren ab Lager erhalten und wenn dieses dann leer ist hat man ein "kleines" Problem.
Gutes Stichwort zum Thema IT in der Luftfahrt. Vielleicht ein, zwei Gedanken mehr dazu:
Das Beispiel mit der F-22 ist gut, richtig und dennoch problematisch. Das Entwicklungstempo von Prozessoren verschiedenster Machart und das der flugtechnischen Komponenten divergiert heftig. In den letzten Jahrzehnten galt nahezu ungebrochen das Mooresche Gesetzt nachdem sich der Transistorcount von Prozessoren (oder auch Speicher) in etwa alle 18-24 Monate verdoppelt. Läßt sich zwar nicht 1:1 auf die Geschwindigkeit übertragen - aber weit weg davon ist man nicht (pendelt halt ab und an ein wenig). Will sagen, selbst bei einem rasanten Entwicklungszeitraum von z.B. 6-7 Jahren hätte sich die Leistung um etwa eine Größenordnung verbessert. Ein früher Prototyp kann also niemals die zum Zeitpunkt der Serienfertigung verfügbare Rechenleistung haben (von den verschiedenen Blöcken ganz zu schweigen). Entweder man lebt damit oder man paßt halt bei den Serienprototypen entsprechend an. Das geht dann aber allen Maschinen so. Dabei stellt sich die Frage nach dem "Wieviel brauch ich denn - was ist mein Ziel" natürlich auch. Für sehr viele Anwendungsbereiche gilt ein mehr an Leistung bringt kein mehr an Nutzen. Hier geht man meist den anderen Weg und kann die geforderte Leistung mit immer weniger Ressourcen erledigen. Bsp. aus dem zivilen Bereich: MP3. Derzeit geht der Trend weg von schnelleren Prozessoren hin zu extrem sparsamen - aber Video (z.B. H.264/AVC) schafft da natürlich neue Betätigungsfelder. Ähnlich in der Luftfahrt - Mehrleistung führt zu neuen Funktionen. Swinging-Role ala Gripen ist ohne moderne Rechner nicht denkbar. Btw muß man sich von dem Gedanken "der Prozessor" trennen. In einem modernen Flugzeug findet sich eine Vielzahl an Rechnern verschiedenster Leistung die über mehr oder minder leistungsfähige Busse verbunden sind. Auch hier kommt ein klassisches Problem. Kompatibilität versus Leistungsfähigkeit. Moderne Waffen (bei Airlinern derzeit weniger) erfordern
eine hohe Datenübertragungsrate was alte Systeme ausschließt. Neue Systeme müssen aber auch die nicht unerhebliche Arsenale an alter Munition verwerten können. Nicht immer einfach.
Wie bereits erwähnt ist Hardware für die Luftfahrt nicht mit Alltagsgegenständen vergleichbar. Bei Computern kommen da jetzt gleich mehrere Schwierigkeiten zusammen. Natürlich strebt man nach möglichst viel Rechenleistung für z.B. Missionsrechner, um viele Aufgaben erledigen zu können und evtl. auch noch Aufwuchspotential zu haben. Dem stehen aber eine Menge Probleme entgegen. Das allerwichtigste: jede CPU muß verläßlich sein. Inzwischen sind Standard-Prozessoren dermaßen komplex geworden, daß kein fehlerfreies Design mehr möglich ist (man möge sich hierzu man genüßlich die Errata-Liste z.B. von Intel und AMD CPUs ansehen - andere haben das Problem natürlich auch). Diese Errata-Listen sind meist erst nach geraumer Zeit halbwegs stabil was den Einsatz neuer CPUs in kritischen Bereichen bereits ausschließt. Ferner stellen die immer kleineren Strukturbreiten ein erhebliches Problem in größeren Höhen da - Ursache die deutlich zunehmende Hintergrundstrahlung. Hier sind also unbedingt Fehlererkennende/Fehlerkorrigierende Codes Voraussetzung. Daher gibt es nach einiger Zeit von vielen Prozessorlinien auch nach einiger Zeit Varianten die für z.B. den medizinischen oder militärischen Einsatz ausgelegt sind. Ein berühmt gewordenes Beispiel ist der i8086 der in entsprechender Version sowohl im Spaceshuttle als auch in diversen medizinischen Aparaten Verwendung gefunden hat - der eine oder andere erinnert sich vielleicht daran, daß die NASA vor einiger Zeit nach solchen gesucht hat (was dann viele hat fälschlicherweise hat glauben lassen, daß der uralte PC von Opa auf einmal Unmengen wert wäre). Korrespondiert natürlich mit den genannten sehr kurzen Produktionszyklen im IT-Bereich - man muß also tatsächlich sämtliche für den geplanten Einsatzzeitraum vorgesehen Komponenten sehr zeitig beschaffen (oder später für irres Geld auftreiben / kampfwertsteigerungen durchführen). Früh kaufen und lange lagern bedeutet natürlich hohe Kosten - zumal die Systeme oft noch zu ihrem Zenit gekauft werden müssen.
Ein weiteres Hardwareproblem sind die immer ausgefeilteren Cachetechniken Für den PC daheim und am Arbeitsplatz ist es ungemein nützlich wenn die CPU ausgiebig davon gebrauch macht (man möge einfach mal die 1st und 2nd Level Caches im heimischen Bios disablen und zusehen wie die Kiste fortan durch den Tag schleicht). Für den Entwickler von Echtzeitsoftware ist sowas eine Qual, da man hier stets vom Worstcase ausgehen muß - also z.B. Trashing - was gelinde gesagt nicht mehr viel davon übrig läßt.
So - nachdem ich jetzt schon ungemein viel rumgeschwafelt hab aber das eigendliche Hauptproblem (na endlich *lol*). Die Komplexität dieser verteilten Systeme ist gigantisch. Es gibt Unmengen an Konstellationen die berücksichtigt werden müssen - aber nicht immer vorhersehbar sind (oder zumindest nicht vorhergesehen wurden). Sehr viel davon wird erst zu einem späten Zeitpunkt der Entwicklung erkannt und kann auch nicht immer mit kleinen Patches behoben werden. Je nachdem um was es sich handelt hängt die Entwicklung damit erheblich. Beispielhaft sei hier z.B. die FlightControlSystem des Eurofighters benannt. Nachdem Schwächen auftraten mußte ein Großteil aufwändig in einer neuen Testumgebung validiert werden. Und genau hier liegt auch eine große Schwäche des Softwareengeneerings. Die Entwicklung der Methoden und Tools hält einfach nicht Schritt mit der Hardware und der daraus resultierenden möglichen Komplexität. Wenn zuhause eine Software mit einer Schutzverletzung aussteigt ist das ärgerlich - manchmal auch kostspielig wenn wichtige Daten auf der Strecke bleiben. Wenn Inflight ein wichtiges System amok läuft ist das erheblich kritischer. Für den Entwickler einer Flügelstruktur z.B. ist von Anfang an klar welchen Prüfkriterien seine Arbeit genügen muß (nichtsdestotrotz ist das natürlich kein leichtes Unterfangen - ein sehr aufwendiger Optimierungsprozess - aber darüber können Schorsch und Co wesentlich mehr sagen). Bei der Softwareentwicklung wird oft immer noch mit den selbsterdachten Tests während der Entwicklung gearbeitet. Insbesondere aber die Vielzahl der Situationskombinationen in der Wirklichkeit ist kaum umfassend vorherzusehen. Sehr viel davon wird bei Simulationsversuchen erfaßt, vom Rest (hoffentlich) viel bei der Erprobung erkannt. Da Änderungen in einzelnen Bereichen teilweise erhebliche Kausalitätsketten nach sich ziehen sind viele Änderungen nicht im Wochenbereich zu bewältigen. So erklärt sich denn auch warum so manche Maschine schon recht seriennah wirkt - aber immer noch in der Erprobung dümpelt. Oder auch, daß frühe Chargen hardwareseitig nahezu komplett geliefert werden - die passende Software aber erst nachgereicht werden muß.
So - jetzt wollte ich nur ein, zwei Gedanken dazu einstreuen und hab schon soviel geschwafelt - aber noch nicht alles gesagt. Aber keine Angst - auch ich muß mal schlafen und somit verschone ich Euch jetzt vor weiterem Schrieb. Je nach Interesse vielleicht morgen mehr
(hm - morgen ist ja schon heute *lol*)
Wenn man sich die Vielzahl von Rechnersystemen anschaut kann man erahnen wieviel deren Integration kostet und somit auf die Stückkosten umgelegt werden muß.
Ich geb zu, daß das jetzt in der Tat doch erheblicher OT geworden ist als geplant. Aber den ganzen Text jetzt in die Tonne hauen hab ich auch keine Lust - müßt ihr jetzt durch :red:
Gruß,
Tom
Abschließend vielleicht noch. Softwareentwicklung ist ein höchst optimistischer Prozess - oder anders rum - ich hab noch nie von einem größeren Softwareprojekt gehört, daß auch nur annähernd im Zeit/Finanzrahmen geblieben wäre.