Softwareentwicklung mit validierungsgetriebener Entwicklung verbessern
Eine Methode, die sich darauf konzentriert, Anforderungen während der Softwareentwicklung effektiv zu validieren.
― 5 min Lesedauer
Inhaltsverzeichnis
- Die Bedeutung der Validierung von Anforderungen
- Was ist Validierungsgetriebene Entwicklung?
- Wie funktioniert die Validierungsgetriebene Entwicklung?
- Anforderungen strukturieren
- VDD in der Praxis anwenden
- Schreiben und Validieren von Anforderungen
- Kontinuierliche Validierung durch Verfeinerung
- Fazit
- Originalquelle
- Referenz Links
In der Softwareentwicklung, besonders bei sicherheitskritischen Systemen, ist es wichtig, dass die Anforderungen, die wir setzen, tatsächlich mit dem übereinstimmen, was die Nutzer brauchen. In diesem Artikel erklären wir eine Methode namens Validierungsgetriebene Entwicklung (VDD), die den Fokus auf die Validierung von Anforderungen während des gesamten Entwicklungsprozesses legt. Wir werden besprechen, wie diese Methode funktioniert und welche Vorteile sie hat.
Die Bedeutung der Validierung von Anforderungen
Beim Erstellen von Software schreiben Entwickler oft eine Liste von Anforderungen. Diese Anforderungen erklären, was die Software tun sollte. Danach gibt's einen Verifizierungsprozess, um zu prüfen, ob diese Anforderungen Sinn machen und konsistent sind. Hier kann der traditionelle Entwicklungsprozess versagen, weil er die tatsächlichen Bedürfnisse der Nutzer übersehen könnte. Wenn Nutzerfeedback nur am Anfang oder Ende des Prozesses eingeholt wird, kann das zu teuren Fehlern führen, die erhebliche Änderungen erfordern.
Die meisten Entwicklungsmethoden priorisieren die Verifizierung, also die Überprüfung, ob die Spezifikationen zuverlässig sind, über die Validierung, die sicherstellt, dass die Spezifikationen den Bedürfnissen der Nutzer entsprechen. Das kann eine Kluft zwischen dem, was Nutzer wollen, und dem, was Entwickler bereitstellen, schaffen, was zu verschwendeten Ressourcen und Zeit führt.
Was ist Validierungsgetriebene Entwicklung?
VDD ist eine strukturierte Methode, um mit Softwareanforderungen umzugehen. Sie stellt die Validierung in den Vordergrund, anstatt sie als nachträglichen Gedanken zu behandeln. Bei diesem Prozess werden die Anforderungen kontinuierlich validiert, während sie entwickelt werden. Die Idee ist, eine enge Verbindung zwischen dem, was die Nutzer brauchen, und dem, was die Entwickler erstellen, herzustellen.
VDD basiert auf zwei Hauptideen: Problembilder und Validierungsverpflichtungen. Problembilder helfen, Anforderungen klar und strukturiert zu analysieren. Auf der anderen Seite helfen Validierungsverpflichtungen, den gesamten Validierungsprozess in handhabbare Teile zu zerlegen, die mit spezifischen Schritten der Softwareentwicklung verbunden sind.
Wie funktioniert die Validierungsgetriebene Entwicklung?
Der VDD-Prozess folgt einem systematischen Workflow:
- Eine Anforderung auswählen: Zuerst eine Anforderung auswählen, die Aufmerksamkeit braucht.
- Eine Validierungsverpflichtung schreiben: Eine Validierungsverpflichtung erstellen, die zeigt, ob die Anforderung erfüllt wurde.
- Die Verpflichtung implementieren: Die Verpflichtung in die Spezifikation einfügen.
- Die Spezifikation verifizieren: Die Spezifikation auf Konsistenz und Zuverlässigkeit überprüfen.
- Die Validierungsverpflichtung ausführen: Die Validierungsaufgabe ausführen, um zu bestätigen, ob die Anforderung erfüllt ist.
Dieser Workflow erlaubt Iterationen. Wenn eine Änderung mehr Validierungsverpflichtungen erfordert oder zu Fehlern führt, können Entwickler potenzielle Inkonsistenzen frühzeitig erkennen.
Anforderungen strukturieren
Ein wichtiger Teil des VDD-Prozesses ist, wie man Anforderungen so strukturiert, dass sie leichter zu verwalten sind. Diese Struktur ist wichtig, um sicherzustellen, dass alle Teile des Systems richtig interagieren.
Beim Strukturieren von Spezifikationen können folgende Richtlinien helfen:
- Verwandte Bereiche identifizieren: Schnittstellen zwischen Bereichen teilen, die interagieren müssen. Sie sollten gemeinsam verfeinert werden.
- Fokus auf eingehende Schnittstellen: Mit dem Bereich beginnen, der die meisten Verbindungen zu anderen hat. Das hilft, den Entwicklungsprozess zu straffen.
- Entscheiden über Details vs. Abstraktion: Man kann einen Bereich komplett spezifizieren oder ihn abstrakt halten, bis mehr Untersuchung nötig ist.
Durch die klare Definition der Struktur von Anforderungen wird es einfacher, sie zu pflegen und zu validieren.
VDD in der Praxis anwenden
Schauen wir uns ein Beispiel an, wie VDD in einer realen Situation angewendet werden kann. Stell dir ein System vor, das Flugzeuge, die an einem Flughafen landen, verwaltet. Das System muss den Nutzern ermöglichen, mit einem Landungszeitplan zu interagieren, Flugzeuge in Slots zu ziehen, Slots zu blockieren oder Flugzeuge in der Warteschleife zu halten.
Bereiche definieren
Das System wird mit verschiedenen Interessensbereichen analysiert, wie zum Beispiel:
- Nutzerinteraktion: Wie Nutzer mit dem System interagieren werden.
- Landungszeitplan: Der Prozess, das Management von Flugzeugankünften.
- Anzeige: Die visuelle Darstellung des Zeitplans.
Teilprobleme
Jeder dieser Bereiche kann weiter unterteilt werden:
- Zeitplanbereich: In Zeitfenster und Flugdaten aufteilen.
- Nutzerinteraktion: Die Details erkunden, wie Nutzer den Zeitplan manipulieren werden.
Diese Aufschlüsselung ist entscheidend, um den Entwicklungsprozess zu klären und sicherzustellen, dass alle Aspekte des Systems abgedeckt sind.
Schreiben und Validieren von Anforderungen
Jetzt konzentrieren wir uns darauf, wie man Anforderungen mit VDD schreibt und validiert. Beginnen wir mit dem Zeitplan und nehmen an, dass wir sicherstellen wollen, dass Flugzeuge zur Landesequenz hinzugefügt werden können.
Eine Anforderung erstellen
Die Anforderung könnte lauten: "Flugzeuge können zur Flugsequenz hinzugefügt werden." Das beschreibt klar, was die Software erreichen soll.
Eine Validierungsverpflichtung formulieren
Als nächstes kann eine Validierungsverpflichtung formuliert werden, um sicherzustellen, dass diese Anforderung getestet werden kann. Die Verpflichtung wird Kriterien bereitstellen, um zu überprüfen, dass die Software das Hinzufügen von Flugzeugen korrekt ermöglicht.
Die Anforderung umsetzen
Die Entwickler erstellen dann Code, der die Anforderung erfüllt und die Validierungsaufgaben ausführt. Das kann das Überprüfen von Platz im Zeitplan und die Sicherstellung umfassen, dass das System mehrere Flugzeuge, die hinzugefügt werden, verarbeiten kann.
Kontinuierliche Validierung durch Verfeinerung
Während die Entwicklung weitergeht, ist der Prozess iterativ. Entwickler können ihre anfänglichen Anforderungen und Verpflichtungen überarbeiten und sie weiter verfeinern, basierend auf Nutzerfeedback oder neuen Erkenntnissen. Wenn während des Testens neue Nutzerinteraktionen vorgeschlagen werden, können die Spezifikationen entsprechend aktualisiert werden.
Fazit
Die Validierungsgetriebene Entwicklung bietet einen strukturierten und nutzerorientierten Ansatz zur Softwareentwicklung. Durch die Betonung der Validierung in jeder Phase der Entwicklung wird die Kluft zwischen Nutzerbedürfnissen und Softwarefähigkeiten überbrückt. Das verbessert nicht nur die Kommunikation zwischen Entwicklern und Nutzern, sondern führt auch zu besseren Softwarelösungen, die tatsächlich mit dem übereinstimmen, was die Nutzer benötigen.
Mit der Weiterentwicklung der Entwicklungstechniken wird die Implementierung von Methoden wie VDD zunehmend wichtig, um effektive Software für kritische Anwendungen zu erstellen.
Titel: Validation-Driven Development
Zusammenfassung: Formal methods play a fundamental role in asserting the correctness of requirements specifications. However, historically, formal method experts have primarily focused on verifying those specifications. Although equally important, validation of requirements specifications often takes the back seat. This paper introduces a validation-driven development (VDD) process that prioritizes validating requirements in formal development. The VDD process is built upon problem frames - a requirements analysis approach - and validation obligations (VOs) - the concept of breaking down the overall validation of a specification and linking it to refinement steps. The effectiveness of the VDD process is demonstrated through a case study in the aviation industry.
Autoren: Sebastian Stock, Atif Mashkoor, Alexander Egyed
Letzte Aktualisierung: 2023-08-11 00:00:00
Sprache: English
Quell-URL: https://arxiv.org/abs/2308.06028
Quell-PDF: https://arxiv.org/pdf/2308.06028
Lizenz: https://creativecommons.org/licenses/by/4.0/
Änderungen: Diese Zusammenfassung wurde mit Unterstützung von AI erstellt und kann Ungenauigkeiten enthalten. Genaue Informationen entnehmen Sie bitte den hier verlinkten Originaldokumenten.
Vielen Dank an arxiv für die Nutzung seiner Open-Access-Interoperabilität.