Measurement in Software Engineering: The Importance of Software Metrics

Measurement in Software Engineering: The Importance of Software Metrics

Ruya Samli (Computer Engineering Department, Istanbul University, Turkey), Zeynep Behrin Güven Aydın (Software Engineering Department, Maltepe University, Turkey) and Uğur Osman Yücel (Software Engineering Department, Maltepe University, Turkey)
DOI: 10.4018/978-1-7998-2142-7.ch007

Abstract

Measurement in software is a basic process in all parts of the software development life cycle because it helps to express the quality of a software. But in software engineering, measurement is difficult and not precise. However, researchers accept that any measure is better than zero measure. In this chapter, the software metrics are explained, and some software testing tools are introduced. The software metric sets of Chidamber and Kemerer Metric Set (CK Metric Set), MOOD Metric Set (Brito e Abreu Metric Set), QMOOD Metric Set (Bansiya and Davis Software Metric Set), Rosenberg and Hyatt Metric Set, Lorenz and Kidd Metric Set (L&K Metric Set) are explained. The software testing tools such as Understand, Sonargraph, Findbugs, Metrics, PMD, Coverlipse, Checkstyle, SDMetrics, and Coverity are introduced. Also, 17 literature studies are summarized.
Chapter Preview
Top

Background

In the literature, there are many studies that investigate software metrics in different software sets. Table 1 shows a summary about these studies.

Table 1.
A summary about software metric studies
ReferenceDatasetMetric SetMethods
Briand et al., 1993 146 components of an ADA system (260,000 lines of code)Library Unit Aggregation metrics, Compilation unit metricsapplied logistic regression, classification trees, OSR
Lanubile et al., 1995 27 academic projects in University of Bari11 method level metrics which include Halstead, McCabe, and Henry and Kafura information flow metricscomponent analysis, logistic regression, logical classification approaches, NN, holographic networks
Khoshgoftaar et al., 1997 13 million lines of codeType-I, Type-II, and overall misclassification ratesNN and discriminant model
Ohlsson et al.,1998Ericsson telecommunications systemMisclassification ratePCA, applied discriminant analysis for classification
Menzies et al., 2004 public NASA datasetsmethod level metricsLSR, model trees, ROCKY and Delphi detectors
Kanmani et al, 2004 Pondicherry Engineering College64 metricsGRNN
Koru& Liu, 2005 NASA datasetsclass level metricsJ48, K-Star, and Random Forests
Challagulla et al., 2005 NASA datasetslevel metricslinear regression, SVR, NN, support vector logistic regression, Naive Bayes, IBL, J48, and 1-R techniques
Gyimothy et al., 2005 -.object oriented metricslogistic regression, linear regression, decision trees, NN
Hassan & Holt, 2005 6 open source projectsAPA metricsMFM, MRM, MFF, MRF
Zhou & Leung, 2006 NASA’s KC1 datasetChidamber–Kemerer metricsLogistic regression, Naive Bayes, Random Forests
Boetticher, 2006 NASA public datasetsPerformance evluation metricsJ48 and naive bayes
Mertik et al., 2006 Nasa datasetlevel metricsC4.5, unprunned C4.5, multimethod, SVM
Bibi et al., 2008 Pekka dataset of Finland bankDisk usage processor usage number of users document qualityRegression
Li & Reformat, 2007 JM1 datasetlevel metrics and accuracy parameterSimBoost
Pai & Dugan, 2007 NASA datasetsChidamber–Kemerer metrics and lines of code metriclinear regression, Poisson regression, logic regression
Cukic & Ma, 2007 JM1 datasetlevel metrics-

where, OSR is Optimized Set Reduction, LSR is Linear Standard Regression, GRNN is General Regression Neural Networks, SVR is Support Vector Regression, NN is Neural Network, IBL is Instance Based Learning, MFM is Frequently Modified, MRM is Most Recently Modified, MFF is Most Frequently Fixed, MRF is Most Recently Fixed and PCA is Principal Component Analysis.

Key Terms in this Chapter

Software Development Life Cycle (SDLC): Software development life cycle (SDLC) is a process that produces software with the highest quality and lowest cost in the shortest time. SDLC includes a detailed plan for how to develop, alter, maintain, and replace a software system.

Software Metric: A software metric is a standard of measure of a degree to which a software system or process possesses some property.

Software Testing Tool: Software testing tool is an automation, a program or another software that provides a quick and reliable software test.

Software Testing: Software testing is a process, to evaluate the functionality of a software application with an intent to find whether the developed software met the specified requirements or not and to identify the defects to ensure that the product is defect free in order to produce the quality product.

Object-Oriented Programming (OOP): Object-oriented programming (OOP) is a programming paradigm based on the concept of “objects”, which can contain data, in the form of fields (often known as attributes), and code, in the form of procedures (often known as methods).

Line of Code (LOC): Line of code (LOC) is a software metric used to measure the size of a computer program by counting the number of lines in the text of the program's source code.

Software Complexity: Software complexity is a way to describe a specific set of characteristics of a code. Software complexity is a natural byproduct of the functional complexity that the code is attempting to enable.

Complete Chapter List

Search this Book:
Reset