Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Designite and its Sibling Tools for Software Engineering Research

Designite and its Sibling Tools for Software Engineering Research

This presentation provides an overview of Designite and its sibling tools (such as DesigniteJava, CodeSplit, and QScored) and their features. The focus of the presentation is to elaborate on the ways these tools can be used in software engineering research.

Tushar Sharma

May 30, 2022
Tweet

More Decks by Tushar Sharma

Other Decks in Research

Transcript

  1. Designite and its Sibling Tools for Software Engineering Research Tushar

    Sharma https://tusharma.in CSER Spring 2022 meeting
  2. Overview • What are Designite, DesigniteJava, QScored … • How

    these tools can be used in SE research • How I used these tools in my research
  3. Dr. Tushar Sharma Assistant professor at Dalhousie University, Canada PhD

    • Athens University of Economics and Business, Greece Industry experience • Siemens Research (7 + 2) Books • Refactoring for software design smells Tools/platforms • Designite • QScored
  4. CodeSplit • CodeSplitJava splits Java projects by putting classes and

    methods into separate files. • Useful in ML4SE applications java -jar CodeSplitJava.jar -i <path of the input source folder> -o <path of the output folder> -m <mode>
  5. An open platform Allows users to upload their projects’ analysis

    reports Language agnostic comprehensive visualization Detailed visualization for many code quality aspects Quality ranking Computes quality score and relative quality ranking for all projects in its corpus REST APIs APIs to upload projects’ quality reports and search QScored corpus based on quality parameters Quality badges Allows users to show their projects’ ranking and score to the world https://qscored.com/
  6. QScored dataset The dataset contains • Detected code smells (7

    kinds of architecture, 20 design, and 11 implementation smells) • 10 project-level, 2 package-level, 12 class-level, and 3 method-level code quality metrics • Historical trend of relative ranking of the repositories.
  7. Explored characteristics - Frequency - Smell density and project size

    - Smell correlation - Smell colocation - Causality
  8. Explored characteristics - Frequency - Smell density and project size

    - Smell correlation - Smell colocation - Causality Research questions C# C# C# Analyze smells
  9. Explored characteristics - Smell detection using deep learning without feature

    engineering - Smell detection using transfer learning
  10. 10-90 20-80 30-70 40-60 50-50 60-40 Java 10.0 45.7 80.0

    94.4 97.3 100.0 C# 20.8 65.9 90.3 96.7 97.8 100.0 0.0 20.0 40.0 60.0 80.0 100.0 Projects (in percent) Pareto categories
  11. Potential research applications Empirical research • Smells (implementation, design, or

    architecture) as one of the dimensions • Code quality metrics Smell detection extensions • IDE integrations (e.g., impact of showing smells in the IDEs on code quality) ML4SE • Identifying smells using ML techniques • Active learning
  12. Potential research applications Repository selection • QScored supports repository selection

    based on the code quality of the open-source repositories (among its own corpus) • APIs to perform parameterized search • Get top 100 Java repositories where lines of code is more than 50,000
  13. Impacting research community by tools • Software quality assessment tools

    for C# and Java • Free academic license • Used by 135+ universities worldwide (full list) • Extensively used by SE researchers • 120+ stars on GitHub • An open platform for code quality ranking and visualization. • Hosts quality data of 100+ K GitHub repositories (> 1 billion LOC) • Available for research community as dataset https://qscored.com https://designite-tools.com
  14. Relevant links Designite (website) - https://www.designite-tools.com/ DesigniteJava (GitHub) - https://github.com/tushartushar/DesigniteJava

    Smell catalog - http://www.tusharma.in/smells/ Designite plugin for IntelliJ - https://plugins.jetbrains.com/plugin/13380-designitejava QScored (website) – https://qscored.com/ CodeSplit for Java - https://github.com/tushartushar/CodeSplitJava
  15. Thank you!! [email protected] Software engineering Machine learning Code smell Technical

    debt Refactoring Code quality Binary symbol reconstruction SE4ML ML4SE SMART lab Dalhousie University https://web.cs.dal.ca/~tushar/smart/