Token-based Plagiarism Detection for Heterogenous Software Artefacts

Aus SDQ-Wiki
Ausschreibung (Liste aller Ausschreibungen)
Jplag-logo.png Typ Bachelorarbeit oder Masterarbeit
Aushang JPlag BA-MA Topic 08-2022.pdf
Betreuer Wenden Sie sich bei Interesse oder Fragen bitte an:

Timur Sağlam (E-Mail: saglam@kit.edu, Telefon: +49-721/608-47380)

Thema

Motivation

JPlag ist ein Werkzeug, welches Ähnlichkeiten zwischen Quelltextdateien findet, um Plagiate in einer Menge von Software-Programmen zu finden. JPlag vergleicht dabei nicht nur den Quelltext an sich, sondern ist sich der Syntax der Programmiersprache und damit der Programmstruktur bewusst. Daher ist JPlag robust gegen viele Plagiatsarten und deren Verschleierung. Unterstützt werden verschiedene Programmiersprachen wie zum Beispiel Java, C#, C/C++, Python, etc. JPlag wird international in Universitäten und Schulen eingesetzt. Darüber hinaus kann JPlag verwendet werden, um gestohlenen Quelltexte zu erkennen. Mehr Informationen zu JPlag finden sich im Wiki, welches Teil des Open-Source-Repositorys ist.

Aufgabenstellung

Für Programmieraufgaben gibt es viele Plagiatsdetektoren. Software besteht aber nicht nur aus Code, sondern auch aus anderen Artefakten, wie zum Beispiel Modelle. Für diese Artefakte gibt es aber wenige Ansätze zur Plagiatserkennung. JPlag erlaubt es prinzipiell allerdings auch andere Artefakte als Code zu tokenisieren. Ihre Aufgabe ist es, aufbauend auf einem initialen Sprachmodul für (Meta)Modelle, zu untersuchen, wie Plagiatserkennung für heterogene Software-Artefakte ermöglicht werden kann. Im Fokus könnten zum Beispiel UML-Modelle aber auch generische Formate wie XML stehen. Zudem soll evaluiert werden, wie gut JPlag für Modelle im Vergleich zu verwandten Ansätzen geeignet ist.

Kenntnisse

  • Benötigte Kenntnisse: Java, UML, Git.
  • Hilfreiche Kenntnisse: Metamodellierung mit EMF.

Wir bieten

  • Beitrag zu einem etablierten Open-Source-Projekt
  • Enger Bezug zum Entwicklungsprozess von JPlag
  • Intensive Betreuung durch das Entwicklerteam
  • Freiraum für individuelle Lösungsansätze
  • Möglichkeit zur Publikation der Ergebnisse

English Translation

Motivation

JPlag is a tool that finds similarities between source code files to find plagiarism in a set of software programs. JPlag not only compares the source code itself but is also aware of the syntax of the programming language and thus the program structure. Therefore, JPlag is robust against many types of plagiarism and their obfuscation. Various programming languages are supported, such as Java, C#, C/C++, Python, etc. JPlag is used internationally in universities and schools. However, it can also be used to detect stolen source code. More information on JPlag can be found in the wiki, which is part of the open-source repository.

Task

There are many plagiarism detectors for programming tasks. However, software consists not only of code but also of other artifacts, such as models. Yet, there are few approaches to plagiarism detection for these artifacts. In principle, JPlag allows the tokenization of artifacts other than code. Building on an initial language module for (meta)models, your task is to investigate how plagiarism detection can be enabled for heterogeneous software artifacts. The focus may be on UML models but also on generic formats such as XML. In addition, you will evaluate how well JPlag is suited for models compared to related approaches.

Skills

  • Required skills: Java, UML, Git.
  • Helpful skills: Metamodeling with EMF.

We offer

  • Contribution to an established open source project.
  • Close relation to the JPlag development process
  • Intensive supervision from the development team
  • Freedom for individual approaches to solutions
  • Possibility to publish the results