Correctness, confidence, and context: Framing software assurance in the AI age
Het artikel betoogt dat het statistische karakter van generatieve AI, dat steunt op probabilistische voorspellingen in plaats van formele striktheid en moeite heeft met het vatten van impliciete menselijke context, een systematische engineeringbenadering noodzakelijk maakt om softwareverzekering te herformuleren door verder te gaan dan codespecificaties naar de ontwikkeling van kosteneffectieve, redelijke combinaties van technieken die de geschiktheid van een systeem voor een bepaald doel waarborgen.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
Het Grote Softwarepuzzel: Waarom "Perfectie" Niet het Doel Is
Stel je voor dat je een gigantisch, onzichtbaar kasteel bouwt van logica en instructies. Dit is wat software engineers elke dag doen. Ze schrijven code om computers dingen te laten doen, van het bestellen van een pizza tot het besturen van vliegtuigen. Een lange tijd was de droom om deze kastelen zo perfect te bouwen dat ze nooit, ooit, een fout zouden maken. Ingenieurs wilden wiskundig bewijzen dat elke baksteen precies op de juiste plek lag. Maar hier is de crux: de echte wereld is rommelig. Het zit vol met ongeschreven regels, culturele gewoonten en "gezond verstand" dat je niet in een lijst met instructies kunt opschrijven.
Stel je nu voor dat er een nieuw soort helper is gearriveerd: Kunstmatige Intelligentie (AI). Deze AI is ongelooflijk slim in het raden wat er volgt, zoals een supersnelle gokker die bijna elk boek heeft gelezen dat ooit geschreven is. Maar in tegen tegenstelling tot de traditionele engineers die dingen wilden bewijzen, werkt deze AI op basis van waarschijnlijkheden. De AI zegt: "Ik ben voor 90% zeker dat dit het juiste antwoord is," in plaats van: "Ik weet met zekerheid dat dit het juiste antwoord is." Dit creëert een groot probleem: Hoe vertrouwen we een systeem dat gebouwd is op gissingen wanneer we veiligheid nodig hebben? Dit is de puzzel waar Mary Shaw zich mee bezighoudt. Ze wil onze manier van denken over "correctheid" in software veranderen, weg van de onmogelijke droom van perfectie en naar een meer praktische, engineer-achtige aanpak van ervoor zorgen dat dingen "goed genoeg" zijn voor de taak die ze moeten uitvoeren.
Het Grote Idee van het Papier: Van "Perfect" naar "Goed Genoeg"
In deze keynote-presentatie voor software engineers betoogt Mary Shaw dat we moeten stoppen met proberen te bewijzen dat onze software 100% perfect is, en ons moeten gaan richten op de vraag of het geschikt is voor zijn doel. Ze suggereert dat de oude manier van denken — het proberen te schrijven van een perfecte set regels om te bewijzen dat een programma correct is — kapot is, vooral nu we AI gebruiken.
Hier is het verhaal van haar argument, opgedeeld in eenvoudige delen:
1. Het Schaduwprobleem: Wat de AI Niet Kan Zien
Stel je voor dat je een complex object probeert te beschrijven, zoals een opvouwbare papieren beker, aan een vriend die nog nooit een beker heeft gezien. Je kunt hem alleen de schaduwen laten zien die het object op een muur werpt. Van voren ziet de schaduw eruit als een vierkant. Van de zijkant ziet het eruit als een driehoek. Van bovenaf ziet het eruit als een cirkel. Als je alleen de schaduwen zou hebben, zou je misschien denken dat het een vreemd blok is, maar je zou de essentie missen dat het een beker is die water kan vasthouden.
Shaw zegt dat AI-modellen als die vriend zijn die naar schaduwen kijkt. Ze zijn getraind op "digitale schaduwen" — de tekst, code en data die online bestaan. Maar de echte wereld zit vol met tacit knowledge (stilzwijgende kennis): dingen die we weten, maar niet opschrijven. Dit omvat de "vibe" van een werkplek, de ongeschreven regels van een cultuur, of het onderbuikgevoel van een ervaren monteur die een vreemd geluid in een motor hoort. Omdat deze kennis niet is opgeschreven, kan de AI het niet zien. De AI ziet alleen de schaduw, niet het echte object. Wanneer AI probeert software te bouwen, kan het deze cruciale, onzichtbare details missen, wat leidt tot fouten die een menselijke expert direct zou hebben opgemerkt.
2. De "Cargo Cult" van het Programmeren
Shaw vertelt een verhaal over mensen op eilanden die zagen hoe vliegtuigen landden met voedsel tijdens een oorlog. Toen de oorlog voorbij was en de vliegtuigen stopten met komen, bouwden de lokale bewoners bamboe controle torens en marcheerden ze in formatie, in de hoop de vliegtuigen terug te roepen. Ze kopieerden de schaduwen van de activiteit (het marcheren, de torens), maar misten de werkelijke oorzaak (de logistiek en planning van het leger).
Ze waarschuwt dat het gebruik van AI om code te schrijven soms kan resulteren in een "cargo cult". We kunnen de AI vragen om code te schrijven die er juist uitziet (de schaduw), zonder te begrijpen wat de diepere redenen zijn waarom de code op die manier moet zijn. Als we alleen vragen om "vibe coding" (coderen op basis van een gevoel of een simpele prompt) zonder de verborgen regels te begrijpen, bouwen we misschien systemen die er goed uitzien, maar uit elkaar vallen wanneer er echte problemen in de wereld optreden.
3. "Credentials" in plaats van "Specs"
Traditioneel proberen engineers een perfecte "specificatie" te schrijven — een enorme, rigide regelbundel die precies zegt wat de software moet doen. Shaw suggereert dat dit onmogelijk is omdat de wereld verandert en we niet alles kunnen voorspellen.
In plaats daarvan stelt ze voor dat we software behandelen als iemand die solliciteert voor een baan. We hebben niet hun hele levensverhaal nodig; we hebben alleen hun credentials (kwalificaties) nodig.
- Een duiker laat een kaart zien met: "Ik kan duiken tot 30 meter."
- Een piloot laat een licentie zien met: "Ik kan dit vliegtuig besturen."
- Een softwaresysteem moet een "credential" tonen die zegt: "Ik ben voor 90% zeker dat ik 1.000 gebruikers kan afhandelen," of "Ik ben getest op veiligheid voor deze specifieke taak."
Deze credentials zijn geen perfecte bewijzen; het zijn eerlijke verklaringen over hoe zeker we zijn, waar die zekerheid vandaan komt en wat de beperkingen zijn. Het is een manier om te zeggen: "We hebben dit gecontroleerd, en dit is hoe zeker we zijn."
4. De Keuze van de Engineer: Satisficing
Het papier suggereert dat we moeten stoppen met proberen perfect te zijn en moeten beginnen met satisficing. Dit is een chique woord voor "een oplossing vinden die goed genoeg is."
- Als je een game bouwt, heb je misschien geen 100% perfectie nodig. Een paar bugs zijn oké als de game leuk is en goedkoop te maken is.
- Als je een medisch apparaat bouwt, heb je een veel hoger niveau van vertrouwen nodig.
Shaw betoogt dat engineers moeten handelen als echte engineers: ze moeten kijken naar de kosten, het risico en het doel, en vervolgens de juiste mix van tools kiezen om de klus te klaren. Soms is het goedkoper om een probleem te repareren nadat het is opgetreden, dan te proberen het ooit te voorkomen. Het doel is niet om alle fouten te elimineren (wat onmogelijk is); het doel is om het risico te beheren zodat het systeem veilig en nuttig is voor zijn specifieke taak.
Wat dit betekent voor de toekomst
Mary Shaw zegt niet dat AI slecht is. Ze zegt dat we AI niet als een toverstaf moeten behandelen die alles oplost. We moeten slimmer zijn in hoe we het gebruiken. We moeten accepteren dat AI werkt op basis van gissingen (statistiek) en dat het de onzichtbare "schaduwen" van de menselijke cultuur en ervaring niet kan zien.
Haar belangrijkste boodschap is een oproep tot actie voor de softwaregemeenschap: Laten we stoppen met pretenderen dat we alles perfect kunnen bewijzen. Laten we in plaats daarvan eerlijke engineers zijn. Laten we systemen bouwen waarbij we precies weten waar we wel en niet over zeker zijn, en waarom. Door dit te doen, kunnen we AI gebruiken om betere software te bouwen, zonder in de valstrik te trappen van de gedachte dat we het onoplosbare hebben opgelost.
Kortom, het papier suggereert dat de toekomst van software niet gaat over "correct" zijn in de zin van een wiskundig handboek. Het gaat over geschiktheid voor het doel, het kennen van onze grenzen en het maken van slimme, kosteneffectieve keuzes om onze digitale wereld veilig te laten draaien.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.