Spørsmål:
Hva var innholdet i de kjente feilene i Space Shuttle-programvaren?
DrSheldon
2019-07-05 05:42:25 UTC
view on stackexchange narkive permalink

Det er blitt hevdet eller antydet i andre innlegg at det i løpet av hele romfergens historie bare var en programvarefeil som faktisk overlevde utviklings- og gjennomgangsprosessen, noe som gjorde det til flygning. Selv om påstanden om bare én feil er en urbane legende, var antall feil langt mindre enn det som forekommer i kommersiell programvare, og det er et bevis på omsorgen som ble tatt av programvareutviklerne for skyttelbussen.

Hva var feilen (e) i Shuttle-programvaren?

  • Hvilken fase av flyet (f.eks. lansering, re-entry) var berørt?
  • Hvilke skyttelsystemer var involvert?
  • Hva skulle normal oppførsel være?
  • Hva gjorde feilen?
  • Har det skjedd noen uønsket oppførsel under et oppdrag?
Falske premisser. Mer enn en bug fløy. Det oppstod et FSW-problem under flukt i en av de siste 10 oppdragene. (Ikke hjemme så kan ikke være mer spesifikk akkurat nå) Også en Lambert-målrettingsfeil. Jeg kan tenke på flere uten forskning.
@OrganicMarble: Hva ville da vært en bedre måte å uttrykke spørsmålet på?
Ikke la det høres ut som det bare var en,
I et av de koblede svarene sa jeg "Den totale antall feil svinger rundt 1. På et tidspunkt rundt 1996 bygde de 11 versjoner av koden med totalt 17 feil." Dvs. en kjent feil av gangen, ikke en totalt for hele programmet.
Det første koblede svaret sier aldri at det bare var en feil som ble fløyet. Det står at de tror at det bare var en SEV-1-feil. Og det står at de vet at de personlig introduserte en feil.
Jeg vil foreslå "Det er blitt hevdet".
Takk for at du husker Shuttle Mission Simulator. Jeg jobbet med det i begynnelsen og jobber nå med Space Station Training Facility, fremdeles i Bldg 5. Det har også funnet FSW-feil før flyet. Flysimulatorer og integrasjonslaboratorier har en stor rolle i å fange problemer før flyturen.
To svar:
Organic Marble
2019-07-05 09:20:06 UTC
view on stackexchange narkive permalink

Selv om Space Shuttle-programvaren var av enestående kvalitet, er det helt feil å tro at det bare var en feil. Det var mange kjente feil i flyprogramvaren (FSW). Her er tre jeg kan tenke på fra toppen av hodet mitt som påvirket oppdrag.

  1. Flykampanjen til Shuttle-programmet startet med en pinlig programvarefeil! Det aller første lanseringsforsøket ble skrubbet da Backup Flight Software (BFS) datamaskinen nektet å synkronisere med de fire Primary Avionics Software System (PASS) datamaskiner. Detaljer i "The Bug Heard Round the World" her.

  2. Romfergen Endeavours første flytur (STS-49) var actionfylt av mange grunner. Det ene var at det ble funnet en feil i Lambert-målrettingsprogramvaren som ble brukt til å beregne møteparametere. Beregningen klarte ikke å konvergere

    på grunn av et misforhold mellom presisjonen til tilstandsvektorvariablene, som beskriver plasseringen og hastigheten til skyttelen, og grensene som ble brukt for å binde beregningen

    ( kilde) (Denne artikkelen snakker om ekstra shuttle FSW-feil)

    Ytterligere detaljer om misjonseffekter av Lambert-programvareproblemet, og diskusjon av andre FSW feil som påvirker møteoppdrag her

  3. Så sent som STS-126 i 2008, dukket det opp en ny feil i programvareutgivelsen OI-33. Etter Main Engine Cutoff, gjorde ikke to kommunikasjonssystemer som skulle overgå automatisk fra lansering til bane-konfigurasjon, på grunn av en kodefeil. de burde ha overført til det kraftigere Ku-bandet. Koblingen mellom skyttelbussen og dens nyttelast - Payload Signal Processor (PSP) - forblir konfigurert for en radiokobling i stedet for å bytte automatisk til den fastkoblede navlestrengstilkoblingen. dette problemet er her.

