logo

SDLC V-Modell – Software Engineering

Das V-Modell ist eine Art von SDLC-Modell wobei der Prozess nacheinander in einer V-Form ausgeführt wird. Es wird auch als Verifizierungs- und Validierungsmodell bezeichnet. Es basiert auf der Zuordnung einer Testphase zu jeder entsprechenden Entwicklungsstufe. Die Entwicklung jedes Schritts ist direkt mit der Testphase verbunden. Die nächste Phase beginnt erst nach Abschluss der vorherigen Phase, d. h. für jede Entwicklungsaktivität gibt es eine entsprechende Testaktivität.

Inhaltsverzeichnis



Das V-Modell ist ein Software Development Life Cycle (SDLC)-Modell, das eine systematische und visuelle Darstellung des Softwareentwicklungsprozesses bietet. Es basiert auf der Idee einer V-Form, wobei die beiden Schenkel des V den Verlauf des V darstellen Softwareentwicklungsprozess aus Erfassung von Anforderungen und Analyse bis hin zu Design, Implementierung, Tests und Wartung.

V-Modell-Design

  1. Anforderungserfassung und -analyse : Die erste Phase des V-Modells ist die Phase der Anforderungserfassung und -analyse, in der die Anforderungen des Kunden an die Software erfasst und analysiert werden, um den Umfang des Projekts zu bestimmen.
  2. Design: In der Designphase werden die Softwarearchitektur und das Design entwickelt, einschließlich des High-Level-Designs und des detaillierten Designs.
  3. Implementierung: In der Implementierungsphase wird die Software basierend auf dem Design erstellt.
  4. Testen: In der Testphase wird geprüft, ob die Software den Anforderungen des Kunden entspricht und von hoher Qualität ist.
  5. Einsatz: In der Bereitstellungsphase wird die Software bereitgestellt und in Betrieb genommen.
  6. Wartung: In der Wartungsphase wird die Software gewartet, um sicherzustellen, dass sie weiterhin den Bedürfnissen und Erwartungen des Kunden entspricht.
  7. Das V-Modell wird häufig im Sicherheitsbereich eingesetzt: kritische Systeme wie Luft- und Raumfahrt- und Verteidigungssysteme, da der Schwerpunkt auf gründlichen Tests liegt und die Schritte des Softwareentwicklungsprozesses klar definiert werden können.

SDLC V-Modell

Die folgende Abbildung zeigt die verschiedenen Phasen in einem V-Modell des SDLC.



Überprüfung Phasen :

Dabei handelt es sich um eine statische Analysetechnik (Überprüfung), die ohne die Ausführung von Code durchgeführt wird. Dabei handelt es sich um den Prozess der Bewertung der Produktentwicklungsphase, um festzustellen, ob bestimmte Anforderungen erfüllt sind.

Im V-Modell gibt es mehrere Verifizierungsphasen:

Analyse der Geschäftsanforderungen:



Dies ist der erste Schritt der Festlegung des Entwicklungszyklus, in dem die Produktanforderungen aus Kundensicht erfüllt werden müssen. Zu diesen Phasen gehört eine ordnungsgemäße Kommunikation mit dem Kunden, um die Anforderungen der Kunden zu verstehen. Dies sind die sehr wichtigen Aktivitäten, die richtig gehandhabt werden müssen, da die Kunden meistens nicht genau wissen, was sie wollen, und sie sich zu diesem Zeitpunkt nicht sicher sind, dann verwenden wir eine Abnahmetestdesign Planung, die zum Zeitpunkt der Geschäftsanforderung durchgeführt wird, wird als verwendet Eingang zur Abnahmeprüfung.

System-Design:

Der Entwurf des Systems beginnt, wenn wir uns mit den Produktanforderungen im Großen und Ganzen im Klaren sind, und muss dann das System vollständig entwerfen. Dieses Verständnis wird zu Beginn des Produktentwicklungsprozesses vollständig sein. Diese werden für die zukünftige Ausführung von Testfällen von Vorteil sein.

Architekturdesign:

In dieser Phase werden architektonische Vorgaben erfasst und entworfen. In der Regel werden mehrere technische Ansätze vorgeschlagen, und die endgültige Entscheidung wird nach Prüfung sowohl der technischen als auch der finanziellen Machbarkeit getroffen. Die Systemarchitektur ist weiter in Module unterteilt, die jeweils eine bestimmte Funktion übernehmen. Ein anderer Name hierfür ist High-Level Design (HLD).

string.format Java-String

An diesem Punkt sind der Datenaustausch und die Kommunikation zwischen den internen Modulen und externen Systemen gut verstanden und definiert. In dieser Phase können anhand der bereitgestellten Informationen Integrationstests erstellt und dokumentiert werden.

