エンジニア的なネタを毎週書くブログ

東京でWebサービスの開発をしています 【英語版やってみました】http://taichiw-e.hatenablog.com/

ISO25000を読んでみる - ISO25010 The quality model 前半

「『品質がいい』ってなんだよ!?」を定義したISO25000 の中に含まれる、ISO25010を読んでいます。
こちらのポータルサイトを中心に読み進めているのですが、
iso25000.com
抽象的な説明が中心(&英語)で理解しづらいところがあるため、「こういう意味かな? 例でいうとこういうことかな?」と考えたことをメモとして残します。

The quality model

「ソフトウェアの品質」を8つの項目に分類し、更に各項目が複数のsubcharacteristicsを持つ構成になっています。
f:id:taichiw:20190506235312p:plain
上記図はhttps://iso25000.com/index.php/en/iso-25000-standards/iso-25010より。

Functional Suitability

所謂「機能要件」。品質とかテストとか言うとこれが注目されがちですが、"Software Product Quality"として定義されている8項目の中の1つに過ぎません。

Functional Suitabilityを構成する3つのsubcharacteristicsのうち、
Functional completenessは、機能が網羅されたチェックリストにどのくらい『実装されていますチェック』を付けられるか
f:id:taichiw:20190504232011p:plain:w100
Functional correctnessは、そのリストになっている各機能がどれくらい正しい結果を返しているのか
f:id:taichiw:20190504232151p:plain:w100f:id:taichiw:20190504232216p:plain:w100
と解釈しました。

Functional appropriatenessは、

Degree to which the functions facilitate the accomplishment of specified tasks and objectives.

とあったのですが、この定義がよく理解できませんでした。

こちらのCase Studyを見ると、
http://www.aqclab.es/images/AQCLab/Noticias/SQP/software-quality-management-evaluation-of-software-product-functional-suitability-a-case-study.pdf

understood as the ability of the system to carry out the requirements that are needed for the different usage objects that have been specified.

とありました。ということは、先程の「チェックリストで定義された機能一覧」が、そもそもどの程度ユーザの要求を満たしているか、
要件定義そのものの品質チェック… ということでしょうか?

ISO25000を元にした、JISでは、

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

と訳され、

例 不要な段階を除いて,作業を完成するために必要な段階だけを利用者に提示する。

という例がついていました。*1

Performance efficiency

「パフォーマンス」と言ってもいろいろあるようでして。

Time behaviourは速度とスループットが要求を満たしている度合い
f:id:taichiw:20190505000025p:plain:w100f:id:taichiw:20190505000151p:plain:w100

Resource utilizationはコンピュータのリソース消費に関する要求を満たしている度合い*2
f:id:taichiw:20190505000449p:plain:w100

で、最後のCapacityがまた分かりそうでわからない。

Degree to which the maximum limits of a product or system parameter meet requirements.

これだけ読むとナンノコッチャ って感じなのですが… またJISの怪しげな*3に頼りますと

製品又はシステムのパラメータの最大限度が要求事項を満足させる度合い。
注記 変数には,保存することができる項目の数,同時に利用する利用者の数,通信帯域,トランザクションスループット,及びデータベースの大きさを含む。

ということで、要は「いろんな値の最大値」がちゃんと満たされているかどうか ということのようです。

Compatibility

Co-existence

Degree to which a product can perform its required functions efficiently while sharing a common environment and resources with other products, without detrimental impact on any other product.

サーバの相乗りとか、あるいは一台のPCやスマートフォン上で複数のアプリが動く際に、他のソフトウェアに悪影響を与え(自分ばかりCPUやメモリを食うとか)ずに動作できる度合い…ということでしょうか。
f:id:taichiw:20190506230912p:plain:w100

Interoperability

Degree to which two or more systems, products or components can exchange information and use the information that has been exchanged.

と、定義されています。
ここまではすべて単体のシステムに対する指標だったのですが、"Degree to which two or more systems, products or components" なので、評価の対象が複数システムの指標のようです。複数システム間でどれだけ情報の共有がなされているのかを表す指標です。
f:id:taichiw:20190506231426p:plain:w100

同じ区役所のビルの1階と3階と5階に、同じような内容をそれぞれ別のフォーマットで書いて提出しなくてはならない*4お役所のシステムはInteroperabilityが最悪なわけですね。何のためのマイナンバーですか。

Usability

なんとなく使ってしまう言葉ですね。

Degree to which a product or system can be used by specified users to achieve specified goals with effectiveness, efficiency and satisfaction in a specified context of use.

と、定義されていて、specifiedが何度も出てきます。
「『特定の』ユーザが、『特定の』状況において、『特定の』目的を達成する ことに対してどれだけ役に立つか」を表す指標なんですね。

逆に言えば、そもそもユーザとして想定されていない層の人達が「使いにくい!」と感じることは、この指標の観点に於いては問題ない ということになります。

subcharacteristicsは6つです。

Appropriateness recognizability : なにか達成したいことがあるユーザに、このプロダクト(システム)が使える! とそもそも認識してもらえる度合い。
f:id:taichiw:20190506232650p:plain:w100

Learnability : いざ使う気になってくれたユーザの、操作方法の学びやすさ。
f:id:taichiw:20190506232821p:plain:w100

Operability : 操作性。んー どういうのを指してるのかな…
スマートフォンのUIなのにやたらボタンが小さい上に並んでいて誤操作しやすい(PCでマウスだったら特に押すのが難しくない)」のは、Operatabilityが悪い例でしょうか。
f:id:taichiw:20190506233204p:plain:w100

User error protection : ユーザが誤った操作をしずらい度合い。
「数値しか受け付けないフォームは数字しか入力できないようにする」はここに入るでしょうか。

User interface aesthetics : "aesthetics"は「美学」という意味だそうです。狭義の「UIが良い/悪い」はここに入りそうです。

Accessibility :

Degree to which a product or system can be used by people with the widest range of characteristics and capabilities to achieve a specified goal in a specified context of use.

ということで、ここでは"people with the widest range of characteristics and capabilities"の広さが指標になっています。
Usabilityのはじめに、特定のユーザが、特定の状況で、特定の目的 と書きました。この『特定のユーザ』の範囲が広く、多くの人から使ってもらえる製品 = Accessibilityが高い製品 と言えるようです。
f:id:taichiw:20190506234501p:plain:w100

*1:英語でこれっぽい記述は見当たらないので、翻訳時に足されたのでしょうか

*2:例えばスマートフォンのアプリだと、過剰にCPUやメモリを使うアプリは困りますもんね。Webの、サーバサイドの開発が主な自分としてはハードウェアまで含めてまるっとシステムなのでちょっと感覚が違うのですが…。

*3:もしかして原文のPDFを見たら書いてあるのかな?

*4:詳細は忘れましたが、保育園関係の何かでした