ソフトウェア品質特性
何を言っているんだこのメモは。不完全っぽい。もう一度勉強してみるのもいいのかもしれない。
設計と品質特性
多くの人が存在(名前)だけ知っているが、難解であるため利用されることが少ない。
何のためのものか
- ソフトウェア品質の評価
- ソフトウェア品質の向上
http://www15.ocn.ne.jp/~squality/software-quality/iso9126.htm
ソフトウェア品質モデルの歴史
ソフトウェアの品質を推し図る指標は、
- 障害がないことだけに偏っていた時代
- 特性による評価手法の提言と使用の時代
に分けることができる。
1973年に Wulf という人が世界で初めてソフトウェア品質をモデル化した。 ここから「障害がないことだけに偏っていた時代」からの脱却が始まった。 その後、他にもいろいろ品質モデルが出てくる。
それらの良い点、問題点を考慮して、生み出されたものが ISO/IEC9216、つまりソフトウェア品質特性。
ソフトウェア品質特性・副特性の構造
- 機能性: 目的から求められる必要な機能の実装の度合い
- 合目的性
- 正確性
- 相互運用性
- 標準適合性
- セキュリティ
- 信頼性: 機能が正常動作し続ける度合い
- 成熟性
- 障害許容性
- 回復性
- 使用性: 分かりやすさ、使いやすさの度合い
- 理解性
- 習得性
- 運用性
- 効率性: 目的達成のために使用する資源の度合い
- 時間効率性
- 資源効率性
- 保守性: 保守(改訂)作業に必要な努力の度合い
- 解析性
- 変更性
- 安定性
- 試験性
- 移植性: 別環境へ移した際そのまま動作する度合い
- 環境適用性
- 設置性
- 規格適合性
- 置換性
ソフトウェア品質の捉え方
ソフトウェア品質を捉えるには、2つの主たる視点と1つの補完する視点がある。
2つの主たる視点
- 設計品質 = ユーザーの要求と設計使用の合致度合い = 外部仕様品質
- プログラム品質 = 設計仕様とプログラムの合致度合い = 内部仕様品質
1つの補完する視点
- プロセス品質
- 製品の品質を直接評価するための指標ではない。
- 製品を作る過程の質は、製品品質に大きな影響を与える。
- いい加減なプロセスからはいい加減な製品が出来上がる。
ソフトウェア品質モデルの使い方
何かいっぱいあるし、今までこれを使ってこなかったやつらがいきなりうまく使えるわけがない。 全部やろうとしても燃え尽きる、非効率、やっときゃいいんだろと無意味な評価になる。 じゃあ、どうやって使うの?
特徴的な要素から選択して使う。
対象のソフトウェアに要求される特徴的な品質副特性を抽出 抽出された副特性毎に数値化した基準値を当てはめる 実際に作り上げたソフトウェアで測る
特徴的な要素で測定できるようになったら、特徴的な要素以外の要素を含む全体で捉えた計測を行うなどの段階的な対応も考慮すべき。
理解できる、必要なものを選択して無理のない程度にまずはやってみる。
ソフトウェアの品質をよくしていくためにやるもので、評価すること自体が目的化すると意味ない。
機能性
信頼性
実装している機能があらゆる条件下で機能要件を満たして(必要な期間)正常動作し続けることができる度合い 存在する機能があらゆるデータ、条件でも正しく動作し続けること 機能の維持
使用性
効率性
保守性
移植性
ソフトウェアをある環境から別の環境下に移した場合のソフトウェアの能力を推し量る指標。
「ソフトウェアの能力を推し量る」とは…。
品質特性に見るソフトウェアの性質
何かを管理し制御するためには、管理・制御の対象が「何か?」「どんなものか?」を知る必要がある。 ソフトウェアを管理・制御するためには、ソフトウェアとは何なのということを知る必要がある。 気が遠くなる。
品質特性を切り口に、ソフトウェアの性質を整理する。
- 信頼性
- 経年変化なし
- 時間とともに機能(追加・削除・修正)が変化することを前提とした信頼性で捉えられる場合がある
- 保守性
- 当初機能からどれだけ容易に変化させられるかの保守性
- 移植性
- 移植性の重要度が高い
ソフトウェアは、当たり前のように「変化」する。
ソフトウェア品質測定の全体像
何言ってんのかわからん。
http://www.cqpub.co.jp/dwm/column/ito/DWM0031itom12_body.htm
「今日計画している対象も、明日になれば違った形になっている。」
ソフトウェアの品質を解剖すると…
「仕様通りにできていればよい」というほど簡単な話ではない。 ソフトウェア開発では、仕様がきちんと書かれていることが少ない。
品質の問題を考えるときは、最初に品質特性を考える。 ソフトウェアの品質はこういう視点から考えなさいという指針。
使用性ってわかりにくいけど、つまり「使い勝手」のこと。 これは、わかりやすさや覚えやすさ、利用しやすさといった2次的な特性、つまり副特性から構成される。
品質は人間とソフトウェアの関係で規定される
人間が変化すれば、人間とプログラムの関係である品質も影響を受ける。
ソフトウェアができた後の人間とソフトウェアの関わりをソフトウェアがない時点で記述することはできない。 品質を厳密に仕様化することが、この点でも不可能ということになる。
ソフトウェアにおける品質とは、人間とソフトウェアの関係によって規定され、その関係は時間とともに変化する。