\subsection{Metrics}
There are many quality metrics that have been shown to have some correlation with the fault-proneness of software projects. As mentioned in section 2.3, all of the metrics and datasets discussed in this paper were originally used by Jureczko and Madeyski\cite{Jureczko}. Besides the standard Chidamber \& Kemerers object oriented metrics suite\cite{Chidamber2002}, metrics from other suites are also present in our data. The quality metrics referenced by our datasets are briefly outlined below:

\bi
\item{WMC - Weighted Methods per Class}\\
The WMC metric represents the number of methods defined in a class\cite{Chidamber2002}. A high WMC metric represents a complex class and has traditionally been associated with more faults\cite{Thapaliyal2010},\cite{Basili1996}.\\

\item{DIT - Depth of Inheritance Tree}\\
The DIT metric represents the maximum length from a node to the root of the tree\cite{Chidamber2002},\cite{Jureczko}. A high DIT metric has traditionally been associated with more faults\cite{Basili1996}.\\

\item{NOC - Number of Children}\\
The NOC metric represents the number of sub-classes under a given class\cite{Chidamber2002},\cite{Jureczko}. A high NOC metric has traditionally been associated with less faults\cite{Basili1996}.\\

\item{CBO - Coupling between Object Classes}\\
Two classes are said to be coupled when one class' methods refer to methods or variables defined in another class. The CBO metric represents the number of classes coupled to a given class\cite{Chidamber2002},\cite{Jureczko}. A high CBO metric has traditionally been associated with more faults\cite{Basili1996}.\\

\item{RFC - Response for Class}\\
The RFC metric represents the number of methods that might potentially run following the reception of a message by an object of a given class\cite{Chidamber2002},\cite{Basili1996},\cite{Jureczko}.\\

\item{LCOM - Lack of Cohesion Methods}\\
A method in a class is said to be cohesive if it performs only one function. The LCOM metric represents the level of method cohesiveness in a given class\cite{Chidamber2002}. LCOM3 is a refined LCOM metric representing the same concept.\\

\item{LOC - Lines of Code}\\
The LOC metric is one of the most basic, as well as one of the first, software quality metrics. There are several derivations and refinements on this metric, however since our datasets referenced only LOC, it is the only metric associated with lines of code that we considered.\\

\item{NPM - Number of Public Methods}\\
The NPM metric represents the number of methods defined as public in a given class\cite{Jureczko}.\\

\item{DAM - Data Access Metric}\\
The DAM metric represents the ratio between private attributes and the total number of attributes in a given class\cite{Jureczko}.\\

\item{MOA - Measure of Aggregation}\\
The MOA metric represents the number of fields present in a given class, whose datatypes are user-defined classes\cite{Jureczko}.\\

\item{MFA - Measure of Functional Abstraction}\\
The MFA metric represents the ratio between the number of methods a given class inherits and the number of methods that can be called by methods in said class\cite{Jureczko}.\\

\item{CAM - Cohesion Among Methods}\\
The CAM metric describes how closely related the methods of a given class are\cite{Jureczko}.\\

\item{IC - Inheritance Coupling}\\
The IC metric represents the number of parent classes that a given class is coupled to\cite{Jureczko}. IC is conceptually similar to CBO, with the exception that CBO does not take class hierarchy into consideration.\\

\item{CBM - Coupling Between Methods}\\
The CBM metric represents the number of methods in a given class that are coupled to the methods inherited by said class\cite{Jureczko}.\\

\item{AMC - Average Method Complexity}\\
The AMC metric represents the average size of a method in a given class\cite{Jureczko}.\\

\item{CA - Afferent Coupling}\\
The CA metric describes how many classes depend on a given class\cite{Jureczko}.\\

\item{CE - Efferent Coupling}\\
The CE metric describes how many classes a given class depends upon\cite{Jureczko}.\\

\item{CC - Cyclomatic Complexity}\\
The CC metric represents the number of linear paths that are possible at runtime for a given method in a class\cite{Jureczko}. CC itself is not used in the datasets we used, instead MAX\_CC and AVG\_CC are both included. These metrics represent the maximum and average(arithmetic mean) values for CC computed over all methods in a given class.
\ei

\subsection{General Consensus on Metrics Predicting for Defects}
Due to there being a sizeable number of software quality metrics, there isn't much of a consensus among software engineers as to which metrics can be used for predicting defects. There is however a great deal of research aimed at attempting to establish which metrics are meaningful within the context of defect prediction. El Emam and Melo\cite{ElEmam2001}, for example, find that the DIT metric is directly associated with increased fault-proneness. Briand\cite{Briand1999} finds that coupling and cohesion measures can predict for software defects. Sahraoui et al.\cite{Sahraoui} find coupling and inheritance metrics that predict for software defects and even go as far as suggesting values for certain metrics such as CBO, for which they find values greater than ~14 to indicate defects.

There is however a certain amount of uncertainty as far as the actual usefulness of these metrics. Thapaliyal and Verma\cite{Thapaliyal2010} for example, find no relationship between WMC and CBO metrics and fault-proneness in software. Xu et al.\cite{Xu2008} find that OO metrics as a whole do not seem to predict for defects very well, however among OO metrics they conclude that WMC, CBO and RFC are most significant. What is very interesting about their research, is the conclusion that LOC can be a better defect predictor than the OO metrics.

We conclude our brief discussion of previous research by stating that despite the volume of research that has been done, a clear consensus has not been reached and in fact there exist many contradictory results. It remains to be established which quality metrics are best suited towards defect prediction, as well as whether or not there even exists a certain set of metrics that is relevant across all software projects.
