Найкраща практика використання малих і обов'язкових вимог під час написання вимог


22

Раніше я надіслав електронний лист, нагадавши нашим розробникам, що використання слова "Повинне" у ваших похідних вимогах не повинно відповідати вашим функціональним вимогам. При написанні функціональних вимог слово "Must" використовується для опису функції, яку має виконувати похідна вимога.
Похідне = Система повинна бути вимогою
Функціональна = Система повинна виконувати вимоги

Один із наших літніх людей повернув, що це було неправильно, і це повинно бути використане у всіх вимогах.

Чи помиляюся я тут і повинен застосовуватися у всіх вимогах? Я не зміг знайти нічого, щоб підкріпити це.


Ми використовуємо "повинен" у кожній обов'язковій вимозі. Але "повинен" і "повинен" означають більш-менш те саме. Дивіться також tynerblain.com/blog/2009/04/22/dont-use-shall
Роберт Харві

4
Ви, можливо, думаєте про MUSTvs SHOULDу RFC? ietf.org/rfc/rfc2119.txt
user10326


Ех, не бути партером, але чим ви виграєте, коли всі вживають правильне слово у правильній ситуації?
Пітер

Відповіді:


43

RFC 2119 "Ключові слова для використання в RFC для вказівки рівнів вимог" входить в специфіку того, що означають різні слова за вимогами.

У цьому документі ключові слова "ОБОВ'ЯЗКОВО", "НЕ ПОВИННІ", "ПОТРІБНО", "ПОТРІБНО", "ПОТРІБНО", "ПОТРІБНО", "ПОТРІБНО НЕ", "РЕКОМЕНДУЮ" слід інтерпретувати так, як описано в RFC 2119.

З цього документа:

  • MUSTє рівнозначним REQUIREDі SHALLвказує на те, що визначення є абсолютною вимогою.
  • MUST NOTеквівалентний SHALL NOTі вказує, що це абсолютна заборона специфікацій.
  • SHOULDє рівнозначним RECOMMENDEDтому, що є поважні причини ігнорувати певну вимогу, але наслідки потрібно зважити.
  • SHOULD NOTі NOT RECOMMENDEDозначає, що певна поведінка може бути прийнятною або корисною, але знову ж таки, наслідки потрібно зважити.
  • MAYозначає, OPTIONALщо вимога є дійсно необов'язковою. Повинні бути сумісні з різними системами, які можуть або не можуть застосовувати необов'язкові вимоги.

Дотримуючись цього RFC, SHOULDслід зробити, щоб забезпечити послідовність зв’язку між внутрішніми документами та світом стандартів у цілому.


1
тверда відповідь; реквізит для викопування RFC

1
@ GlenH7 Я знав про це (мені подобається читати RFC 1 квітня, а частина гумору є в "слід" і "повинен", а 2119 - це навіть на сторінці вікіпедії ). Я шукав його, знайшов, а потім прочитав коментар, який я збирався зробити - два вище це був знову RFC. Тож не зовсім величезний реквізит для його копання.

Я думав, що Потрібні / функціональні вимоги повинні вимагати всієї функціональності для похідного об'єкта, який повинен існувати. Але, даючи визначення та повинні, і як усі інші користуються ними, я просто помилявся
Тім Ліберман

6

Не впевнені, де ви дійшли висновку, що shallі mustналежите на окремих рівнях документації. Це досить довільне відмінність, яке не підкріплене жодним джерелом, про який я знаю.

Shallі mustє лексично рівнозначними. Це необхідна дія.

Будь ви використовуєте shallчи mustсправді залежить від решти документа, про який ви пишете, і того, що має граматичний сенс для конкретного речення.

Так що так, ви помиляєтесь. Але ви також помилилися тим, що завжди використовуєте shallзамість цього must. Вони являють собою однаковий ступінь зобов'язання.


3
Shouldі mayне зовсім рівнозначні. Вони обоє позначають необов'язкові функції, але should, на відміну від цього may, означає, що вам потрібно мати вагомі причини для того, щоб не застосовувати їх. Я згоден з вами на shallVS. must, хоча.
Кіт Томпсон

@KeithThompson - це хороший момент, і ти маєш рацію. Я витягнув цю лінію з відповіді.

1
Моє мислення стало, що функціональні вимоги повинні використовуватися повинні, оскільки: Якщо похідний об'єкт існуватиме, він повинен функціонувати.
Тім Ліберман

Я думаю, в якийсь момент я вбудував би як новий предмет у свою голову і повинен функціонувати.
Тім Ліберман

@TimLieberman - це не поганий спосіб погляду на речі, тим більше, що він пов'язує два шари специфікацій. Насправді корисно, адже деякі люди плутають семантику термінів. Тим більше, що я зафіксував документи процесів, де "повинен" частіше використовувався як заміна "повинен". Однак, це не зовсім корисно, щоб вимагати цього як певного стандарту.

2

Якщо ви працюєте в рамках керівних принципів DO-178 або DO-254 , вони мають своє власне визначення вимог до загальних та похідних вимог . Однак ці вказівки не вказують, яке слово, наприклад , повинно, повинно , повинно бути використано для визначення вимог.

Якщо набір інструментів для управління вимогами автоматично не вказують отримані вимоги для вас, що робить їх відміну від функціональних вимог по використанню суслі замість повинно може бути корисним, наприклад , для демонстрації того, що цілі перевірки для похідних вимог були також виконані. Це може бути можливою причиною вимог, здавалося б, довільної документації.

Зауважте, що в DO-178 та DO-254 похідна вимога насправді означає вимогу, яка не була виведена з вимоги вищого рівня. Отже, похідні вимоги по суті ініціюють новий ланцюг відстеження.

Як DO-178, так і DO-254 - це комерційні керівні документи, які використовуються для розробки програмного забезпечення та електроніки авіоніки, і доступні лише за плату від www.rtca.org .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.