@ David Hammens Antwort ist sehr gut formuliert, obwohl nicht genau das, was ich gesagt hätte. Ich bin damit einverstanden, dass die Überprüfung antwortet: "Haben wir diese richtig erstellt?". Alles, was durch einen Prozess erzeugt wird, kann überprüft werden. Bei der Herstellung wird ständig überprüft, ob das produzierte Produkt korrekt hergestellt wurde.
Er definiert dann die Validierung, von der wir uns einig sind, dass sie anders ist, als "Haben wir das Richtige gebaut?" Ich würde sagen, dass sich die Validierung in die entgegengesetzte Richtung bewegt, um die genaue korrekte Funktion eines Entwurfs vollständig zu bestätigen. Eher wie "Objektiv demonstrieren, dass die Lösung richtig entworfen ist". Die richtigen Schraubensorten, die richtigen Größen der internen Variablen. Die Stücke sind dem Job gewachsen.
Davids Bestätigung: "Haben wir das Richtige gebaut?" ist eine hochrangige Frage, die Sie nicht gegen den täglichen Build ausführen können, Daumen hoch oder Daumen runter. Es ist eine Beurteilung der Anforderungen und in geringerem Maße des Designs. Es ist keine vernünftige Frage, die an ein Textfeld auf einem Bildschirm oder einen Parameter in einer API gerichtet ist. Sie sind sich nicht sicher, wie der Ein-Wort-Name für die Richtigkeit der Anforderungen lautet, möglicherweise für die Anforderungsvalidierung. Vollständiger Nachweis, dass die Anforderungen den Bedürfnissen des Endbenutzers entsprechen.
Im Gegensatz dazu ist meine Definition für Validieren ein Beweis für die Richtigkeit eines Entwurfs. Objektive Tests, die zeigen, dass die ausgewählten Teile die Aufgabe erfüllen. Die für Ariane V ungeeignete Ariane IV-Software würde hier versagen, da Ariane IV einen begrenzten Bereich von Winkelratenänderungen aufwies. Der Code wurde für diesen begrenzten Bereich optimiert, und Ariane V war in der Lage, einen größeren Bereich von Winkelraten zu erzeugen, was den Überlauf verursachte. Wenn beide Bordcomputer beim Überlauf abstürzten und nach dem automatischen Neustart erneut ausgeführt wurden, wurde das Destruct-System ausgelöst.
Wie Dykstra sagte: "Vorzeitige Optimierung ist die Wurzel allen Übels."
In meinen Definitionen wird davon ausgegangen, dass die Anforderungen korrekt sind und akzeptiert werden, was durch Anforderungstests bestätigt wird. Design oder Code-Validierung beweisen, dass das Design, möglicherweise ein Teil der Implementierung, korrekt ist. Es muss noch korrekt ausgeführt werden, aber es muss bestätigt werden, dass es sich um eine Überprüfung handelt, die auf akzeptierten Anforderungen und einem akzeptierten Design basiert.
Sie werden feststellen, dass dies dem Entwicklungsmodell des Wasserfalls schmerzlich nahe kommt, das schädlich erscheint, wenn man glaubt, komplexe Systeme zu beschreiben. Trotzdem unterscheiden sich die Anforderungen von Design und Code ist eine dritte Sache. Ich denke, mein Plädoyer ist, dass die Elemente im Wasserfall nützliche Beschreibungen sind, aber dass "vollständig" irreführend ist, deshalb habe ich es in "akzeptiert" geändert, was auf Kontingenz und Veränderlichkeit hindeutet.