ルールの一覧へ

要求の文に、決めきれない言い方がある

requirement-smell既定で動く(情報)日本語 / 英語

仕様書や契約書の要求の文にある「可能な限り」「必要に応じて」「等」「及び/又は」

例

指摘される文
予約の画面は、可能な限り速く表示されなければならない。
chaff の出力
1:8 「可能な限り」は、どこまでしたら満たしたことになるのかを決めていません
直した文
予約の画面は、3 秒以内に表示されなければならない。
chaff の出力
指摘なし
この例で使った chaff.yaml
genre: technical/spec

直し方

満たしたかどうかを確かめられる形に書き直してください。「可能な限り速く」なら「3 秒以内に」、「ログ等を保存すること」なら保存するものを全部並べる、「A 及び/又は B」なら「A 又は B(両方でもよい)」のように。

なぜ指摘するのか

仕様書や契約書の要求は、満たしたかどうかを誰が読んでも同じに決められる必要があります。「可能な限り」「必要に応じて」は、どこまでしたら満たしたことになるのかを書き手が決めずに残します。要求の文の「等」「など」は、ほかに何が含まれるのかを残し、「及び/又は」は両方なのか片方でよいのかを残します。要求の書き方を調べた研究(Femmer ほか 2017、Berry ほか 2003)と ISO/IEC/IEEE 29148 が、どれも避ける言い方に挙げています。要求の文(「〜しなければならない」「〜ものとする」「〜こと。」で終わる文)だけを見ます。

指摘しないもの

要求の文でない文(説明や背景)、法令、ブログやビジネス文書は見ません。語彙表にない言い方は指しません。文書が定めた名前の「等」(以下「委託先等」という、銀行等(…をいう。)、定義の号の頭の語、次の段落で定義する項目だけを書いた語(9 書面等)と、監査等委員会のように後ろへ語が続く「等」は、列挙を閉じているので指しません。すぐ後ろで種類を名指す「等」(印刷等、二次的に利用される場合/印刷等の二次的利用)も、一覧がその種類の例なので指しません。条件(訂正等を行った際に)、与える権利(消去等できるものとします)、禁止や免責(転載等をしてはならない、責任を負わないものとします)の中の「等」も、わざと広く取った一覧なので指しません。要求が何についてかを説明する節の中の「など」(SNSなどを通じて知り合った人と行う取引は、…必要があります)も、果たす義務の中にないので指しません。条件の語のすぐ後ろの括弧の中の「等」(不要な場合(一つの表だけを読むとき等)も付けること)は、いつ当てはまるかの例なので指しません。英語の as soon as possible は、同じ文に日数の期限(no later than two days after)があれば、期限が決まっているので指しません。英語の but not limited to(including, but not limited to)は、契約書では例の一覧で範囲を狭めないための決まった言い方なので、契約書では指しません。

止める・ゆるめる

この一か所だけ黙らせる(文書に書く)
<!-- stet: requirement-smell — 理由 -->
チームでゆるめる(理由は chaff.yaml にコメントで残ります)
npx chaffjs relax requirement-smell --why "理由"
チームで止める(chaff.yaml)
rules: requirement-smell: off
技術的な情報
層
L2
状態
安定
重さ
情報
対象の言語
日本語と英語
向いている文章
technical/spec, legal, docs, academic, literature, speech

強さ(段階)

chaff.yaml の rules にこの名前と段階を書くと変わります。書かなければ、ジャンルが決めた段階で動きます(どのジャンルで動くかは下の「ジャンルごとの動き」にあります)。

strict注意
normal情報
relaxed情報

このルールには数える上限がありません。段階は指摘の重さを変えます。relaxed にすると指摘は消えずに一段軽く出ます。

ジャンルごとの動き

既定で動くジャンル
technical/spec, legal/contract, docs/manual, docs/faq
このルールを止めるジャンル
legal/statute, legal/judgment, legal/patent, docs/glossary, academic/paper, literature/fiction, literature/essay, literature/poetry, literature/play, speech/address, speech/transcript
このルールが向かず、見ないジャンル
technical/readme, blog/tech, blog/essay, blog/owned-media, business/proposal, business/report, business/email, business/press-release, business/meeting-notes

ジャンル

指摘の文

「{matched}」は、要求を決めきらずに残しています

「{matched}」は、どこまでしたら満たしたことになるのかを決めていません

要求の中の「{matched}」は、ほかに何が含まれるのかを決めていません

「{matched}」は、両方なのか片方でよいのかを決めていません

根拠にした文献

このページはルールの定義ファイルから作られています:packages/chaff/rules/requirement-smell.yaml