Praktik Terbaik Untuk Penggunaan Harus dan Harus Saat Menulis Persyaratan

22

Saya mengirim email sebelumnya mengingatkan pengembang kami bahwa, penggunaan kata, 'Haruskah', dalam persyaratan turunan Anda tidak harus mengikuti persyaratan fungsional Anda. Saat menulis persyaratan fungsional, kata 'Must', digunakan untuk menggambarkan fungsi yang harus dilakukan oleh persyaratan turunan.
Berasal = Sistem Harus persyaratan
Fungsional = Sistem harus melakukan persyaratan

Itu dikirim kembali oleh salah satu Senior kami bahwa, itu salah dan yang harus digunakan dalam setiap persyaratan.

Apakah saya salah di sini dan Haruskah digunakan dalam setiap persyaratan. Saya belum dapat menemukan apa pun untuk mendukung hal itu.

Tim Lieberman
sumber
Kami menggunakan "harus" dalam setiap persyaratan yang wajib. Tetapi "harus" dan "harus" memiliki arti yang kurang lebih sama. Lihat juga tynerblain.com/blog/2009/04/22/dont-use-shall
Robert Harvey
4
Apakah Anda mungkin berpikir tentang MUSTvs SHOULDdi RFC? ietf.org/rfc/rfc2119.txt
user10326
Euh, bukan untuk menjadi pencuri partai, tetapi apa yang Anda menangkan saat semua orang menggunakan kata yang tepat dalam situasi yang benar?
Peter

Jawaban:

43

RFC 2119 "Kata-kata kunci untuk digunakan dalam RFC untuk Menunjukkan Tingkat Kebutuhan" menjelaskan secara spesifik tentang arti kata-kata berbeda pada persyaratan.

Kata kunci "HARUS", "HARUS TIDAK", "DIPERLUKAN", "AKAN", "TIDAK AKAN", "HARUS TIDAK", "HARUS TIDAK", "DIREKOMENDASIKAN", "MUNGKIN", dan "OPTIONAL" dalam dokumen ini adalah untuk ditafsirkan sebagaimana dijelaskan dalam RFC 2119.

Dari dokumen ini:

  • MUSTsetara dengan REQUIREDdan SHALLmenunjukkan bahwa definisi tersebut merupakan persyaratan mutlak.
  • MUST NOTsetara dengan SHALL NOTdan menunjukkan bahwa ini adalah larangan mutlak terhadap spesifikasi.
  • SHOULDsetara dengan RECOMMENDEDberarti bahwa ada alasan yang sah untuk mengabaikan persyaratan tertentu, tetapi implikasinya perlu dipertimbangkan.
  • SHOULD NOTdan NOT RECOMMENDEDberarti bahwa perilaku tertentu dapat diterima atau bermanfaat, tetapi sekali lagi, implikasinya perlu ditimbang.
  • MAYberarti OPTIONALdan bahwa persyaratannya benar - benar opsional. Interoperabilitas dengan sistem yang berbeda yang mungkin atau mungkin tidak menerapkan persyaratan opsional harus dilakukan.

Mengikuti RFC ini SHOULDdilakukan untuk membantu memastikan konsistensi komunikasi antara dokumen internal seseorang dan dunia standar pada umumnya.


sumber
1
jawaban yang solid; alat peraga untuk menggali RFC
1
@ GlenH7 Saya tahu itu (saya menikmati membaca 1 April RFC dan beberapa humor ada di 'harus' dan 'harus', dan 2119 itu bahkan di halaman wikipedia ) Saya mencarinya, menemukannya, dan kemudian membaca komentar saya akan membuat - dua di atas itu adalah RFC lagi. Jadi tidak sepenuhnya alat peraga besar untuk menggali itu.
Pemikiran saya adalah bahwa persyaratan Persyaratan / persyaratan fungsional harus akan memerlukan semua fungsionalitas untuk objek turunan yang akan ada. Tetapi definisi yang diberikan harus dan harus dan bagaimana orang lain menggunakannya, saya salah
Tim Lieberman
6

Tidak yakin dari mana Anda sampai pada kesimpulan itu shalldan musttermasuk pada tingkat dokumentasi yang terpisah. Itu perbedaan yang cukup sewenang-wenang yang tidak didukung oleh sumber apa pun yang saya tahu.

Shalldan mustsecara leksikal setara. Itu tindakan yang diperlukan.

Apakah Anda menggunakan shallatau mustbenar - benar tergantung pada sisa dokumen yang Anda tulis di dalamnya dan apa yang masuk akal secara tata bahasa untuk kalimat khusus itu.

Jadi ya, Anda salah. Tapi kau juga salah pada selalu menggunakan shallbukan must. Mereka mewakili tingkat kewajiban yang sama.


sumber
3
Shoulddan maytidak cukup setara. Keduanya menunjukkan fitur opsional, tetapi should, tidak seperti may, menyiratkan bahwa Anda harus memiliki alasan yang baik untuk tidak mengimplementasikannya. Saya setuju dengan Anda pada shallvs must, meskipun.
Keith Thompson
@KeithThompson - itu poin yang bagus, dan Anda benar. Saya menarik garis itu dari jawaban.
1
Pemikiran saya menjadi bahwa persyaratan fungsional harus digunakan harus karena, Jika objek turunan harus ada semua fungsinya harus berfungsi.
Tim Lieberman
Saya kira pada titik tertentu saya akan tertanam sebagai objek baru di kepala saya dan harus berfungsi.
Tim Lieberman
@TimLieberman - itu bukan cara yang buruk dalam memandang sesuatu, terutama karena ini menghubungkan dua lapisan spesifikasi. Agak berguna, sebenarnya, karena beberapa orang menjadi bingung dengan istilah semantik. Terutama karena saya sudah memperbaiki dokumen proses di mana "harus" lebih sering daripada tidak digunakan sebagai pengganti "harus". Namun, itu tidak cukup berguna untuk mengharuskan itu sebagai standar tertentu.
2

Jika Anda kebetulan bekerja dalam kerangka pedoman DO-178 atau DO-254 , ini memiliki definisi sendiri untuk persyaratan secara umum dan persyaratan turunan . Namun pedoman ini tidak menentukan kata mana, misalnya harus, harus, harus , harus digunakan untuk menentukan persyaratan.

Jika Anda perkakas manajemen persyaratan tidak secara otomatis menunjukkan persyaratan diturunkan untuk Anda, membuat berbeda ini dari persyaratan fungsional dengan penggunaan keharusan bukan akan dapat bermanfaat, misalnya untuk menunjukkan bahwa tujuan verifikasi untuk kebutuhan berasal juga telah dipenuhi. Ini bisa menjadi alasan yang memungkinkan untuk persyaratan dokumentasi yang tampaknya arbitrer.

Perhatikan bahwa persyaratan turunan DO-178 dan DO-254 sebenarnya berarti persyaratan yang belum diturunkan dari persyaratan tingkat yang lebih tinggi. Oleh karena itu, persyaratan yang diturunkan pada dasarnya memulai rantai keterlacakan baru.

Baik DO-178 dan DO-254 adalah dokumen pedoman komersial yang digunakan untuk pengembangan perangkat lunak dan elektronik avionik, dan hanya tersedia dengan biaya dari www.rtca.org .

Schedler
sumber