이 두 가지는 당신이 말한 예일뿐입니다. 실제로, 이러한 종류의 비 기능적 요구 사항은 잠재적으로 서로 충돌 할 수 있습니다. "진화 아키텍처 구축 (Building Evolutionary Architectures)"책에는 이러한 백서의 대략 100 개 (대표라고도 함)가 있습니다.
소프트웨어 아키텍트가이 두 가지 사이의 잠재적 충돌을 고려하는 것은 일종의 연습입니다. 기본적으로 프로젝트에서 중요한 요소를 결정한 다음 이러한 충돌을 추적 할 수 있습니다.
정확한 예제로 돌아가서 robustness
Wikipedia 에서 용어의 정의를 살펴보십시오 .
컴퓨터 과학에서 견고성은 컴퓨터 시스템이 실행 중 오류에 대처하고 [1] [2] 잘못된 입력에 대처할 수있는 능력입니다.
정의에서 볼 수 있듯이 견고성은 오류와 관련이 있습니다 . 반면에 정확성을 원하면 기본적으로 오류가 없음을 의미합니다.
충돌을보다 분명하게하기 위해 간단한 입력 필드를 고려해 봅시다. 정확성 요구 사항에서 사용자가 잘못 입력 한 내용을 거부하는 것이 가장 쉽습니다. 그러나 견고성을 위해서는이 입력으로 작업 할 수 있어야하며 이는 완전히 정확하지 않을 수 있습니다.
모든 것을 당신의 책으로 가져 오려면 : 현재 수용 가능한 트레이드 오프 란 무엇입니까? 사용자가 크기를 포함하여 전압을 입력 할 수있는 과학적 응용 프로그램을 작성한다고 가정 해 봅시다. 따라서 올바른 입력은 "10 kV"또는 "200 mV"와 같습니다. 허용 가능한 절충에는 "10kV", "10kVolt"또는 심지어 "10"과 같은 입력 허용 및 정확성을 위해 유효한 전압 값으로 매핑하는 것이 포함됩니다. 이것은 여전히 "최고의 세계"가 아니라 트레이드 오프입니다. 대문자 대 소문자를 고려하십시오. "10 kV"및 "10 KV"는 양호하지만 "10 mV"및 "10 MV"는 좋지 않을 수 있습니다. 밀리인지 메가인지 확실하지 않기 때문에 정확성에 의문이 생깁니다.