computeMetrics function
Implementation
Metrics computeMetrics(@modified Model model) {
var digraph = model.toDirectedGraph();
computeNodeCDs(digraph, model);
computeNodeDegreeMetrics(digraph, model);
computeNodeSlocs(model);
var ccd = computeCCD(model);
var orphans = computeOrphans(model);
var numNodes = model.nodes.length;
var numEdges = model.edges.length;
var avgDegree = (numEdges / numNodes).toPrecision(precision);
var totalSloc = computeTotalSloc(model);
var avgSloc = totalSloc / numNodes;
var firstCycle = digraph.cycle.map((node) => node).toList();
var metrics = Metrics(
firstCycle.isEmpty,
firstCycle,
numNodes,
numEdges,
avgDegree as double,
orphans,
ccd,
computeACD(ccd, numNodes).toPrecision(precision) as double,
computeNCCD(ccd, numNodes).toPrecision(precision) as double,
totalSloc,
avgSloc.toPrecision(precision) as double);
return metrics;
}