The Connecta Platform
Connecta is a tool that allows gathering object-oriented software metrics; predicting change impact propagation, exploring the software networks, and comparing the structure of two versions of a software system. The tool performs such analyses on Java software systems.
Connecta was proposed by Kecia Ferreira, in her Master Thesis , and has been evolved by the same researcher, in her PhD Dissertation . Connecta is, now, an ongoing project whose aim is to provide a platform for measuring and analyzing data of software systems.
The tool has been used to allow research on software measurement, change propagation impact, and software evolution [3-6,8-10].
A description of the main features of Connecta is here.
A vídeo of Connecta is available here.
The metrics in the system level gathered by Connecta are the following:
Total classes: the total number of system classes. This type of evaluation allows you to check the evolution of the system in relation to the amount of existing classes.
Total connections: the number of total system connections. This type of evaluation allows you to check the evolution of the system in relation to the amount of existing connections.
COF (coupling factor): for the evaluation of coupling the concept of client-server between constituent classes of software. According to this concept, a class A is client of a server class B when A references at least one member of B, which is an instance member variable or method. A relationship between two classes corresponds to the existence of a connection between them. In a software system with n classes, the maximum possible number of connections is n² -n. The COF metric is given by the ratio between the total number of connections between the software classes and the maximum number of connections for software.
Stability: evaluates the stability of the system and of particular classes, considering the number of connections, the degree of coupling between the modules as well as the degree of internal cohesion of the modules. The idea of the calculation of this metric is to get for each pair of modules the probability of one be changed due to the change of the other. The calculation of probability considers the degree of cohesion of the modules involved and the degree of direct and indirect coupling between them.
K3B - Model prediction range of spread of contractual changes in object-oriented software: The model estimates the number of modification steps in a software system constituted by n modules in which, initially, ‘x’ of these modules will suffer modifications.
Metrics of classes are the following:
Component in the Little House are In, Out, Disconnected, Tubes, Tendrils and LSCC (largest strongly connected component), where:
· LSCC: is the largest component strongly connected to the software. In this component, from a class is possible to achieve any other class within LSCC. Thus, all classes within this component are directly or indirectly dependent on other classes of LSCC.
· In: classes belonging to this component may use any other software class, but they are not used by the classes that do not belonging in.
· Out: classes belonging to this component can be used for any other software class, but use only classes belonging to 'out'.
· Tendril: classes of this component use its own classes or out classes. In addition, a tendril class can be used only by classes of itself or belonging to tubes class or In class.
· Tubes: classes of this component use its own classes, out or tendril classes. In addition, a class of tubes can be used only by classes of itself or classes belonging to ‘In’.
· Disconnected: corresponds to the class that has no connection to another class in the software system.
DIT (Depth of Inheritance Tree): the depth of inheritance trees present in the structure of a software impacts on its connectivity, because the deeper an inheritance tree, the greater the number of connections involved in the hierarchy. Thus, faced with a high degree of software connectivity, the depth of the inheritance tree is an important aspect to be analyzed. DIT indicates the position of a class in the inheritance tree of which it is part. With DIT, It is possible to identify the deeper hierarchies and thus verify the need to restructure them.
Number of public attributes (#AP): is the number of public attributes defined in the class. This metric can be used to evaluate the evolution of the size class in terms of public attributes.
Number of public methods (#MP): the number of public methods defined in the class. This type of evaluation allows you to check the progress of the class relative to the amount of services provided by it.
LCOM (Lack of Cohesion in Methods): the internal cohesion of a class impacts on connectivity because classes with a low cohesion tend to perform more services. Thus, to reduce connectivity is important to identify the classes with low degree of cohesion in the system to be able to analyze the need to restructure them. LCOM is a useful metric in this regard, as it indicates a lack of cohesion between the methods of a class.
Impact of Change: expected of number of classes changed due to an alteration in the class.
COR - Responsibility Cohesion:  this metric is given by 1 / r, where r is the number of disjoint sets of methods in a class. Each of these sets consists of similar methods. Two methods are considered similar to use an attribute or a class method in common. For example, if there are two sets in the class, COR results in 0.5. This is an indication that the class has two responsibilities. When there is only one set in the class, COR results in 1, which is an indicator of high cohesion.
Undergraduate students that served in the Connecta Project
Talita Orfanó - 2015
Rafael Prates - 2014
Andréa Sá - 2013
Gabriel Calegari (Visoft , a tool integrated to Connecta in 2013) - 2012
Roberta Coeli - 2012
 K. A. M. Ferreira, Avaliação de conectividade em software orientado por objetos. Brazil: Master Thesis.Computer Science Department, Federal University of Minas Gerais, 2006.
 K. A. M. Ferreira, Um modelo de predição da amplitude de propagação de modificações contratuais em software orientado por objetos. Brazil: Doctoral Dissertation.Computer Science Department, Federal University of Minas Gerais, 2011.
 K. A. M. Ferreira, M. A. Bigonha, R. S. Bigonha, and B. M. Gomes, “Software evolution characterization - a complex network approach,” in X Brazilian Simposium on Software Quality - SBQS’2011, Curitiba, Paraná, Brazil, 2011, pp. 41–55.
 K. A. M. Ferreira, R. C. N. Moreira, and M. A. S. Bigonha, “Identificação de padrões de características estruturais em software orientado a objetos,” in Brazilian Symposium on Software Quality, 2012, pp. 1–15.
 K. A. M. Ferreira, R. C. N. Moreira, M. A. S. Bigonha, and R. S. Bigonha, “The evolving structures of software systems,” in Workshop on Emerging Trends in Software Metrics, 2012, pp. 161–170.
 K. A. M. Ferreira, R. C. N. Moreira, M. A. S. Bigonha, and R. S. Bigonha, “A generic macroscopic topology of software networks - a quantitative evaluation,” in Brazilian Symposium on Software Engineering, 2012, pp. 161–170.
 G. L. Calegari and K. A. M. Ferreira, “Visualização de software baseada no modelo Little House,” in Brazilian Symposium on Software Quality, 2014, pp. 1–15.
 G. L. Calegari. Uso de métricas de Redes Complexas na avaliação de qualidade de software orientado a objetos. Undergraduate Final Project. Federal Center for Technological Education of Minas Gerais, 2015.
 R. P. F. Trindade. A dança das classes: Análise do comportamento das classes na evolução de software. Undergraduate Final Project. Federal Center for Technological Education of Minas Gerais, 2015.
 M. M. Ferreira, K. A. M. Ferreira, and H. T. Marques-Neto, “Mapping the potential change impact in object-oriented software,” in 30th The 30th ACM/SIGAPP Symposium On Applied Computing (ACM-SAC’2015), 2015, pp. 1654–1656.