Skip to content
Nikola Luburić edited this page May 26, 2021 · 10 revisions

Note: The wiki pages, along with the complete project, are under intensive research and development. Our team is exploring ideas and trying to determine feasible features that bring value to the broader community. Any feedback is more than welcome.

Clean CaDET

The Clean Code and Design Educational Tool is an artificial intelligence digital assistant that serves the programmer and helps them write higher quality code. As part of its primary use case, Clean CaDET examines the programmers code and determines if there are any code quality issues (e.g., code smells). For each discovered issue, the digital assistant selects educational content that can best help the programmer understand and resolve the issue, account for their learning style and preferences.

Use Case Overview

Clean CaDET consists of four high-level modules that enable different use cases, as illustrated below. Most of the listed use cases are under research and in early development. In its current form, this page describes our current vision and not working use cases.

A. Interactive Learning

As an educational tool, Clean CaDET aims to support several use cases for enhancing the user's coding skills. These include:

  1. Browsing a curated catalog of educational content related to code quality.
  2. Receiving personalized feedback and learning content based on user preferences and behavior.
  3. Participating in refactoring and code quality assessment challenges.

The Smart Tutor page describes the module in more detail.

B. Code Quality Analysis

As a code analysis tool, Clean CaDET aims to support code smell detection using various AI algorithms, from rule engines to machine learning models. Analyzing C# and Java code is the current focus. The primary data flow for this use case entails:

  1. Sending the code from an IDE (using a Clean CaDET Plugin) to the platform.
  2. Code Model processing:
    1. Transforming the C# code into an abstract CaDETModel.
    2. Sending the CaDETModel to the Smell Detector for AI-based analysis.
  3. Smell Detector processing:
    1. Applying the quality analysis algorithms and identifying issues.
    2. Sending the identified issues to the Smart Tutor for feedback selection.
  4. Smart Tutor processing:
    1. Selecting suitable educational content based on learner's profile and identified issues.
    2. Sending the educational content to the IDE Plugin, along with the identified issues.

C. AI Development

Through our study of code smells and AI-based code quality analysis, we are developing a set of tools to support our work. The Dataset Explorer helps us develop and query datasets of code quality issues.