GQM (じーきゅーえむ; Goal, Question, Metric)は、メリーランド大学のビクター・バシリ教授によって開発された、ソフトウェア工学における計測の枠組みおよびモデル化手法である [1] 。
ソフトウェア工学におけるあらゆる計測は、無目的にメトリクスやデータを集めるのではなく、何のために測定するのか、前提となるモデルは何か、結果をどう解釈するかなどを明確にした上で実施されるべきである。 GQM 法はこれらを定義する枠組みとして代表的なものの一つであり、測定モデルを以下の3つの層で定義する。
各層の要素は多対多の関係にある。すなわち、一つのGは複数のQに結び付けられるし、各Qへの回答は複数のMに基づいて決定される。逆に、一つのMは複数のQのために使用可能である。
GQM法を実施する具体的なプロセスは次の6つのステップに分けることができる。最初の3つがG、Q、Mの決定、後の3つがデータ収集の実施と結果の利用に関するものである。
GQM法において、ゴール(G)を定義することは最も重要なステップであるといえる。概念的には、計測が行われる際のステークホルダーがそれぞれビジネスゴールを持っており、それらに基づいて計測を行う際のゴールが決定されると捉えられる。このように明確な意思を持って適切なゴールを吟味・議論する行為自体が意味のある計測を実現する上で不可欠であるというのがGQM法の背景となる主張でもある。この意味で、GQMは手法であると同時に計測に関する一種のパラダイムであるともいえる。
ゴール定義をある程度定型化して実施を容易にするために、バシリ教授は以下のような5つの要素からなるテンプレートの使用を提案している。
このテンプレートを使ったゴール定義は例えば次のようになる: 「組織の観点で、コード再利用率に関する特徴づけのために以下の文脈で成果物を解析する: 団体AのソフトウェアXは言語Lを用いて開発者Y人によりZヶ月で開発された・・・」
GQM は比較的シンプルな定義にもかかわらず高い記述力を持つため応用範囲は広く、エンピリカル・ソフトウェア工学分野の論文では研究目的が GQM ゴールの形式で記述されることも一般的である。