Software measurement

from Wikipedia, the free encyclopedia

Software measurement and evaluation describes a discipline in the field of information technology that deals with the systematic measurement and evaluation of various properties of software products , processes and projects . The focus is on the introduction of measuring systems for the acquisition, processing and visualization of collected measurement data. The goal is usually the evaluation of quality properties of software products (such as the error content), software processes (such as the efficiency or effectiveness) or software projects (such as the adherence to schedules) and the based on them Propose improvement measures.

Software measurement and evaluation is nowadays a common tool in the field of professional software development and helps to make quality properties of interest transparent and thus controllable and ideally predictable. It represents one of the essential foundations for systematic learning and improvement. Industrially used reference models in the field of IT and software development, such as CMMI (Capability Maturity Model Integration), SPICE (Software Process Improvement and Capability Determination) and ITIL (IT Infrastructure Library) are without software -Measurement cannot be implemented.

Basic concepts

Software metrics

Software metrics quantify various properties of software, its development and application. According to, a function is described by a metric that maps a software unit (i.e. a property of a measurement object in software development) to a value. For example, the metric “Lines of Code” describes a function that maps the “Size / Scope” property of the “Code” object to be measured onto a number. This function (also called measurement rule) counts the number of lines in a given program code.

Software measures

According to IEEE1061, a software measure describes the application of a metric. Software measures can be on different types of scales, which in turn limits the possible mathematical operations for calculating the numerical values. For example, an ordinal scale defines a sequence of possible classes (such as “low”, “medium”, “high”), but no distance between them (“high” is not three times as good as “low”). Only comparison operations (e.g. “high”> “medium”> “low”) are permitted. There is also a distinction between base measures, which directly determine a certain property of a measurement object using a metric, and derived measures, which combine several base measures.

Indicators

An indicator generally evaluates a current state or makes a prediction about it and serves as the basis for decision-making. In the software measurement, various measures are combined with one another on the basis of an analysis model and enriched with decision criteria. For example, an indicator based on measurements can indicate which modules in the program code should be classified as particularly large or complex and represent a risk for further development.

Measurement data

Measurement data refer to the collection of values ​​that have been assigned to a software measure or indicator.

Measurement targets

A measurement target describes the goal behind a software measurement. According to the GQM method, one describes (1) the measurement object that is measured (e.g. a step in the development process or an artifact), (2) the purpose for which it is measured (e.g. for a better understanding of relationships up to the continuous improvement of weak points), (3) the quality aspect that is in the interest of the measurement (e.g. the efficiency of a process or the comprehensibility of a program code), (4) the perspective from which the measurement is made (e.g. . from the point of view of a project manager or a developer) and finally the context in which the measurement takes place (e.g. environmental characteristics such as development domain, project type, team experience or programming language). A measurement goal could therefore be, for example, to examine individual modules of the program code as measurement objects for the purpose of improving their complexity from the perspective of a quality manager in a specific context.

Measuring systems

A measurement system generally refers to a system for the acquisition, processing and visualization of collected measurement data. In addition to the specification of the addressed measurement goals, indicators, dimensions and metrics, this also includes, in particular, the operationalization of this specification in the form of suitable tools for recording, processing and visualizing the data as well as suitable processes for anchoring in the organization. The latter refers z. B. on who makes data available in what form or initiates data collection and who is viewing this data at what point in the development process.

Experience databases

An experience database refers to a data storage medium that contains results from software measurement and evaluation as well as experiences made in the process and thus allows their systematic reuse. describes the concept of experience factories, which defines an organizational framework to enable continuous learning and improvement in a software development organization. In addition to organization-specific experience databases that are maintained and used within an organization, so-called benchmarking databases have also emerged in the past for specific aspects, which project experiences and data should enable comparison within certain domains and fields of application. A prominent example is the International Software Benchmark Standard Group (ISBSG), which collects data on the productivity of development projects for different contexts on the basis of functional dimensions.

Action

The general procedure for software measurement and for setting up a measurement system is described in. The basic process begins with defining clear goals that are linked to the measurement and evaluation, obtaining the consent of the groups of people involved - from the management level to the employees concerned - and making resources available.

The planning of the measurement process should be based on clearly defined measurement goals. The goal-question-metric approach is a widely used method for specifying measurement goals . For this purpose, a structure is built up from measurement goals, questions and metrics. The measurement goal is broken down into specific information needs using questions, which are then mapped to metrics. In an expanded version of this approach, the contribution and benefits of data collection for the entire organization are discussed and explicitly modeled in addition to the pure measurement objectives. In the GQM + Strategies approach, measurement goals are linked to the organizational goals and strategies so that a holistic picture emerges. The idea of ​​embedding software measurement in business processes and their measurement-based control is in the foreground of the E4 approach.

In addition to the planning of the measurement process, the actual collection and analysis of the data as well as the derivation of specific improvement measures are also discussed. These refer explicitly not only to the examined objects to be measured, but rather also to improvements in the measuring process itself. The experience gained is stored in an experience database.

The quality of the software measurement and the measurement process is based on the efficiency and completeness of the measurement in relation to the measurement objectives.

Section

In German-speaking countries, the “Software Measurement and Evaluation” specialist group of the Gesellschaft für Informatik e. V. as a competence center for various aspects related to the measurement, analysis and evaluation of software in the IT sector. The aim is to bring experts from research and industry together on a regular basis and to promote an exchange of information on current topics.

Individual evidence

  1. ^ H. Balzert: textbook software technology: software management . Spektrum-Verlag, 2008.
  2. R. Dumke, C. Ebert, J. Heidrich, C. Wille: Measurement and evaluation of software - state of the art and outlook . In: Computer Science Spectrum . 36, No. 6, 2013.
  3. ISO / IEC TR 25000: Software Engineering - Quality Criteria and Evaluation of Software Products (SQuaRE) - Guidelines for SQuaRE . ISO / IEC, 2012.
  4. a b IEEE Standard 1061: IEEE Standard for a Software Quality Metrics Methodology . IEEE, 1998.
  5. a b c d e f ISO / IEC 15939: Information Technology - Software Measurement Process . ISO / IEC, 2007.
  6. ^ A b V. Basili, D. Rombach: The Goal Question Metric Approach . In: John Wiley & Sons (Eds.): Encyclopedia of Software Engineering . 1994.
  7. ^ V. Basili, D. Rombach, K. Schneider, B. Kitchenham, D. Pfahl, R. Selby: Empirical Software Engineering Issues - Critical Assessment and Future Directions . Springer-Verlag, 2007.
  8. International Software Benchmarking Standards Group . Retrieved August 4, 2014.
  9. V. Basili, A. Trendowicz, M. Kowalczyk, J. Heidrich, C. Seaman, J. Muench, D. Rombach: Aligning Organizations Through Measurement: The GQM + Strategies Approach . Springer-Verlag, 2014.
  10. C. Ebert, R. Dumke: Software Measurement - Establish, Extract, Evaluate, Execute . Springer-Verlag, 2007.
  11. ^ A. Abran: Software Metrics and Software Metrology . John Wiley & Sons, 2010.
  12. ^ Section “Software Measurement and Evaluation” of the Gesellschaft für Informatik e. V.