This paper presents eye2vec, an infrastructure for analyzing software developers' eye movements while reading source code. In common eye-tracking studies in program comprehension, researchers must preselect analysis targets such as control flow or syntactic elements, and then develop analysis methods to extract appropriate metrics from the fixation for source code. Here, researchers can define various levels of AOIs like words, lines, or code blocks, and the difference leads to different results. Moreover, the interpretation of fixation for word/line can vary across the purposes of the analyses. Hence, the eye-tracking analysis is a difficult task that depends on the time-consuming manual work of the researchers. eye2vec represents continuous two fixations as transitions between syntactic elements using distributed representations. The distributed representation facilitates the adoption of diverse data analysis methods with rich semantic interpretations.
- ID Articolo: 2510.11722
- Titolo: eye2vec: Learning Distributed Representations of Eye Movement for Program Comprehension Analysis
- Autori: Haruhiko Yoshioka, Kazumasa Shimari, Hidetake Uwano, Kenichi Matsumoto
- Classificazione: cs.SE (Ingegneria del Software)
- Data di Pubblicazione/Conferenza: ETRA '25 (2025 Symposium on Eye Tracking Research and Applications), 26–29 maggio 2025, Tokyo, Giappone
- Link Articolo: https://arxiv.org/abs/2510.11722
Questo articolo propone eye2vec, un'infrastruttura per l'analisi del comportamento dei movimenti oculari degli sviluppatori di software durante la lettura del codice sorgente. Nella ricerca tradizionale sul tracciamento oculare per la comprensione dei programmi, i ricercatori devono preselezionare gli obiettivi di analisi (come il flusso di controllo o gli elementi sintattici), quindi sviluppare metodi di analisi per estrarre metriche appropriate dai punti di fissazione del codice sorgente. I ricercatori possono definire aree di interesse (AOI) a diversi livelli, come parole, righe o blocchi di codice, e queste differenze portano a risultati diversi. Inoltre, l'interpretazione dei punti di fissazione di parole/righe varia a seconda dello scopo dell'analisi. Pertanto, l'analisi del tracciamento oculare è un compito difficile che dipende dal lavoro manuale dispendioso in termini di tempo dei ricercatori. eye2vec utilizza rappresentazioni distribuite per rappresentare i due punti di fissazione consecutivi come transizioni tra elementi sintattici. Le rappresentazioni distribuite facilitano l'adozione di diversi metodi di analisi dei dati, con interpretazioni semantiche ricche.
L'analisi tradizionale del tracciamento oculare nella ricerca sulla comprensione dei programmi affronta diverse sfide critiche:
- Problema della Preselection dell'Obiettivo di Analisi: I ricercatori devono determinare in anticipo gli elementi sintattici o il flusso di controllo specifici da analizzare, una scelta che dipende fortemente dall'esperienza del ricercatore
- Soggettività nella Definizione dell'AOI: Diverse definizioni di aree di interesse (a livello di parola, riga, blocco di codice) portano a risultati di analisi diversi
- Limitazioni dell'Analisi Semantica Singola: La ricerca esistente si concentra tipicamente su un unico significato, rendendo difficile l'analisi simultanea di più livelli semantici
- Inefficienza dell'Analisi Manuale: I metodi tradizionali richiedono un ampio intervento manuale e consumo di tempo
La comprensione dei modelli di movimento oculare degli sviluppatori è importante per:
- Estrarre i modelli di comprensione e le strategie degli sviluppatori esperti
- Migliorare l'efficienza dello sviluppo
- Migliorare l'educazione degli sviluppatori
- Ottimizzare la progettazione della leggibilità del codice
Ad esempio, nel compito di riepilogo dei metodi, gli sviluppatori esperti tendono a generare riepiloghi basati sulle righe di codice lette più frequentemente.
- Dipendenza dall'Esperienza del Ricercatore: La scelta del metodo di analisi ha una forte soggettività
- Mancanza di Informazioni Semantiche: La mappatura tradizionale basata su coordinate o numeri di riga manca di comprensione semantica
- Difficoltà nell'Analisi Multidimensionale: Difficile considerare simultaneamente elementi sintattici e significato strutturale
- Basso Grado di Automazione: Richiede una notevole ingegneria delle caratteristiche manuale
- Proposta dell'Infrastruttura eye2vec: Il primo framework che combina i dati del tracciamento oculare con rappresentazioni distribuite del codice sorgente
- Implementazione dell'Analisi dei Movimenti Oculari a Livello Semantico: Attraverso la mappatura degli elementi sintattici piuttosto che la mappatura delle coordinate, supporta interpretazioni semantiche multilivello
- Supporto dell'Analisi Multidimensionale Automatizzata: Utilizza rappresentazioni distribuite per catturare molteplici aspetti semantici, supportando metodi di apprendimento automatico e apprendimento profondo
- Fornitura di Due Scenari Applicativi Chiave: Supporto per l'analisi dell'estrazione dati e previsione di etichette basata su apprendimento automatico
Input: Dati di coordinate dei movimenti oculari quando gli sviluppatori leggono il codice sorgente e il codice sorgente corrispondente
Output: Vettori distribuiti che rappresentano le caratteristiche dei movimenti oculari (eye vector)
Obiettivo: Convertire i dati dei movimenti oculari basati su coordinate in rappresentazioni distribuite con significato semantico
eye2vec contiene i seguenti moduli principali:
- Funzione: Converte le coordinate registrate dal tracciatore oculare nei numeri di riga e colonna nel codice sorgente
- Implementazione: Utilizza lo strumento iTrace per la mappatura da coordinate a posizioni di codice
- Funzione: Estrae i contesti di percorso dal codice sorgente
- Meccanismo: I contesti di percorso si riferiscono ai percorsi tra due parole sull'albero della sintassi astratta (AST)
- Output: Contesti di percorso e i corrispondenti vettori di embedding pre-addestrati
- Funzione: Associa i numeri di riga e colonna ai contesti di percorso
- Elaborazione: Converte i dati del tracciamento oculare in vettori di contesti di percorso e conteggi di fissazione
- Innovazione: Converte i conteggi di fissazione in proporzioni, riflettendo le caratteristiche dello sviluppatore
- Funzione: Aggrega vettori e conteggi di fissazione per generare il vettore oculare finale
- Meccanismo di Ponderazione: Applica pesi ai vettori di embedding in base alla frequenza di fissazione
- Output: Rappresentazione distribuita finale che rappresenta le caratteristiche dei movimenti oculari
- Innovazione: Transizione dalla mappatura delle coordinate alla mappatura degli elementi sintattici
- Vantaggi: Capacità di interpretare modelli di movimento oculare in strutture di codice complesse (cicli, rami)
- Meccanismo: Ponderazione dei vettori di contesto di percorso in base alla frequenza di fissazione
- Effetto: Evidenzia le relazioni semantiche importanti su cui si concentra lo sviluppatore
- Capacità: Supporta simultaneamente l'analisi semantica di alto livello (strategie di comprensione) e l'analisi di basso livello (tracciamento delle operazioni sulle variabili)
- Implementazione: Integra le relazioni di molteplici contesti di percorso attraverso rappresentazioni distribuite
- Dati del Tracciamento Oculare: Coordinate dei punti di fissazione quando gli sviluppatori leggono il codice sorgente
- Codice Sorgente: File di programma sorgente corrispondenti
- Vincoli: La versione attuale accetta solo input di dati del tracciamento oculare, non associati a informazioni personali
- Coordinate dei movimenti oculari → Posizioni di riga e colonna del codice
- Codice sorgente → Contesti di percorso AST
- Associazione di informazioni di posizione con contesti di percorso
- Generazione di rappresentazioni distribuite ponderate
- Capacità: Supporta l'analisi esplorativa dell'estrazione dati
- Vantaggi: Fornisce informazioni semantiche più ricche rispetto all'analisi tradizionale basata su coordinate
- Applicazione: Investigare il significato potenziale delle tendenze nei gruppi di elementi sintattici semanticamente simili
- Compito: Previsione delle caratteristiche dello sviluppatore basata sui dati del tracciamento oculare
- Obiettivi di Previsione:
- Livello di competenza dello sviluppatore in un linguaggio specifico
- Livello di comprensione del programma
- Applicazione Educativa: Fornire supporto didattico adattivo per singoli sviluppatori
- Somiglianza dello Spazio Vettoriale: Capacità di misurare la somiglianza tra modelli di comprensione
- Grado di Automazione: Supporta l'analisi automatica di tecniche di apprendimento automatico e apprendimento profondo
- Analisi Multidimensionale: Considera simultaneamente molteplici livelli semantici
- Abid et al. (2019): Analisi del tracciamento oculare nel compito di riepilogo dei metodi, scoprendo che gli esperti generano riepiloghi basati su righe lette frequentemente
- Lin et al. (2016): Tracciamento dei processi cognitivi durante il debug dei programmi
- Sharafi et al. (2022): Ricerca sulle strategie di navigazione del codice degli sviluppatori
- code2vec (Alon et al. 2019): Metodo di apprendimento di rappresentazioni distribuite del codice
- iTrace (Guarnera et al. 2018): Infrastruttura di tracciamento oculare negli ambienti di sviluppo
- Comprensione Semantica: Supera la mappatura tradizionale delle coordinate, fornendo analisi a livello semantico
- Automazione: Riduce la dipendenza dall'esperienza del ricercatore
- Multidimensionalità: Supporta l'analisi simultanea di molteplici livelli semantici
- eye2vec implementa con successo la rappresentazione distribuita a livello semantico dei dati del tracciamento oculare
- Il metodo supporta l'analisi semantica multidimensionale automatizzata
- Fornisce una nuova infrastruttura e paradigma di analisi per la ricerca sul tracciamento oculare
- Vincoli sulla Privacy: La versione attuale accetta solo dati del tracciamento oculare, non associati a informazioni personali
- Dipendenza da Modelli Pre-addestrati: Richiede modelli di rappresentazione del codice pre-addestrati come code2vec
- Verifica Insufficiente: Manca la verifica empirica su larga scala e il confronto sistematico con i metodi tradizionali
- Sviluppo di Strumenti Applicativi: Costruzione di strumenti di applicazione di apprendimento automatico e apprendimento profondo basati su eye2vec
- Estrazione Automatica di Modelli: Supporto ai ricercatori nell'estrazione efficiente di modelli di comprensione utili
- Espansione degli Scenari Applicativi: Esplorazione di più applicazioni nei compiti di comprensione dei programmi
- Cambio di Paradigma: Transizione importante dalla mappatura delle coordinate alla mappatura semantica
- Fusione Tecnica: Combinazione ingegnosa del tracciamento oculare e dell'apprendimento di rappresentazioni del codice
- Miglioramento dell'Automazione: Riduzione significativa della necessità di intervento manuale
- Analisi Multilivello: Supporta simultaneamente l'analisi semantica di alto e basso livello
- Rappresentazione Distribuita: Introduce metodi moderni di apprendimento di rappresentazioni all'analisi del tracciamento oculare
- Scalabilità: Fornisce un'infrastruttura di base generica per la ricerca successiva
- Applicazione Educativa: Supporta l'educazione personalizzata degli sviluppatori
- Miglioramento dell'Efficienza: L'analisi automatizzata riduce i costi di ricerca
- Standardizzazione: Fornisce un framework di analisi unificato
- Mancanza di Esperimenti Comparativi: Nessun confronto sistematico delle prestazioni con i metodi tradizionali
- Dati di Verifica Limitati: Mancanza di verifica su set di dati su larga scala
- Mancanza di Quantificazione degli Effetti: Nessun dato specifico di miglioramento delle prestazioni
- Mancanza di Impostazioni dei Parametri: Nessuna spiegazione dettagliata dei parametri chiave
- Mancanza di Analisi della Complessità: Nessuna analisi della complessità computazionale e dell'efficienza
- Robustezza Sconosciuta: L'adattabilità a diversi tipi di codice non è stata verificata
- Vincoli sulla Privacy: La progettazione attuale limita alcuni scenari applicativi
- Forte Dipendenza: Dipendenza da molteplici strumenti esterni e modelli pre-addestrati
- Capacità di Generalizzazione Sconosciuta: Le prestazioni su diversi linguaggi di programmazione non sono state verificate
- Nuova Direzione di Ricerca: Apre nuovi percorsi per la ricerca sul tracciamento oculare
- Innovazione Metodologica: Fornisce un framework di analisi riutilizzabile
- Fusione Interdisciplinare: Collega l'ingegneria del software e le scienze cognitive
- Sviluppo di Strumenti: Fornisce una base per lo sviluppo di strumenti correlati
- Stabilimento di Standard: Potrebbe diventare un metodo standard nel settore
- Applicazione Industriale: Prospettive di applicazione nella formazione degli sviluppatori e nell'ottimizzazione del codice
- Ricerca sulla Comprensione dei Programmi: Fornisce nuovi strumenti per la ricerca sui processi cognitivi
- Analisi del Comportamento degli Sviluppatori: Supporta la ricerca su larga scala sul comportamento degli sviluppatori
- Ricerca Educativa: Valutazione e ottimizzazione dell'efficacia dell'educazione alla programmazione
- Ottimizzazione dell'IDE: Miglioramento dell'esperienza utente degli ambienti di sviluppo integrati
- Revisione del Codice: Supporto alla valutazione della leggibilità del codice
- Sistemi di Formazione: Valutazione delle competenze degli sviluppatori e formazione personalizzata
- Alon et al. (2019): Code2Vec: Learning Distributed Representations of Code - Fornisce la base tecnica per le rappresentazioni distribuite del codice
- Guarnera et al. (2018): ITrace: Eye Tracking Infrastructure for Development Environments - Fornisce il supporto tecnico per il tracciamento oculare
- Abid et al. (2019): Developer reading behavior while summarizing Java methods - Dimostra il valore applicativo dell'analisi del tracciamento oculare nella comprensione dei programmi
- Lin et al. (2016): Tracciamento dei processi cognitivi nel debug dei programmi
- Sharafi et al. (2022): Ricerca sulle strategie di navigazione del codice degli sviluppatori
Valutazione Complessiva: Questo è un articolo infrastrutturale innovativo che propone un nuovo metodo che combina i dati del tracciamento oculare con rappresentazioni semantiche del codice. Sebbene la verifica sperimentale necessiti di ulteriori sviluppi, l'innovazione tecnica e il potenziale applicativo meritano attenzione. Il metodo fornisce un nuovo percorso tecnico per la ricerca sul tracciamento oculare nella comprensione dei programmi, con prospettive di promuovere lo sviluppo dei settori correlati.