NAME
Analizo::Metric::AfferentConnections - Afferent Connections per Class (ACC) metric
DESCRIPTION
The metric calculation is based on the following article and calculates the class connectivity.
PhD Thesis: Monitoramento de metricas de codigo-fonte em projetos de software livre by Paulo Roberto Miranda Meirelles.
See the adaptation of the paragraph about Afferent Connections per Class in the article:
Measures the connectivity of a class. If a class Ci
access a method or attribute of a class Cj
, consider Ci
a client of the supplier class Cj
, denoting Ci => Cj
. Consider the follow function:
client(Ci, Cj) = 1, if (Ci => Cj) and (Ci != Cj)
client(Ci, Cj) = 0, otherwise.
So ACC(Cj) = (sum(client(Ci, Cj)), i = 1 to N)
, where N
is the total number of system classes. If the value of this metric is large, a change in the class has substantially more side effects, making maintenance more difficult.