Diese beiden sind nur Beispiele, wie Sie sagten. Tatsächlich können alle nicht funktionalen Anforderungen dieser Art möglicherweise miteinander in Konflikt stehen. In dem Buch "Building Evolutionary Architectures" gibt es eine Tabelle von ungefähr hundert dieser "Fähigkeiten" (wie sie auch oft genannt werden).
Für Softwarearchitekten ist es eine Art Übung, den möglichen Konflikt zwischen diesen beiden zu betrachten. Sie können im Grunde entscheiden, welche davon für Ihre Projekte wichtig sind, und dann diese Konflikte verfolgen.
Um zu Ihrem genauen Beispiel zurückzukehren und einen Blick auf die Definition des Begriffs robustness
in Wikipedia zu werfen :
In der Informatik ist Robustheit die Fähigkeit eines Computersystems, Fehler während der Ausführung [1] [2] und fehlerhafte Eingaben zu verarbeiten.
Wie Sie der Definition entnehmen können, beinhaltet Robustheit Fehler . Andererseits möchten Sie Korrektheit haben, was im Grunde bedeutet, dass keine Fehler vorliegen.
Betrachten wir zur Verdeutlichung des Konflikts ein einfaches Eingabefeld. Aus Gründen der Korrektheit ist es am einfachsten, fehlerhafte Eingaben des Benutzers zurückzuweisen. Robustheit setzt jedoch voraus, dass Sie in der Lage sind, mit dieser Eingabe zu arbeiten, was möglicherweise nicht ganz korrekt ist.
Um es auf Ihr Buch zu übertragen: Was ist der akzeptable Kompromiss jetzt? Angenommen, Sie schreiben eine wissenschaftliche Anwendung, in der der Benutzer einen Spannungswert einschließlich der Größe eingeben kann. Richtige Eingaben wären also etwa "10 kV" oder "200 mV". Akzeptable Kompromisse können das Zulassen von Eingaben wie "10 kV", "10 kVolt" oder sogar nur "10" umfassen und diese der Richtigkeit halber auf einen gültigen Spannungswert abbilden. Beachten Sie, dass dies immer noch ein Kompromiss ist und nicht das "Beste aus beiden Welten". Betrachten Sie Groß- und Kleinbuchstaben: "10 kV" und "10 KV" sind möglicherweise in Ordnung, "10 mV" und "10 MV" jedoch möglicherweise nicht. Richtigkeit wird fraglich, da Sie nicht sicher sind, ob es jetzt Milli oder Mega ist,