基本情報技術者の実務クエスト

【基本情報の実務】機能要件と非機能要件──線を引くより、測れる形にするほうが難しい

システム開発の受付担当から、依頼メモの整理について相談が届く。

「受付を楽にするクエスト管理システムを作りたくて、要望をメモにまとめました。冒険者がIDでログインして受けたいクエストを選んで申し込める、受付長が新しいクエストを登録・修正・削除できる、朝の混雑時でも画面が3秒以内に表示される、機密情報が漏れないよう通信を暗号化する、日中はほとんど落ちない。これを機能要件と非機能要件に分けて整理したいのですが、どこで線を引けばよいでしょうか?」

線そのものは、はっきりしている。何をするかが機能要件、どのように動くかが非機能要件である。基本情報の知識がここで力になるのは、分けたあとに待っている仕事が見えたときだ。分類は始まりで、本体はそのあとにある。この記事では、そこまで整理する。

この記事は、学習アプリ「シカクエ」の実務クエスト「要望を機能要件と非機能要件に分ける」を読み物として再構成したもの。人物・依頼はすべて架空です。要件定義の様式や区分は、案件や職場によって異なります。

まず結論:5つを分けると、状態が3つに割れる

要望区分いまの状態
冒険者がログインして、クエストを選んで申し込める機能このまま使える
受付長がクエストを登録・修正・削除できる機能このまま使える
朝の混雑時でも、画面が3秒以内に表示される非機能条件が足りない
機密情報が漏れないよう、通信を暗号化する非機能手段で書かれている
日中はほとんど落ちない非機能測れない

分類そのものはすぐ終わる。迷うところがほとんどない。

問題は右の列である。機能の2つはこのまま進められるのに、非機能の3つは、3つとも手当てが要る。

これはたまたまではない。機能は「できる/できない」で確かめられるが、非機能は程度の話だからである。

程度は、言葉のままでは受け渡せない。だから非機能のほうにばかり、手当てが集まる。

測れない非機能は、要件になっていない

「日中はほとんど落ちない」——気持ちははっきり伝わる。それでも要件としては働かない。

理由は守れたかどうかが決まらないことである。

3分止まったとき、「ほとんど落ちていない」と言う人と「落ちた」と言う人が出る。どちらも間違っていない。決め手が無いためである。

決め手が無い要件はあとで揉める。しかも揉めるのは、たいてい何かが起きたあとである。

測れる形にするには3つ要る。

3つ目が抜けやすい。数値と条件を決めても、測り方が無いと、やはり決まらない。

そして「3秒以内」も、実はまだ足りない。数値はあるが、条件と測り方が無い。何人が同時に使っているときの、どの画面か。どこからどこまでを3秒と数えるのか。

手段で書かれた要望は、目的に戻す

「機密情報が漏れないよう、通信を暗号化する」には、目的と手段の両方が入っている。

このまま要件にすると手段のほうが要件になる。暗号化すれば達成、という形になる。

ところが通信の暗号化は、漏れる経路の1つに効く手当てである。ほかの経路には効かない。

たとえば誰がどの情報を見られるか、記録に何が残るか、やめた人の権限がいつ切れるか——これらは暗号化と関係がない。

だから目的に戻して、そこから手段を並べ直す。暗号化は、その中の1つとして残る。

相手が手段で書いてきたのはその手段しか思い浮かばなかったからではなく、そう聞いたことがあるからであることが多い。戻して確かめると、必要なものが増える。

要望に手段が混ざっていたら、目的に戻す——これはこの案件に限らず効く。

非機能は、費用と対でしか決まらない

ここが機能要件との、いちばん大きな違いである。

機能要件は要るか、要らないかで決まる。「クエストを削除できる」は、要るなら作る。

非機能要件はどこまでやるかで決まる。そして、上げるほど費用が増える。

止まらない度合いを上げるには、予備の仕組みを用意することになる。速さを上げるのも同じである。

だから「どのくらい止まらないほうがよいですか」と聞いても答えは出ない。止まらないほうがよいに決まっているからである。

聞き方を変える。「止まったとき、何が起きますか」である。

この答えから必要な水準が決まる。紙で受けられるなら、止まらない度合いにお金をかけなくてよい。

非機能要件は、技術ではなく業務の話から決まる。

整理の例

クエスト管理システム 要件の区分(第1版)

機能要件(何をするか)

番号要件状態
機能1冒険者が、識別番号でログインする確定
機能2冒険者が、クエストを選んで申し込む確定
機能3受付長が、クエストを登録・修正・削除する確定

非機能要件(どのように動くか)

番号要件状態
非機能1画面が3秒以内に表示される条件を確認中
非機能2機密情報が漏れない手段を整理中
非機能3日中、業務が回る状態を保つ水準を確認中

お聞きしたいことが3つあります

1. 非機能1「3秒以内」について

この3つが決まると、できたかどうかを、双方が同じように判断できます。

2. 非機能2「機密情報が漏れない」について

いただいたメモには「通信を暗号化する」とありました。これは目的(漏れないこと)に対する手段の1つです。

ほかにも次のような経路があります。あわせてご相談させてください。

通信の暗号化は、そのうえで実施します。

3. 非機能3「ほとんど落ちない」について

止まらない度合いは、上げるほど費用が増えます。そこで、必要な水準を業務のほうから決めさせてください。

紙で受けられるようでしたら、ここに費用をかけずに済みます。

状態の列を付けた。分類の表を「終わったもの」に見せないためである。

非機能3の書き方を「業務が回る状態を保つ」に変えた。「ほとんど落ちない」のままだと、確定したように見える。

質問1に「双方が同じように判断できます」と添えた。細かく聞く理由になっている。

質問2では「手段の1つです」と明示した。否定していない。最後に「そのうえで実施します」と書いている。

質問3は業務の言葉だけで聞いた。技術の言葉が1つも入っていない。

作り方の手順

  1. 何をするか/どのように動くかで分ける。
  2. 分類で終わらせない。状態の列を付ける。
  3. 非機能を1つずつ点検する。
  4. 測れるかを見る。数値・条件・測り方。
  5. 数値があっても、条件と測り方を確かめる。
  6. 手段で書かれていないかを見る。
  7. 目的に戻して、手段を並べ直す。
  8. 元の手段を否定しない。そのうえで実施する、と書く。
  9. 費用が動くものを見分ける。
  10. 業務の言葉で聞く。止まったとき何が起きるか。

この場面で効いている基本情報の知識

知識そのものより、分けたあとに残る仕事を見つけられることが、この場面で効いている。

整理で外したくないポイント

  1. 線引き自体は難しくない。難しいのは、そのあと。
  2. 手当てが要るのは、たいてい非機能のほう。程度の話だから。
  3. 測れない非機能は、要件になっていない。
  4. 守れたか決まらないと、あとで揉める。
  5. 数値・条件・測り方の3つが要る。
  6. 「3秒以内」も、まだ足りない。条件と測り方が無い。
  7. 手段で書かれた要望は、目的に戻す。
  8. 元の手段を否定しない。並べ直したうえで残す。
  9. 非機能は、上げるほど費用が増える。
  10. 水準は、業務の話から決まる。技術の言葉で聞かない。
この記事は要件整理の進め方を整理したものです。区分の呼び方・様式・記載項目は案件や職場によって異なります。実際の進め方は社内の基準に合わせてご検討ください。

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る
架空の実務場面をもとにした学習用の解説記事です。実在の会社・物件・取引ではありません。制度は改正されることがあるため、受験年度の最新情報もあわせてご確認ください。