Membaca "Kode Lengkap 2" dalam paragraf Kualitas Persyaratan, saya menemukan ini:
Apakah trade-off yang dapat diterima antara atribut yang bersaing ditentukan - misalnya, antara ketahanan dan kebenaran?
(ini di atas adalah titik dari daftar kotak centang besar untuk memeriksa kualitas persyaratan)
Jadi, saya menemukan banyak definisi Robustness and Correctness, di web, buku akademik, dll.
misalnya:
Dalam "Konstruksi Perangkat Lunak Berorientasi Objek, Edisi 2, Bertrand Meyer, Prentice-Hall, 1997" buku:
- Kebenaran: Sejauh mana sistem bebas dari [cacat] dalam spesifikasi, desain, dan implementasinya.
- Robustness: Tingkat di mana suatu sistem terus berfungsi di hadapan input yang tidak valid atau kondisi lingkungan yang penuh tekanan.
Meskipun demikian, tidak jelas mengapa dan dalam situasi apa keduanya mungkin mengalami konflik.
Pertanyaan saya adalah: mengapa kedua atribut ini bersaing ?
Jawaban:
Ada banyak situasi di mana keduanya mungkin berada dalam konflik. Misalnya, ketahanan dapat melibatkan ketahanan di bawah beban berat. Jika perkiraan (yaitu, salah) respons terhadap permintaan dapat dihitung jauh lebih cepat daripada respons yang tepat (benar), penting untuk mengetahui apakah sistem harus memberikan hasil perkiraan, atau gagal mengirim sekaligus.
sumber
Keduanya hanyalah contoh seperti yang Anda katakan. Bahkan, semua persyaratan non-fungsional semacam itu berpotensi dapat saling bertentangan. Dalam buku "Membangun Arsitektur Evolusi" ada tabel kira-kira seratus "fungsi" ini (sebagaimana mereka juga sering disebut).
Ini adalah semacam latihan bagi arsitek perangkat lunak untuk mempertimbangkan potensi konflik di antara keduanya. Anda pada dasarnya dapat memutuskan mana yang penting untuk proyek Anda, kemudian melacak konflik ini.
Untuk kembali ke contoh persis Anda dan lihat definisi istilah
robustness
di Wikipedia:Seperti yang Anda lihat dari definisi, ketahanan melibatkan kesalahan . Di sisi lain, Anda ingin memiliki kebenaran, yang pada dasarnya berarti tidak adanya kesalahan.
Untuk membuat konflik lebih jelas, mari pertimbangkan bidang input sederhana. Dari persyaratan kebenaran itu termudah untuk setiap input yang salah yang dibuat oleh pengguna untuk ditolak. Tetapi ketahanan membutuhkan Anda untuk dapat bekerja dengan input ini, yang mungkin tidak sepenuhnya benar.
Untuk membawanya ke buku Anda: apa trade-off yang dapat diterima sekarang? Katakanlah Anda menulis aplikasi ilmiah di mana pengguna dapat memasukkan jumlah tegangan, termasuk besarnya. Jadi input yang benar akan menjadi sesuatu seperti "10 kV" atau "200 mV". Pertukaran yang dapat diterima mungkin termasuk mengizinkan input seperti "10kV", "10kVolt", atau bahkan hanya "10" dan demi kebenaran, petakan ini ke nilai tegangan yang valid. Perhatikan bahwa ini masih merupakan trade-off dan bukan hal "terbaik-dari-dua-dunia". Pertimbangkan huruf besar vs huruf kecil: "10 kV" dan "10 KV" mungkin baik-baik saja, tetapi "10 mV" dan "10 MV" mungkin tidak. Kebenaran menjadi dipertanyakan karena Anda tidak yakin apakah itu mili atau mega sekarang,
sumber
Contoh praktis adalah XHTML vs. HTML .
Dengan demikian XHTML bertujuan untuk kebenaran, sedangkan HTML bertujuan untuk ketahanan. Saat ini HTML tampaknya lebih populer, tetapi kedua belah pihak memiliki argumen yang bagus.
sumber