【ソフトウェア品質】時間効率性
ソフトウェア品質の定義の中には、色々な品質について定義されていますが、その中でも「ソフトウェアとして当初の目的を果たせているか?」と言う
"機能"
と、「目的を果たすための機能を最大限活用できるようにしているか?」という
"非機能"
と言う分類に分けた場合、一般的な『ソフトウェア』のテストの多くは"機能"のテストに集中します。まぁ、目的の果たせないソフトウェアなんて、カレールゥを入れていないカレー…と言うか野菜煮込みのようなものです。一番大事なのはわかります。
ですが、当然ながら非機能についても、きちんと要求事項を満たせていないと、どんなに優れた機能であっても、十全にその効果を発揮することはできません。その最たるものが
「処理速度」
です。私たちIT業界の人間は「性能」と呼んだりしますね。しかし、ソフトウェア品質の世界では『効率性』と呼びます。効率には、正確には
・時間効率性
・資源効率性
があるのですが、この定義はISO 9126/JIS X 9126の中で分類されていたもので、最新のISO 25010では、『性能効率性』と言う品質特性の中に、
・時間効率性
・資源効率性
・容量満足性
と言う副特性があると定義されています。ほんの少しだけ、資源効率性の考え方を細分化したようなものでしょうか。
これは何のことを言っているのかと言うと、端的に言えば、
限られたリソースの有効活用の度合い
のことです。たとえば、メモリ8GBのPCで、16GBのデータを取り扱うようなゲームを動作させようとすると、カクカクして最後には落ちてしまいますよね?あるいは、インストールに500GB必要と言われているのに、空き容量が200GBしか無かったら、インストールに失敗しますよね?
このように、有効活用できるリソース(=資源)の範囲内でしか、プログラムの集合体…アプリケーションは動作することができません。この例に限って言えば、『ハードウェアの性能限界値が、ソフトウェア性能の上限限界値』であると言うことになります。
このように、"限られたリソース(=資源)"の中には「メモリ」や「ハードディスク」の容量のみならず、「CPU」の活用量なども含まれ、さらに言えばそうしたシステムを活用するようになった後のユーザーの運用にかけられる維持費・人件費などのコスト(=予算)や再構築(リプレース)までの費用対効果なども視野に含めて、アプリケーションを最適に動作させるため、あるいはアプリケーションを用いた業務が最適に行われるために、
「必要な資源が揃っているか?」あるいは
「限られた資源の中で最適なプログラムになっているか?」
と言ったことを確認するための品質を言います。
ソフトウェア品質と言う大きな括りで見ると、とても末端のごく一部の品質特性ではあるのですが、いかんせん利用者の目に見えやすい部分でもあるので、とりわけテストなどでも注視されやすい観点と言えるでしょう。
時間効率性(time behavior)とは、時間を軸にしたシステム効率、業務遂行のパフォーマンスの指標。一般にいう性能品質のことです。性能とは、一言でいうと「システムが処理結果を返す力」を指します。
ここから先は
¥ 300
いただいたサポートは、全額本noteへの執筆…記載活動、およびそのための情報収集活動に使わせていただきます。