Skip to content

A platform dedicated to the study of software quality. Research clean code like never before, and learn how to develop more maintainable, reliable, and secure software.

License

Notifications You must be signed in to change notification settings

Clean-CaDET/platform

Repository files navigation

Cover

Clean CaDET

CodeFactor Gitter

The Clean Code and Design Educational Tool (Clean CaDET) is a platform dedicated to the study of clean code. It presents a conglomerate of AI-powered tools for educators, learners, practitioners, and researchers studying clean code.

Clean CaDET started as a project funded by the Science Fund of the Republic of Serbia. It hopes to grow into an active open-source community dedicated to software engineers' growth and their pursuit to build sustainable, high-quality software.

Introduction

The vision and high-level idea behind Clean CaDET is described in the overview video.

What is the problem?

There is a lot of flexibility when crafting software solutions, especially those at a higher level of abstraction. Software engineers have a vast pool of tools and technologies to choose from when assembling contemporary software. This flexibility has an interesting consequence – a requirement can be fulfilled by a near-infinite set of different code configurations. Even when limited to a single programming language and a simple requirement, it is easy to list many code samples that fulfill the requirement using different coding styles and language features.

While many code solutions can fulfill a requirement, not all of them are acceptable. Some solutions cause subtle bugs, performance loss, or expose security vulnerabilities. Furthermore, many of the possible solutions present another severe but less obvious problem in the form of code smells. Code suffering from sever code smells is hard to understand and modify. Such code harms the software’s maintainability, evolvability, reliability, and testability, introducing technical debt. Unfortunately, removing code smells is not easy, as many code smell definitions are vague and lack a concrete heuristic that can unambiguously determine the smell’s presence.

Who is it for?

Practitioners

Through its primary feature set, Clean CaDET detects code smells through AI models. It then offers personalized suggestions to the user in the form of educational content to help them resolve the identified issues. It acts as a digital assistant for software engineering practitioners, which integrates into their development environment to analyze their code.

  • For more details regarding the code quality analysis workflow, useful for practitioners, check out the wiki pages.

Learners and educators

A significant module of Clean CaDET is its Tutor. It hosts the learner's model, a collection of learning objects, and instructional rules that select the most appropriate educational content for the particular learner. This functionality is integrated into the code quality analysis workflow, and it can be accessed as a standalone educational tool. By directly interacting with the Tutor, learners can explore various clean code topics and engage with the challenge subsystem to learn how to refactor and analyze code quality in a gamified environment.

  • For more details regarding the Tutor module, useful for learners and educators, check out the module's page.

Researchers

While developing AI algorithms for code smell detection, we processed existing datasets and built our own. To automate the process of dataset construction and analysis, we developed the Dataset Explorer tool.

  • For more details regarding the Dataset Explorer module, useful for researchers, check out the module's page

Team

Our project team consists of professors and teaching assistants from the Faculty of Technical Sciences, Novi Sad, Serbia. We are part of the Chair of Informatics, an organizational unit that has traditionally been the local center of excellence for both artificial intelligence and software engineering research.

  • The people that make up the Clean CaDET Core are listed here.

About

A platform dedicated to the study of software quality. Research clean code like never before, and learn how to develop more maintainable, reliable, and secure software.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages