\newpage
\appendix
\begin{figure}
\small
\begin{tabular}{|p{.95\linewidth}|}\hline
The Halstead features were proposed by Maurice Halstead in 1977. He
argued that modules
that are hard to read are more likely to be fault
prone~\cite{halstead77}. Halstead estimates reading complexity by
counting the number of operators and operands in a module: see the
$h$ features of \fig{attr}.  These three raw $h$  Halstead
features were 
then used to compute the $H$: the eight derived Halstead features
using the equations shown in
\fig{attr}.  In between the raw and derived Halstead features are
certain intermediaries:
 \bi
\item
$\mu= \mu_1 + \mu_2$;
\item
minimum operator count: $\mu_1^*=2$;
\item
$\mu_2^*$  is the minimum operand count and equals the number of module parameters.
\ei\\\hline
\end{tabular}
\caption{Notes on the Halstead features}\label{fig:halstead}
\end{figure}
 

\begin{figure}
\small
\begin{tabular}{|p{.95\linewidth}|}\hline
An alternative to the Halstead features of \fig{halstead}
are the complexity features proposed by Thomas McCabe in 1976.
Unlike Halstead,
McCabe
 argued that the complexity of
pathways {\em between} module symbols are more insightful than just a count of the symbols~\cite{mccabe76}. 

The first three lines of \fig{attr}
shows McCabe three
main features for this pathway complexity. These are defined as follows.
\bi
\item
A
module is said to have a {\em flow graph}; i.e. a directed graph where each node corresponds to a
program statement, and each arc indicates the flow of control from
one statement to another.
\item
The {\em cyclomatic complexity} of a module is   $v(G) = e - n +
2$ where $G$ is a program's flow graph, $e$ is the number of arcs in
the flow graph, and $n$ is the number of nodes in the
flow graph~\cite{fenton96}.
\item
The {\em essential complexity}, ($ev(G)$) of a module is  the extent to which a
flow graph can be ``reduced'' by decomposing all the subflowgraphs
of $G$ that are {\em D-structured primes}
(also sometimes referred to as ``proper one-entry
one-exit subflowgraphs''~\cite{fenton96}). $ev(G) = v(G) - m$ where $m$ is the number of subflowgraphs of
$G$ that are D-structured primes~\cite{fenton96}.
\item
Finally, the
{\em design complexity}   ($iv(G)$) of a module is the cyclomatic complexity of a
module's reduced flow graph.
\ei\\\hline
\end{tabular}
\caption{Notes on the McCabe features}\label{fig:mccabe}
\end{figure}