Flere andre feil dukket opp i Shuttle Mission Simulator-trening. De ble avdekket der på grunn av den ekstreme naturen til treningsscenariene sammenlignet med faktisk flytur eller FSW-verifiseringsanlegg. De påvirket aldri oppdrag, men de var bugs som fløy. Det er en presentasjon om disse feilene (de som var alvorlige nok til å krasje kjøretøyet) her. Her er en morsom presentasjon - PASS hang helt opp på en Transoceanic Abort Landing (TAL). Mannskapet måtte engasjere BFS.

Med tillatelse fra Tristan, her er et lysbilde fra en annen presentasjon av James Orr viser ~ 425 fløyne FSW-bugs (oppført som DRs - Discrepancy Reports) på toppen rundt 1983.

enter image description here

Kilde

TL; DR: Hvis noen forteller deg at romfergen bare hadde en FSW-feil, må du ikke kjøpe noen eiendom fra dem.

En kjent feil som det finnes en kjent løsning for, er kanskje ikke lenger en "feil". Det blir i stedet en "funksjon", men en funksjon som aldri skal påberopes.
IMO, en feil med en løsning er fortsatt en feil. Men du veier opp sannsynligheten for at det manifesterer seg, alvorlighetsgraden når det gjør det, og komplikasjonen av løsningen; og du sammenligner det med risikoen for å introdusere andre feil når du prøver å fikse det.
@RogerLipscombe er enig. Løsningen for Lambert-målrettingsproblemet introduserte en annen feil (denne ble funnet i Shuttle Mission Simulator rett før flyturen. Gode tider.)
@DavidHammen: Jeg er uenig i definisjonen. En feil blir bare en funksjon når det som opprinnelig var en uønsket (bivirkning) blir en ønskelig (bivirkning). En løsning gjør ikke feilens effekt ønskelig, det gjør den bare _håndterbar_.
@Flater Helt riktig. Begrepet [feature] (http://hackersdictionary.com/html/The-Jargon-Lexicon-framed.html) blir forklart i "The Hacker's Dictionary" med en liten dialog. Det står også: _`Undokumentert funksjon 'er en vanlig, angivelig humoristisk eufemisme for en feil._ En kjent feil blir aldri en "funksjon" med mindre du bruker tung markedsføringsmagi.
Re. # 3 - glemmer å distribuere antennen din før du er utenfor rekkevidde, suger virkelig KSP. Her er også et [kaninhull] (https://gaming.stackexchange.com/questions/256801/whats-the-difference-between-bug-and-glitch#comment358478_256801) (se kommentaren min) alt om * bugs * og * feil *.
Jeg slapp problemer med "dårlig brukergrensesnittdesign" som jeg personlig ville sett på som feil. Det var en fantastisk en, hvis mannskapet manuelt gikk over til en annen OPS-modus, gjorde det det umulig å skille den eksterne tanken. oops!
Jeg snublet over denne lenken som også virker relevant: https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/20100028293.pdf
@Tristan takk! Det er den samme fyren som skrev presentasjonen jeg koblet. Jeg tror han var FSW-ingeniør i JSC.
Hvor er ROTA, i sammenheng med den låste PASS TAL?
AiliohhynlCMT Rota, Spania.
Den nedadgående trenden i denne grafen virker veldig oppmuntrende til du innser at 25 år er nesten like lang som grafen og mange nyere feil ennå ikke kan bli oppdaget hvis det tar så lang tid å finne dem.
@OM - Jim Orr jobbet for IBM Federal Systems før 1995-ish. IBM hadde en eneste kildekontrakt for FSW. På et tidspunkt ser det ut til at han gikk over til USA. Han har kanskje ikke jobbet hos Loral og Lockheed-Martin. Kanskje det er i LinkedIn-profilen hans? Jeg husker bare å se grafer om STS-programvarefeilene, feiltyper, alvorlighetsgraden av feil etter at han holdt presentasjoner til NASA. Teamet jeg var på, gjorde den samme analysen for kode som aldri kom til verken IBM eller NASA. Vi prøvde alltid å levere feilfri kode til klienten.
JohnP
2019-07-26 11:15:05 UTC
view on stackexchange narkive permalink

Som forfatter av 1 av innleggene du refererer til om antall feil som er funnet, har du misforstått ordene. Vennligst les dem på nytt.

På STS er en "feil" når programvaren ikke oppfyller kravene. Det betydde ikke nødvendigvis at noe ille ville skje, bare at koden ikke samsvarte med kravene. Utviklerne klassifiserte ikke feilene. For altfor komplekse feil kan en utvikler bli bedt om analyse. Ingenting ble kalt "en funksjon" hvis det ikke var i kravene. Det ville også være en feil.

I tillegg fikk utviklerne ikke fikse feil uten formell autorisasjon. Vi fikk ikke endre noen linje i kilden som ikke var direkte relatert til endringsautorisasjonen vi jobbet under. Vi fikk ikke endre innrykk for å gjøre koden mer lesbar, med mindre endringene i nærheten var betydelige nok. Disse begrensningene skulle forhindre utilsiktede endringer, noe som ville føre til utilsiktet introduksjon av feil. Hver linje som ble endret ble merket til en bestemt person og CR / DR-autorisasjon.

Spesielt med veiledningsberegninger, kunne ikke kravene noen ganger implementeres på grunn av datamaskinens begrensninger. I sanntidskoding er et sent svar like ille som et feil svar. Minst én gang måtte kravene endres for å matche koden.

Ingen vet det virkelige antall feil i hvilken som helst programvare når som helst, men Jim Orr skrev bokstavelig talt boka om Space Shuttle-programvareproblemer og feil . Han fikk alle dataene om kravgjennomganger, designanmeldelser, testplangjennomganger, kodegjennomgang og testresultater da jeg jobbet der for GN&C FSW

Det var definitivt hundrevis av bugs i FSW, veldig få var betraktet SEV-1. Ingen vil føre til at datamaskinen låser seg opp eller andre typiske feil som folk tåler i livet i dag. GN&C-koden hadde ikke problemer som vanlig desktop- eller serverkode gjør. Det var ingen dynamisk minnetildeling. Bruk av pekere krevde en skriftlig, godkjent avvik fra SW-standardkortet. All koden ble formelt fagfellevurdert av minst 6 personer. Mer komplisert kode vil bli gjennomgått av mer enn 20 personer - i samme rom. I løpet av flere tiår forbedret prosessen som ble brukt til å lage programvaren. Prosessen ble satt opp på en slik måte at den ikke stolte på superprogrammerere for å lage relativt feilfri programvare. Det handlet egentlig om prosessen.

I løpet av mine tiår med å skrive programvare hos mange forskjellige selskaper, har jeg sett at overalt ellers er avhengig / håp om superprogrammerer -ideen for å gi bedre resultater. Problemet med dette er at superprogrammerer ikke er lett reproduserbar. Jeg har sett det fungere ett sted, og bare fordi hver programmerer betraktet enhver feil som en personlig feil. Overalt ellers sitter fast med gode, gjennomsnittlige og dårlige programmerere. Spesielt i større organisasjoner ser skalaen ut til å skifte mot dårlig mer enn andre steder. Det er alltid unntak, og selv om jeg har jobbet direkte med 3000 programmerere profesjonelt, er det ikke alle programmerere overalt.

Håper dette avklares og er nyttig.

Er du også JDP (https://space.stackexchange.com/users/18811/jdp)? I så fall kan du slå sammen kontoene dine og få tilbake omdømmet du fikk fra de andre fine svarene dine. Din ekspertise er velkommen her! Slik slår du sammen kontoer: https://stackoverflow.com/help/merging-accounts


Denne spørsmålet ble automatisk oversatt fra engelsk.Det opprinnelige innholdet er tilgjengelig på stackexchange, som vi takker for cc by-sa 4.0-lisensen den distribueres under.
Loading...