SMC-S-012 Softwareentwicklung

SMC-S-012 Softwareentwicklung

Der vom Space and Missile Systems Center (SMC) des U.S. Air Force Space Command veröffentlichte Standard „SMC-S-012 Softwareentwicklung“ definiert einheitliche Anforderungen für die Softwareentwicklung missionskritischer Systeme. Dieser Standard basiert auf dem vom US-Verteidigungsministerium entwickelten Standard „MIL-STD-498 Militärstandard: Softwareentwicklung und -dokumentation“.

SMC-S-012 Softwareentwicklung

Dieser Standard gilt für die Entwicklung unternehmenskritischer Systeme, die Software (wie Hardware-Software-Systeme), reine Softwaresysteme und eigenständige Softwareprodukte umfassen. Dieser Standard kann auf Auftragnehmer angewendet werden, die Softwareentwicklung durchführen, oder auf interne Agenturen, die Einkäufe tätigen. Dieser Standard kann für jede Softwarekategorie, auf die er zutrifft, angepasst werden.

Dieser Standard ist unabhängig von bestimmten Methoden oder Tools zur Softwareentwicklung. Keine Anforderung in dieser Norm schreibt die Verwendung einer bestimmten Methode oder eines bestimmten Werkzeugs vor.

Das Framework, das zur Organisation wichtiger Softwareaktivitäten im Softwareentwicklungsprozess verwendet wird, wird als Softwareentwicklungs-Lebenszyklusmodell bezeichnet.

  • Der Entwickler muss das oder die für die zu entwickelnde Software geeignete(n) Softwareentwicklungs-Lebenszyklusmodell(e) auswählen. Ein Softwareprojekt kann mehrere Softwareentwicklungs-Lebenszyklusmodelle für verschiedene Kategorien entwickelter Software umfassen.
  • Der Entwickler muss das oder die ausgewählten Softwareentwicklungs-Lebenszyklusmodelle in der beigefügten Vorlage „Softwareentwicklungsplan“ aufzeichnen.
  • Der Entwickler muss im Softwareentwicklungsplan eine Beschreibung jedes Softwareentwicklungs-Lebenszyklusmodells bereitstellen, das im Projekt verwendet wird.
  • Für jedes zu verwendende Softwareentwicklungs-Lebenszyklusmodell muss der Entwickler im Softwareentwicklungsplan Folgendes definieren:
    • An welchem ​​Punkt im Lebenszyklus der Systementwicklung wird es verwendet?
    • Unter welchen Bedingungen wird es verwendet?
    • Welche Software-Elemente sind zu verwenden für
  • Der Entwickler muss einen Softwareentwicklungsprozess etablieren, der mit den Vertragsanforderungen übereinstimmt.
  • Der Softwareentwicklungsprozess sollte die folgenden Hauptaktivitäten und integrierten Prozesse umfassen:
    • Projektplanung und -steuerung
    • Erstellen einer Softwareentwicklungsumgebung
    • Analyse der Systemanforderungen
    • Systemarchitekturdesign
    • Analyse der Softwareanforderungen
    • Softwarearchitektur und -design
    • Softwareimplementierung und Unit-Tests
    • Unit-Integration und -Test
    • Qualifikationstests für Softwareelemente
    • Integration und Test von Software-Hardware-Elementen
    • Systemqualifizierungstests
    • Vorbereiten der Software für die Überführung in den Betrieb
    • Vorbereiten der Software für den Übergang zur Wartung
    • Integrierte Prozesse:
      • Softwarekonfigurationsmanagement
      • Software-Peer-Reviews und Produktbewertungen
      • Software-Qualitätssicherung
      • Korrekturmaßnahme
      • Gemeinsame technische und Management-Überprüfungen
      • Software-Risikomanagement
      • Softwaremessung
      • Sicherheit und Datenschutz
      • Verwaltung der Software-Teammitglieder
      • Schnittstelle mit Software-IV&V-Agenten
      • Koordination mit Partnerentwicklern
      • Verbesserung der Projektprozesse

Diese wichtigen Aktivitäten können sich überschneiden, iterativ oder unterschiedlich umgesetzt werden. Es betrifft verschiedene Elemente der Software und wird nicht unbedingt in der oben aufgeführten Reihenfolge ausgeführt.

  • Die Softwareentwicklungsprozesse des Entwicklers sollten im Softwareentwicklungsplan beschrieben werden.

