ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

機能要件と非機能要の分類から、プロトタイプで確認するべき内容を考える

2006-02-02 13:25:02 | 開発ネタ

 要求仕様において、「機能要件と非機能要件」という分類があります。

 一般的に

  機能要件は、業務における機能をしめし、非機能要件は、それ以外を示します。

 この文は、納得していただけますね。

 で機能とは、functionであります。
 (これは、YAHOO辞書で正しいことを確認しました)

 で、functionつーのは、なんかをなんかに変換するという、動作を表します。

 ということで、以上のことから、

 機能要件とは、業務における、機能を表し、
   動詞で表現できるものである。

 例:受注機能→「受注する」と動詞であらわせる。

(ただし、「できる」というだけで、普通は、サ変名詞(受注など)であらわします)

 一方、非機能要件とは、品質などの基準や、ルックアンドフィールをあらわし、多くは、属性値としての名詞あるいは、形容詞であらわします(ただし、形容詞表現はあいまいになるのでよくない)

例:機能要件:牛丼を作る(作る=同志)
  非機能要件:牛丼は、安い、うまい、はやい。
        店舗は、オレンジ色にする




 という意味で、ウィリアムのいたずらも、ものものさんのこの意見に賛成です。

 ものものさんは、(以下斜体部は、ものものさんのブログの「若手SEのための ソフトウェアテストの常識」の感想(その2)」から引用)


私が違和感を感じたところは、機能要件と非機能要件の分類の仕方。「品質特性(本では品質属性と書かれています)は機能要件」と言われると、かなり違和感を感じます。


 と書いていらっしゃいますが、ウィリアムのいたずらも、「品質特性」は、機能要件だと思います。

 でも、ここまでなら、言葉遊びです。

 こっからさきが、実際、開発での問題点になります。




 機能要件というのは、上記の定義によると、業務の機能を表しているので、業務が決まんないと、実は、その機能仕様が、実現可能か、確認することができません。

 牛丼を作る=>できるかどうか、これだけでは、わかりません。

<<その業務>>
1.牛肉をアメリカから仕入れる
2.てきとーに調理する(てきとーじゃなく、適切かな?)
3.てきとーにもりつける。

この場合、1ができないからXっていうのは、牛丼をつくる業務が決まんないと分かりません。




 しかし、非機能要件は、業務「以外」のことなので、業務が決まらなくても、分かるものがおおいです。たとえば、ルックアンドフィールというのは、動作環境、ないしは開発言語等がきまれば、牛肉を、どっからしいれようが、変わらないです。

 逆に、これらの環境が変わってしまうと、大きく左右されます。
 また、利用技術によって、大きく変わることがあります。

 オラクルを利用するか、SQLサーバーを利用するか、PosgreSQLを利用するか、ファイルシステムでやるかによって、パフォーマンスは変わります。

 そこで、どのくらいのトランザクション量があったとして、どのくらいの件数が到着した場合、どのくらいのテーブルをJoinしたら、どのくらいのレスポンスというのは、実は、業務要件が決まんなくても、ある程度わかる(ある程度。。ですが)ということになります。

 つまり、非機能要件の品質が決まっている場合、実は、要件定義が固まる前に、技術的に、その要件を満たせるかどうか、単純には満たせない場合には、満たすためには、どうしたらよいかということを、(本来、理論的には)知ることができるはず!ということになります。

 で、これを実証する方法として、プロトタイプを行うということになると思います。

 それが、プロトタイプの意義の1つです(これ以外にもあるけどね)。
 つまり、「非機能要件(フックアンドフィールとか、レスポンスの限界とか)の目安が、プロトタイプでの確認内容の1つ」ということになります。




 本題に入ると長くなりそうなので、ここで切ります。

 (結局、こんなに書いてあって、ここまで、まえふりかい ^^;)


この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 国の「システム障害防止指針... | トップ | 「東京ガス、システム開発失... »
最新の画像もっと見る

開発ネタ」カテゴリの最新記事