ソフトウェアの品質を学びまくる2.0

ソフトウェアの品質、テストなどについて学んだことを記録するブログです。旧ブログからゆっくり移行中です。http://blog.livedoor.jp/prjmng/

Rayleighモデルとは何か ─ その1

 近年まれに見る羊頭狗肉さを誇るこのサイトだが、そろそろソフトウェア品質に関する記事も書かなくてはならない。ブックレビューの方が簡単に書けるもんだから、まったく趣旨と違う記事だらけになっている。今年こそっ・・・!
 今日は、「Rayleighモデル」について。
 さらりとWebを探しただけでは、Rayleighモデルについてびしっと説明した日本語のサイトはない。というより英語でもあまり見当たらない。少なくとも、無料のコンテンツは。探し方が悪いのかも知れないが、まともな適用例ともなると1件しか発見できなかった。
 SQuBOKの3.6.2.6によると、「Rayleighモデルとは、ソフトウェア全開発プロセスにおける障害率を表したモデル」であり、「m=2のWeibull分布」とある。
 さっぱりわからないし、何故これが障害率を近似できるのかはまだ勉強が必要なのだが、とにかくWeibullモデルならWikipediaにも式が載っているので、曲線を描くことはできる。
 EXCELでいうと、以下。
=K*(Tm^-2*T)*EXP(-((T/Tm)^2)/2)

 Tが横軸。KとTmは定数で、それぞれ総障害数と、そのときの時間である。逆に言うと、時間Tmのときの障害がK件である(もちろん、時刻Tmに一気に障害がK件発生する、ということではない)。2つの定数が決まると、曲線も決まる。

 グラフを示す。ここではSQuBOKと同様、横軸に工程を埋めている。

68de80af

 SQuBOKによると、「このモデルは、プロジェクトの障害数予測を与えることに加えて、優れた品質評価の枠組みを与える」とある。では、実際にはどのように適用すればいいかを次回、考えてみたい。
 
 蛇足になるが、Rayleighモデルのグラフを描くにあたって、EXCELの以外な動作を二つ知った。
 一つ目。次のような書き方ができるということ。
=3^-2
 今まで「3^(-2)」と書いていた。ちょっと得した。でも可読性は低い。
 二つ目。以下の数式をEXCELに入力してほしい。
=-3^2
 わたしの直感ではこれは「-9」なのだが、実際には「9」。つまり「(-3)^2」と判断されており、「^」より「-」が強いということがわかる。これを知らなかったせいで、EXP(-x)が減衰曲線にならず、無駄に苦労した。