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.