VisminerTD Overview

VisminerTD is a tool that aims to support the activities of identification and monitoring of TD using software visualization resources. VisminerTD implements a new TD identification strategy by combining information extracted from software metrics and source code comments, monitoring the evolution of TD items through different versions of the software.

VisminerTD uses software metrics, duplicated code occurrences, style problems, ASA issues and code comments to find TD indicators. The combined analysis of TD indicators allows development teams to identify more precisely TD items in the source code, calling their attention to specific parts of the project. Once a TD item is detected, VisminerTD allows the user to follow the evolution of that item and its indicators over the project life cycle. Its visual metaphors support the monitoring of the evolution of TD items through the versions of a software, identifying when they incur, and if their indicators are increasing or if they are being paid off.

VisminerTD Views

  • TDAnalyzer

    TDAnalyzer View allows the identification of TD items. It uses code smells, software metrics, style problems in Java code, ASA issues, source code comments, among others as debt indicator information. The TDAnalyzer shows all TD items detected in a software. The TDAnalyzer also has a detail-on-demand view where the user can analyze detailed information of a TD item.

  • TDEvolution

    TDEvolution View allows the understanding of how software is evolving over time regarding identified TD items. Using this view, the user can visualize differences between two selected versions, and identify when positive or negative changes occur, and whether they affect the project evolution or not. TDEvolution uses a differential absolute strategy, which compares two versions of software at a time.

  • TDManagement

    TDManagement View is a module also responsible for assisting in TD monitoring. The TD items are presented using the Kanban concept with three panels (TO DO, DOING and DONE). Each TD type of the file, identified by the type and name of the file, is represented as a card. In this view, the user can visualize the TD items of the project that had their debt types marked "To Do", "Doing" or "Done" in TDAnalyzer.

Main Features

VisminerTD is an open source web tool that has multiple visual perspectives and different visual strategies of analysis to support development teams in activities of identifying and monitoring the evolution of TD items. VisminerTD runs on top of RepositoryMiner (RM). The RM is responsible for extraction of metrics and comments from source code repositories.


The main RM and VisminerTD features are:

  • 19 Software Metrics
  • Code Comment Analysis
  • 7 Code Smells
  • Duplicated Code Detection
  • 9 Technical Debts
  • Mining local (e.g. projects stored on GIT) and remote software repositories (e.g. issues and milestones stored on github.com);

  • Calculating 19 software metrics: AMW, ATFD, CYCLO, FDP, LAA, LOC, LVAR, MAXNESTING, MLOC, NOA, NOAM, NOAV, NOM, NOPA, NProtM, PAR, TCC, WMC, and WOC;

  • Detecting seven types of code smells: brain class, brain method, conditional complexity, data class, feature envy, god class, and long method;

  • Detecting duplicate code using the Copy / Paste Detector (CPD) functionality of the PMD tool (PMD, 2018);

  • Detecting possible defects in Java projects through static code analysis using the FindBugs tool (FindBugs, 2018);

  • Detecting style problems in Java code using the CheckStyle tool (CheckStyle, 2018);

  • Detecting comments in Java code that contain some indication of the existence of TD items using the eXcomment tool;

  • Detecting nine TD types: architecture, build, code, design, defect, documentation, requirements, people and test;

Publications

  • Mendes T. S., David P. Gonçalves; Gomes F., Spínola R.; Novais R., Mendonça M., VisminerTD: Uma Ferramenta para Identificação Automática e Monitoramento Interativo de Dívida Técnica, V Workshop de Visualização de Software, Evolução e Manutenção / VIII Congresso Brasileiro de Software, 2017.

  • Gomes F., Mendes T. S., Carvalho L., Spínola R.; Novais R., Mendonça M., RepositoryMiner – uma ferramenta extensível de mineração de repositórios de software para identificação automática de Dívida Técnica, Congresso Brasileiro de Software: Teoria e Prática (CBSoft), Salão de Ferramentas, 2017.

  • Alves, Nicolli S.R.; Mendes, Thiago S.; De Mendonça, Manoel G.; Spínola, Rodrigo O.; Shull, Forest; Seaman, Carolyn. Identification and management of technical debt: A systematic mapping study. Information and Software Technology, v. 70, p. 100-121, 2016.

  • Mendes T.S., Soraes H., Farias Mário, Mendonça Manoel, Kalinowski Marcos, Spínola Rodrigo. Impacts of Agile Requirements Documentation Debt on Software Projects: A Retrospective Study. 31st Annual ACM Symposium on Applied Computing, Pisa, Italy, 2016.

  • Mendes, T. S.; Almeida, D.; Alves, N.S.R; Spínola, R.O.; Novais, R.L.; Mendonça, M. Visminer – An Open Source Tool to Support the Monitoring of the Technical Debt Evolution using Software Visualization. In: 17th International Conference on Enterprise Information Systems (ICEIS), 2015, Barcelona.

  • Carvalho, L. P. S.; Novais, R. ; Mendonca Neto, M. G. . VisMinerService? A REST Web Service for Source Mining. In: http://vem2015.dcc.ufla.br/, 2015, Belo Horizonte. CBSOFT-VEM2015, 2015.

  • Alves, N.S.R.; Ribeiro, L.F.; Caires, V.; Mendes, T.S.; Spínola, R.O. Towards an Ontology of Terms on Technical Debt. In the Sixth International Workshop on Managing Technical Debt, Victoria, British Columbia. 2014.

  • Mendes, T. S.; Identification and Management of Technical Debt using Software Visualization Resources, ICSE 2017 PhD and Young Researchers Warm Up Symposium, Maceió, 2014.

  • Mendes, T. S.; Identificação e Gerenciamento da Dívida técnica na Evolução e Manutenção de Software Utilizando Recursos de Visualização de software, The First Latin-American School on Software Engineering: Basics and State-of-the-Art, Rio de Janeiro, 2013.