いつも忘れるソフトウェアの品質特性を改めて自分なりに整理した際の備忘録
整理
■機能性:
ソフトウェアを指定された条件のもとで動作するとき、要求されている仕様を満たす能力のこと。
要は、必要な機能がどれくらい備わっているか。
■信頼性:
ソフトウェアを指定された条件のもとで動作するとき、達成水準を維持し続ける能力のこと。
誤作動時の復旧や、障害に対する許容性をあらわす場合もある。
要は、障害なく利用可能し続られる力がどれだけあるか。
■使用性:
ソフトウェアを指定された条件のもとで動作するとき、利用者が理解、習得、利用がスムーズにおこなえる能力こと。
いわゆる「使い勝手」や「使いやすさ」、「操作性」のこと。
要は、どれだけ人が便利に使いこなしやすいか。
■効率性:
与えられたリソースに対して、適切な性能を発揮する能力のこと。
たとえば、決められた処理時間の中でいかに早く、数多くの処理ができるか、などがあります。
要は、純粋に処理性能がどれくらい備わっているか。
■保守性:
できたソフトウェアの修正のしやすさの能力のこと。
作った本人しか理解できないプログラムでは、改修が発生した際に多くのコストがかかってしまいます。
これは利用者には直接は関係しない特性のように見えますが、最終的なサービスリリースまでにかかるコストの軽減は、利用者へのメリットにつながることが多くあります。
要は、どれだけメンテし易いか。
■移植性:
別な環境へ移すことになった際に、容易に移せる能力のこと。
サーバーの移行や、使うフレームワークが変更になった場合などに重要になってくる。
要は、どれだけ移植し易いか
副特性を含めた表
品質特性モデル | 概要 | 副特性 |
---|---|---|
機能性(functionality) | 必要な機能がどれくらい備わっているか | 合目的性(suitability) |
正確性(accuracy) | ||
相互運用性(interoperability) | ||
機密性(security) | ||
標準適合性(compliance) | ||
信頼性(reliability) | 障害なく利用可能し続られる力がどれだけあるか | 成熟性(maturity) |
障害許容性(fault tolerance) | ||
回復性(recoverability) | ||
標準適合性(compliance) | ||
使用性(usability) | どれだけ人が便利に使いこなしやすいか | 理解性(understandability) |
習得性(learnability) | ||
運用性(operability) | ||
注目性 (attractiveness) | ||
標準適合性(compliance) | ||
効率性(efficiency) | 純粋に処理性能がどれくらい備わっているか | 時間効率性(time behaviour) |
資源効率性(resource behaviour) | ||
標準適合性(compliance) | ||
保守性(maintainability) | どれだけメンテし易いか | 解析性(analyzability) |
変更性(changeability) | ||
安定性(stability) | ||
試験性(testability) | ||
標準適合性(compliance) | ||
移植性(portability) | どれだけ移植し易いか | 環境適応性(adaptability) |
設置性(installability) | ||
共存性 (co-existence) | ||
置換性(replaceability) | ||
標準適合性(compliance) |
所感
- 機能性や効率性は分かりやすい
- 信頼性も分かりやすい(可用性と信頼性は同じ意味で使われてる??)
- ユーザビリティって今までなんとなく言葉を使っていたけど、ちゃんと定義されているんですね、、(当然といえば当然ですが、、))
- 保守性や移植性は見落としがちだけどここをしっかり作ることが競争力に繋がるような気もする。ソフト環境はコロコロ変わるので重要)
- ソフトウェア開発に限らず、システムに共通する要素のように思える。(関係ないけどエクセル帳票1つ作成する際でもこれらを意識できると生産性に資するのではないか。。IPAの試験とは関係ないですが。。)