Das V-Modell ist ein Entwicklungsprozessmodell, das ursprünglich bei staatlichen Projekten (u. a. Rüstung) zur Anwendung kam. Bis heute ist es bei Projekten im regulierten Umfeld (z. B. Medizintechnik, Banken) in vielen Köpfen und Normen verankert. Das führt zu Konflikten in Teams, die agile Entwicklungsprozesse bevorzugen.
Dieser Artikel hilft, diesen Widerspruch aufzulösen. Sie erfahren, wie Sie die fünf häufigsten Probleme vermeiden und das V-Modell richtig einsetzen.
1. V-Modell: Die Grundlagen
a) Ziele des V-Modells
Ziel 1: Entwicklungsziele erreichen
Wie alle Entwicklungsprozessmodelle soll auch das V-Modell dazu beitragen, dass Entwicklungsprojekte in der geplanten Zeit und mit den geplanten Ressourcen die Ergebnisse (Produkte, Software) in der geplanten Qualität erreichen.
Ziel 2: Klarheit schaffen
Dazu ist es notwendig, dass jede Rolle im Entwicklungsprojekt weiß, welchen Input sie zu welchem Zeitpunkt mit welchen Methoden in welchen Output überführen muss.
Ziel 3: Regulatorische Anforderungen erfüllen
In regulierten Branchen wie der Medizintechnik, im Bankenumfeld oder der Luftfahrindustrie müssen Gesetze, Normen und Leitlinien befolgt werden, die das Arbeiten nach dem V-Modell nahelegen.
b) Besonderheiten des V-Modells
Die verschiedenen Phasen
Das V-Modell unterscheidet viele Entwicklungsphasen, die sich in drei Gruppen unterteilen lassen:
- Planung und Spezifikation (s. Abb. 1 in blau)
- Implementierung (in grün)
- Verifizierung und Validierung (in violett)
Spezifikation von Tests während der Planungsphasen
Das V-Modell zeichnet sich dadurch aus, dass die Verifizierung und Validierung bereits während der Planungsphasen spezifiziert werden. Anhand welcher „Tests“ entschieden wird, ob die in der Planungsphase gestellten Anforderungen erfüllt sind oder nicht, wird bereits bei der Planung festgelegt.
Die roten Pfeile in der Abbildung 1 repräsentieren diese Zuordnung.
Die Tester prüfen dann in den Testphasen gegen die Spezifikationen aus den Spezifikations-/Planungsphasen.
c) Abgrenzung zu anderen Prozessmodellen
Wasserfall-Modell
Genau diese Zuordnung unterscheidet das V-Modell vom Wasserfall-Modell. Das V-Modell ist kein Wasserfall-Modell, bei dem die Verifizierungs- und Validierungsaktivitäten in der grafischen Darstellung nur „hochgeklappt werden“.
In beiden Modellen ist es möglich, bei Fehlern, die in einer Phase erkannt werden, wieder in vorherige Phasen zurückzuspringen, um dort die Fehler zu beheben. Aber die Aktivitäten erfolgen linear.
Agile Prozessmodelle
Trotz aller Rücksprünge wird das V im Rahmen des Entwicklungsprojekts nur einmal durchlaufen. Man nimmt dabei an, dass die Anforderungen zu Beginn des Projekts ausreichend, vollständig und korrekt bestimmt wurden.
Agile Prozessmodelle machen diese Annahme nicht. Vielmehr nutzen sie ein iteratives, inkrementelles Vorgehen, um die Anforderungen schrittweise zu erheben und erfüllen.
Lesen Sie hier mehr zu agilen Prozessmodellen.
Ein weiterer Fachartikel führt in das Thema Entwicklung und Entwicklungsprozessmodelle ein.
2. Phasen und Verantwortlichkeiten
a) Überblick über die Phasen und Aktivitäten
Diese Übersicht geht davon aus, dass das zu entwickelnde System/Produkt aus mehreren Systemkomponenten besteht, die jeweils Hardware und Software beinhalten, welche selbst wiederum in Komponenten (z. B. Software-Komponenten) unterteilt sind (s. Abb. 2).
Bei reinen Software-Produkten fallen (nach Nummerierung in Abbildung 1) die Aktivitäten 2 und 4 sowie 9 und 13 zusammen. Zudem entfallen die Aktivitäten 3, 4, 10 bis 12.
b) Beschreibung der Aktivitäten/Phasen
Nummer nach Abb. 1, 2 | Phase(n) inklusive Links auf vertiefende Fachartikel | Aktivitäten |
1 | Stakeholder-Anforderungen | Stakeholder-Anforderungen (z. B. Nutzungsanforderungen) erheben |
2 | Systemanforderungen | Systemanforderungen aus den Stakeholder-Anforderungen ableiten und das System als Blackbox spezifizieren |
3 | Systemarchitektur und Anforderungen an Komponenten | Ableiten, welche Komponenten benötigt werden und welche Anforderungen diese erfüllen müssen, um die Systemanforderungen zu erfüllen |
4 | Komponentenarchitektur und HW- bzw. SW-Anforderungen | Die Systemkomponenten in die Gewerke (z. B. Hardware (HW) und Software-System (SW)) zerlegen und die jeweiligen Anforderungen spezifizieren, damit die Systemkomponente ihre Anforderungen erfüllt |
5 | HW- bzw. SW-Architektur und HW- bzw. SW-Anforderungen | Festlegen, aus welchen Komponenten (z. B. SW-Komponenten) das jeweilige Gewerk (z. B. SW-System) bestehen muss und die Anforderungen spezifizieren |
6 | Implementierung | Die Hard- und Software-Komponenten gemäß Spezifikation entwickeln |
7 | HW/SW-Komponententests | Überprüfen, ob die Hardware- und Software-Komponenten gemäß Spezifikation entwickelt wurden |
8 | HW/SW-Integrationstests | Hardware bzw. Software-Komponenten stückweise zusammensetzen und dabei ihr korrektes Zusammenspiel prüfen |
9 | HW-/SW-Subsystemtests | Das komplette Hardware- bzw. Software-System gegen die Spezifikation prüfen Achtung: Es kann mehr als ein Hardware- bzw. Software-System pro Gesamtsystem geben (s. Abb. 2). |
10 | Komponentenintegrationstests | Die Komponenten aus ihren Gewerken (HW, SW) stückweise zusammensetzen und dabei ihr korrektes Zusammenspiel prüfen |
11 | Komponententests | Die vollständigen Systemkomponenten gegen ihre Spezifikation testen |
12 | Systemintegrationstests | Die Systemkomponenten stückweise zusammensetzen und dabei ihr korrektes Zusammenspiel prüfen |
13 | Systemtests | Das vollständige System gegen seine Spezifikation (Systemanforderungen) testen |
14 | Systemvalidierung | Prüfen, ob das System die Stakeholder-Anforderungen und die Zweckbestimmung erreicht. Usability-Tests sind ein Beispiel für diese Tests. |
Weitere Details zu den Aktivitäten, Methoden und Konzepten erläutern diese Fachartikel:
c) Verantwortliche Rollen
Die Aktivitäten beim V-Modell liegen nicht nur bei der Entwicklungsabteilung (s. Tabelle 2).
Nummer gemäß Abb. 1, 2 | Verantwortliche Rolle |
1 | Requirements Engineer |
2 | Usability Engineer (für UI), Schnittstellen-Experten für Datenschnittstellen |
3 | Systemarchitektin |
4 | Systemarchitektin |
5 | Software-Architekt bei Software, Konstruktion bzw. Elektro(nik)ingenieur bei Hardware |
6 | Progammiererin/Software-Entwicklerin, Elektro(nik)ingenieur |
7 | Progammiererin/Software-Entwicklerin, Elektro(nik)ingenieur |
8 | Progammiererin/Software-Entwicklerin oder Software-Tester, Elektro(nik)ingenieur oder Tester für Hardware |
9 | Wie 8 oder dezidierte Software- bzw. Hardwaretester |
10, 11, 12, 13 | Dezidierte Systemtester |
14 | Kontext- und Fachexperten, Usability-Experten |
Die Aufgabe der Geschäftsführung besteht darin, den Kontext des Produkts bzw. Systems zu bestimmen.
Diese Zuordnung in Tabelle 2 ist unabhängig vom V-Modell hilfreich.
3. Die fünf Probleme beim Einsatz des V-Modells
Problem 1: Verwechseln der Anforderungstypen
Die Unterscheidung der verschiedenen Anforderungstypen ist wichtig, ebenso die Anwendung der jeweils richtigen Methoden, um diese Anforderungen zu identifizieren.
Selbst auf Wikipedia fehlt diese Unterscheidung und/oder Identifizierung der Stakeholder-Anforderungen (s. Abb. 3).
Auch Normen wie die IEC 60601-1 verwechseln die Anforderungstypen (s. Abb. 4).
Im Gegensatz zur Darstellung in Abb. 4 werden Systemanforderungen verifiziert, nicht validiert. Das „S“ in PEMS steht für „System“. Das Identifizieren der Stakeholder-Anforderung fehlt auch in dieser Darstellung.
Die Folgen dieses Fehlers führen dazu, dass die tatsächlichen Anforderungen der Stakeholder nicht rechtzeitig erkannt und berücksichtigt werden. Das führt regelmäßig zum Scheitern von Projekten.
Laut Standish Group sind unvollständig und falsch identifizierte Anforderungen die Hauptursache für überteuerte, verzögerte oder sogar abgebrochene Projekte.
Problem 2: Illusion „Wasserfall-Modell“
Die Annahme, dass alle (Stakeholder-)Anforderungen von Anfang an vollständig und korrekt erfasst sind, ist selten erfüllt. Das V-Modell basiert aber auf genau dieser Annahme.
Um das zu erreichen, gibt es mehrere Lösungsansätze:
- Stakeholder-Anforderungen systematisch mit der Kontextmethode erheben (Eine direkte Befragung insbesondere der Nutzer ist keine geeignete Methode.)
- Die erhobenen Stakeholder-Anforderungen mit den Stakeholdern validieren.
- Die Stakeholder-Requirements-Specification von den Stakeholdern prüfen lassen.
- Prototypen und Mockups entwickeln und vor der eigentlichen Entwicklung im Rahmen formative Evaluationen bewerten lassen. Mit dem Feedback iterativ die Stakeholder- und Systemanforderungen verbessern (s. Abb. 5).
- Das Produkt in mehreren Iterationen (mehreren Vs) entwickeln.
Wie Sie die Stakeholder- und insbesondere die Nutzungsanforderungen systematisch erheben, lernen Sie im Seminar „Usability, Requirements und IEC 62366-1“.
Problem 3: Erhöhte Aufwände durch „Mini-Vs“
Durch die iterative Entwicklung mit „Mini-Vs“ (siehe Abb. 6) versuchen Hersteller, den Kompromiss zu finden zwischen regulatorischen Anforderungen und einer agilen Entwicklung.
Die Gefahr besteht dabei, dass der bürokratische Aufwand überproportional steigt. Denn jetzt müssen beispielsweise die Dokumentenprüfungen und -freigaben sowie Tests (beides sind Verifizierungsaktivitäten) nicht nur einmal, sondern bei jeder Iteration (Sprint) durchlaufen werden.
Wenn Hersteller keine schlanken Prüf- und Freigabeprozesse haben, legen sie sich damit lahm.
Problem 4: Nicht-Konformitäten durch „gefaktes V-Modell“
Um dieses Problem zu umgehen, tendieren einige Hersteller dazu, in der Realität iterativ und inkrementell zu arbeiten (ohne das zu dokumentieren), „offiziell“ aber nach dem V-Modell. Mit anderen Worten: Sie entwickeln relativ frei von prozessualen Vorgaben und erstellen am Ende eine Dokumentation, die den Anschein erwecken soll, dass nach den Vorgaben eines V-Modells entwickelt wurde.
Das ist ein Verstoß gegen viele regulatorischen Vorgaben und – so vorhanden – die Vorgaben des eigenen QM-Systems.
Problem 5: Entwicklungsrisiken zu spät erkennen
Ob das Entwicklungsprojekt erfolgreich war, weiß man beim V-Modell erst am Ende. Die Entwicklungsrisiken sind also hoch.
Die folgenden Beispiele zeigen, wie Hersteller diese Risiken minimieren können:
- Mit vertikalen Prototypen frühzeitig herausfinden, ob die Software-Architektur geeignet ist dafür, dass die Software die Anforderungen an das Zeitverhalten und den Ressourcen-Verbrauch erfüllt.
- Mit Mock-Objekten noch nicht entwickelte Komponenten ersetzen, um die bereits entwickelten Komponenten zu testen.
- Mit formativen Evaluationen früh Klarheit schaffen, ob das System gebrauchstauglich ist (s. Abb. 5).
4. V-Modell bei Medizinprodukten
a) Regulatorische Anforderungen
Bei Medizinprodukten stellen mehrere Normen Anforderungen an den Entwicklungsprozess:
- Die ISO 13485 fordert, diesen Prozess zu spezifizieren, der die Rollen bestimmt und Aktivitäten wie die Design-Reviews, die Verifizierung und Validierung festlegt.
- Auch die IEC 60601-1 fordert für programmierbare elektrische medizinische Systeme (PEMS) die Festlegung eines Entwicklungsprozesses. Dieser muss im Wesentlichen die in Abb. 1 dargestellten Aktivitäten umfassen. Ein V-Modell schreibt die Norm allerdings nicht vor.
- Die IEC 62304 enthält im Anhang die in Abbildung gezeigte Darstellung. Sie verweist auf die IEC 60601-1, besteht aber auch nicht auf einem V-Modell. Sie betont sogar, dass agile Ansätze üblich und möglich sind.
b) Zusammenspiel mit anderen Prozessen
Weitere Normen stellen ebenfalls Anforderungen an Prozesse:
- Die ISO 14971 fordert einen Risikomanagementprozess.
- Die IEC 62366-1 legt Anforderungen an den Usability-Engineering-Prozess fest.
Lesen Sie auf dieser Seite, wie sich diese beiden Prozesse mit dem Entwicklungsprozess synchronisieren lassen.
c) V-Modell als Dokumentationsmodell
Das V-Modell in seiner reinen Form wenden nur wenige Medizinproduktehersteller an. Sie nutzen es eher als Dokumentationsmodell. Dabei beschreibt das V-Modell, welche Dokumente im Lauf der Entwicklung entstehen sollen und in welchen Abhängigkeiten diese zueinander stehen.
Dieser Ansatz hat sich bewährt, solange nicht das oben beschriebene Prolem 4 (Nicht-Konformitäten durch „gefaktes“ V-Modell) begangen wird.
5. Fazit und Zusammenfassung
Das V-Modell hat es geschafft, sich in den Köpfen der meisten Hersteller und Prüfer (z. B. bei Benannten Stellen und Behörden) festzusetzen. In der Praxis wird es jedoch kaum in der reinen Form gelebt. Bei vielen Firmen haben sich agile Prozessmodelle durchgesetzt.
Aber auch agil arbeitende Entwicklungsteams sollten die Best Practices des V-Modells übernehmen:
- Früh und möglichst systematisch und vollständig die Stakeholder-Anforderungen ermitteln
- Zumindest die Grobarchitektur zu einem frühen Zeitpunkt (und nicht iterativ-inkrementell) erstellen und prüfen
- Die Dokumente gemäß dem V-Modell erstellen und verifizieren
Das neuere V-Modell XT, das agile Ansätze unterstützt, nutzen Medizinproduktehersteller kaum. Das alte V-Modell leistet scheinbar weiterhin gute Dienste.
Das Johner Institut unterstützt Medizinproduktehersteller dabei, schlanke, maßgeschneiderte und normenkonforme Entwicklungsprozesse zu gestalten und QM-Systeme auf Audits vorzubereiten. Damit vermeiden Sie unnötige Aufwände und Verzögerungen bei der Entwicklung und Zulassung Ihrer Produkte.
Melden Sie sich, um die nächsten Schritte zu besprechen.
Änderungshistorie
- 2023-04-28: Artikel komplett neu geschrieben
- 2018-07-11: Erste Version des Artikels
Hallo Herr Prof. Dr. Johner,
vielen Dank für den für mich sehr informativen und gelungenen Artikel. Ich bin durch eine Google-Recherche darauf gestoßen um für mich die Frage zu klären, ob agile Entwicklungsprozesse auch bei reiner Hardwareentwicklung zum Einsatz kommen. Agil habe ich bislang immer nur in Verbindung mit Softwareentwicklung wargenommen. Aufgrund höheren Aufwandes bei Verifizierung und Validierung gegenüber Software habe ich diesbezüglich Zweifel bzw. kann mir die entsprechende Dokumentation als recht aufwändig vorstellen. Wie ist Ihre Einschätzung dazu und haben Sie ggf. Literaturtips?
Vielen Dank und viele Grüße,
Joachim Schneider
Sehr geehrter Herr Schneider,
danke für Ihre Frage!
Ich halte die agile Entwicklung bei der Hardware ebenfalls für möglich und sogar wünschenswert. Kurze Iterationen, bei denen man in cross-funktionalen Teams Dinge ausprobiert, die sich nicht a priori abschätzen lassen (z.B. Laufzeitverhalten) können die Entwicklung beschleunigen. Im Gegensatz zur Software entstehen dabei aber (mehr) Prototypen und oft weniger „potentially shippable increments“. Daher verifiziert man nur den Aspekt, den man in der jeweiligen Iteration ausprobieren will.
Im Gegensatz zur Software sehe ich sogar weniger Dokumentationsprobleme: Es käme niemand auf die Idee ohne Dokumentation eine Elektronik zu entwerfen oder etwas zu Fräsen. Platinenlayouts, CAD-Zeichnungen entstehen bei den „Hardwerkern“ zwangsläufig. D.h. hier überlegt man immer erst, was man tut, bevor man es tut. Manche „Softwarker“ entwickeln leider direkt darauf los.
An einem Buch zur IEC 60601-1 und dem Vorgehen arbeiten wir gerade, es wird in den nächsten Wochen fertig.
Viele Grüße, Christian Johner
Guten Tag Herr Johner,
Vielen Dank für die wertvollen Ressourcen. Ich habe versucht eine Antwort zu finden auf Ihre Homepage, aber keine gefunden.
Wo fallen den prototypes/PoC (proof-of-concept) rein wenn man schnell was bauen will in einer Sandbox environment um dies für discovery/user research zu nutzen? Schon im Design Control oder ausserhalb und dann von Neuem anfangen.
Danke
Sehr geehrter Herr Müller,
das ist eine sehr gute Frage! Es gibt keine generelle Antwort. Es wäre beides Möglich:
Viele Grüße, Christian Johner
Hallo Herr Johner,
warum gehen die Pfeile in Ihren V-Modellen in beide Richtungen? Bei vielen anderen Darstellungen, wie auch in der IEC 62304, gehen sie dagegen nur „vorwärts“.
Vielen Dank und freundliche Grüße,
Christian Sobotta
Großartige Frage, Herr Sobotta!
Weil das „Rückwärts“ das Normale ist (auch bei Wasserfall), wird es oft nicht eingezeichnet.
Viele Grüße
Christian Johner
Vielen Dank Herr Johner, aber eigentlich meinte ich die Pfeile von einer Aktivität zur nächsten. Bei der Erhebung der Anforderungen und Überführung in die Architektur ist es mir noch klar, dass man z.B. Aufgrund Specification- oder Design-Sprints zur vorherigen Aktivität zurückspringen kann/darf. Ab dem Zeitpunkt der Implementierung würde ich aber nicht mehr so ohne Weiteres einen Schritt zurück gehen. Und warum sollte ich von einer Test-Aktivität zu einer vorherigen zurück wollen?
Vielen Dank und ferundliche Grüße
Christian Sobotta
Sehr geehrter Herr Sobotta,
danke für die weitere Fragen.
Ich teile Ihre Meinung, dass man ab der Verifizierung nicht mehr notwendigerweise nur in eine vorausgegangene Phase zurückspringt. Bei der Implementierung kann das noch eher sein. z.B. stellt man fest, dass sich eine Vorgabe nicht umsetzen lässt oder dass eine Spezifikation fehlt oder ungenau ist. Dann wäre ein Rücksprung in die Phase notwendig, in der die Komponenten spezifiziert wurde. Ein Rücksprung aus einem gescheiterten Integrationstest in einen Unit-Test ist hingegen unüblich. Hier würde man wahrscheinlich in eine Spezifikations- oder in die Implementierungsphase zurückkehren.
All diese Möglichkeiten einzuzeichnen, würde der Übersichtlichkeit nicht gut tun. Letztlich versuchte ich auszudrücken, dass es immer eine Rückkehr in frühere Phasen geben kann.
Viele Grüße, Christian Johner
Sehr geehrter Herr Johner,
vielen Dank für die Beantwortung meiner weiteren Fragen.
Diese bestätigt dann auch meinen eigenen Erklärungsversuch für das Modell. Und ein Rücksprung im „echten“ Projekt erfolgt dann selbstverständlich immer geregelt über das Änderungsmanagement 😉
Viele Grüße, Christian Sobotta
Genauso ist es!