Подтвердить что ты не робот

Почему программные требования всегда формулируются с "должен" вместо "воли"?

Почему, когда я документирую требования, он всегда должен быть сформулирован как "Он ДОЛЖЕН это сделать..." против "Это сделает это...".

Я знаю, что это странный вопрос, но я никогда не мог найти ответ. Это всегда было так: "так, как вы их пишете". Я знаю, что это глупый вопрос, но тот, который меня всегда озадачил.

4b9b3361

Ответ 1

В принципе, RFC 2119 так говорит. Реальный ответ заключается только в том, что английский нечеткий, если вы конкретно не заявляете, что вы имеете в виду больше, чем люди, которые читают, и кто-то нашел время, чтобы точно указать, что означают определенные слова.

Ответ 2

Английская грамматика. Для второго и третьего лиц будет декларативным, а - обязательным, а первый - обратным.

Классический пример:

Борьба в воде: "Никто не спасет меня! Я утону!"

Самоубийство: "Никто не спасет меня! Я утону!"

Ответ 3

"Будет" просто указывает на намерение. Вы можете сказать: "Я исправлю эту ошибку" (вы намерены)

"Должен" означает обязательство. Вы, босс, можете сказать: "Вы исправите эту ошибку" (это заказ)

Обратитесь к http://en.wiktionary.org/wiki/shall и http://en.wiktionary.org/wiki/will

Ответ 4

Это может быть странный ответ, но... Я считаю, что нет никаких хороших практических причин для использования "must", "should", "may" и других модальных глаголов в документы требований вообще. Все эти глаголы только затрудняют запись документов и, что самое главное, гораздо труднее читать. (И я убежден, что низкая читаемость является одной из немногих причин, почему требования к документам часто не позволяют четко определить, что система программного обеспечения должна делать для своих заинтересованных сторон.)

Почему использование "должно" настолько распространено?

Ну, как уже упоминалось в других ответах, одна из возможных причин заключается в том, что эта практика просто заимствована из юридических документов. Очевидно, что требования действительно представляют собой контракт с клиентом, поэтому может показаться естественным назвать их, как и другие договорные документы, то есть на законных основаниях. Ну, мы все знаем, как люди любят читать законные.: -)

Также некоторые люди считают полезным применять правила "must/should/may", определенные в RFC 2119, к требованиям к программному обеспечению. Зачем? Честно говоря, это бьет меня. По моему скромному мнению, это классический пример неправильного использования хорошей идеи. Эти соглашения могут быть полезными при определении очень технических протоколов, интерфейсов или других стандартов, которые допускают различные уровни соответствия. Но даже в тех случаях я считаю, что это не самый эффективный способ достижения цели. Я уверен, что для всех было бы намного проще, если бы вместо того, чтобы окропить прозу всеми этими заглавными ДОЛЖНЫМИ, СЛЕДУЕТМИ И МАЙ, авторы явно разделили бы каждое требование и предоставили бы ему ОБЯЗАТЕЛЬНЫЙ | РЕКОМЕНДУЕМЫЙ | ОПЦИОННЫЙ атрибут.

Я считаю, что требования к программному обеспечению не должны быть написаны на законных основаниях (если у вас нет странного клиента, который этого требует). Я считаю, что любое выражение о требованиях легче писать и читать (и поддерживать) в настоящем времени и активном голосовании. Также я считаю, что "уровень необязательности" не является хорошим внутренним атрибутом для требований к программному обеспечению. Каждое требование должно иметь приоритет как его внутренний атрибут (который, например, поможет решить, является ли реализация данного требования обязательным, рекомендуемым или необязательным для данной версии).

Ответ 5

Это потому, что мы всегда 90% Done и эта функция еще не существует;)

Отправленные предыдущие комментарии - я лаял неправильное дерево:)

Ответ 6

Я предполагаю, что истоки требований к программному обеспечению и спецификационных документов являются юридическими (т.е. явно детализировать ожидания контракта на разработку), и поэтому они унаследовали некоторые из правовых конвенций, таких как "должны", а не "будут".

Ответ 7

Я использовал "должен" вместо "воли" для требований, но мне было предложено изменить "should" на "will".

Возможно, я думал о том, что может пойти не так, когда я заявил в документе о требованиях, что "следующий экран должен появиться". Мой босс подумал, что это звучит слабо, и попросил меня изменить его на "следующий экран появится".

Ответ 8

Использовать более исключительно поучительно, заявляя, что должно быть.

Можно использовать вместо того, чтобы использовать, но также обычно используется для описания того, что на самом деле происходит/наблюдается при определенных условиях (и ожидаемое поведение может быть или не быть тем, что должно происходить относительно к данной спецификации или идеалу).

Ответ 9

В Национальном электрическом кодексе </nonprogramming> </прежняя жизнь > , они используют "Shall" для обозначения важности, отсутствия варианта или альтернативы. Вы сделаете это так и таким образом, нет другого способа сделать это, если вы не сделаете это так, как мы сказали здесь, тогда вы поняли это неправильно. Превосходит все остальное (обычно даже "исключения" ). Как и кто-то другой, это исходит из юридической основы.

"может", "может" использоваться, чтобы указать, что у вас есть выбор в этом вопросе, "означает" означает, что вы не можете сказать; что только они, как ЭТО ДОЛЖНЫ СДЕЛАТЬ.;)

Ответ 10

Дополнительная помощь для не-носителей английского языка:

"будет" и "будет", на первый взгляд, не имеют для нас большой разницы, потому что они не используются ежедневно на английском языке, который мы слушаем или читаем. С другой стороны, "бы" и "должны" встречаться чаще, а их дифференциация более знакома, поэтому вы могли бы связывать "волю" и "бы", "должны" и "должны" (а затем "можно" и "делать", мог бы ", если не был уже) каким-то образом в вашем уме.

@Brent Longborough: спасибо за предоставленный вами пример и его объяснение. Должен быть способ трансплантации таких базовых знаний.

Ответ 11

  • "Будет ли" сообщать о будущем или, по крайней мере, о том, как вы собираетесь это делать.
  • "Должен" диктует, что должно быть сделано

Вот почему в спецификациях используется "должно", а в новом году хорошие разрешения и гороскопы используют "волю".

Ответ 12

а. Слово "в тексте" используется для указания обязательного элемента спецификации.

б. Слово "должно в тексте использоваться для указания желаемого, но не обязательного элемента спецификации".

с. Слово "будет в тексте" используется для обозначения выражения будущего намерения, но не обязательного элемента спецификации.

д. Слово "должно в тексте выражать предположение, выполнение которого выходит за рамки настоящего документа".

е. Слово "может в тексте выражать допустимую практику или действие". Он не выражает требования спецификации.

ф. Использование текущего времени (например, есть) означает, что связанный оператор является пояснительным материалом, предоставленным в поддержку спецификации.

Ответ 13

У вас есть канонический ответ, но документ "как написать требования" на работе предлагает еще один вариант:

"должно" описывать требование, то есть что-то, что необходимо сделать вашему программному обеспечению.

"будет" описывает факт, то есть что-то, что произойдет, если ваше программное обеспечение выполняет свою работу или нет.

Ответ 14

Избегайте всех вопросов и требований к захвату с использованием случаев.

Если вы собираетесь использовать списки требований, я согласен с Яриком. Напишите в активном голосе и запустите инструкцию требования с помощью глагола или существительного.