製品品質について勉強する1

前回の記事では利用時の品質について一通り見たので,
今回からは製品品質について勉強してみる.
たぶん全4回くらいになるかなぁと.

教科書は相変わらずこれ.対象は4.2となる.
JIS X 25010:2013 システム及びソフトウェア製品の品質要求及び評価(SQuaRE)−システム及びソフトウェア品質モデル

製品品質とは,いつぞやにも述べた通り,
開発者の視点からプロダクトを評価するときの観点となる.

したがって,客が望まない品質であろうと
(すなわち,利用時品質が最低であろうと)
製造品質が完璧である,ということもあり得る.

もちろん,開発者は両者が合致するように努めるわけだが,
イコールではないという事実を,常に留意しておく必要がある.

さて,製造品質の大きな品質特性は以下の8つ.
・機能適合性
・信頼性
・性能効率性
・使用性
・セキュリティ
・互換性
・保守性
・移植性

さらに細かい副特性が出てきたりする.
とりあえず1つずつ見ていく.

■機能適合性
品質を語るときに一番出番が多いのが,これ.定義は以下.

明示された状況下で使用するとき,明示的ニーズ及び暗黙のニーズを満足させる機能を,製品又はシステムが提供する度合い。

利用時品質の「有効性」と混合しそうになる.
というか,ぶっちゃけ同じと思って良い.
評価者が開発者が利用者かの違いだけだろう.
実際,副特性も似たようなものが並んでいる.

(1) 機能完全性
定義は以下のとおり.

機能の集合が明示された作業及び利用者の目的の全てを網羅する度合い。

これは有効性の定義における「完全さ」と一緒だ.

(2) 機能正確性
定義は以下のとおり.

正確さの必要な程度での正しい結果を,製品又はシステムが提供する度合い。

これも有効性の定義における「正確さ」という文言に該当する.

(3) 機能適切性
定義は以下のとおり.

明示された作業及び目的の達成を,機能が促進する度合い。

……これがどうしてもわからない.
「適切」という単語もさることながら,
「促進」という単語も,これまた抽象的だ.

色々考えてみたが,これを
「利用時品質の有効性に対する,
 機能完全性および機能正確性の適合率」
と定義すれば,幾分か納得できる気がする.

製品品質はあくまで開発者目線の評価であるが,
利用者の期待とのギャップについて,
それは何かしらのバロメータで評価されないといけない.
機能適切性は,そのために敢えて存在する特性なのだと思う.

■性能効率性
定義は以下のとおり.

明記された状態(条件)で使用する資源の量に関係する性能の度合い

これも利用時品質の「効率性」と似通っている.
あちらは「資源」とひとくくりにされていたが,
後述のとおり,時間が別出しされている.
測定しやすいから,だろうか?理由はよく分からない.

(1) 時間効率性
そのまんまなので定義だけ述べる.

製品又はシステムの機能を実行するとき,製品又はシステムの応答時間及び処理時間,並びにスループット速度が要求事項を満足する度合い。

(2) 資源効率性
こちらもそのまんま.定義は以下のとおり.

製品又はシステムの機能を実行するとき,製品又はシステムで使用される資源の量及び種類が要求事項を満足する度合い。

(3) 容量満足性
定義は以下のとおり.

製品又はシステムのパラメータの最大限度が要求事項を満足させる度合い。

これは利用状況網羅性に近いかな.
キャパシティは「性能」という単語に紐づけられやすいこともあり,
こちらの枠組みに納められているのだと思う.

■互換性
定義は以下のとおり.

同じハードウェア環境又はソフトウェア環境を共有する間,製品,システム又は構成要素が他の製品,システム又は構成要素の情報を交換することができる度合い,及び/又はその要求された機能を実行することができる度合い。

これ,結構勘違いされやすい特性だ.
というか,勉強するまで素で勘違いしていた.
要は,ライブラリとかで使われる互換性とは違うということだ.
(それは移植性の「置換性」に該当する)
この互換性は,「共存」「共有」という点にフォーカスしている.
後述の副特性を見ると,もう少し理解が進むと思う.

(1) 共存性
定義は以下のとおり.

その他の製品に有害な影響を与えずに,他の製品と共通の環境及び資源を共有する間,製品が要求された機能を効率的に実行することができる度合い。

これは主に性能効率性と関係してくる特性だ.
たとえば,性能効率性が抜群だったとしても,
その結果として同じ基盤上で動く他システムや他ソフトウェアの
性能を殺してしまうようなら,「共存性は最低」という評価となる.

(2) 相互運用性
定義は以下のとおり.

二つ以上のシステム,製品又は構成要素が情報を交換し,既に交換された情報を使用することができる度合い。

一言で言えば,インターフェースの充実度ということになる.
Web APICSV出力機能なんかが該当するかな.
データウェアハウスなどのシステムにおいては,
割と馬鹿にできない特性だと思う.


とりあえず今日はここまで.