見出し画像

【ソフトウェア品質】時間効率性

ソフトウェア品質の定義の中には、色々な品質について定義されていますが、その中でも「ソフトウェアとして当初の目的を果たせているか?」と言う

 "機能"

と、「目的を果たすための機能を最大限活用できるようにしているか?」という

 "非機能"

と言う分類に分けた場合、一般的な『ソフトウェア』のテストの多くは"機能"のテストに集中します。まぁ、目的の果たせないソフトウェアなんて、カレールゥを入れていないカレー…と言うか野菜煮込みのようなものです。一番大事なのはわかります。

ですが、当然ながら非機能についても、きちんと要求事項を満たせていないと、どんなに優れた機能であっても、十全にその効果を発揮することはできません。その最たるものが

 「処理速度」

です。私たちIT業界の人間は「性能」と呼んだりしますね。しかし、ソフトウェア品質の世界では『効率性』と呼びます。効率には、正確には

 ・時間効率性
 ・資源効率性

があるのですが、この定義はISO 9126/JIS X 9126の中で分類されていたもので、最新のISO 25010では、『性能効率性』と言う品質特性の中に、

 ・時間効率性
 ・資源効率性
 ・容量満足性

と言う副特性があると定義されています。ほんの少しだけ、資源効率性の考え方を細分化したようなものでしょうか。

これは何のことを言っているのかと言うと、端的に言えば、

 限られたリソースの有効活用の度合い

のことです。たとえば、メモリ8GBのPCで、16GBのデータを取り扱うようなゲームを動作させようとすると、カクカクして最後には落ちてしまいますよね?あるいは、インストールに500GB必要と言われているのに、空き容量が200GBしか無かったら、インストールに失敗しますよね?

このように、有効活用できるリソース(=資源)の範囲内でしか、プログラムの集合体…アプリケーションは動作することができません。この例に限って言えば、『ハードウェアの性能限界値が、ソフトウェア性能の上限限界値』であると言うことになります。

このように、"限られたリソース(=資源)"の中には「メモリ」や「ハードディスク」の容量のみならず、「CPU」の活用量なども含まれ、さらに言えばそうしたシステムを活用するようになった後のユーザーの運用にかけられる維持費・人件費などのコスト(=予算)や再構築(リプレース)までの費用対効果なども視野に含めて、アプリケーションを最適に動作させるため、あるいはアプリケーションを用いた業務が最適に行われるために、

 「必要な資源が揃っているか?」あるいは
 「限られた資源の中で最適なプログラムになっているか?」

と言ったことを確認するための品質を言います。

ソフトウェア品質と言う大きな括りで見ると、とても末端のごく一部の品質特性ではあるのですが、いかんせん利用者の目に見えやすい部分でもあるので、とりわけテストなどでも注視されやすい観点と言えるでしょう。


時間効率性(time behavior)とは、時間を軸にしたシステム効率、業務遂行のパフォーマンスの指標。一般にいう性能品質のことです。性能とは、一言でいうと「システムが処理結果を返す力」を指します。

ここから先は

1,450字 / 4画像

¥ 300

いただいたサポートは、全額本noteへの執筆…記載活動、およびそのための情報収集活動に使わせていただきます。