Spelling suggestions: "subject:"códigofonte"" "subject:"códigosfonte""
1 |
Visualizing defects in source codeAlmeida, João Pedro Rodrigues de January 2012 (has links)
Trabalho de investigação desenvolvido na Cranfield University. School of Engineering / Tese de mestrado integrado. Engenharia Informática e Computação. Faculdade de Engenharia. Universidade do Porto. 2012
|
2 |
Investigação sobre uso de vocabulário de código fonte para identificação de especialistas. / Research on the use of source code vocabulary to identify specialists.SANTOS, Katyusco de Farias. 08 May 2018 (has links)
Submitted by Johnny Rodrigues (johnnyrodrigues@ufcg.edu.br) on 2018-05-08T16:28:56Z
No. of bitstreams: 1
KATYUSCO DE FARIAS SANTOS - DISSERTAÇÃO PPGCC 2015..pdf: 6449694 bytes, checksum: 9e1346ec6a91417520be4a04624afaa1 (MD5) / Made available in DSpace on 2018-05-08T16:28:56Z (GMT). No. of bitstreams: 1
KATYUSCO DE FARIAS SANTOS - DISSERTAÇÃO PPGCC 2015..pdf: 6449694 bytes, checksum: 9e1346ec6a91417520be4a04624afaa1 (MD5)
Previous issue date: 2015-02-28 / Identificadores e comentários de um código fonte constituem o vocabulário de software.
Pesquisas apontam vocabulários como uma fonte valorosa de informação sobre o projeto. Para entender a natureza e o potencial dos vocabulários, desenvolvemos um ferramental
capaz de extraí-los a partir de código fonte. Explorando os dados estatisticamente, identificamos duas propriedades de vocabulários: tamanho, expresso como função de potência de LOC (Lines-Of-Code); e a repetição de seus termos, que se ajusta a uma distribuição log-normal. Vocabulários, bem como suas propriedades e operações foram formalizadas baseadas no conceito de multisets. O ferramental de extração e a formalização viabilizaram cooperações científicas sobre a utilidade de vocabulário sem atividades de manutenção. Esse conhecimento acumulado revelou que vocabulário pouco foi explorado como insumo à modelagem de conhecimento de código. Desenvolvemos então uma abordagem para identificar especialistas de código cujo conhecimento é definido pela similaridade existente entre vocabulários das entidades e dos desenvolvedores. Comparamos a precisão e cobertura da nossa abordagem com de duas outras: baseada em commits e baseada em percentual de LOC modificadas. Os resultados apontam que para indicar um único especialista, top-1, a nossa abordagem tem uma precisão menor, entre 29.9% e 10% que as abordagens de baseline. Já para indicar mais de um desenvolvedor especialista, até top-3, a nossa abordagem tem uma acurácia melhor de até 18.7% em relação as de baseline. Identificamos também que o conhecimento definido por similaridade quando combinado com um modelo baseado em autoria aumenta a capacidade de identificar especialistas, no R2 do modelo, em mais de 4 pontos percentuais. Concluímos que além de poder ser utilizado de forma isolada para modelar conhecimento de código e assim identificar especialistas, o vocabulário pode ser um componente adicional a modelos de conhecimento baseados em autoria e propriedade, já que capturam aspectos diferentes dos existentes nesse modelos. / Identifiers and comments from a source code are the software vocabulary. Research point
vocabularies as a valuable source of information about the project. To understand we developed a tool that extract them from source code. Exploring the data statistically, we identify two vocabularies properties: vocabulary size, that is a power function of LOC (Lines-Of-Code) and the repetition of vocabulary terms that fits alog-normal distribution. Vocabulary as well as their properties and operations were formalized based on the concept of multisets. Extraction tool and formalization made possible scientific cooperation on usage of vocabulary in maintenance activities. This accumulated knowledge has shown that vocabulary was not explored as an input to code knowledge. Then we developed a code experts identification approach whose knowledge is defined by existing similarity between entities and developers vocabularies. We compared precision and recall with two baseline approaches: based on commits and based on percentage of modified LOC.The results show that to indicate a single specialist, top-1, our approach has alower precision, between 29.9% and 10%,than baseline approaches. More than one specialist-developer, up to top-3, our approach has better accuracy of up to 18.7% over those of the baselines. We also identify that the knowledge defined by similarity when combined with an authorship model enhances the ability to identify experts, R2 of the model, by more than 4 points. We conclude that vocabulary can be solely used to expertise, and thus identify experts. In addition, vocabulary can be an additional component for models based on authorship and ownership, since it captures different aspects from ones existing in these models.
|
3 |
Kalibro: interpretação de métricas de código-fonte / Kalibro: source code metrics interpretationOliveira Filho, Carlos Morais de 07 August 2013 (has links)
Métricas de código-fonte não são novidade, mas ainda não têm sido bem exploradas no desenvolvimento de software. A maioria das ferramentas de métricas mostra valores numéricos isolados, que não são fáceis de entender porque a interpretação deles depende do contexto da implementação. Esta dissertação apresenta o software livre Kalibro Metrics, que foi desenvolvido com o objetivo de melhorar a legibilidade de métricas de código-fonte. Kalibro, ao contrário das outras ferramentas, permite que o próprio usuário crie configurações de intervalos associados a avaliações qualitativas, incluindo comentários e recomendações. Usando essas configurações, o Kalibro mostra resultados de métricas de modo amigável, ajudando: arquitetos de software a detectar falhas de projeto; gerentes de projetos a controlar a qualidade de código-fonte; usuários de software e pesquisadores a comparar características específicas do código-fonte de vários projetos. Essas configurações podem ser compartilhadas e utilizadas para intermediar discussões voltadas à evolução de critérios de avaliação baseados em métricas de código-fonte. / Source code metrics are not new, but they have not yet been fully explored in software development. Most metric tools show isolated numeric values, which are not easy to understand because their interpretation depends on the implementation context. This dissertation presents the free software Kalibro Metrics, which was developed to improve readability of source code metrics. Kalibro, unlike the current tools, allows the user himself to create configurations of thresholds associated with qualitative evaluation, including comments and recommendations. Using these configurations, Kalibro shows metric results in a friendly way, helping: software architects to spot design flaws; project managers to control source code quality; software users and researchers to compare specific source code characteristics across software projects. These configurations can be shared and used to mediate discussions focused on the evolution of assessment criteria based on source code metrics.
|
4 |
Ranking source code static analysis warnings for continuous monitoring of free/libre/open source software repositories / Ranqueamento de avisos de análise estática de código fonte para monitoramento de repositórios de software livreRibeiro, Athos Coimbra 22 June 2018 (has links)
While there is a wide variety of both open source and proprietary source code static analyzers available in the market, each of them usually performs better in a small set of problems, making it hard to choose one single tool to rely on when examining a program. Combining the analysis of different tools may reduce the number of false negatives, but yields a corresponding increase in the number of false positives (which is already high for many tools). An interesting solution, then, is to filter these results to identify the issues least likely to be false positives. This work presents kiskadee, a system to support the usage of static analysis during software development by providing carefully ranked static analysis reports. First, it runs multiple static analyzers on the source code. Then, using a classification model, the potential bugs detected by the static analyzers are ranked based on their importance, with critical flaws ranked first, and potential false positives ranked last. To train kiskadee\'s classification model, we post-analyze the reports generated by three tools on synthetic test cases provided by the US National Institute of Standards and Technology. To make our technique as general as possible, we limit our data to the reports themselves, excluding other information such as change histories or code metrics. The features extracted from these reports are used to train a set of decision trees using AdaBoost to create a stronger classifier, achieving 0.8 classification accuracy (the combined false positive rate from the used tools was 0.61). Finally, we use this classifier to rank static analyzer alarms based on the probability of a given alarm being an actual bug. Our experimental results show that, on average, when inspecting warnings ranked by kiskadee, one hits 5.2 times less false positives before each bug than when using a randomly sorted warning list. / Embora exista grande variedade de analisadores estáticos de código-fonte disponíveis no mercado, tanto com licenças proprietárias, quanto com licenças livres, cada uma dessas ferramentas mostra melhor desempenho em um pequeno conjunto de problemas distinto, dificultando a escolha de uma única ferramenta de análise estática para analisar um programa. A combinação das análises de diferentes ferramentas pode reduzir o número de falsos negativos, mas gera um aumento no número de falsos positivos (que já é alto para muitas dessas ferramentas). Uma solução interessante é filtrar esses resultados para identificar os problemas com menores probabilidades de serem falsos positivos. Este trabalho apresenta kiskadee, um sistema para promover o uso da análise estática de código fonte durante o ciclo de desenvolvimento de software provendo relatórios de análise estática ranqueados. Primeiramente, kiskadee roda diversos analisadores estáticos no código-fonte. Em seguida, utilizando um modelo de classificação, os potenciais bugs detectados pelos analisadores estáticos são ranqueados conforme sua importância, onde defeitos críticos são colocados no topo de uma lista, e potenciais falsos positivos, ao fim da mesma lista. Para treinar o modelo de classificação do kiskadee, realizamos uma pós-análise nos relatórios gerados por três analisadores estáticos ao analisarem casos de teste sintéticos disponibilizados pelo National Institute of Standards and Technology (NIST) dos Estados Unidos. Para tornar a técnica apresentada o mais genérica possível, limitamos nossos dados às informações contidas nos relatórios de análise estática das três ferramentas, não utilizando outras informações, como históricos de mudança ou métricas extraídas do código-fonte dos programas inspecionados. As características extraídas desses relatórios foram utilizadas para treinar um conjunto de árvores de decisão utilizando o algoritmo AdaBoost para gerar um classificador mais forte, atingindo uma acurácia de classificação de 0,8 (a taxa de falsos positivos das ferramentas utilizadas foi de 0,61, quando combinadas). Finalmente, utilizamos esse classificador para ranquear os alarmes dos analisadores estáticos nos baseando na probabilidade de um dado alarme ser de fato um bug no código-fonte. Resultados experimentais mostram que, em média, quando inspecionando alarmes ranqueados pelo kiskadee, encontram-se 5,2 vezes menos falsos positivos antes de se encontrar cada bug quando a mesma inspeção é realizada para uma lista ordenada de forma aleatória.
|
5 |
Kalibro: interpretação de métricas de código-fonte / Kalibro: source code metrics interpretationCarlos Morais de Oliveira Filho 07 August 2013 (has links)
Métricas de código-fonte não são novidade, mas ainda não têm sido bem exploradas no desenvolvimento de software. A maioria das ferramentas de métricas mostra valores numéricos isolados, que não são fáceis de entender porque a interpretação deles depende do contexto da implementação. Esta dissertação apresenta o software livre Kalibro Metrics, que foi desenvolvido com o objetivo de melhorar a legibilidade de métricas de código-fonte. Kalibro, ao contrário das outras ferramentas, permite que o próprio usuário crie configurações de intervalos associados a avaliações qualitativas, incluindo comentários e recomendações. Usando essas configurações, o Kalibro mostra resultados de métricas de modo amigável, ajudando: arquitetos de software a detectar falhas de projeto; gerentes de projetos a controlar a qualidade de código-fonte; usuários de software e pesquisadores a comparar características específicas do código-fonte de vários projetos. Essas configurações podem ser compartilhadas e utilizadas para intermediar discussões voltadas à evolução de critérios de avaliação baseados em métricas de código-fonte. / Source code metrics are not new, but they have not yet been fully explored in software development. Most metric tools show isolated numeric values, which are not easy to understand because their interpretation depends on the implementation context. This dissertation presents the free software Kalibro Metrics, which was developed to improve readability of source code metrics. Kalibro, unlike the current tools, allows the user himself to create configurations of thresholds associated with qualitative evaluation, including comments and recommendations. Using these configurations, Kalibro shows metric results in a friendly way, helping: software architects to spot design flaws; project managers to control source code quality; software users and researchers to compare specific source code characteristics across software projects. These configurations can be shared and used to mediate discussions focused on the evolution of assessment criteria based on source code metrics.
|
6 |
Ranking source code static analysis warnings for continuous monitoring of free/libre/open source software repositories / Ranqueamento de avisos de análise estática de código fonte para monitoramento de repositórios de software livreAthos Coimbra Ribeiro 22 June 2018 (has links)
While there is a wide variety of both open source and proprietary source code static analyzers available in the market, each of them usually performs better in a small set of problems, making it hard to choose one single tool to rely on when examining a program. Combining the analysis of different tools may reduce the number of false negatives, but yields a corresponding increase in the number of false positives (which is already high for many tools). An interesting solution, then, is to filter these results to identify the issues least likely to be false positives. This work presents kiskadee, a system to support the usage of static analysis during software development by providing carefully ranked static analysis reports. First, it runs multiple static analyzers on the source code. Then, using a classification model, the potential bugs detected by the static analyzers are ranked based on their importance, with critical flaws ranked first, and potential false positives ranked last. To train kiskadee\'s classification model, we post-analyze the reports generated by three tools on synthetic test cases provided by the US National Institute of Standards and Technology. To make our technique as general as possible, we limit our data to the reports themselves, excluding other information such as change histories or code metrics. The features extracted from these reports are used to train a set of decision trees using AdaBoost to create a stronger classifier, achieving 0.8 classification accuracy (the combined false positive rate from the used tools was 0.61). Finally, we use this classifier to rank static analyzer alarms based on the probability of a given alarm being an actual bug. Our experimental results show that, on average, when inspecting warnings ranked by kiskadee, one hits 5.2 times less false positives before each bug than when using a randomly sorted warning list. / Embora exista grande variedade de analisadores estáticos de código-fonte disponíveis no mercado, tanto com licenças proprietárias, quanto com licenças livres, cada uma dessas ferramentas mostra melhor desempenho em um pequeno conjunto de problemas distinto, dificultando a escolha de uma única ferramenta de análise estática para analisar um programa. A combinação das análises de diferentes ferramentas pode reduzir o número de falsos negativos, mas gera um aumento no número de falsos positivos (que já é alto para muitas dessas ferramentas). Uma solução interessante é filtrar esses resultados para identificar os problemas com menores probabilidades de serem falsos positivos. Este trabalho apresenta kiskadee, um sistema para promover o uso da análise estática de código fonte durante o ciclo de desenvolvimento de software provendo relatórios de análise estática ranqueados. Primeiramente, kiskadee roda diversos analisadores estáticos no código-fonte. Em seguida, utilizando um modelo de classificação, os potenciais bugs detectados pelos analisadores estáticos são ranqueados conforme sua importância, onde defeitos críticos são colocados no topo de uma lista, e potenciais falsos positivos, ao fim da mesma lista. Para treinar o modelo de classificação do kiskadee, realizamos uma pós-análise nos relatórios gerados por três analisadores estáticos ao analisarem casos de teste sintéticos disponibilizados pelo National Institute of Standards and Technology (NIST) dos Estados Unidos. Para tornar a técnica apresentada o mais genérica possível, limitamos nossos dados às informações contidas nos relatórios de análise estática das três ferramentas, não utilizando outras informações, como históricos de mudança ou métricas extraídas do código-fonte dos programas inspecionados. As características extraídas desses relatórios foram utilizadas para treinar um conjunto de árvores de decisão utilizando o algoritmo AdaBoost para gerar um classificador mais forte, atingindo uma acurácia de classificação de 0,8 (a taxa de falsos positivos das ferramentas utilizadas foi de 0,61, quando combinadas). Finalmente, utilizamos esse classificador para ranquear os alarmes dos analisadores estáticos nos baseando na probabilidade de um dado alarme ser de fato um bug no código-fonte. Resultados experimentais mostram que, em média, quando inspecionando alarmes ranqueados pelo kiskadee, encontram-se 5,2 vezes menos falsos positivos antes de se encontrar cada bug quando a mesma inspeção é realizada para uma lista ordenada de forma aleatória.
|
7 |
Monitoramento de métricas de código-fonte em projetos de software livre / Source code metrics tracking on free and open source projectsMeirelles, Paulo Roberto Miranda 20 May 2013 (has links)
Nesta tese de doutorado, apresentamos uma abordagem para a observação das métricas de código-fonte, estudando-as através de suas distribuições e associações, além de discutir as relações de causalidade e implicações práticas-gerenciais para monitoramento das mesmas. Em nossos estudos avaliamos a distribuição e correlações dos valores das métricas de 38 projetos de software livre, dentre os com mais contribuidores ativos em seus repositórios. Para tal, coletamos e analisamos os valores para cada métrica em mais de 344.872 classes e módulos dos projetos avaliados. Complementarmente, para mostrarmos a utilidade do monitoramento de métricas, descrevemos uma extensão e adaptação do modelo de causalidade do conceito de atratividade de projetos de software livre, que indica uma relação estatística entre os valores das métricas de código-fonte e a quantidade de downloads, contribuidores e atualizações (commits) nos repositórios dos projetos. Para isso, realizamos estudos empíricos com milhares de projetos de software livre. Do ponto de vista prático, também contribuímos com um conjunto de ferramentas inovador para a automação da avaliação de projetos de software livre, com ênfase nos estudos e na seleção de métricas, o que permite a análise de código-fonte de acordo com a percepção de qualidade das comunidades de software livre. Entre as principais contribuições desta tese está uma análise detalhada, em relação ao comportamento, valores e estudos de caso, de 15 métricas de código-fonte, o que representa um avanço em comparação a literatura relacionada ao ampliar o número de métricas avaliadas e propor uma abordagem que visa diminuir as contradições das análises das métricas. / In this Ph.D dissertation we present an approach about source code metrics tracking. We have researched source code metrics distributions and associations to discuss their causality and management-practices implications. Our studies have assessed distributions and correlations of source code metric values on 38 free software projects, which have a lot of activated contributors in their repositories. We have collected and analyzed metrics from 344,872 classes and modules of about 38 free software projects. Additionally, to show how it is useful to track source code metrics, we have extended the model of free software attractiveness to include source code metrics. Our technical attractiveness model indicates a statistical relationship between source code metrics and number of downloads, contributors, and commits in the analyzed free software repositories. For that, we have conducted empirical studies with 8,450 free software projects. From a practical point of view, we have contributed with a set of innovative tools for automated evaluation of free software projects. Our tool allow the analyses of source code metrics that mirror quality perceptions from the free software communities point of view.
|
8 |
Monitoramento de métricas de código-fonte em projetos de software livre / Source code metrics tracking on free and open source projectsPaulo Roberto Miranda Meirelles 20 May 2013 (has links)
Nesta tese de doutorado, apresentamos uma abordagem para a observação das métricas de código-fonte, estudando-as através de suas distribuições e associações, além de discutir as relações de causalidade e implicações práticas-gerenciais para monitoramento das mesmas. Em nossos estudos avaliamos a distribuição e correlações dos valores das métricas de 38 projetos de software livre, dentre os com mais contribuidores ativos em seus repositórios. Para tal, coletamos e analisamos os valores para cada métrica em mais de 344.872 classes e módulos dos projetos avaliados. Complementarmente, para mostrarmos a utilidade do monitoramento de métricas, descrevemos uma extensão e adaptação do modelo de causalidade do conceito de atratividade de projetos de software livre, que indica uma relação estatística entre os valores das métricas de código-fonte e a quantidade de downloads, contribuidores e atualizações (commits) nos repositórios dos projetos. Para isso, realizamos estudos empíricos com milhares de projetos de software livre. Do ponto de vista prático, também contribuímos com um conjunto de ferramentas inovador para a automação da avaliação de projetos de software livre, com ênfase nos estudos e na seleção de métricas, o que permite a análise de código-fonte de acordo com a percepção de qualidade das comunidades de software livre. Entre as principais contribuições desta tese está uma análise detalhada, em relação ao comportamento, valores e estudos de caso, de 15 métricas de código-fonte, o que representa um avanço em comparação a literatura relacionada ao ampliar o número de métricas avaliadas e propor uma abordagem que visa diminuir as contradições das análises das métricas. / In this Ph.D dissertation we present an approach about source code metrics tracking. We have researched source code metrics distributions and associations to discuss their causality and management-practices implications. Our studies have assessed distributions and correlations of source code metric values on 38 free software projects, which have a lot of activated contributors in their repositories. We have collected and analyzed metrics from 344,872 classes and modules of about 38 free software projects. Additionally, to show how it is useful to track source code metrics, we have extended the model of free software attractiveness to include source code metrics. Our technical attractiveness model indicates a statistical relationship between source code metrics and number of downloads, contributors, and commits in the analyzed free software repositories. For that, we have conducted empirical studies with 8,450 free software projects. From a practical point of view, we have contributed with a set of innovative tools for automated evaluation of free software projects. Our tool allow the analyses of source code metrics that mirror quality perceptions from the free software communities point of view.
|
9 |
Uma abordagem unificada para especificar e checar restrições em múltiplas linguagens de programação por meio de um analisador estático no contexto de um juiz on-lineSantos, Kleber Tarcísio Oliveira 28 February 2018 (has links)
The teaching and learning process of computer programming is a complex task which requires
a lot of practice and creativity. Usually, there are numerous solutions to the same problem.
Therefore, the student needs that his solutions are evaluated quickly for a faster and effective
learning. To face these challenges, teachers and students can rely on resources from the evolution
of Information and Communication Technology. Virtual learning environments and online judge
systems are attractive alternatives used in this context. This work presents a unified approach
to specify and check source code restrictions supported by a static analyzer. Although current
tools are able to indicate if the program produced the expected output from a given input, not
all are able to determine if the student used (or not) a given programming language construct,
such as creating a function and using it in the program. Among those that are capable, there are
problems that were solved in the approach proposed in this work, such as: ease of use, unified
approach and degree of flexibility. In addition, this work presents an analysis of the database of
The Huxley with the purpose of discovering the main restrictions of source code used by the
teachers and attended by the students. This analysis was done based on data obtained from the
use of the developed static analyzer and in conjunction with a survey applied to the teachers of
introduction to programming with the purpose of knowing the main restrictions that would be
used by them if they had a tool to specify and check restrictions. / O processo de ensino e aprendizagem da programação de computadores é uma tarefa complexa
que requer bastante prática e criatividade. Geralmente há inúmeras soluções para um mesmo
problema. Por isso, o aluno precisa que suas soluções sejam avaliadas rapidamente visando um
aprendizado mais ágil e eficaz. Para enfrentar esses desafios, os professores e alunos podem
contar com recursos provenientes da evolução da Tecnologia da Informação e Comunicação.
Os ambientes de aprendizagem virtual e os sistemas de juiz on-line são alternativas atrativas
utilizadas nesse contexto. Este trabalho apresenta uma abordagem unificada de especificação
e checagem de restrições de código-fonte apoiada por um analisador estático. Apesar das
ferramentas atuais serem capazes de indicar se o programa produziu a saída esperada a partir
de uma entrada fornecida, nem todas são capazes de determinar se o aluno utilizou (ou não)
determinada construção de linguagem de programação, como por exemplo criar uma função
e utilizá-la no programa. Entre as que são capazes, existem problemas que foram sanados na
abordagem proposta neste trabalho, como: facilidade de uso, abordagem unificada e grau de
flexibilidade. Além disto, este trabalho conta com uma análise da base de dados do The Huxley
com o objetivo de descobrir quais são as principais restrições de código-fonte utilizadas pelos
professores e atendidas pelos alunos. Esta análise foi feita com os dados obtidos da aplicação do
analisador estático de código-fonte desenvolvido e em conjunto com um survey aplicado aos
professores de introdução à programação com o propósito de conhecer as principais restrições
que seriam utilizadas por eles se possuíssem uma ferramenta de especificação e checagem de
restrições. / São Cristóvão, SE
|
10 |
Pride: uma ferramenta de detecção de similaridade em código-fonte / Pride: a tool for detecting similarity in source codeAlmeida, Diogo Cabral de 31 March 2015 (has links)
Plagiarism among students of introductory programming courses has been increasing over time. The ease of exchange of information brought by the Internet can be the factor responsible for this increase. In many cases, students try to disguise the plagiarism making some modifications to the source code. However, some masking techniques are extremely complex to be detected and may not be seen with the naked eye. In this dissertation, detection techniques were analyzed and, on this basis, was developed a system able to detect plagiarism in source code. This system is based on the representation code as an abstract syntax tree and Karp-Rabin Greedy String Tiling algorithm. The system was evaluated using a source-code base of students of programming disciplines. Oracle based comparison was performed to compare the system with others. The oracle was created from the manual analysis of the teacher of the subject, which was marked if there was plagiarism or not in each pair of source code. To represent the results, ROC curves and confusion matrices were used. The same procedure was applied to existing systems, allowing direct comparison of results. More specifically, we use the value of the area under the curve and the minimum distance to point (0, 1) of the ROC space, since these figures represent the classification performance. The analysis of results shows that, for the sample used, the developed system obtained higher area under the curve and also the shortest distance to the point (0, 1) of the space ROC. However, we find that the choice of similarity detection tool in source code will depend on conservative or liberal profile of teaching. / O plágio entre alunos de disciplinas introdutórias de programação vem aumentando ao longo do tempo. A facilidade na troca de informações trazida pela Internet pode ser um dos fatores responsáveis por esse aumento. Em muitos casos, os alunos tentam disfarçar o plágio fazendo algumas modificações no código-fonte. Porém, algumas técnicas de disfarce são extremamente complexas e podem não ser detectadas a olho nu. Neste trabalho, foram analisadas as técnicas de detecção e, com base nelas, foi desenvolvido um sistema capaz de detectar plágio em código-fonte. Este sistema é baseado na representação do código como uma árvore sintática abstrata e no algoritmo Karp-Rabin Greedy String Tiling. O sistema foi avaliado utilizando uma base de códigos-fonte de alunos de disciplinas programação. Foi realizada uma comparação baseada em oráculo para comparar o sistema com os demais. O oráculo foi criado a partir da análise do docente da disciplina, onde foi marcado se havia plágio ou não em cada par de código-fonte. Para representar os resultados, foram utilizadas curvas ROC e matrizes de confusão. O mesmo procedimento foi aplicado aos sistemas já existentes, o que permitiu a comparação direta entre os resultados. Mais especificamente, utilizamos o valor da área sob a curva e a distância mínima para o ponto (0, 1) do espaço ROC, uma vez que esses valores representam o desempenho de classificação. A análise dos resultados indica que, para a amostra utilizada, o sistema desenvolvido obteve o maior valor da área sob a curva e também a menor distância para o ponto (0, 1) do espaço ROC. No entanto, concluímos que a escolha de uma ferramenta de detecção de similaridade em código-fonte dependerá bastante do perfil conservador ou liberal do docente.
|
Page generated in 0.0543 seconds