Moduldesign:

Diese als Low-Level-Design (LLD) bezeichnete Phase legt das umfassende interne Design für jedes Systemmodul fest. Die Kompatibilität zwischen dem Design und anderen externen Systemen sowie anderen Modulen in der Systemarchitektur ist entscheidend. Unit-Tests sind ein entscheidender Bestandteil jedes Entwicklungsprozesses, da sie dabei helfen, die meisten Fehler und Schwachstellen frühzeitig zu erkennen und zu beseitigen. Basierend auf den internen Moduldesigns können nun diese Unit-Tests erstellt werden.

Codierungsphase:

Der Codierungsschritt umfasst das Schreiben des Codes für die Systemmodule, die während der Designphase erstellt wurden. Anhand der System- und Architekturanforderungen wird ermittelt, welche Programmiersprache am besten geeignet ist.

Bei der Durchführung der Codierung werden die Codierungsstandards und -grundsätze befolgt. Bevor der endgültige Build in das Repository eingecheckt wird, durchläuft der Code zahlreiche Codeüberprüfungen und wird für optimale Leistung optimiert.

Validierung Phasen :

Es umfasst dynamische Analysetechniken (funktional und nicht-funktional) und Tests durch die Ausführung von Code. Unter Validierung versteht man den Prozess der Evaluierung der Software nach Abschluss der Entwicklungsphase, um festzustellen, ob die Software den Erwartungen und Anforderungen des Kunden entspricht.

Das V-Modell enthält also Verifizierungsphasen auf der einen Seite und Validierungsphasen auf der anderen Seite. An die Verifizierungs- und Validierungsphasen schließt sich V-förmig die Codierungsphase an. Daher wird es V-Modell genannt.
Es gibt einige Validierung Phasen im V-Modell:

Unit-Test:

Unit-Testpläne werden während der Modulentwurfsphase entwickelt. Diese Unit-Testpläne werden ausgeführt, um Fehler auf Code- oder Unit-Ebene zu beseitigen.

Integrationstests:

Nach Abschluss des Unit-Tests wird ein Integrationstest durchgeführt. Beim Integrationstest werden die Module integriert und das System getestet. Integrationstests werden in der Architekturentwurfsphase durchgeführt. Dieser Test überprüft die Kommunikation der Module untereinander.

SQL-Klauseln

Systemtests:

Systemtests testen die gesamte Anwendung mit ihrer Funktionalität, gegenseitigen Abhängigkeit und Kommunikation. Es testet die funktionalen und nichtfunktionalen Anforderungen der entwickelten Anwendung.

Benutzerakzeptanztests (UAT):

UAT wird in einer Benutzerumgebung durchgeführt, die der Produktionsumgebung ähnelt. UAT überprüft, ob das gelieferte System den Anforderungen des Benutzers entspricht und für den Einsatz in der realen Welt bereit ist.

Design-Phase:

  • Anforderungsanalyse: Diese Phase beinhaltet eine detaillierte Kommunikation mit dem Kunden, um seine Anforderungen und Erwartungen zu verstehen. Diese Phase wird als Anforderungserfassung bezeichnet.
  • System-Design: Diese Phase umfasst das Systemdesign und den kompletten Hardware- und Kommunikationsaufbau für die Entwicklung des Produkts.
  • Architekturdesign: Das Systemdesign wird weiter in Module unterteilt, die unterschiedliche Funktionalitäten abdecken. Der Datentransfer und die Kommunikation zwischen den internen Modulen und mit der Außenwelt (anderen Systemen) ist klar nachvollziehbar.
  • Moduldesign: In dieser Phase zerfällt das System in kleine Module. Das detaillierte Design von Modulen wird spezifiziert, auch Low-Level-Design (LLD) genannt.

Testphasen:

  • Unit-Test: Unit-Testpläne werden während der Modulentwurfsphase entwickelt. Diese Unit-Testpläne werden ausgeführt, um Fehler auf Code- oder Unit-Ebene zu beseitigen.
  • Integrationstests: Nach Abschluss des Unit-Tests wird ein Integrationstest durchgeführt. Beim Integrationstest werden die Module integriert und das System getestet. Integrationstests werden in der Architekturentwurfsphase durchgeführt. Dieser Test überprüft die Kommunikation der Module untereinander.
  • Systemtests: Systemtests testen die gesamte Anwendung mit ihrer Funktionalität, gegenseitigen Abhängigkeit und Kommunikation. Es testet die funktionalen und nichtfunktionalen Anforderungen der entwickelten Anwendung.
  • Benutzerakzeptanztests (UAT): UAT wird in einer Benutzerumgebung durchgeführt, die der Produktionsumgebung ähnelt. UAT überprüft, ob das gelieferte System den Anforderungen des Benutzers entspricht und für den Einsatz in der realen Welt bereit ist.

