URL
Change Log
When |
What |
February 2, 2016 |
Dead dataset link fixed, added BibTeX |
Nov 2011 |
Dataset has been cleaned by MartinShepperd et al. (jm1’ and jm1’’ are the cleaned versions) |
December 2, 2004 |
Donated by Tim Menzies |
Notes from the Author
Title/Topic: JM1/software defect prediction
- Sources:
- Creators: NASA, then the NASA Metrics Data Program
- Contacts:
- Mike Chapman, Galaxy Global Corporation (Robert.Chapman@ivv.nasa.gov) +1-304-367-8341;
- Pat Callis, NASA, NASA project manager for MDP (Patrick.E.Callis@ivv.nasa.gov) +1-304-367-8309
- Past usage:
- How Good is Your Blind Spot Sampling Policy?; 2003; Tim Menzies and Justin S. Di Stefano; 2004 IEEE Conference on High Assurance Software Engineering (http://menzies.us/pdf/03blind.pdf).
- Results:
- Very simple learners (ROCKY) perform as well in this domain as more sophisticated methods (e.g. J48, model trees, model trees) for predicting detects
- Many learners have very low false alarm rates.
- Probability of detection (PD) rises with effort and rarely rises above it.
- High PDs are associated with high PFs (probability of failure)
- PD, PF, effort can change significantly while accuracy remains essentially stable
- With two notable exceptions, detectors learned from one data set (e.g. KC2) have nearly they same properties when applied to another (e.g. PC2, KC2). Exceptions:
- LinesOfCode measures generate wider inter-data-set variances;
- Precision’s inter-data-set variances vary wildly
- “Assessing Predictors of Software Defects”, T. Menzies and J. DiStefano and A. Orrego and R. Chapman, 2004, Proceedings, workshop on Predictive Software Models, Chicago, Available from http://menzies.us/pdf/04psm.pdf
- Results:
- From JM1, Naive Bayes generated PDs of 25% with PF of 20%
- Naive Bayes out-performs J48 for defect detection
- When learning on more and more data, little improvement is seen after processing 300 examples.
- PDs are much higher from data collected below the sub-sub-system level.
- Accuracy is a surprisingly uninformative measure of success for a defect detector. Two detectors with the same accuracy can have widely varying PDs and PFs.
- Relevant information:
- JM1 is written in “C” and is a real-time predictive ground system: Uses simulations to generate predictions
- Data comes from McCabe and Halstead features extractors of source code. These features were defined in the 70s in an attempt to objectively characterize code features that are associated with software quality. The nature of association is under dispute. Notes on McCabe can be found here and notes on Halstead can be found here. These metrics are widely used for defect prediction purposes, a quick tutorial on defect prediction is given here.
- Number of instances: 10885
- Number of attributes: 22 (5 different lines of code measure, 3 McCabe metrics, 4 base Halstead measures, 8 derived Halstead measures, a branch-count, and 1 goal field).
- Attribute Information:
- loc : numeric, McCabe’s line count of code
- v(g) : numeric, McCabe “cyclomatic complexity”
- ev(g) : numeric, McCabe “essential complexity”
- iv(g) : numeric, McCabe “design complexity”
- n : numeric, Halstead total operators + operands
- v : numeric, Halstead “volume”
- l : numeric, Halstead “program length”
- d : numeric, Halstead “difficulty”
- i : numeric, Halstead “intelligence”
- e : numeric, Halstead “effort”
- b : numeric, Halstead
- t : numeric, Halstead’s time estimator
- lOCode : numeric, Halstead’s line count
- lOComment : numeric, Halstead’s count of lines of comments
- lOBlank : numeric, Halstead’s count of blank lines
- lOCodeAndComment: numeric
- uniq_Op : numeric, unique operators
- uniq_Opnd : numeric, unique operands
- total_Op : numeric, total operators
- total_Opnd : numeric, total operands
- branchCount : numeric, the flow graph
- defects : {false,true}, module has/has not one or more reported defects
- Missing attributes: none
- Class Distribution: the class value (defects) is discrete
- false: 2106 = 19.35%
- true: 8779 = 80.65%
Martin Shepperd | August 19th, 2011 at 10:52 am
I’ve realised this version of the dataset differs from the version available from the NASA MDP website. The following tabulates the differences for all 13 NASA datasets:
{{{
Dataset n cases p features
CM1 — NASA 505 40
CM1 — Promise 498 21
JM1 — NASA 10878 21
JM1 — Promise 10885 21
KC1 — NASA 2107 21
KC1 — Promise 2109 21
KC3 — NASA 458 40
KC3 — Promise 458 39
MC1 — NASA 9466 39
MC1 — Promise 9466 38
MC2 — NASA 161 40
MC2 — Promise 161 39
MW1 — NASA 403 40
MW1 — Promise 403 37
PC1 — NASA 1107 40
PC1 — Promise 1109 21
PC2 — NASA 5589 40
PC2 — Promise 5589 36
PC3 — NASA 1563 40
PC3 — Promise 1563 37
PC4 — NASA 1458 40
PC4 — Promise 1458 37
PC5- NASA 17186 39
PC5 — Promise 17186 38
KC4- NASA 125 40
KC2 — Promise 522 22
}}}
Therefore researchers are strongly advised to indicate which version of these files they are using!
Martin Shepperd |
August 19th, 2011 at 10:54 am: It is also puzzling how features such as loc can contain values like 1.1 (see feature 1, case 1). |
Martin Shepperd |
August 20th, 2011 at 7:03 am: Sorry small error — the two versions of this dataset have the following sizes: |
{{{
Version, Cases(n), Features(p)
JM1 — NASA, 10878, 24
JM1 — Promise, 10885, 22
}}}
Reference
People
Papers
“How Good is Your Blind Spot Sampling Policy?” Available from http://menzies.us/pdf/03blind.pdf.
@INPROCEEDINGS{1281737,
author={Menzies, T. and Di Stefano, J.S.},
booktitle={High Assurance Systems Engineering, 2004. Proceedings. Eighth IEEE International Symposium on},
title={How good is your blind spot sampling policy},
year={2004},
pages={129-138},
keywords={formal specification;program verification;sampling methods;software metrics;automatic formal methods;black box probing;blind spot sampling;
defect detectors;formal specification;public domain defect data;software assessment;Aerospace engineering;Computer science;Costs;
Detectors;Mission critical systems;NASA;Project management;Proposals;Sampling methods;Systems engineering and theory},
doi={10.1109/HASE.2004.1281737},
ISSN={1530-2059},
month={March},}
“Assessing Predictors of Software Defects” Available from http://menzies.us/pdf/04psm.pdf .
@INPROCEEDINGS{Menzies04assessingpredictors,
author = {Tim Menzies and Justin Distefano and Andres Orrego S and Robert (mike Chapman},
title = {Assessing predictors of software defects},
booktitle = {in Proceedings, workshop on Predictive Software Models},
year = {2004}
}