t28.dev

品質の定義を調べて「品質とはばらつき(ポエム)」をちょっとまともなポエムにする

2023/9/6
Poem

品質とはばらつき (ポエム)

品質とはばらつきなんだよ! (べらんめえ口調)

という、新卒研修の座学での講師の一言が記憶に残っている(若干曖昧だけど)。 この研修は製造業の新卒を対象にしたものなので、ここでの “ばらつき” は「ネジの寸法」や「完成品による出力結果」などの “物のばらつき” を指している。

あまりにもキャッチーなフレーズ1のおかげか、妙に私の記憶に定着している。 この言葉自体は製造業における格言(?)だが、ソフトウェアエンジニアとして活動している今でも

“ばらつきが少ない” = “品質が高い” = “あるべき姿”

という構造を「分かりやすい指針」としてことあるごとに思い出している。

…の、だけれども。最近、「そもそも品質ってなんだ?」 という疑問が今更のように出てきた。 「一般名詞としての品質」のふわっとした理解でもなんとなく分かる(気がする)話である一方、単語の定義を言えない以上、これでは格言というより もはやポエム である2

このままでは居た堪れない。Web で 品質にも様々な定義がある ことを知ったので、この機会に調べて、一般的な定義におけるポエムの位置を知っておくことにした。

ISO 9000:2015 (JIS Q 9000:2015)

ISO 3 では、ISO 9000:2015 で品質マネジメントの基本概念と原則を規定している。

用語及び定義

ISO 9000:2015 で用語・定義を記載していて、品質 (3.6.2) を以下のように定義している。

対象に本来備わっている特性の集まりが、要求事項を満たす程度。

ref: JIS Q 9000:2015

これだけだと意味が分かるようで分からない…。ISO 9000:2015 には注記やその他の用語の説明もあるため、それらを参考に

品質とは「品質について注目しているもの、そのものが持つ性質が明示的・暗黙的に関わらない期待をどれほど満たしているか

と、私は独断的に読み直した。さらに補足すると、“そのものが持つ性質” の反対は”付与された性質 (例えば、価格)“で、これは品質が注目する特性には当たらない。

品質 (ポエム) と照らし合わせる

品質 (ポエム)品質 (ISO 9000:2015) の部分集合で、ばらつきが少ないことは期待の一部に注目している状態と理解した。 私自身が「ばらつきが少ない」以外の期待に注目していなかった訳ではないけれど、残りの期待も構造的に理解したいと思う…。

ISO/IEC 9126-1:2001 (JIS X 0129-1:2003)

ISO はソフトウェア製品の品質特性を仕様化して、評価することを支援する 4 ISO/IEC 9126-1:2001 を刊行していた。 この中で、最初5の品質モデルとして 6 つの品質特性が定義されていたが、この標準は ISO/IEC 25010:2011 へ移行済み である。

This standard has been revised by ISO/IEC 25010:2011

ref: ISO/IEC 9126-1:2001

  • 機能性 (Functionality) は、指定された条件下で、ソフトウェアがユーザニーズを満たすために提供する能力を表します。
  • 信頼性 (Reliability) は、指定される条件下でソフトウェアがパフォーマンスレベルを維持する能力を表します。
  • 使用性 (Usability) は、ソフトウェアがユーザにとって使いやすいかを表します。
  • 効率性 (Efficiency) は、指定された条件下で、ソフトウェアがメモリやハードディスクなどのコンピュータ資源を適切に利用し、期待されるパフォーマンスを提供する能力を表します。
  • 保守性 (Maintainability) は、障害の発生、実行環境の変更、機能変更などの必要が生じた時に、ソフトウェアの保守のやりやすさを表します。
  • 可搬性 (Portability) は、ソフトウェアの異なる環境への移しやすさを表します。

ref: オブジェクトの広場 - 非機能要求と ISO9126 6

JIS X 0129-1:2003ISO/IEC 9126-1:2001 と同様に 廃止になっていて、移行先の JIS X 25010:2013 ではモデルの構造が大きく異なるので、上記はあくまで参考までに…。

ISO/IEC 25000 SQuaRE series

Systems and software Quality Requirements and Evaluation (SQuaRE) は

製品の品質要求事項の仕様化,それらの測定,及び評価の基準を確立する

ref: JIS X 25000:2017

ためのもので、ソフトウェア製品評価の品質モデルを定義する ISO/IEC 9126 とソフトウェア製品評価のプロセスを定義する ISO/IEC 14598 を統合・改定した標準。以下の division で構成されている。

  • ISO/IEC 2500n - Quality Management Division.
  • ISO/IEC 2501n - Quality Model Division.
  • ISO/IEC 2502n - Quality Measurement Division.
  • ISO/IEC 2503n - Quality Requirements Division.
  • ISO/IEC 2504n - Quality Evaluation Division.
  • ISO/IEC 25050-25099-Extension Division.

ref: ISO/IEC 25000 SQuaRE series

これらの division の内、シリーズ内の標準から参照される共通の定義を記している ISO/IEC 25000:2014 と、 ソフトウェア品質モデルを定義している ISO/IEC 25010:2011 に注目する。

ISO/IEC 25000:2014

用語及び定義

ISO/IEC 25000:2014 ではソフトウェア品質 (4.33)を次のように定義する。

明示された条件下で使用するとき、明示的ニーズ又は暗黙のニーズを満たすためのソフトウェア製品の能力

ref: JIS X 25000:2017

JIS X 25000 はこの定義が JIS Q 9000 と異なっていることを注記で言及していて、その理由が以下の通り。

