GQM

Last updated
Illustration of the goal-question-metric (GQM) paradigm Goal Question Metric Paradigm.gif
Illustration of the goal–question–metric (GQM) paradigm

GQM, the initialism for goal, question, metric, is an established goal-oriented approach to software metrics to improve and measure software quality. [1]

Contents

History

GQM 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 [2] after supervising a Ph.D. thesis by Dr. David M. Weiss. [3] Dr. Weiss' work was inspired by the work of Albert Endres at IBM Germany. [4] [5] [6]

Method

GQM defines a measurement model on three levels: [7]

1. 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.
2. 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.
3. Quantitative level (Metric) [8]
A set of metrics, based on the models, is associated with every question in order to answer it in a measurable way.

GQM stepwise

Another interpretation of the procedure is: [9]

  1. Planning
  2. Definition
  3. Data collection
  4. Interpretation

Sub-steps

Sub-steps are needed for each phases. To complete the definition phase, an eleven-step procedure is proposed: [9]

  1. Define measurement goals
  2. Review or produce software process models
  3. Conduct GQM interviews
  4. Define questions and hypotheses
  5. Review questions and hypotheses
  6. Define metrics
  7. Check metrics on consistency and completeness
  8. Produce GQM plan
  9. Produce measurement plan
  10. Produce analysis plan
  11. Review plans

Recent developments

The GQM+Strategies approach was developed by Victor Basili and a group of researchers from the Fraunhofer Society. [10] It is based on the Goal Question Metric paradigm and adds the capability to create measurement programs that ensure alignment between business goals and strategies, software-specific goals, and measurement goals.

Novel application of GQM towards business data are described. [11] Specifically in the software engineering areas of Quality assurance and Testing, GQM is used. [12]

Further reading

See also

Related Research Articles

The Capability Maturity Model (CMM) is a development model created in 1986 after a study of data collected from organizations that contracted with the U.S. Department of Defense, who funded the research. The term "maturity" relates to the degree of formality and optimization of processes, from ad hoc practices, to formally defined steps, to managed result metrics, to active optimization of the processes.

In computer science, static program analysis is the analysis of computer programs performed without executing them, in contrast with dynamic program analysis, which is performed on programs during their execution.

In software engineering and development, a software metric is a standard of measure of a degree to which a software system or process possesses some property. Even if a metric is not a measurement, often the two terms are used as synonyms. Since quantitative measurements are essential in all sciences, there is a continuous effort by computer science practitioners and theoreticians to bring similar approaches to software development. The goal is obtaining objective, reproducible and quantifiable measurements, which may have numerous valuable applications in schedule and budget planning, cost estimation, quality assurance, testing, software debugging, software performance optimization, and optimal personnel task assignments.

The following outline is provided as an overview of and topical guide to software engineering:

<span class="mw-page-title-main">Business process modeling</span> Activity of representing processes of an enterprise

Business process modeling (BPM) in business process management and systems engineering is the activity of representing processes of an enterprise, so that the current business processes may be analyzed, improved, and automated. BPM is typically performed by business analysts, who provide expertise in the modeling discipline; by subject matter experts, who have specialized knowledge of the processes being modeled; or more commonly by a team comprising both. Alternatively, the process model can be derived directly from events' logs using process mining tools.

<span class="mw-page-title-main">Performance indicator</span> Measurement that evaluates the success of an organization

A performance indicator or key performance indicator (KPI) is a type of performance measurement. KPIs evaluate the success of an organization or of a particular activity in which it engages. KPIs provide a focus for strategic and operational improvement, create an analytical basis for decision making and help focus attention on what matters most.

The Personal Software Process (PSP) is a structured software development process that is designed to help software engineers better understand and improve their performance by bringing discipline to the way they develop software and tracking their predicted and actual development of the code. It clearly shows developers how to manage the quality of their products, how to make a sound plan, and how to make commitments. It also offers them the data to justify their plans. They can evaluate their work and suggest improvement direction by analyzing and reviewing development time, defects, and size data. The PSP was created by Watts Humphrey to apply the underlying principles of the Software Engineering Institute's (SEI) Capability Maturity Model (CMM) to the software development practices of a single developer. It claims to give software engineers the process skills necessary to work on a team software process (TSP) team.

In the context of software engineering, software quality refers to two related but distinct notions:

<span class="mw-page-title-main">ISO/IEC 9126</span> Former ISO and IEC standard

ISO/IEC 9126Software engineering — Product quality was an international standard for the evaluation of software quality. It has been replaced by ISO/IEC 25010:2011.

<span class="mw-page-title-main">Process modeling</span> Definition and description of a process or system

The term process model is used in various contexts. For example, in business process modeling the enterprise process model is often referred to as the business process model.

Experimental software engineering involves running experiments on the processes and procedures involved in the creation of software systems, with the intent that the data be used as the basis of theories about the processes involved in software engineering. A number of research groups primarily use empirical and experimental techniques.

Application discovery and understanding (ADU) is the process of automatically analyzing artifacts of a software application and determining metadata structures associated with the application in the form of lists of data elements and business rules. The relationships discovered between this application and a central metadata registry is then stored in the metadata registry itself.

The function point is a "unit of measurement" to express the amount of business functionality an information system provides to a user. Function points are used to compute a functional size measurement (FSM) of software. The cost of a single unit is calculated from past projects.

