ソフトウェアの品質について気になったので調べてまとめる
書きかけですがあえて掲載してみます
これを聞いててソフトウェア品質モデルが気になったから調べました。
ちなみにこのエピソードとても面白かったです。この話は雑にいうと、 ウォーターフォールでのシステムの品質を表す指標をそのままアジャイル開発には適用できない(しても意味が薄い)、アジャイル開発であればチームの過去の指標と比較しましょう という話(だと認識した)でした
品質とは何か
そもそも品質ってみんなどう考えてるのか調べました
P.Crosby
最も古くソフトウェアの品質について語ったのは P. Crosby という方で、品質を以下のように定義していました
The definition of quality is conformance to requirements (requirements meaning both the product and the customer’s requirements)
google翻訳すると「要件(製品と顧客の要件の両方を意味する要件)への適合」とのことです。
G.M.Weinberg
次にG.M.Weinbergという方が「品質とは誰かにとっての価値である」と定義しました。「要件とかどうでもええねん、実際に届けるユーザーに対しての価値が大事やねん、価値がないと要件あってても意味ないで!」という主張が伝わってきます
James Martin
次にJames Martinという方は
システムが本稼働するとき、どこまで真のビジネス(ユーザ)ニーズに合っているかということ
ソフトウェア品質知識体系ガイド SQuBOK guide-
と定義しました。「本稼働する時の話をしてや、なんやて?検証環境では正常に動作してた?、そんなん知らんがな」という主張が伝わってきます。
こうまとめてみると個人的にはJames Martinの定義の方が一番しっくりきてます。G.M.Weinbergの定義は「その人にとって価値がないと品質がない」とも読み取れますが少し引っ掛かりますし、P.Crosbyの定義は顧客にフォーカスできてない感じがして引っ掛かります
品質モデルとは何か
品質モデルは国際規格ISO/IEC 9126の中で定義されています、この規格は4つに分かれていて、
- quality model
- external metrics
- internal metrics
- quality in use metrics
このうちのquality modelが品質モデルに当たる部分です(そのまんまですね)。
品質モデルは以下の6つから構成されています、括弧内はJIS規格での名称
- Functionality(機能性)
- Reliability(信頼性)
- Usability(使用性)
- Efficiency(効率性)
- Maintainability(保守性)
- Portability(移植性)
// .