あなたが言ったように、これら2つは単なる例です。実際、この種の機能以外の要件はすべて、潜在的に相互に競合する可能性があります。「Building Evolutionary Architectures」という本には、約100のこれらの「-ilities」の表があります(これらはよく呼ばれます)。
ソフトウェアアーキテクトがこれらの2つの間の潜在的な競合を考慮することは、一種の演習です。基本的に、これらのどれがプロジェクトにとって重要であるかを決定し、これらの競合を追跡できます。
正確な例に戻りrobustness
、Wikipedia の用語の定義を見てみましょう。
コンピューターサイエンスでは、堅牢性とは、コンピューターシステムが実行中のエラー[1] [2]に対処し、誤った入力に対処する能力です。
定義からわかるように、堅牢性にはエラーが伴います。一方、正確さを求めているのは、基本的にエラーがないことを意味します。
競合をより明確にするために、単純な入力フィールドを考えてみましょう。正確性の要件から、ユーザーが行った誤った入力を拒否するのが最も簡単です。ただし、堅牢性を確保するには、この入力を操作できる必要がありますが、これは完全に正しいとは限りません。
それをすべてあなたの本に持ち込むために:今、容認できるトレードオフは何ですか?ユーザーがマグニチュードを含む電圧量を入力できる科学アプリケーションを作成したとしましょう。したがって、正しい入力は「10 kV」または「200 mV」のようなものになります。許容可能なトレードオフには、「10kV」、「10kVolt」、または単に「10」などの入力を許可し、正確さのためにこれらを有効な電圧値にマップすることが含まれます。これは依然としてトレードオフであり、「両方の世界のベスト」なものではないことに注意してください。大文字と小文字を考慮してください。「10 kV」と「10 KV」は問題ないかもしれませんが、「10 mV」と「10 MV」は問題ないかもしれません。正確かどうかは、今はミリかメガか分からないため疑問になりますが、