Anzeige

Funktionale Sicherheit für KMUs - Teil 3/8

Requirement bis Test Case

(Software-)Entwicklungsprozess

Es gibt Prozessmodelle wie z.B. das V-Modell, welches sich in Phasen unterteilt. Sind exakte Vorgaben einzuhalten und diese auch nach Vorgabe zu verifizieren, so ist dies das Prozessmodell der Wahl. Es ist das Standard-Prozessmodell für funktional sichere Entwicklungen, für anderweitige externe Auditierungen und Zertifizierungen und auch für öffentliche Auftraggeber. Dieses Prozessmodell wird meist mit iterativen Modellen kombiniert. Ein solch plangetriebener Prozess zeichnet sich dadurch aus, dass alle Aktivitäten im Voraus geplant werden und der Projektfortschritt gegen diesen Plan gemessen wird. Im Gegensatz dazu stehen agile (evolutionäre) Prozesse, die immer dann von Vorteil sind, wenn die Kundenanforderungen nicht sehr präzise sind oder Kundenanforderungen sich während der Projektlaufzeit ändern. Benutzeroberflächen sind ein Paradebeispiel dafür, das zugehörige Requirement "ease of use" ist nicht sehr präzise und wird meist mehrfach neu interpretiert. Agile Ansätze z.B. aus Scrum helfen jedem Software-Entwicklungsprojekt und sind natürlich auch in Projekten mit funktionaler Sicherheit nach IEC61508-3 dienlich. Dies soll durch einige Analogien aufgezeigt werden:

  • • Motivation des Teams durch viel Kommunikation analog "daily scrum"
  • • Team als Gruppe von projekt-fremden Zugriffen abschotten
  • • Starker und qualifizierter Produktmanager analog "product owner"
  • • Review-Phasen während des Projekts analog "sprint retrospective"
  • • Metriken, um Projektfortschritt zu messen analog "release/sprint burndown"
  • • Priorisierung aller Anforderungen analog "product backlog"
  • • Iterative Entwicklung für die Messung des Projektfortschritts und der Motivation
  • • Daily (nightly) build der kompletten Software, "continuous integration" um:
  • • Täglich eine lauffähige Version zu generieren
  • • Kontrolle über "header" und build Mechanismen zu behalten
  • • Schnelle Reviews am "lebenden Objekt" durchführen zu können
  • • Aktive Interaktion mit dem Kunden durch frühe "Prototypen"

Es gibt keine richtigen oder falschen Software-Entwicklungsprozesse, es gibt den richtigen Prozess für das jeweilige Projekt. Im (Software-) Entwicklungsprozess wird unterteilt in die Leistungsmanagement-Prozesse (Product Management, Project Management und Quality Management), die Leistungserbringungs-Prozesse (der eigentliche Kernprozess) und die Supportprozesse und Methoden. Eine wichtige Komponente hier ist der Change Management Prozess, also die Art und Weise wie Änderungen der Anforderungen in den Gesamtprozess einfliessen. Zentrales Element ist auch hier die Rückverfolgbarkeit und Dokumentation.

MESCO

Dieser Artikel erschien in SPS-MAGAZIN 1+2 2019 - 08.02.19.
Für weitere Artikel besuchen Sie www.sps-magazin.de