'''GQM ''', the initialism for "goal, question, metric", is an approach to software metrics that has been promoted by Victor Basili of the University of Maryland, College Park and the Software Engineering Laboratory at the NASA Goddard Space Flight Center after supervising a Ph.D. thesis by Dr. David M. Weiss. Dr. Weiss' work was inspired by the work of Albert Endres at IBM Germany.
GQM defines a measurement model on three levels:Conceptual level (Goal) : A goal is defined for an object, for a variety of reasons, with respect to various models of quality, from various points of view and relative to a particular environment.
Operational level (Question) : A set of questions is used to define models of the object of study and then focuses on that object to characterize the assessment or achievement of a specific goal.
Quantitative level (Metric) : A set of metrics, based on the models, is associated with every question in order to answer it in a measurable way.
The open literature typically describes GQM in terms of a six-step process where the first three steps are about using business goals to drive the identification of the right metrics and the last three steps are about gathering the measurement data and making effective use of the measurement results to drive decision making and improvements. Basili described his six-step GQM process as follows:
- Develop a set of corporate, division and project business goals and associated measurement goals for productivity and quality
- Generate questions (based on models) that define those goals as completely as possible in a quantifiable way
- Specify the measures needed to be collected to answer those questions and track process and product conformance to the goals
- Develop mechanisms for data collection
- Collect, validate and analyze the data in real time to provide feedback to projects for corrective action
- Analyze the data in a post mortem fashion to assess conformance to the goals and to make recommendations for future improvements
GQM templates are a structured way of specifying goals. A GQM template contains the following fields:
object of study
pair programming, static analysis tool
characterize, understand, evaluate, predict, improve
programmer effort, program reliability
developer, customer, manager
(other important factors that may affect outcomes)
Here is an example of applying the GQM template to express the goal of a software engineering study:
The purpose of this study is to characterize the effect of pair programming on programmer effort and program quality from the point of view of software managers in the context of a small web-development company.