mhlyc -presentation

僕が書きたいことをひたすらに書き綴る、自己満足のブログです。

SQuBOKの難解なページ紹介

アドベントカレンダー10日目

 

アドベントカレンダーってマジきついっすね。

正直なめてた節があります。

結構力入れて書こうとすると、なかなか記事を書くスピードも上がらず…

「一人アドベントカレンダーとか余裕だろwww」って思っていた自分は一体何だったのか。

本題

さて本題です。

今回は「SQuBOKの難解ページ」の紹介をします。

私が所属しているSQuBOK読破会では、読み進める形式が輪読形式なのもあり、読むのをサボれません。

いかに興味がなかろうと、普段なら飛ばしてしまうような内容であろうと、読みました。その結果300ページほどまで読んできたわけです。我ながら変態的な読み方ですね。ですがとても身になりました。

というわけで、今回は読破会だからこそ読めた、(逆に言うと、読破会に参加していなかったら絶対読んでなかった)難解ページの紹介をしたいと思います。 

SQuBOKの難解ページ1:1.1.3 S-KA: ディペンダビリティ(p.32 - p.34)

「そもそもディペンダビリティって何?」ってところからわかりません。かなりの強敵です。章の冒頭にはこう書いてあります。

「ディペンダビリティとは,『規模の大小にかかわらず,製品のアベイラビリティ性能を表す包括的な用語』である[IEC 60300-1 Ed. 2.0:2003]。Laprieは,「一般社会で信頼できるシステム」という場合のReliability(日本語の信頼性に近い概念)と,数学的なReliability(日本語の信頼度に近い概念)があるとし,これを区別するために,前者に当たる用語としてディペンダリティ(ママ)ができたと説明した[Laprie 1985]。」*1

 

なるほど、わからん。

というわけで、私なりの理解を書いてみます。

先の説明にもある通りですが、ポイントはディペンダビリティが包括的な概念であるということなんですね。信頼性も、保全性も含めて、システムを使用している間、動いている間に、時間の経過や使用状況の変化の中で品質がどうなっているかを表します。時間の経過にともなって必要になるメンテナンスがやりやすいか、利用環境の変化にともなって突発的な事故、故障が発生しないかといったことがディペンダビリティに関わってきます。

SQuBOKには章の途中でこう書かれています。

「ディペンダビリティは、使用品質における利用者の信頼を反映するものである。」*2

なるほど、こう言われるとなんとなくイメージしやすいですね。安心して使っていけそうかな?というあくまで定性的な概念のようです。

これを先に言ってくれよ、と思ったりしないでもないですが。

 

SQuBOKの難解ページ2:3.10.2.6 T: Rayleighモデル(p.330 - p.331)

品質分析・評価の技法の章は普段業務で使っている方以外は馴染みが薄く、理解しづらいところだと思います。(ソフトウェア品質技術者試験を受ける方は、ここも狙われますのでしっかり読んでおきましょう)

今回は品質分析・評価の技法の章の中から「Rayleighモデル」に絞って話をします。

そもそもRayleighモデル(読みはレイリーモデル)という言葉を自分はここで初めて聞きました。このトピックの冒頭にはこう書かれています。

「Rayleighモデルとは,ソフトウェア全開発プロセスにおける障害率を表したモデルである。」*3

ほう。ディペンダビリティよりはわかる気がしますね。

そしてSQuBOKには時刻 t における障害数を示す数式が書かれていますが

まあこれは後で読みましょう。

それよりも、このモデルを何に使うのか?を理解する方が先決です。

 

SQuBOKを読んでいくと、「IBMのGaffneyさんが、開発工程の障害除去にはパターンがあり、それがなんとRayleigh曲線になることに気づいた」ということがわかります。

Gaffneyさんスゲーな。

f:id:mhlyc:20151211005419j:plain

絵が汚くてすみません。だいたいこんなイメージの曲線になるようです。

これは何に使うのか?というとSQuBOKには2つの用途が紹介されています。

1. Rayleighモデルを使った品質評価

品質評価には、Rayleighモデルの曲線下の面積を用います。この面積が大きければ出荷後の障害数も大きくなりますし、その逆も同様です。これはなんとなく感覚的にわかりますね。Rayleighモデルの曲線下の面積がバカでかい時というのは、要するにプロジェクトが炎上してバグが出まくっている時だと思います。

また、障害混入率が同じであれば、多くの障害を早く発見してしまえば下流で摘出される障害数が減ります。これはすなわち出荷後の障害数の減少につながります。このことから、出荷後の障害を減らすためにはRayleigh曲線をできるだけ低くすることと、曲線のピークを左(上流)に寄せるということが必要だとわかります。

Rayleighモデルすごいですね!

 

2. Rayleighモデルを使った障害予測

それだけではありません。Rayleighモデルは障害予測に使うこともできます。モデル式が用意されているので、これに障害実績データの数値を当てはめていくだけです。障害実績のデータがしっかり取れていれば、出荷時点の障害数を予測できてしまうのですから、やはり優れものであるといえます。

あ、「モデル式が気になる」という方はSQuBOKを買ってくださいね。

 

おわりに

いかがだったでしょうか?どちらも自分はSQuBOKを読まなければ出会っていなかった知識だと思いますが、非常に有用な知識だと思っています。

SQuBOKは難しい領域、馴染みの薄い領域も幅広くカバーしていますから、今まで知らなかった分野について読んで勉強してみるのも良いと思います!

*1:「ソフトウェア品質知識体系ガイド(第2版) SQuBOK Guide V2 p.32より引用

*2:「ソフトウェア品質知識体系ガイド(第2版) SQuBOK Guide V2 p.32より引用

*3:「ソフトウェア品質知識体系ガイド(第2版) SQuBOK Guide V2 p.330より引用