KEYWORD |
Telecommunication Networks Group
Tesi al Politecnico
Strumenti e tecniche per rilevare il plagio nel codice
Parole chiave ANALISI DEL TESTO, LINGUAGGI DI PROGRAMMAZIONE, PROPRIETA' INTELLETTUALE
Riferimenti RENATO FERRERO, PAOLO GIACCONE, ENRICO MASALA
Gruppi di ricerca DAUIN - GR-05 - ELECTRONIC CAD & RELIABILITY GROUP - CAD, DAUIN - GR-11 - INTERNET MEDIA GROUP - IMG, Telecommunication Networks Group
Tipo tesi RICERCA E SVILUPPO
Descrizione Il plagio del codice si riferisce all'atto di copiare o riutilizzare il codice di un'altra persona senza autorizzazione appropriata o senza dare credito all'autore originale. È considerato una violazione dell'etica informatica e può comportare conseguenze legali e disciplinari. Oltre alla copia diretta, il plagio riguarda anche la riscrittura parziale: il codice originale è riscritto e riorganizzato in modo da sembrare diverso, ma mantenendo ancora un'ampia parte dell'idea o della logica dietro l'originale.
Esistono software specializzati progettati per rilevare il plagio del codice. Questi strumenti utilizzano tecniche differenti per confrontare i codici sorgente e identificare somiglianze:
- Confronto di stringhe: le stringhe di testo all'interno del codice sorgente sono confrontate per individuare corrispondenze esatte o parziali.
- Tokenization: il codice sorgente è scomposto in token, come parole chiave, operatori e identificatori. Le sequenze di token vengono quindi confrontate per individuare somiglianze.
- Analisi delle dipendenze: le dipendenze tra moduli, funzioni o classi nel codice sono esaminate per individuare similitudini strutturali.
- Fingerprinting: sono generate "impronte digitali" univoche per porzioni di codice e queste impronte digitali sono confrontate per individuare corrispondenze.
- Reti neurali: le caratteristiche del codice possono essere apprese da una rete neurale, che poi è in grado di riconoscere somiglianze con altri codici sorgenti.
L’attività di tesi proposta riguarda innanzitutto l’analisi di vantaggi e svantaggi delle tecniche di rilevazione del plagio presenti allo stato dell’arte, con l’obiettivo di individuare quale combinazione di approcci sia in grado di fornire i risultati più accurati nella rilevazione del plagio del codice.
Inoltre, il lavoro di tesi riguarderà l’analisi dei linguaggi di programmazione correntemente supportati dai software antiplagio. I linguaggi più comuni nello sviluppo di applicazioni desktop e di sistema (ad esempio Python, Java, C, C++) sono sicuramente gestiti dai software antiplagio, ma il supporto può mancare per linguaggi più specifici, come Matlab, Javascript/JSX e assembly. In questo contesto, l’obiettivo della tesi è capire quali fra i software antiplagio open source si prestino meglio ad essere modificati per estendere l’insieme dei linguaggi supportati.
Conoscenze richieste capacità di programmazione, elaborazione del linguaggio naturale, analisi dei dati
Scadenza validita proposta 24/04/2025
PROPONI LA TUA CANDIDATURA