書評「ソフトウェア品質工学の尺度とモデル 」

書評「ソフトウェア品質工学の尺度とモデル 」

Stephen H. Kan (著) , 古山 恒夫 (監訳), 富野 壽 (監訳) , 構造計画研究所

カテゴリ:ビジネス

概要

ソフトウェア品質工学の全体像と、尺度(メトリクス)、品質モデルについて、基本的な考え方を体系的に学ぶことができる一冊。品質の定義、品質測定の考え方、主要な尺度・モデル、欠陥除去の考え方など、様々な測定技術や分析方法を、実際の企業における適用事例を交えつつ、網羅的に解説する。
また各章末には、小規模プロジェクトにも応用できるよう配慮されており、導入にあたってのアドバイスが示される。
ソフトウェア工学の概要と、メトリクスについて基礎から体系的に学びたい、ソフトウェア開発技術者、管理者、品質保証担当者および情報工学専攻の学生に薦める。

本書の使い方

第1章~第3章:ソフトウェア品質と測定理論の概要を学ぶことができる。
第4章:品質尺度の概要を学ぶことができる。
第5章:品質の7つ道具について概要を学ぶことができる。

まず、第1~3章で、基本の考え方を学び、4章、5章で必要な道具を学ぶ構成になっている。
すべての読者に一読を勧める。
以降の章は、読者の興味関心に従って、読むことができる。

第6章~第10章:欠陥除去、信頼性モデル、不具合分析について学ぶことができる。
第11章~第12章:内部構造観点の尺度を学ぶことができる。
第13章~第14章:可用性、顧客満足の尺度を学ぶことができる。
第15章~第18章:プロセス改善についての実務的な考え方を学ぶことができる。
第19章:将来のソフトウェア計測の展望について述べる。

何を学べるか

第1章 ソフトウェア品質とは?
品質に関する様々な定義と、その意味付け、およびソフトウェア品質に限定した際の、品質の定義と使い方について解説する。次いで、総合的品質管理(TQM)のアプローチと、その主要な4つ要素、(1)顧客満足、(2)プロセス改善、(3)品質の人間的側面、(4)測定と分析、について説明する。 本書はTQMの考え方を基調に、ソフトウェア工学における、尺度、計測、品質モデルに焦点を当てる。

第2章 ソフトウェア開発プロセスモデル
ソフトウェアの尺度とモデルは、ソフトウェア開発プロセスと関連付けて議論しなければならない。本章では、現在ソフトウェア開発で用いられている主要なプロセスモデルを概説する。 ウォーターフォール、プロトタイプ、スパイラル、反復開発プロセス、オブジェクト指向開発プロセス、クリーンルーム手法と欠陥予防プロセス、などいくつかのアプローチを説明する。 またプロセス成熟度アセスメントとしてCMM、SPRアセスメントモデルを、品質管理体系としてMalcom Baldridgeアセスメント、ISO9000を解説する。

第3章 測定理論の基礎
測定理論の基礎について解説する。理論的概念、定義、および良く使われる基本的尺度について説明する。次に、測定の品質について考える。測定品質のもっとも重要な課題である、信頼性、妥当性、測定誤差について説明する。さらにデータ分析時における相関関係、因果関係の評価基準についても説明する。

第4章 ソフトウェア品質尺度概観
ソフトウェア品質尺度は、「製品」、「プロセス」、「プロジェクト」の3つの側面に焦点を当てる。本章では、この3つのソフトウェア品質尺度のそれぞれにおいて、いくつかの有用な尺度を取り上げ、検討する。あわせて、主要な開発者が用いている、重要な尺度の例を紹介する。またソフトウェア尺度データを収集する際のポイントについても解説する。

第5章 7つの品質ツールをソフトウェア開発へ応用する
製造業では、「QC7つ道具」(「石川の品質7つ道具」)として知られる品質管理の基本統計ツールが広く普及している。本章では、これらのツールの、ソフトウェア開発におけるプロセスや品質の管理への応用について解説する。 チェックシート、パレート図、ヒストグラム、散布図、実績図(グラフ)、管理図、特性要因図の7つを紹介する。

第6章 欠陥除去率
欠陥除去の概念とその測定は、ソフトウェア開発における最重要テーマである。欠陥除去は最も費用がかかる作業の一つであり、スケジュールに大きな影響を及ぼす。 本章では、欠陥除去の概念とその測定について解説する。そして開発フェーズベースの欠陥除去モデル(DRM)について説明する。次いで、典型的な開発プロセスの各フェーズにおける、欠陥の混入と除去について、詳しく解説する。最後に欠陥除去に要するコスト、CMMの各レベルに対応する欠陥除去率のレベルについて説明する。

第7章 Rayleighモデル
本章ではソフトウェア信頼性モデルであるRayleighモデルについて解説する。ソフトウェアプロジェクトのデータをもとに、Rayleghモデルを用いて統計分布のパラメータを見積れば、プロジェクト全体の欠陥率を予測することができる。その基本的な考え方と、実装にあたってのポイントを説明する。

