ทั้งสองเป็นเพียงตัวอย่างที่คุณกล่าว ในความเป็นจริงข้อกำหนดที่ไม่ใช่หน้าที่ทั้งหมดของการเรียงลำดับนั้นอาจขัดแย้งกันได้ ในหนังสือ "อาคารวิวัฒนาการทางสถาปัตยกรรม" มีตารางของ "ความสามารถ" หนึ่งร้อย (ซึ่งเรียกกันว่าบ่อยครั้ง)
มันเป็นแบบฝึกหัดสำหรับสถาปนิกซอฟต์แวร์ที่จะต้องพิจารณาความขัดแย้งที่อาจเกิดขึ้นระหว่างสองสิ่งนี้ โดยทั่วไปคุณสามารถตัดสินใจได้ว่าสิ่งใดมีความสำคัญต่อโครงการของคุณจากนั้นติดตามความขัดแย้งเหล่านี้
เพื่อกลับไปเป็นตัวอย่างที่แม่นยำของคุณและดูคำจำกัดความของคำศัพท์robustness
ใน Wikipedia:
ในด้านวิทยาศาสตร์คอมพิวเตอร์ความทนทานคือความสามารถของระบบคอมพิวเตอร์ที่จะรับมือกับข้อผิดพลาดระหว่างการดำเนินการ [1] [2] และรับมือกับการป้อนข้อมูลที่ผิดพลาด
ในขณะที่คุณสามารถดูจากความหมาย, ความทนทานเกี่ยวข้องกับข้อผิดพลาด ในอีกทางหนึ่งคุณต้องการความถูกต้องซึ่งโดยทั่วไปหมายถึงการไม่มีข้อผิดพลาด
เพื่อให้ความขัดแย้งชัดเจนขึ้นลองพิจารณาฟิลด์อินพุตแบบง่าย จากข้อกำหนดความถูกต้องจะง่ายที่สุดสำหรับการป้อนข้อมูลที่ผิดพลาดใด ๆ ที่ทำโดยผู้ใช้จะถูกปฏิเสธ แต่ความทนทานนั้นคุณต้องสามารถทำงานกับข้อมูลนี้ได้ซึ่งอาจไม่ถูกต้องทั้งหมด
หากต้องการนำทุกสิ่งมาไว้ในหนังสือของคุณ: อะไรคือการแลกเปลี่ยนที่ยอมรับได้ในตอนนี้? สมมติว่าคุณเขียนแอปพลิเคชันทางวิทยาศาสตร์ที่ผู้ใช้สามารถป้อนปริมาณแรงดันไฟฟ้ารวมถึงขนาด ดังนั้นอินพุตที่ถูกต้องน่าจะเป็น "10 kV" หรือ "200 mV" การแลกเปลี่ยนที่ยอมรับได้อาจรวมถึงการอนุญาตอินพุตเช่น "10kV", "10kVolt" หรือแม้แต่เพียงแค่ "10" และเพื่อความถูกต้องของแผนที่เหล่านี้กับค่าแรงดันไฟฟ้าที่ถูกต้อง โปรดทราบว่านี่ยังเป็นการแลกเปลี่ยนและไม่ใช่สิ่งที่ "ดีที่สุดของทั้งสองโลก" พิจารณาตัวพิมพ์เล็กและตัวพิมพ์เล็ก: "10 kV" และ "10 KV" อาจจะใช้ได้ แต่ "10 mV" และ "10 MV" อาจไม่เป็นเช่นนั้น ความถูกต้องจะกลายเป็นที่น่าสงสัยในขณะที่คุณไม่แน่ใจว่ามันเป็นพันล้านหรือในขณะนี้