Bundesamt für Sicherheit in der Informationstechnik

M 2.574 Ausführliche Dokumentation der Software-Entwicklung

Verantwortlich für Initiierung: Leiter Fachabteilung

Verantwortlich für Umsetzung: Leiter IT, Fachabteilung

Bei der Software-Entwicklung muss nachvollziehbar dokumentiert werden, damit sicherheitsrelevante Aspekte erkennbar sind und die Software wartbar bleibt. Die Dokumentation kann unterschieden werden in Projektdokumentation, Informationen zum Projektmanagement der Software-Entwicklung und der Dokumentation zur Entwicklung des Systems (Systemdokumentation).

Die Projektdokumentation sollte mindestens folgende Informationen ausführlich beinhalten:

  • Anforderungen an das zu entwickelnde System: In Form eines Anforderungskatalogs oder Pflichtenheftes
  • Entscheidungsgrundlage für Eigenentwicklung oder Beauftragung: Die Entscheidungsgrundlage einschließlich der Risikobetrachtung, die zu einer Auftragsvergabe, Eigenentwicklung oder sonstigen Form einer Entwicklung geführt hat, muss ausreichend dokumentiert werden.
  • Dokumentation des Vergabeprozesses: Sowohl für öffentliche als auch für die meisten privaten Institutionen ist die Nachvollziehbarkeit der Auftragsvergabe zumindest vom internen Controlling vorgeschrieben.
  • Vertrag: Alle Leistungen, Bedingungen und Abkommen zwischen dem Auftraggeber und Auftragnehmer müssen schriftlich festgehalten werden.
  • Dokumentation des Projektverlaufs: Nicht nur während des laufenden Projekts, auch um spätere Fragen klären zu können, ist es wichtig, den Projektverlauf nachvollziehbar zu dokumentieren. Dazu gehört es, Verantwortlichkeiten, Protokolle, Projektentscheidungen, Meilensteine, Abnahmen und Freigaben festzuhalten.

Die Systemdokumentation enthält die Dokumentation des Entwicklungsprozesses einschließlich:

  • System-Spezifikation
  • Systemarchitektur und Design (Ablaufpläne)
  • Schnittstellen Definitionen (inklusive Dokumentation der intern genutzten Bibliotheken, Entwicklungsumgebungen und weiterer Software)
  • Codierungsrichtlinien (z. B. Namenskonventionen, Strukturierungsrichtlinien, etc. )
  • Code-Kommentierung
  • Dokumentation der Konfiguration
  • Dokumentation von Änderungen
  • Dokumentation der Qualitätssicherung und der Tests (siehe auch M 2.568 Testverfahren für Software )
  • Dokumentation für die Installation und die Inbetriebnahme, Anleitungen für die Administratoren
  • Bedienungsanleitung für die Anwender

Insbesondere wenn eine Zertifizierung eines Systems angestrebt wird (z. B. nach Common Criteria), empfiehlt es sich, rechtzeitig die Dokumentationsanforderungen für die Zertifizierung in Erfahrung zu bringen und einzuhalten. Nachträgliche Dokumentation kann sehr kostspielig werden oder Fehler beinhalten.

Prüffragen:

  • Liegen ausreichende Projekt- bzw. Systemdokumentationen vor?

Stand: 15. EL Stand 2016