Zu den allgemeinen Anforderungen an die Softwareentwicklung gehören allgemeine Anforderungen an Entwickler zur Erfüllung der in diesem Standard definierten Detailanforderungen. Genauere Anforderungen sind im Anhang der Norm (Anhang H.1) enthalten.

  • Methoden der Softwareentwicklung: Der Entwickler muss für alle Softwareentwicklungsaktivitäten systematische, dokumentierte Methoden verwenden. Diese systematischen Softwareentwicklungsmethoden sollten im Softwareentwicklungsplan festgelegt werden.
  • Standards für Softwareprodukte: Der Entwickler entwickelt Standards zur Darstellung von Anforderungen, Architektur, Design, Code, Testfällen, Testverfahren und Testergebnissen. Diese Produktdarstellungsstandards werden im Softwareentwicklungsplan festgelegt. Der Entwickler wendet die im Softwareentwicklungsplan festgelegten Standards an, um Anforderungen, Architektur, Design, Code, Testfälle, Testverfahren und Testergebnisse darzustellen.
  • Rückverfolgbarkeit: Durch die Rückverfolgbarkeit wird eine Beziehung zwischen den Inhalten zweier zusammengehöriger Produkte hergestellt, beispielsweise die Beziehung von jeder Softwareanforderung zu den Softwaredesignkomponenten, die die Anforderung erfüllen. Durch die bidirektionale Rückverfolgbarkeit wird eine bidirektionale Beziehung zwischen den Inhalten zweier verwandter Produkte sichergestellt. Ein Beispiel für eine solche bidirektionale Beziehung ist die Rückverfolgbarkeit von jeder Softwareanforderung zu den Softwaredesignkomponenten, die die Anforderung erfüllen, und die Rückverfolgbarkeit von jeder Designkomponente zu den Softwareanforderungen, die von der Designkomponente erfüllt werden. Der Zweck der Anforderungen an die bidirektionale Rückverfolgbarkeit in diesem Abschnitt besteht darin, sowohl nach oben als auch nach unten zurückzuverfolgen, um Folgendes sicherzustellen:
    • Zeigen Sie, dass alle Anforderungen den Komponenten zugeordnet, umgesetzt und getestet wurden
    • Nachweis, dass keine zusätzlichen Anforderungen gelten
    • Bereitstellung von Informationen zu den Auswirkungen der vorgeschlagenen Änderungen
    • Informieren Sie sich über die Auswirkungen der festgestellten Probleme
    • Bereitstellung von Informationen zur Softwarewartung.
  • Wiederverwendbare Softwareprodukte: Der Entwickler muss wiederverwendbare Softwareprodukte identifizieren, die zur Erfüllung der Vertragsanforderungen verwendet werden. Der Umfang der Suche nach einem wiederverwendbaren Softwareprodukt sollte im Softwareentwicklungsplan festgelegt werden. Der Entwickler muss die wiederverwendbaren Softwareprodukte bewerten, die zur Erfüllung der Vertragsanforderungen verwendet werden. Die Kriterien zur Bewertung des wiederverwendbaren Softwareprodukts sollten im Softwareentwicklungsplan festgelegt sein. Zur Auswahl wiederverwendbarer Softwareprodukte muss der Entwickler mindestens die Bewertungskriterien im Anhang der Norm verwenden (Anhang B). Die Bewertungskriterien können für unterschiedliche Softwarekategorien und unterschiedliche kritische Anforderungen unterschiedlich gewichtet werden. Die ausgewählten wiederverwendbaren Softwareprodukte müssen die im Vertrag festgelegten Anforderungen an die Datenrechte erfüllen. Wiederverwendbare Softwareprodukte können unverändert verwendet oder geändert und verwendet werden, um die gesamte Anforderung oder einen Teil der Anforderung zu erfüllen.

Unsere Organisation, die seit Jahren versucht, Unternehmen aus allen Branchen mit einer breiten Palette von Test-, Mess-, Analyse- und Bewertungsstudien zu unterstützen, verfügt über einen starken Mitarbeiterstamm, der die Entwicklungen in der Welt der Wissenschaft und Technologie aufmerksam verfolgt und sich ständig verbessert. In diesem Rahmen werden für Unternehmen auch Testdienstleistungen nach dem Standard „SMC-S-012 Software Development“ erbracht.

WhatsApp