Slide 1

Slide 1 text

Designite and its Sibling Tools for Software Engineering Research Tushar Sharma https://tusharma.in CSER Spring 2022 meeting

Slide 2

Slide 2 text

Overview • What are Designite, DesigniteJava, QScored … • How these tools can be used in SE research • How I used these tools in my research

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Smells: Types http://www.tusharma.in/smells/

Slide 6

Slide 6 text

A survey on software smells https://www.sciencedirect.com/science/article/abs/pii/S0164121217303114

Slide 7

Slide 7 text

Demo http://www.designite-tools.com What is Designite?

Slide 8

Slide 8 text

Designite is a software design quality assessment tool for C# and Java. Free academic licenses.

Slide 9

Slide 9 text

DesigniteJava Designite (C#)

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

Console application – C# version Relevant for large scale empirical studies

Slide 12

Slide 12 text

DesigniteJava Tool also generate CSV files for large- scale analysis

Slide 13

Slide 13 text

DesigniteJava plugin for IntelliJ

Slide 14

Slide 14 text

CodeSplit • CodeSplitJava splits Java projects by putting classes and methods into separate files. • Useful in ML4SE applications java -jar CodeSplitJava.jar -i -o -m

Slide 15

Slide 15 text

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/

Slide 16

Slide 16 text

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.

Slide 17

Slide 17 text

Using Designite toolset in research projects

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

Explored characteristics - Frequency - Smell density and project size - Smell correlation - Smell colocation - Causality Research questions C# C# C# Analyze smells

Slide 20

Slide 20 text

Explored characteristics - Smell detection using deep learning without feature engineering - Smell detection using transfer learning

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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/