書評「演習で学ぶソフトウエアメトリクスの基礎」

書評「演習で学ぶソフトウエアメトリクスの基礎」

リンダ・M・ライルド (著), M・キャロル・ブレナン (著) , 野中 誠 (翻訳), 鷲崎 弘宜 (翻訳) , 日経BP社

カテゴリ:テスト

概要

ソフトウェアプロジェクトの見積もりと、メトリクスによる定量的管理の考え方と技法を、演習も交えてわかりやすく紹介した、実務者向けの実践的ガイドブック。
練習問題36題、章末演習109題、プロジェクト演習24題を収録し、学習者の理解と、実務への応用のヒントが配慮されている。現場で使える経験則、ベンチマークデータも多数掲載している。測定と見積もりを実務で使うにあたって、その全体像と具体的な使用法が知りたい初学者~中級者に薦める。

本書の使い方

第1章~第3章:ソフトウェア測定の考え方と理論の基礎を学ぶことができる。
第4章~第5章:ソフトウェア測定の2大領域である、規模と複雑性について学ぶことができる。
第6章:見積もり理論の基礎と見積り技法を説明する。
第7章~第9章:欠陥、信頼性、可用性について学ぶことができる。
第10章:進捗を測定する技法を学ぶ
第11章:アウトソーシングの工数をどう扱うのかを学ぶことができる。
第12章~第14章:測定結果をどのように活用するのかを学ぶことができる。

何を学べるか

第1章 イントロダクション
本章では、本書の目的、構成、なぜ見積りと測定を学ぶのか、をまとめる。
本書の目的は「数字による管理」を効果的に行うために必要な武器を読者に与え、ソフトウェアプロジェクトの成功をより確実にすることである、と著者は説く。

第2章 何を測定するか
「何を測定するのか」、その決め方について解説する。メトリクスプログラムがうまくいくのは、プロジェクトと組織の目標に対してメトリクスの整合性が取れているときのみである。本章ではそのようなメトリクスプログラムの定義に役立つ様々なアプローチを紹介する。GQMアプローチ、意思決定者モデル、標準に基づくメトリクス、などを紹介する。

第3章 測定の基礎
測定理論の基礎を解説する。測定が取り組むべき課題を明らかにしたうえで、測定を可能にする測定モデルについて説明する。ついで、メトリクスデータの分析と比較を有効に行うためのツールである、測定理論と統計学について説明する。測定尺度、中心傾向、ばらつき、測定誤差など、測定とメトリクスの基本的な構成要素を紹介する。

第4章 ソフトウエアの規模の測定
ソフトウェアの規模の測定について解説する。規模は基本的なソフトウェアメトリクスの1つである。本章では規模を、物理的な意味と、機能の意味の両面から解説する。まずソフトウェア自体の物理的な長さを測定する、伝統的な規模のメトリクスであるコード行数について説明する。次いで、ソフトウェアの機能を計測するファンクションポイント法、FSM法を紹介する。それぞれの測定法の長所と短所、有効な経験則などを紹介する。

第5章 複雑性の測定
ソフトウェアの複雑性の測定について解説する。複雑性を測定することによって、欠陥の増加や生産性の低さの原因を予測して理解することができる。一般にはコードが複雑になればなるほど、そのコードを理解するのが難しくなると考えられる。するとコードのデバッグが難しくなり、したがって欠陥が増加し、生産性が低くなる。本章では、複雑性について、構造複雑性、概念複雑性、計算複雑性の3つの異なる概念に着目する。

第6章 工数の見積もり
ソフトウェアエンジニアリングの重要な仕事に、工数とスケジュールの見積りがある。本章では、見積もり理論の基礎と、見積り技法を説明する。そして様々な見積ツールと技法を例を用いて紹介する。専門家による見積り、ベンチマークデータの理由、類推法による見積り、プロキシポイントによる見積り、カスタムモデル、アルゴリズムモデルなどを紹介する。また複数の見積もりを一つにまとめる方法も紹介する。そして見積もりの課題と限界についても考察する。

第7章 欠陥に学ぶ
欠陥の計測について、その考え方とよく使われるメトリクスを説明する。欠陥には特有のパターン、リズムがある。そこから法則性を読み取り、予測する方法について解説する。様々な欠陥数の予測技法とモデルを紹介する。

第8章 ソフトウエアの信頼性測定と予測
ソフトウェアの信頼性の計測について、その考え方とよく使われるメトリクスを説明する。ソフトウェアの信頼度とはソフトウェアシステムがある環境のもとで、一定の期間内に故障することなく機能する確率である。信頼性モデル、信頼性の予測方法、故障の致命度分類、故障率などについて解説する。

第9章 応答時間と可用性
ソフトウェアの応答時間、可用性の計測について、その考え方とよく使われるメトリクスを説明する。また、ソフトウェアの可用性を改善する技法としてソフトウェアの「若化」について解説する。

第10章 進捗の測定
プロジェクトを成功裏に収めるには、プロジェクトの進捗を正確に評価できることが重要である。本章では、進捗を測定するメカニズムとメトリクスを紹介する。本章ではインプロセスメトリクスと呼ばれる、ソフトウェアプロジェクトに適合性が高い、5つのメトリクスを紹介する。
①プロジェクトのマイルストーン、②コード結合、③テストの進捗、④欠陥の発見と修正、⑤プロセスの有効性、についてそれぞれ説明する。

第11章 アウトソーシング
アウトソーシングの概要と、そのメリット、問題点、考慮すべき事項、リスク管理について解説する。そのうえで、アウトソーシングの工数をメトリクスプログラムの中でどう扱えばよいのかを解説する。

第12章 ソフトウエア技術者のための財務指標
ビジネスの価値を測定するメトリクスは「お金」である。ソフトウェア技術者が財務指標を理解する必要性、ビジネスケースの作成方法、ソフトウェア特有のメトリクスをビジネスにおける財務的な数値に結びつける方法について解説する。

第13章 ベンチマーキング
ベンチマーキングは、ソフトウェアプロジェクトで利用しているメトリクスについて、その適切な標準となる目標値を手に入れる方法である。本章では、ベンチマーキングの設定の手順を、順を追って解説する。

第14章 経営陣にメトリクスをうまく伝えるには
メトリクスを、経営陣にわかりやすくパワフルな方法で提示するテクニックを解説する。
①オーディエンスを知る、②メトリクスの数をできるだけ少なくする、③すべてのメトリクスを雄弁であるようにする、④メトリクスプログラムの鮮度を保つ、など、ポイントを紹介する。