Bundesamt für Sicherheit in der Informationstechnik

M 2.550 Geeignete Steuerung der Anwendungsentwicklung

Verantwortlich für Initiierung: Leiter Organisation

Verantwortlich für Umsetzung: Verantwortliche der einzelnen Anwendungen

Kann für einen bestimmten Einsatzzweck keine Standardsoftware beschafft werden, wird die Entwicklung von Individualsoftware erforderlich. Dies kann in der Institution selbst oder mithilfe externer Auftragnehmer erfolgen.

Neben wirtschaftlichen Aspekten ist eine geeignete Steuerung der Softwareentwicklung auch aus Sicherheitsgesichtspunkten wichtig, weil sie hilft, Fehler in Anwendungen und Sicherheitslücken zu vermeiden. Je früher Fehler und Sicherheitsrisiken identifiziert werden, desto einfacher ist es, diese zu beheben.

Für die Steuerung der Entwicklung und das Projektmanagement sollte ein geeignetes Steuerungs- und Projektmanagementmodell festgelegt werden, das den besonderen Gegebenheiten der Institution und den dort eingesetzten Methoden von Softwareentwicklungsprojekten Rechnung trägt. Dieses sollte die folgenden Aspekte berücksichtigen:

  • Das für die Entwicklung vorgesehene Personal sollte über die notwendige Qualifizierung verfügen.
  • Für die Steuerung der Erstellung und Pflege der Anwendungen sollte ein Gesamtprozess eingeführt werden, der alle Phasen des Lebenszyklus (Application Lifecycle Management, ALM) abdeckt. Dabei sollten geeignete Phasen der Softwareentwicklung berücksichtigt werden, um die notwendigen Aktivitäten entsprechend aufteilen und bearbeiten zu können (Geschäftsprozessmodellierung, Anforderungsanalyse, Softwaredesign, Implementierung, Test, Auslieferung etc.). Für die erfolgreiche Einführung des Gesamtprozesses hat sich die sorgfältige Beschreibung und Abgrenzung der benötigten Rollen und Funktionsträger als besonders wichtig erwiesen.
  • Zur geordneten Durchführung des Anwendungsprojektes sollten die benötigten Voraussetzungen geschaffen werden. Diese beinhalten die Bestellung eines Projektleiters, die Besetzung der Rollen im beschriebenen Gesamtprozess und die Auswahl eines Vorgehensmodells für die Entwicklung, das für die jeweilige Institution sowie die Art und Größe des Softwareprojektes geeignet ist. Dies kann beispielsweise sequenzielles Durchlaufen der Phasen (Wasserfallmodell) oder iteratives Durchlaufen (Spiralmodell) vorsehen.
  • Die Risiken bei der Softwareentwicklung sind zu bewerten und zu behandeln. Hierbei sind spezifische Sicherheitsrisiken zu berücksichtigen, die üblicherweise durch Einsatz von Sicherheitsfunktionen reduziert werden, und Risiken im Entwicklungsvorhaben selbst, wie unzureichende Dokumentation, unzureichende Qualitätssicherungsmaßnahmen, Überschreiten des Zeitplans etc. . Auch die Risiken im Entwicklungsvorhaben können sich mittelbar auf die Sicherheit der Anwendung auswirken, etwa wenn aus Zeitdruck Sicherheitsfunktionen nicht oder nur unzureichend implementiert werden.
  • Es müssen die Qualitätsaspekte des Entwicklungsprozesses ausreichend berücksichtigt werden, die auch für die Gesamtsicherheit wichtig sind. So lässt sich beispielsweise gut dokumentierter und strukturierter Code nicht nur einfacher warten, auch sicherheitsrelevante Probleme lassen sich schneller identifizieren.

Für die Entwicklung von Software haben sich eine Reihe von Vorgehensmodellen und Best Practices bewährt. Diese lassen sich grob in zwei Kategorien unterscheiden:

  • Schwergewichtige Vorgehensmodelle: Diese haben einen formalen Charakter, verfolgen eher einen vorab festgelegten Plan und legen ein starkes Gewicht auf Verträge und Dokumentation. Sie eignen sich vor allem für große Projektteams oder bei einer sehr formalen Beziehung zwischen Auftraggeber und Auftragnehmer und setzen eine umfassende Anforderungsklärung zum Projektbeginn voraus. Bekannte Vertreter sind das V-Modell XT und der Rational Unified Process (RUP).
  • Leichtgewichtige, agile Vorgehensmodelle: Sie setzen stärker auf die persönliche Interaktion der Projektbeteiligten und weniger auf die formale Durchführung und eignen sich für kleinere Projekte oder Projekte mit intensiver Beteiligung des Auftraggebers. Sie bieten die Möglichkeit, vage Anforderungen während des Projektverlaufs zu präzisieren oder auf Änderungen der Anforderungen flexibel zu reagieren. Beispiele für agile Vorgehensmodelle sind Scrum, Kanban, Crystal Clear.

Vorgehensmodelle lassen sich kombinieren: So können beispielsweise Arbeitsmethoden aus eXtreme Programming (Pair Programming) bei Scrum angewendet werden. Innerhalb eines V-Modell XT-Projektes können kleine Entwicklungszyklen als Scrum-Sprints angelegt werden.

Die für Softwareentwicklung relevanten Teilgebiete und Prozesse werden unter anderem beschrieben in:

  • IEEE Software Body of Knowledge (SWEBOK) und
  • ISO / IEC 12207 "Systems and software engineering - Software life cycle processes"

Auch für die Qualitätssicherung im Softwareentwicklungsprozess existieren verschiedene Vorgehensmodelle und -methoden. Dazu gehören unter anderem CMMI (Capability Maturity Model Integration) und SPICE (Software Process Improvement and Capability Determination) bzw. ISO/IEC 15504 "Information technology - Process assessment".

Ebenfalls relevant in diesem Bereich ist die Normenreihe ISO 250xx. Die Norm ISO/IEC 25000 "Software-Engineering - Qualitätskriterien und Bewertung von Softwareprodukten (SQuaRE) - Leitfaden für SquaRE" gibt einen Überblick über die Grundbegriffe und Prinzipien dieser Reihe.

Es muss festgelegt werden, welche Qualitätssicherungsmethode und welches konkrete Verfahren in der Institution oder für das jeweilige Projekt genutzt wird. Aus wirtschaftlichen Gründen sind in der Regel nicht alle Arten von Prüfungen in allen möglichen Tiefen möglich. Daher muss entschieden werden, welche davon zu welchem Zeitpunkt und für welche Teile der Anwendung sinnvoll sind. Dabei ist sicherzustellen, dass die Sicherheitsanforderungen ausreichend abgedeckt sind.

Prüffragen:

  • Wurde für Entwicklungsvorhaben ein geeignetes Modell zur Steuerung festgelegt?

  • Wurde für das Entwicklungsvorhaben ein Qualitätssicherungsverfahren genutzt, bei dem auch Sicherheitsaspekte ausreichend berücksichtigt werden?

Stand: 14. EL Stand 2014

Hinweis zur Verwendung von Cookies

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen hierzu erhalten Sie in unserer Datenschutzerklärung.

OK