Skip to content

nathan2m/complexity_tool

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Complexity Tool

This project is a research product developed at IF Sudeste MG since 2014. The main research goal is to study and develop techniques related to program structural complexity and assess their impact on unit tests. In particular, the software from this respository has the following features:

  • Plot the control flow graph of a method based on a given Java source code.
  • Calculate the cyclomatic complexity based on the plotted graph.
  • Calculate all independent paths in the graph, which should be tested by unit tests.
  • Check if the source code can be written with less cyclomatic complexity without compromising its functionality. We call this unnecessary cyclomatic complexity.
  • Plot a control flow graph representing the optimized source code without unnecessary cyclomatic complexity.
  • Generate an optimized version of the source code, without the unnecessary cyclomatic complexity, when applicable.
  • Generate unit tests templates based on this whole analysis.

People that directly contributted to the development of this project:

  • Marco Antônio Pereira Araújo (academic advisor, 2014-today)
  • Heleno de Souza Campos Junior (Lead developer and main investigator, 2014-today)
  • Nathan Manera Magalhães (Developer and investigator, 2016-today)
  • Gabriel Felix Vaneli (Developer, 2018-2018)
  • Luis Rogério Ventura Martins Filho (Developer, 2015-2016)
  • Alisson Fernandes do Prado (Developer, 2016-2016)

This research was financially supported by FAPEMIG, IF Sudeste MG and CNPq.

Publications related to this project:

How to compile

Clone the repository

git clone https://github.com/helenocampos/complexity_tool.git

Enter directory and compile with Maven

cd complexity_tool
mvn install

How to execute the GUI

Execute the jar with dependencies that is generated in the target folder or download the jar (or the .exe if you prefer) from the releases page.

Research group website (outdated)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%