Industrielle Herausforderung:

Im Zuge der Weiterentwicklung der Branche sind die Technologien immer komplexer, immer schneller und ständiger Veränderungen unterworfen. Dennoch gibt es nach wie vor eine Reihe grundlegender Prinzipien und Konzepte, die heute genauso anwendbar sind wie damals, als die IT noch in den Kinderschuhen steckte.

  • Benutzeranforderungen genau definieren und verfeinern.
  • Entwerfen und erstellen Sie eine Anwendung gemäß den Anforderungen des autorisierten Benutzers.
  • Überprüfen Sie, ob die von ihnen erstellte Anwendung den autorisierten Geschäftsanforderungen entspricht.

Bedeutung des V-Modells

1. Frühzeitige Fehlererkennung

Durch die Integration von Verifizierungs- und Validierungsaufgaben in jede Phase des Entwicklungsprozesses fördert das V-Modell frühe Tests. Dies senkt die Kosten und den Aufwand für die Behebung von Problemen später im Entwicklungslebenszyklus, indem es die frühzeitige Erkennung und Behebung von Fehlern unterstützt.

2. Festlegung der Entwicklungs- und Testphasen

Das V-Modell enthält eine Testphase, die jeder Phase des Entwicklungsprozesses entspricht. Indem sichergestellt wird, dass Test- und Entwicklungsprozesse klar abgebildet sind, fördert diese klare Zuordnung einen methodischen und geordneten Ansatz bei der Softwareentwicklung.

3. Verhindert Urknalltests

Tests werden in traditionellen Entwicklungsmodellen häufig ganz am Ende des Entwicklungslebenszyklus durchgeführt, was zu einem Big-Bang-Ansatz führt, bei dem alle Testvorgänge gleichzeitig konzentriert werden. Durch die Integration von Testaktivitäten in den Entwicklungsprozess und die Förderung eines fortschrittlicheren und regulierteren Testansatzes verhindert das V-Modell dies.

4. Verbessert die Zusammenarbeit

Auf jeder Ebene fördert das V-Modell die Zusammenarbeit zwischen den Test- und Entwicklungsteams. Durch diese Zusammenarbeit werden Projektanforderungen, Designentscheidungen und Testmethoden besser verstanden, was die Effektivität und Effizienz des Entwicklungsprozesses verbessert.

5. Verbesserte Qualitätssicherung

Die allgemeine Qualitätssicherung wird durch das V-Modell verbessert, das Testvorgänge auf allen Ebenen umfasst. Bevor das Programm die endgültige Bereitstellungsphase erreicht, stellt es sicher, dass es die Anforderungen erfüllt, und durchläuft einen strengen Validierungs- und Verifizierungsprozess.

So schließen Sie den Entwicklermodus

Prinzipien des V-Modells

  • Groß bis Klein: Im V-Modell erfolgt das Testen in einer hierarchischen Perspektive, beispielsweise anhand der vom Projektteam identifizierten Anforderungen, der Erstellung des High-Level-Designs und der detaillierten Designphasen des Projekts. Mit Abschluss jeder dieser Phasen werden die Anforderungen immer verfeinerter und detaillierter.
  • Daten-/Prozessintegrität: Dieses Prinzip besagt, dass die erfolgreiche Gestaltung jedes Projekts die Einbeziehung und den Zusammenhalt von Daten und Prozessen erfordert. Bei jeder Anforderung müssen Prozesselemente identifiziert werden.
  • Skalierbarkeit: Dieses Prinzip besagt, dass das V-Modell-Konzept die Flexibilität bietet, jedes IT-Projekt unabhängig von seiner Größe, Komplexität oder Dauer zu berücksichtigen.
  • Querverweise: Eine direkte Korrelation zwischen Anforderungen und entsprechenden Testaktivitäten wird als Querverweis bezeichnet.

Greifbare Dokumentation:

Dieses Prinzip besagt, dass für jedes Projekt ein Dokument erstellt werden muss. Diese Dokumentation wird sowohl vom Projektentwicklungsteam als auch vom Supportteam benötigt und angewendet. Die Dokumentation dient zur Wartung der Anwendung, sobald sie in einer Produktionsumgebung verfügbar ist.

Warum bevorzugt?

  • Aufgrund der Steifigkeit des Modells ist es einfach zu handhaben. Jede Phase des V-Modells hat spezifische Ergebnisse und einen Überprüfungsprozess.
  • Proaktive Fehlerverfolgung – d. h. Fehler werden frühzeitig erkannt.

