SMC-S-012 Programvaruutveckling
"Publicerad av U.S. Air Force Space Commands Space and Missile Systems Center (SMC),Syftet med standarden SMC-S-012 för programvaruutveckling är att specificera enhetliga krav för programvaruutvecklingsaktiviteter för verksamhetskritiska system. Denna standard är baserad på standarden ”MIL-STD-498 Military standard: Software development and documentation” som utvecklats av USA:s försvarsdepartement.

Denna standard gäller utveckling av verksamhetskritiska system som inkluderar programvara (såsom hårdvaru- och mjukvarusystem), programvarubaserade system och fristående mjukvaruprodukter. Denna standard kan tillämpas på entreprenörer som utför programvaruutveckling eller på interna byråer som köper in. Denna standard kan anpassas för varje programvarukategori som den gäller för.
Denna standard är oberoende av någon specifik metod eller verktyg för mjukvaruutveckling. Inget krav i denna standard föreskriver användning av någon särskild metod eller något verktyg.
Ramverket som används för att organisera viktiga programvaruaktiviteter i programvaruutvecklingsprocessen kallas programvaruutvecklingslivscykelmodellen.
- Utvecklaren måste välja den eller de livscykelmodeller för programvaruutveckling som är lämpliga för den programvara som utvecklas. Ett mjukvaruprojekt kan ha flera livscykelmodeller för mjukvaruutveckling för olika kategorier av utvecklad mjukvara.
- Utvecklaren måste registrera den eller de valda livscykelmodellerna för programvaruutveckling i den bifogade mallen för "Programvaruutvecklingsplan".
- Utvecklaren måste i programvaruutvecklingsplanen tillhandahålla en beskrivning av varje livscykelmodell för programvaruutveckling som kommer att användas i projektet.
- För varje livscykelmodell för mjukvaruutveckling som ska användas måste utvecklaren definiera följande i mjukvaruutvecklingsplanen:
- Vid vilken tidpunkt i systemutvecklingens livscykel kommer det att användas?
- Under vilka förhållanden kommer den att användas?
- Vilka programvaruelement som ska användas för
- Utvecklaren måste etablera en programvaruutvecklingsprocess som överensstämmer med kontraktets krav.
- Programvaruutvecklingsprocessen bör omfatta följande huvudaktiviteter och integrerade processer:
- Projektplanering och styrning
- Skapa en miljö för mjukvaruutveckling
- Analys av systemkrav
- Systemarkitekturdesign
- Analys av programvarukrav
- Programvaruarkitektur och design
- Programvaruimplementering och enhetstestning
- Enhetsintegration och testning
- Kvalificeringstestning av programvaruelement
- Integrering och testning av programvaru- och hårdvaruelement
- Systemkvalificeringstestning
- Förbereda programvaran för övergång till drift
- Förbereda programvaran för övergång till underhåll
- Integrerade processer:
- Hantering av programvarukonfiguration
- Peer reviews och produktbetyg för programvara
- Kvalitetssäkring av programvara
- Korrigerande åtgärd
- Gemensamma tekniska och ledningsgranskningar
- Riskhantering för programvara
- Programvarumätning
- Säkerhet och integritet
- Hantering av programvaruteammedlemmar
- Gränssnitt med programvaru-IV&V-agenter
- Samordning med partnerutvecklare
- Förbättra projektprocesser
Dessa viktiga aktiviteter kan överlappa varandra, implementeras iterativt eller implementeras på olika sätt. Det gäller olika delar av programvaran och utförs inte nödvändigtvis i den ordning som anges ovan.
- Utvecklarens programvaruutvecklingsprocesser bör beskrivas i programvaruutvecklingsplanen.
Allmänna krav för programvaruutveckling inkluderar allmänna utvecklarkrav för att uppfylla de detaljerade krav som definieras i denna standard. Mer detaljerade krav finns i bilagan till standarden (bilaga H.1).
- Metoder för programvaruutveckling: Utvecklaren måste använda systematiska, dokumenterade metoder för alla programvaruutvecklingsaktiviteter. Dessa systematiska metoder för programvaruutveckling bör specificeras i programvaruutvecklingsplanen.
- Standarder för programvaruprodukter: Utvecklaren utvecklar standarder för att representera krav, arkitektur, design, kod, testfall, testprocedurer och testresultat. Dessa standarder för produktrepresentation specificeras i programvaruutvecklingsplanen. Utvecklaren tillämpar de standarder som anges i programvaruutvecklingsplanen för att representera krav, arkitektur, design, kod, testfall, testprocedurer och testresultat.
- Spårbarhet: Spårbarhet ger ett samband mellan innehållet i två relaterade produkter, till exempel sambandet från varje programvarukrav till de programvarudesignkomponenter som uppfyller kravet. Dubbelriktad spårbarhet säkerställer ett dubbelriktat samband mellan innehållet i två relaterade produkter. Ett exempel på en sådan dubbelriktad relation är spårbarhet från varje programvarukrav till de programvarudesignkomponenter som uppfyller kravet, och spårbarhet från varje designkomponent till de programvarukrav som uppfylls av designkomponenten. Syftet med kraven på dubbelriktad spårbarhet i detta avsnitt är att spåra både uppåt och nedåt för att säkerställa att:
- Visa att alla krav har allokerats till komponenter, implementerats och testats
- Visa att inga ytterligare krav gäller
- Tillhandahålla information om effekterna av föreslagna förändringar
- Ge information om effekterna av upptäckta problem
- Tillhandahålla information för programvaruunderhåll.
- Återanvändbara programvaruprodukter: Utvecklaren måste identifiera återanvändbara programvaruprodukter som kommer att användas för att uppfylla kontraktets krav. Omfattningen av sökandet efter en återanvändbar programvaruprodukt bör specificeras i programvaruutvecklingsplanen. Utvecklaren måste utvärdera de återanvändbara programvaruprodukter som kommer att användas för att uppfylla kontraktets krav. Kriterierna som ska användas för att utvärdera den återanvändbara programvaruprodukten bör vara de som anges i programvaruutvecklingsplanen. Utvecklaren måste använda åtminstone utvärderingskriterierna i bilagan till standarden för att välja återanvändbara programvaruprodukter (bilaga B). Utvärderingskriterier kan viktas olika för olika programvarukategorier och olika kritiska krav. De återanvändbara programvaruprodukterna som väljs måste uppfylla kraven på datarättigheter i avtalet. Återanvändbar programvaruprodukt kan användas som den är eller modifieras och användas för att uppfylla hela kravet eller delar av kravet.
Vår organisation, som i åratal har försökt stödja företag från alla sektorer med ett brett utbud av test-, mät-, analys- och utvärderingsstudier, har en stark personalstyrka som noggrant följer utvecklingen i världen inom vetenskap och teknik och ständigt förbättrar sig. I detta sammanhang tillhandahålls även testtjänster till företag i enlighet med standarden ”SMC-S-012 Software Development”.