ソフトウェア品質の定義が明示的ニーズ又は暗黙のニーズを満足に言及しているのに対し、JIS Q 9000 の品質定義が要求事項の満足に言及していることによる

JIS Q 9000要求事項 (3.6.4) も「明示的・暗黙的なニーズ」として説明しているので、違いが分からない…。 おそらく、「対象が違えば (JIS Q 9000 では全てのもの、JIS X 25000 ではソフトウェア)、満足させるものも違う」ってことを言っている(多分)。

品質 (ポエム) と照らし合わせる

品質 (ISO/IEC 25000:2014)品質 (ISO 9000:2015) の違いを理解できていないので、パス… 🥺

利用時の品質

また、ISO/IEC 25000 では利用時の品質(4.24)を別で定義している。

特定の利用状況において,特定の利用者が特定の目標を達成するというニーズを満たすために、有効性、効率性、リスク回避性及び満足性に関して、ソフトウェア製品又はシステムを使用できる度合い。

ref: JIS X 25000:2017

品質 (ポエム) と照らし合わせると、 (利用時の)品質 (ISO/IEC 25000:2014) はケース 1, ケース 2,…ケース n 毎にソフトウェアが期待通りにふるまうかを見ている一方、 品質(ポエム) はケースに関わらず一定のふるまいを期待している…気がしているけど、品質 (ポエム) は単純にケースの言及をしていない (格言が短すぎな)だけかも。

ISO/IEC 25010:2011

SQuaRE シリーズでは 3 つの品質モデルを定義していて、ISO/IEC 25010:2011 では その内 2 つ(利用時の品質モデル、製品品質モデル)を定義している。

  • 利用時の品質
    • 有効性
    • 効率性
    • 満足性
    • リスク回避性
    • 利用状況網羅性
  • システム/ソフトウェア製品品質
    • 機能適合性
    • 性能効率性
    • 互換性
    • 使用性
    • 信頼性
    • セキュリティ
    • 保守性
    • 移植性

品質 (ポエム) と照らし合わせると、「ばらつきを議論する観点の候補として扱える特性が、品質モデルで網羅されている」と考えられそうだけれど、まったく自信がない。

例えば、「コードフォーマッターを用いてコードのスタイルのばらつきを少なくすることは、 解析性(4.2.7.3)の観点において、コードの理解を容易にする(=品質を上げる)」ということだろか…。全然自信がない。

製品若しくはシステムの一つ以上の部分への意図した変更が製品若しくはシステムに与える影響を総合評価すること,欠陥若しくは故障の原因を診断すること,又は修正しなければならない部分を識別することが可能であることについての有効性及び効率性の度合い。

ref: JIS X 25010:2013

(この記事内でこの標準を深ぼるのはやめておく…)

品質工学

品質工学は “品質を効率的に評価し、設計するシステムを構築する技術の体系”7

定義

品質工学会 - RQE Glossaries Collection” に品質の定義がある。

(編注、【技術品質】と同義) システムが、技術的に望ましくない項目によって社会に与える損失。

品質工学では品質を “「技術品質」と「商品品質」の総称” としていて、それぞれを以下のように説明している。

関連用語 【技術品質】 品質工学関連用語:2021 No.50 より

《説明》 消費者が望まないもの。故障などの機能のばらつき、使用コスト、公害をいう。(商品品質の目標値からのずれ)

関連用語 【商品品質】 品質工学関連用語:2021 No.87 より

《説明》 消費者が望んでいるもの。機能、性能、外観をいう。(カタログ値など)

結局品質は「ばらつき・コスト・公害」なの?「(ばらつき・コスト・公害による) 損失」なの? …という気持ちになるが、他の記事を参照する限り、「品質は損失」と理解するのが正しそう。

品質工学では機能性のばらつきによる損失を取り扱い,品質を次のように定義してきた.

(品質)=(機能の理想枚能からのばらつきによる損失)+(使用コスト)+(公害)

品質工学会 - 品質工学の考え方(2)

品質 (ポエム) と照らし合わせる

全然違う ✌️😁

日本品質管理学会

製品・サービス(2.1),プロセス(4.1),システム(5.1),経営,組織風土など,関心の対象となるものが明示された,暗黙の,又は潜在しているニーズを満たす程度

ref: 日本品質管理学会規格 品質管理用語 JSQC-Std 00-001:2011

ISO/IEC 25000 のソフトウェア品質の定義と似ている。

クロスビーの定義

WIP

ワインバーグの定義

WIP

ジェームズ・マーチンの定義

WIP

狩野モデル

WIP

まとめ

  • 「品質とはばらつき」と考えることは、1 つの観点における指針として使えそう。
  • 標準 (ISO)・規格 (JIS) においての品質の場合、「品質は期待をどれだけ満たしているか」と考え、具体的な期待の議論は品質モデルを参考にすると良さそう。
  • WIP

Footnotes

  1. 勢いが凄いだけかも

  2. 当時の研修講師の言葉はまさに格言であるはず。何しろ、製造業一筋云十年のような方なので。

  3. ISO (International Organization for Standardization) は 169 の国内標準化団体が加盟する独立した非政府国際組織で、国際標準を開発している

  4. JIS X 0129-1:2003 の序文に書いてあった

  5. SEC journal Vol.10 No.5 Jan. 2015 (システム・ソフトウェア品質標準 SQuaRE シリーズの歴史と概要) 曰く、最初らしい

  6. JIS X 25000:2017 を見る限り、ISO/IEC 9126-1:2001 に対応する JIS 規格はJIS X 0129-1:2003 のようだけれど、JIS 検索 に出てこない。

  7. 品質工学会 - RQE Glossaries Collection