Wann zu verwenden von V-Modell ?

  • Nachverfolgbarkeit der Anforderungen: Das V-Modell erweist sich in Situationen als nützlich, in denen es darauf ankommt, eine genaue Nachvollziehbarkeit zwischen den Anforderungen und den zugehörigen Testfällen herzustellen.
  • Komplexe Projekte: Das V-Modell bietet eine methodische Möglichkeit, Testaktivitäten zu verwalten und Risiken im Zusammenhang mit Integrations- und Schnittstellenproblemen für Projekte mit hoher Komplexität und gegenseitigen Abhängigkeiten zwischen Systemkomponenten zu reduzieren.
  • Wasserfallartige Projekte : Da das V-Modell eine zugängliche Struktur für die Organisation, Durchführung und Überwachung von Testaktivitäten auf jeder Entwicklungsebene bietet, eignet es sich für Projekte, die einen sequenziellen Entwicklungsansatz verwenden, ähnlich wie das Wasserfallmodell.
  • Sicherheitskritische Systeme: Diese Systeme werden in der Luft- und Raumfahrt-, Automobil- und Gesundheitsindustrie eingesetzt. Sie legen großen Wert auf strenge Verifizierungs- und Validierungsverfahren, die dazu beitragen, sicherzustellen, dass wesentliche Systemanforderungen erfüllt werden und mögliche Risiken frühzeitig im Entwicklungsprozess erkannt und beseitigt werden.

Vorteile des V-Modells

  • Dies ist ein äußerst diszipliniertes Modell und die Phasen werden nacheinander abgeschlossen.
  • Das V-Modell wird für kleine Projekte verwendet, bei denen die Projektanforderungen klar sind.
  • Einfach und leicht zu verstehen und zu verwenden.
  • Dieses Modell konzentriert sich auf Verifizierungs- und Validierungsaktivitäten zu Beginn des Lebenszyklus und erhöht so die Wahrscheinlichkeit, ein fehlerfreies und qualitativ hochwertiges Produkt herzustellen.
  • Es ermöglicht dem Projektmanagement, den Fortschritt genau zu verfolgen.
  • Klarer und strukturierter Prozess: Das V-Modell bietet einen klaren und strukturierten Prozess für Software-Entwicklung , was das Verständnis und die Befolgung erleichtert.
  • Schwerpunkt auf Tests: Das V-Modell legt großen Wert auf Tests, die dazu beitragen, die Qualität und Zuverlässigkeit der Software sicherzustellen.
  • Verbesserte Rückverfolgbarkeit: Das V-Modell stellt eine klare Verbindung zwischen den Anforderungen und dem Endprodukt her und erleichtert so die Rückverfolgung und Verwaltung von Änderungen an der Software.
  • Bessere Kommunikation: Die klare Struktur des V-Modells hilft, die Kommunikation zwischen dem Kunden und dem Entwicklungsteam zu verbessern.

Nachteile des V-Modells

  • Hohes Risiko und Unsicherheit.
  • Es eignet sich nicht für komplexe und objektorientierte Projekte.
  • Es eignet sich nicht für Projekte, bei denen die Anforderungen unklar sind und ein hohes Änderungsrisiko bestehen.
  • Dieses Modell unterstützt keine Iteration von Phasen.
  • Es ist nicht einfach, gleichzeitige Ereignisse zu verarbeiten.
  • Inflexibilität: Das V-Modell ist ein lineares und sequentielles Modell, was die Anpassung an sich ändernde Anforderungen oder unerwartete Ereignisse erschweren kann.
  • Zeitaufwändig: Das V-Modell kann zeitaufwändig sein, da es viel Dokumentation und Tests erfordert.
  • Übermäßiges Vertrauen in die Dokumentation: Das V-Modell legt großen Wert auf die Dokumentation, was zu einer übermäßigen Abhängigkeit von der Dokumentation auf Kosten der eigentlichen Entwicklungsarbeit führen kann.

Abschluss

Einen wissenschaftlichen und organisierten Ansatz für den Software Development Life Cycle (SDLC) bietet das Software Engineering V-Modell. Bei der Auswahl aller SDLC-Modelle, einschließlich des V-Modells, sollten das Fachwissen des Teams mit der ausgewählten Methodik, die einzigartigen Merkmale des Projekts und die Art der Anforderungen berücksichtigt werden.

Nachschlagewerk:

Software Engineering: A Practitioner’s Approach von Roger S. Pressman, veröffentlicht von McGraw-Hill Education, 2017.