第8章 指数分布と信頼度成長モデル
本章では信頼度成長モデルについて解説する。信頼度成長モデルは最終テスト工程におけるデータに基づき、ソフトウェアの信頼性を計測するモデルである。 まず指数形モデルを論じ、次いでいくつかの注目すべき信頼度成長モデルを簡潔に説明する。その上で、モデル評価のための基準、プロセス、また欠陥の見積もりなどについてポイントを解説する。

第9章 品質管理モデル
品質管理のモデルについて解説する。最終的な製品品質を十分に確保するためには、開発途上においてソフトウェアの品質を監視し、管理することが重要となる。本章で紹介する、ソフトウェア品質管理モデルとプロセス内尺度の目的は、最終製品品質を管理することである。プロセス内における品質報告の例を示し、プロセス内の欠陥分析の手法について解説する。プロセス内品質管理のモデルは他の文献にはほとんど出てこない。本章では著者が開発した「PTRモデル」を紹介する。

第10章 ソフトウェアテストのプロセス尺度
ソフトウェアテストにおけるプロセス尺度について解説する。IBM Rochesterのソフトウェア開発研究所において、幅広い利用実績がある尺度を、詳しく説明する。 また、受入れテストの尺度、製品が出荷に耐える品質であるかをどのように判断するか、についても解説する。

第11章 複雑度尺度とモデル
前章までは、ソフトウェアをブラックボックスとして扱ってきたが、本章では、ソフトウェアの内部構造に踏み込んで、設計やコードについての尺度と、ソフトウェア品質との関係について解説する。分析単位はより細かく、プログラムモジュールレベルとなる。ソフトウェアの複雑度研究は、多くの複雑度尺度とモデルが近年出現している。本章では、いくつかの重要な尺度とモデルについて検討し、尺度分析と品質改善の実例を紹介する。

第12章 オブジェクト指向プロジェクトの尺度と教訓
近年、オブジェクト指向(OO)技術を導入した企業は少なくない。本章では主要なOO尺度について触れ、民間のソフトウェアプロジェクトにおける尺度とデータの例を紹介する。更に設計、複雑度、生産性、品質管理など、いくつかの観点から、尺度について考察する。また本章の最後では、著者が、過去10年にわたるOOプロジェクトのアセスメントから得た教訓を紹介する。

第13章 可用性尺度
今日のようなインターネット時代においては、システムやネットワークが、安定して中断されることなく使用できるという、可用性が、信頼性やセキュリティと並び、最も重要な品質特性である。本章では、システム可用性の定義と測定、システム停止データの収集方法、および製品の改善を促進するための顧客データの利用法と可用性尺度について解説する。

第14章 顧客満足度の測定と分析
品質の究極の検証手段は顧客満足度を測ることである。製品品質と顧客満足度が表裏一体となって、品質の全体的意味を形づくる。本章では、まず顧客満足度の調査データの収集法、調査データの分析について述べる。次に、包括的な顧客満足度と、ソフトウェア製品の各種属性に関する満足度との間の相関分析を紹介する。最後に、どのくらい顧客満足が良ければ十分かという問題についても解説する。

第15章 プロセス品質アセスメントの実行
製品開発が品質目標を満たしつつ、予定通りに進んでいるかどうかをどのようにして判断するか。それを計測するのが、プロセス品質アセスメントである。本章では、プロセス品質アセスメントを、準備、評価、要約、提言の4段階のプロセスに分けて説明する。

第16章 ソフトウェアプロジェクトのアセスメント
本章では、ソフトウェアプロジェクトのアセスメントについて述べる。CMMIに代表される、プロセス成熟度の枠組みに基づくソフトウェアプロセスアセスメントは、「組織」に焦点を当てる。それに対して、ソフトウェアプロジェクトアセスメントは、「個々のプロジェクト」に焦点を当てる点が大きく異なっている。 本章では、CMMベースのアセスメントを検討したうえで、著者が経験から作り出した、7つのステップからなるプロジェクトアセスメント手法を提唱する。

第17章 ソフトウェアプロセス改善においてなすべきこととなさざるべきこと
Patrick O'toole氏の寄稿。本章ではCMMIベースのプロセス成熟度評価の概要を示し、成熟度や能力レベルがどのようにして決定されるかを説明する。その上で氏は、プロセス改善を成功させるためにはレベルの評価だけでは十分ではない、として、さらに改善プログラムの成功確率を高めるであろうプラクティスと、失敗に繋がりかねないプラクティスについて解説する。氏は、プロセス改善は長い時間がかかるものであり、継続的なコミットメントの重要性を強調する。

第18章 ファンクションポイント尺度によるソフトウェアプロセス改善の測定
Capers Jones氏の寄稿。1984年以来、600の組織、10,000件以上のデータを、ファンクションポイント尺度によって調査、分析してきた氏が、自らの経験を踏まえて、ソフトウェアプロジェクトのプロセス改善の手順を6つの段階に分けて解説する。

第19章 おわりに
本書のまとめとして、最終章では、現在のソフトウェア測定一般、個別の品質尺度とモデルについていくつかの観察を示したのち、ソフトウェア工学において、測定が将来において果たすべき役割とその展望について述べる。