Software quality management (SQM) is a management process that aims to develop and manage the quality of software in such a way so as to best ensure that the product meets the quality standards expected by the customer while also meeting any necessary regulatory and developer requirements, if any. Software quality managers require software to be tested before it is released to the market, and they do this using a cyclical process-based quality assessment in order to reveal and fix bugs before release. Their job is not only to ensure their software is in good shape for the consumer but also to encourage a culture of quality throughout the enterprise.

Quality engineering is the discipline of engineering concerned with the principles and practice of product and service quality assurance and control. In software development, it is the management, development, operation and maintenance of IT systems and enterprise architectures with a high quality standard.

The Data & Analysis Center for Software (DACS) was one of several United States Department of Defense (DoD) sponsored Information Analysis Centers (IACs), administered by the Defense Technical Information Center (DTIC). It was managed by the U.S. Air Force Research Laboratory (AFRL) and operated by Quanterion Solutions Inc. under a long term DoD contract. This organization was consolidated into the Cyber Security and Information Systems Information Analysis Center (CSISAC).

Victor R. Basili, is an emeritus professor at the Department of Computer Science, which is part of the University of Maryland College of Computer, Mathematical, and Natural Sciences, and the Institute for Advanced Computer Studies. He holds a Ph.D. in computer science from the University of Texas at Austin and two honorary degrees. He is a fellow of both the Association for Computing Machinery (ACM) and of the Institute of Electrical and Electronics Engineers (IEEE).

GQM+Strategies is a method that provides concepts and actionable steps for creating the link between goals and strategies across an organization and allows for measurement-based decision-making. It was developed by Victor Basili, Jens Heidrich, Mikael Lindvall, Jürgen Münch, Myrna Regardie, Carolyn B. Seaman, and Adam Trendowicz. The method was originally developed for organizations having a strong focus on IT and the development of software systems, but the method's popularity has grown to other domains and can be applied to any organization. The book Aligning Organizations through Measurement gives a comprehensive overview of the method, provides actionable guidance, case studies, and practical applications.

Development testing is a software development process that involves synchronized application of a broad spectrum of defect prevention and detection strategies in order to reduce software development risks, time, and costs.

Software Intelligence is insight into the inner workings and structural condition of software assets produced by software designed to analyze database structure, software framework and source code to better understand and control complex software systems in Information Technology environments. Similarly to Business Intelligence (BI), Software Intelligence is produced by a set of software tools and techniques for the mining of data and the software's inner-structure. Results are automatically produced and feed a knowledge base containing technical documentation and make it available to all to be used by business and software stakeholders to make informed decisions, measure the efficiency of software development organizations, communicate about the software health, prevent software catastrophes.

References

  1. "Goal/Question/Metric (GQM) – The Making of Software" . Retrieved 2021-03-18.
  2. "Software Engineering Division/Code 580". sed.gsfc.nasa.gov. Retrieved 2021-03-18.
  3. Basili, V. R.; Weiss, D. M. (November 1984). "A Methodology for Collecting Valid Software Engineering Data". IEEE Transactions on Software Engineering. SE-10 (6): 728–738. doi:10.1109/TSE.1984.5010301. hdl: 1903/7513 . ISSN   1939-3520. S2CID   10114944.
  4. "Homepage Albert Endres". www.aendres.de. Retrieved 2021-03-18.
  5. Endres, Albert (2003). A handbook of software and systems engineering : empirical observations, laws, and theories. H. Dieter Rombach. Harlow, England: Pearson Addison Wesley. ISBN   0-321-15420-7. OCLC   50417309.
  6. Endres, Albert (1975-04-01). "An analysis of errors and their causes in system programs". ACM SIGPLAN Notices. 10 (6): 327–336. doi:10.1145/390016.808455. ISSN   0362-1340.
  7. Basili, V.; Caldiera, G.; Rombach, H. D. (1994). "The Goal Question Metric Approach". S2CID   13884048.{{cite web}}: Missing or empty |url= (help)
  8. Huether, Derek (2020). Metrics Cookbook. p. 11. ISBN   9798586916082.
  9. 1 2 Solingen, Rini van (1999). The goal/question/metric method : a practical guide for quality improvement of software development. Egon Berghout. London: McGraw-Hill. ISBN   0-07-709553-7. OCLC   43551689.
  10. Basili, V.R.; J. Heidrich; M. Lindvall; J. Münch; C.B. Seaman; M. Regardie; A. Trendowicz (2009). "Determining the impact of business strategies using principles from goal-oriented measurement". Business Services: Konzepte, Technologien, Anwendungen. 9. Internationale Tagung Wirtschaftsinformatik. Books OCG. Vienna, Austria: Österreichische Computer Gesellschaft. ISBN   978-3-85403-246-5.
  11. Southekal, Prashanth H. (2017). Data for business performance : the Goal-Question-Metric (GQM) model to transform business data into an enterprise asset. Basking Ridge, NJ. ISBN   978-1-63462-184-7. OCLC   970616125.{{cite book}}: CS1 maint: location missing publisher (link)
  12. Witte, Frank (2018), Witte, Frank (ed.), "Goal Question Metric", Metriken für das Testreporting: Analyse und Reporting für wirkungsvolles Testmanagement (in German), Wiesbaden: Springer Fachmedien, pp. 145–150, doi:10.1007/978-3-658-19845-9_22, ISBN   978-3-658-19845-9 , retrieved 2021-03-18