Tools

I love tools - as a user and as a deverloper, especially the tools that concern software quality. On this page, I lists the tools that either I developed from scratch or made a major contribution.

Follow @tushartushar

1. Designite

Designite is a software design quality assessment tool for C# and Java. It offers various features to help identify issues contributing to technical debt and improve the design quality of the analyzed software system.

Designite

Key features

  • Detects 7 architecture smells
  • Detects 20 design smells
  • Detects 11 implementation smells
  • Computes various OO code metrics
  • Provides smell trend analysis of Git repositories
  • Many visualization aids including (smell) treemap, and (smell) sunburst
  • Detects code duplication
  • Allows customization of analysis

Visit the tool's website for more details. Software engineering researchers may request a free fully-functional Academic license of this tool.

Rohit Tiwari also contributed to this tool (specifically, in code clone detector and SonarQube plug-in components).

Relevant publications

2. DesigniteJava

DesigniteJava is a code quality assessment tool for code written in Java. It detects numerous architecture, design, and implementation smells that show maintainability issues present in the analyzed code. It also computes many commonly used object-oriented metrics. It helps you reduce technical debt and improve maintainability of your software. We offer two editions-Enterprise and Community.

Visit the tool's page for more details.

Visit GitHub repository
Star Fork

Antonis Gkortzis, Theodore Stassinopoulos, and Alexandra Chaniotakis also have contributed to the Community edition of the tool.

Relevant publications

3. QScored

QScored is an open platform for code quality ranking and visualization. The key features offered by the platform are summarized below.

  1. An open platform: QScored is an open and free platform that provides code quality information for a large number of open-source repositories (more than 12,000 at the time of writing this text and increasing) analyzed from existing tools. Moreover, you may upload code quality analysis report of your projects to the platform to determine a quality score and a relative quality ranking.
  2. Quality ranking: QScored computes a quality score and a relative quality rank for all of its hosted projects based on the detected smells at different granularities.
  3. Language-agnostic code quality visualization: QScored offers a detailed code quality visualization that includes a dependency graph among components, smells distribution among projects' components by their types and their location, and code quality metrics view for the entire project. Furthermore, the platform publishes the XML template that provides a common information exchange format so that the analysis report of other tools, apart from that are used by QScored presently, complying to the template can also be uploaded to the platform.
  4. REST APIs: The platform offers a set of REST APIs to upload code analysis reports as well as to search a set of projects based on various parameters.
  5. Quality badges: Software development teams may utilize the quality badges indicating quality score and rank of their project and put it within their repository web-page.

QScored has been discontinued from Jan 2023.

Relevant publications

4. Puppeteer

Puppeteer is a design configuration smell detection tool for Puppet code. It detects 11 design configuration smells.

It is an open-source tool; you may access the code via GitHub repo page. My colleague at AUEB Marios Fragkoulis also contributed to this tool.

You may find more details about the catalog of configuration smells here.

Relevant publications

  • Tushar Sharma, Marios Fragkoulis, and Diomidis Spinellis. 2016. Does your configuration code smell?. In Proceedings of the 13th International Conference on Mining Software Repositories (MSR '16).

5. Augur

Augur is a Change Impact Analysis tool written in C# and realized as a Visual Studio extension. It infers semantic and environment dependencies along with data and control dependencies among source code entities across six granularities. Additionally, Augur understands Change Impact Query Language, a novel query language that we proposed in the below paper for impact analysis, to support inter-granular CIA queries with batch querying feature.

This tool is developed when I was in Siemens (Corporate Research, Bangalore). My colleague at Siemens Elroy DSilva and a few interns, Kishan Kesavan and Amit Patil, also contributed to this tool.

Relevant publications

6. DbDeo

DbDeo is a tool that detects smells in database code. Currently, it detects 10 database schema smells.

It is an open-source tool; you may access the code via GitHub repo page. My colleague at AUEB Marios Fragkoulis also contributed to this tool.

Relevant publications

  • Tushar Sharma, Marios Fragkoulis, Stamatia Rizou, Magiel Bruntink, and Diomidis Spinellis. 2018. Smelly relations: measuring and understanding database schema quality. In Proceedings of the 40th International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP '18). ACM, New York, NY, USA, 55-64. DOI: https://doi.org/10.1145/3183519.3183529

7. SlideQ

SlideQ is a presentation smell detection tool realized as a plug-in for Microsoft Powerpoint. It detects 8 presentation smells.

It is an open-source tool; you may access the code via Github repo page. Rohit Tiwari made a major contribution to this tool.

If you are wondering about presentation smells, here is my attempt to document them in the form of a catalog.