Please use this identifier to cite or link to this item:
http://repositorio.ufc.br/handle/riufc/44452
Type: | Tese |
Title: | O código por trás do código-fonte: mudança de representação para a análise de similaridade |
Authors: | França, Allyson Bonetti |
Advisor: | Soares, José Marques |
Co-advisor: | Barroso, Giovanni Cordeiro |
Keywords: | Teleinformática;Plágio - Identificação;Imagens digitais;Similarity between source codes;Plagiarism detection;Similarity investigation tool;Method of conformity |
Issue Date: | 21-Jan-2019 |
Citation: | FRANÇA, A. B. O código por trás do código-fonte: mudança de representação para a análise de similaridade. 2019. 99 f. Tese (Doutorado em Engenharia de Teleinformática)-Centro de Tecnologia, Universidade Federal do Ceará, Fortaleza, 2019. |
Abstract in Brazilian Portuguese: | A similaridade identificada entre códigos-fonte enviados por alunos em disciplinas de programação é frequentemente utilizada como indicativo de plágio por professores e/ou sistemas de submissão automatizados. Dentre as técnicas de se medir a similaridade, inclui-se o uso de estruturas sintáticas e de padrões léxicos. Apesar da ampla quantidade de ferramentas disponíveis que se utilizam dessa técnica, poucas são capazes de identificar a similaridade, de maneira eficaz, o que se deve à complexidade inerente a esse tipo de análise. Uma limitação dessa técnica é a sensibilidade às modificações na organização de caracteres e símbolos, mesmo quando sutis, e suas disposições ao longo das expressões. Investiga-se neste trabalho a similaridade entre códigos pré-processados, de maneira a remover os aspectos irrelevantes da codificação, bem como, ressaltar as suas características relevantes. As contribuições apresentadas inserem-se na ação do pré-processamento, que resulta em uma recodificação, e na transformação com mudança no domínio da representação: o código por trás do código- fonte. Tais contribuições visam mitigar a complexidade decorrente da análise do código através do uso de estruturas sintáticas e de padrões léxicos. Na perspectiva da recodificação, são realizados e analisados ajustes invasivos nas estruturas do código original que, mesmo em caso de modificações propositais pelo desenvolvedor, preservam características dificilmente comprometidas ou corrompidas. Essa análise é feita com o algoritmo Sherlock N-Overlap e com dois tipos de pré-processamento – denominados normalizações –, sendo que uma destas é proposta neste trabalho. Na perspectiva da transformação foi realizada a representação dos códigos-fonte por meio de imagens digitais. Para isso, foi desenvolvido o I-Sim, que traduz a organização das estruturas do programa em arranjos visuais, permitindo identificar a similaridade entre códigos-fonte. Foram realizados experimentos com 84 códigos-fonte propositalmente modificados e uma base composta por 2160 códigos criados por estudantes de cursos de engenharia em aulas de programação. No último conjunto, a situação de eventuais modificações propositais não é conhecida a priori, usando-se um método específico para cálculo relativo da precisão e da revocação com base em um conjunto de oráculos. Os resultados apresentados mostram que, na maioria dos casos, os índices de similaridade das soluções desenvolvidas se mostram superiores ao SIM, ao JPlag e ao MOSS, ferramentas utilizadas como referência pela literatura. |
Abstract: | The similarity identified between source codes sent by students in programming disciplines is often used as indicative of plagiarism by teachers and / or automated submission systems.Among the techniques of measuring similarity, we include the use of syntactic structures and lexical patterns.Despite the large number of available tools that use this technique, few are able to identify the similarity, effectively, due to the inherent complexity of this type of analysis.One limitation of this technique is the sensitivity to the modifications in the organization of characters and symbols, even when subtle, and their dispositions along the expressions.We investigate the similarity between preprocessed codes in order to remove the irrelevant aspects of coding, as well as to highlight their relevant characteristics.The contributions presented are inserted in the preprocessing action, which results in a recoding, and in the transformation with change in the representation domain: the code behind the source code.These contributions aim to mitigate the complexity of code analysis through the use of syntactic structures and lexical patterns.In the perspective of recoding, invasive adjustments are made and analyzed in the structures of the original code that, even in the case of purposive modifications by the developer, preserve characteristics that are difficult to compromise or corrupt.This analysis is done with the Sherlock N-Overlap algorithm and two types of pre-processing, called normalizations.One of the normalizations is proposed in this work.In the perspective of the transformation, the representation of the source codes through digital images was performed.For this, I-Sim was developed, which translates the organization of the program's structures into visual arrangements that allow the identification of similarity between source codes.Experiments were conducted with 84 purposely modified source codes and a base composed of 2160 codes created by students of engineering courses in programming classes. In this last set, the situation of similarity was not previously known, so a method was used to calculate precision and recall, in a relative way, based on a set of reference tools, as a kind of oracle. The results show that, in most cases, the similarity indexes of the solutions developed are superior to reference tools inthe literature, such as SIM, JPlag and MOSS. |
URI: | http://www.repositorio.ufc.br/handle/riufc/44452 |
Appears in Collections: | DETE - Teses defendidas na UFC |
Files in This Item:
File | Description | Size | Format | |
---|---|---|---|---|
2019_tese_abfranca.pdf | 5,03 MB | Adobe PDF | View/Open |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.