PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie kann man sowas schaffen? Unglaublich...


Peppo
2006-03-13, 22:40:48
[...]
> > I worked on the Safeguard software from 1969 to 1975 [...]
> What was it written it? What did it run on?

Almost all of it was written in assembly language -- at the time the
largest programming project ever written -- maybe 4,000 man-years.
(It came in on time, on budget, and on spec, and there aren't very
many programming projects of ANY size that did that! And as far as we
knew it would have worked perfectly against the threat it was designed
for, ten years before! <grin>)

The reason for ass'y was simply for speed. As I've told a lot of my
programming projects, the design goal was, "If we can shave another
micro-second out of an inner loop, then we can keep 652 balls in the
air at one time instead of 651. Hey! Now we can save Pittsburgh!"
Many of the inner "loops" were NOT, in fact loops, but were written
out linearly for speed. (ANY tradeoff of memory for speed was
legitimate - I can remember design-change meetings where the proposal
was to save a millisecond.)

It ran on a multi-CPU mainframe "farm" custom-built by Univac. Six or
eight CPUs, as I recall, with task dispatching as required. Note that
SMP systems weren't exactly common in the late 60's, let alone
fault-tolerant ones. We used to show off when the generals came
through by asking them to disconnect any data cable or pull any power
plug out of the wall, and the software would reconfigure on the fly
for the loss of a CPU, memory unit, console, or whatever!!! For
transient errors, it could recover from an error interrupt ANYWHERE
without a problem - and that included the first-level interrupt
routines themselves! IIRC, we could recover from a trap in over 99%
of the SECOND-LEVEL interrupt-handler code!
[...]
http://www.paineless.id.au/missiles/Computers.html


Wahnsinn... Ich kann das irgendwie gar nicht vorstellen...
Ich meine, wenn man Software für ein ABM System schreibt, da bleit sicher
kein Platz für Bugs... Denn im Ernstfal, würden diese Bugs millionen Tote forden... :eek:

Mit welchen Aufwand ist sowas möglich?
Und vor allem, wie? :uponder:



Edit:
Falls das hier die falsche Unterforum wäre, bitte dementsprechend verschieben... :)

Demirug
2006-03-13, 23:28:40
Das gute alte Safeguard Projekt.

Ich will die Leistung der Entwickler jetzt nicht herunterspielen aber es ist leicht von Fehlerfreiheit zu sprechen wenn ein System niemals praktisch (glücklicherweise) eingesetzt werden musste.

Sie haben es in den ~10 Jahren aber geschafft alle festgelegten Testszenarien erfolgreich zu bestehen. Das Geheimnis (das eigentlich keines ist) war das man neben dem eigentlichen System auch noch einen Simulator programmiert hat der das System ständig getestet hat.

RMC
2006-03-14, 08:51:54
Wtf ist Safeguard? Kann das mal einer erläutern? Gehts um ein Lenksystem für Abwehrraketen oder bin ich da ganz falsch?

Peppo
2006-03-14, 09:23:34
Das gute alte Safeguard Projekt.

Ich will die Leistung der Entwickler jetzt nicht herunterspielen aber es ist leicht von Fehlerfreiheit zu sprechen wenn ein System niemals praktisch (glücklicherweise) eingesetzt werden musste.

Das stimmt allerdings.


Sie haben es in den ~10 Jahren aber geschafft alle festgelegten Testszenarien erfolgreich zu bestehen. Das Geheimnis (das eigentlich keines ist) war das man neben dem eigentlichen System auch noch einen Simulator programmiert hat der das System ständig getestet hat.

Das heißt, sie haben "einfach" ein zweites System parallel programmiert.
Das muß aber auch einen enormen aufwand bedeutet haben, ein Simulationssoftware
zu entwickeln, welche den Anforderungen genügt hat. Wobei diesen den System ständig(!) überprüft hat.
http://srmsc.org/ref1020.html (Chapter 3 - 5)

