Giter VIP home page Giter VIP logo

complexity_tool's Introduction

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)

complexity_tool's People

Contributors

helenocampos avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.