Bin selber Techniker, kein Softwareeintwickler ;), ich finde das Ganze sehr interessant, vor allem aus technischer Sicht.

Siehe 4-6 bis 4-25
http://srmsc.org/images/004438p0.pdf

Peppo
2006-03-14, 09:29:53
Wtf ist Safeguard? Kann das mal einer erläutern? Gehts um ein Lenksystem für Abwehrraketen oder bin ich da ganz falsch?

Du bist nicht falsh. Safeguard war der ABM-System der USA in den 70ern.
Teile davon sind immernoch aktiv. z.B: Perimeter Acquisition Radar (PAR) (http://srmsc.org/par1000.html)

Demirug
2006-03-14, 09:32:59
Wtf ist Safeguard? Kann das mal einer erläutern? Gehts um ein Lenksystem für Abwehrraketen oder bin ich da ganz falsch?

Ja, genau um so was: http://srmsc.org/

Demirug
2006-03-14, 09:39:56
Das heißt, sie haben "einfach" ein zweites System parallel programmiert.
Das muß aber auch einen enormen aufwand bedeutet haben, ein Simulationssoftware
zu entwickeln, welche den Anforderungen genügt hat. Wobei diesen den System ständig(!) überprüft hat.
http://srmsc.org/ref1020.html (Chapter 3 - 5)

So hoch ist der Aufwand dafür gar nicht. Es ist letzten Endes sogar weniger Aufwand wie eine komplette manuelle Überprüfung. Nach diesem Prinzip wird zunehmend auch heute noch Software überprüft. Wobei die Simulationsfälle meist viel einfacher ausfallen können.

micki
2006-03-14, 11:08:34
man kann im studium auch lernen wie man programme in formel (ungleichungen) zerlegt und dann ist es möglich vom vorgegebenem resultat alles bis zu vorgegebenem input aufzulösen. falls das nicht gelingt, hat man entweder einen fehler beim design vom programm oder beim auflösen der formeln gemacht :)

Coda
2006-03-14, 11:35:26
Das ist aber eventuell eine Lebensaufgabe. Vor allem bei einem Programm das 4000 Mann-Jahre Entwicklungszeit hatte.

DocEW
2006-03-14, 12:24:51
man kann im studium auch lernen wie man programme in formel (ungleichungen) zerlegt und dann ist es möglich vom vorgegebenem resultat alles bis zu vorgegebenem input aufzulösen. falls das nicht gelingt, hat man entweder einen fehler beim design vom programm oder beim auflösen der formeln gemacht :)
Ist es das, was sich hinter der Vorlesung Model Checking verbirgt? (Hab ich nie gehört.)

Trap
2006-03-14, 14:59:15
Model Checking ist eine Variante von Verifikation, es gibt noch einige andere. Das was micki erwähnt hat ist Hoare-Kalkül bzw. weakest precondition. Dann gibt es noch den Ansatz über denotationelle Semantik.

Ich hab bis jetzt hauptsächlich den Ansatz über denotationelle Semantik gemacht, wofür sich die anderen Ansätze besser eignen weiß ich nicht...

Peppo
2006-03-14, 15:50:44
Wenn Du das für uns normalsterbliche erklären könntest... ;)

micki
2006-03-14, 16:19:32
Das ist aber eventuell eine Lebensaufgabe. Vor allem bei einem Programm das 4000 Mann-Jahre Entwicklungszeit hatte.
aber der einzige absolute beweis der richtigkeit von code. wenn man nur testet, besteht die möglichkeit, dass man einen test übersieht oder ein zweig der software nie getestet wird (aus versehen). wenn du mathematische formeln auflöst, hast du den beweis dass bei ausschluss von rechenfehlern die software richtig ist.
ob man das macht oder nicht hängt dann von der wichtigkeit ab. einige software von raketen und sateliten soll angäblich so auf richtigkeit überprüft werden.

@DocEW
ich weiß leider nicht mehr wie der kurs hies :(