21 |
[en] A NEW APPROACH FOR MINING SOFTWARE REPOSITORIES USING SEMANTIC WEB TOOLS / [pt] UMA NOVA ABORDAGEM DE MINERAÇÃO DE REPOSITÓRIOS DE SOFTWARE UTILIZANDO FERRAMENTAS DA WEB SEMÂNTICAFERNANDO DE FREITAS SILVA 15 July 2015 (has links)
[pt] A Mineração de Repositórios de Software é um campo de pesquisa que extrai e analisa informações disponíveis em repositórios de software, como sistemas de controle de versão e gerenciadores de issues. Atualmente, diversos trabalhos nesta área de pesquisa têm utilizado as ferramentas da Web Semântica
durante o processo de extração a fim de superar algumas limitações que as abordagens tradicionais enfrentam. O objetivo deste trabalho é estender estas abordagens que utilizam a Web Semântica para minerar informações não consideradas atualmente. Uma destas informações é o relacionamento existente
entre as revisões do controle de versão e as mudanças que ocorrem no Abstract Syntax Trees dos arquivos modificados por essas revisões. Adicionalmente, esta nova abordagem também permite modelar a interdependência entre os projetos de software, suas licenças e extrair informações dos builds gerados por
ferramentas de integração contínua. A validação desta nova abordagem é demonstrada através de um conjunto de questões que são feitas por desenvolvedores e gerentes durante a execução de um projeto e que foram identificadas em vários trabalhos da literatura. Demonstramos como estas questões foram convertidas para consultas SPARQL e como este trabalho consegue responder às questões que não são respondidas ou são respondidas parcialmente em outras ferramentas. / [en] The Mining of Software Repositories is a field of research that extracts and analyzes information available in software repositories, such as version control systems and issue trackers. Currently, several research works in this area have used Semantic Web tools during the extraction process to overcome some limitations that traditional approaches face. The objective of this work is to extend the existing approaches that use Semantic Web tools to mine information not considered in these works. The objective of this work is to extend these
approaches using the Semantic Web to mine information not currently considered. One of these information is the relationship between revisions of version control and the changes that occur in the Abstract Syntax Trees of files modified by these revisions. Additionally, this new approach also allows modeling the interdependence of software projects, their licenses and extracting information from builds generated by continuous integration tools. The validation of this approach is demonstrated through a set of questions that are asked by developers and managers during the execution of a project and have been identified in various works in the literature. We show how these questions were translated into SPARQL queries and how this work can answer the questions that are not answered or are partially answered in other tools.
|
22 |
[en] TREG: A GAME FOR TRAINING IN REQUIREMENTS ENGINEERING / [es] TREG: UN JUEGO DE ENTRENAMIENTO EN INGENIERÍA DE REQUISITOS / [pt] TREG: UM JOGO PARA O TREINAMENTO EM ENGENHARIA DE REQUISITOSKATIA FABIOLA CANEPA VEGA 09 February 2017 (has links)
[pt] TREG é um jogo para o treinamento em Engenharia de Requisitos, especificamente na técnica de Workshops. Foi criado no Second Life, usando suas possibilidades de modelagem 3D e programação. Este trabalho apresenta uma experiência de exploração num processo de prototipação e técnicas para o desenvolvimento do jogo. O ciclo de desenvolvimento do TREG utiliza o processo de prototipação baseado no livro Effective Prototyping for Software Makers, que descreve um processo iterativo que foi customizado para a criação do jogo educacional neste mundo virtual. Branching Stories é um género de simulações que dá uma visão geral de todos os caminhos possíveis do jogador no TREG. A técnica de Cenários é utilizada para a especificação das simulações modeladas no gráfico de Branching Stories. O desenho do TREG utiliza especificações feitas usando a técnica de Cenários para a modelagem de diferentes perspectivas de software. As maquinas de Estados modelam o comportamento dinâmico dos elementos de software, o diagrama de classes representa os objetos criados no Second Life e o diagrama de comunicação mostra as relações e a passagem de mensagens entre os objetos. Além disso, este trabalho apresenta os resultados dos testes de usabilidade e as dificuldades apresentadas pelos participantes para a utilização desta ferramenta. / [en] TREG is a game for training in Requirements Engineering, specifically in the Workshops technique. It was created in Second Life using its building and scripting possibilities. This works presents an exploration in the use of a prototyping process and techniques for developing the game. The prototyping process of the book Effective Prototyping for Software Makers is an iterative process which was customized for the development of the game in this virtual world. Branching Stories is a simulation genre that gives an overview of all the possible paths the player can take in TREG. Scenario is a Requirements Engineering technique used for the specification of the simulations modeled in the Branching Stories graph. The design of TREG used the Scenarios specifications for modeling the software perspectives. The state machine diagrams shows the dynamic behavior of the TREG objects, a class diagram represents the objects created in Second Life and the communication diagrams shows the relationships and the flow of messages between objects. This work also shows the results of the evaluation made and the difficulties presented by the participants whereas TREG was used. / [es] TREG es un juego para el entrenamiento en Ingeniería de Requisitos específicamente en la técnica de Workshops. Fue creado en Second Life, usando las posibilidades de modelamiento 3D y programación en este ambiente. Este trabajo presenta una experiencia de exploración en un proceso de prototipación y técnicas para desarrollar el juego. El ciclo de desarrollo de TREG utiliza el proceso de prototipación basado en el libro Effective Prototyping for Software Makers, este es un proceso iterativo que fue personalizado para la creación del juego educacional en este mundo virtual. Branching Stories es un género de simulaciones que da una visión global de todos los caminos posibles del jugador en TREG. La técnica de Escenarios es usada para la especificación de las simulaciones modeladas en el grafo de Branching Stories. El diseno de TREG utiliza las especificaciones realizadas con la técnica de escenarios para modelar diversas perspectivas del software. Las Maquinas de Estados modelan el comportamiento dinámico de los elementos del software, el diagrama de clases representa los objetos creados en Second Life y el diagrama de comunicación muestra las relaciones y paso de mensajes entre los objetos. Además, este trabajo muestra los resultados de la evaluación realizada así como las dificultades presentadas por los participantes al utilizar esta herramienta.
|
23 |
[en] A HISTORY SENSITIVE APPROACH TO CODE ANOMALY DETECTION / [pt] UMA ABORDAGEM SENSÍVEL À HISTÓRIA PARA DETECÇÃO DE ANOMALIAS DE CÓDIGOLEANDRA MARA DA SILVA 30 March 2011 (has links)
[pt] A modularização do código pode influenciar diretamente a manutenibilidade
de sistemas de software. Por isso, pesquisadores têm proposto mecanismos
que visam contribuir com a identificação de potenciais anomalias de modularidade
no código. Nesse contexto, um mecanismo baseado em métricas que
vêm sendo bastante divulgado são as estratégias de detecção. Comumente,
elas são compostas por métricas que consideram apenas propriedades de
versões isoladas dos sistemas. Entretanto, estudos recentes relatam que tal
abordagem têm se apresentado contraproducente. Nossa pesquisa está relacionada
à investigação dos possíveis benefícios de se considerar informações
sobre a evolução do código na detecção de anomalias. Nesse contexto, este
trabalho propõe um conjunto de métricas e de estratégias de detecção que
consideram propriedades históricas do código em evolução. Além disso, uma
ferramenta de medição e avaliação para dar suporte à abordagem também
foi desenvolvida. Essa ferramenta permite a especificação declarativa de
diferentes estratégias de detecção através de uma linguagem específica de
domínio. Tal fato atende a necessidades particulares de desenvolvedores na
configuração de estratégias e disponinbiliza a pesquisadores um ambiente
propício à experimentação de estratégias de detecção. Ainda como contribuição desta pesquisa, é apresentada uma avaliação das estratégias em termos de precisão e revocação em dois sistemas de domínio diferentes.
Resultados de estratégias convencionais e sensíveis à história são comparados
em detecções de anomalias clássicas, tais como God Class, Divergent Change
e Shotgun Surgery em um total de 16 versões desses sistemas. Como resultado
desse estudo observou-se que a utilização de informações relacionadas
à evolução do código pode trazer importantes contribuições à detecção de
anomalias de código. / [en] The modularization of the code can directly influence the software maintainability.
Therefore, researchers have proposed mechanisms to contribute
to the identification of potential modularity anomalies in source code. In
this context, a mechanism based on metrics that have been widespread are
the detection strategies. Commonly, they are based on metrics that consider
only properties of isolated versions of the systems. However, recent studies
have reported that these strategies have been considered counter-productive.
Our research is related to the investigation of the possible benefits of considering
information about the code evolution to detect anomalies. In this
context, this paper proposes a set of metrics and detection strategies that
consider historic properties of the code evolution. Furthermore, a measuring
and assessing tool to support the approach was also developed. This tool allows
the declarative specifcation of different detection strategies through a
domain-specific language. This fact meets the particular needs of developers
in setting strategies and dispose to researchers an opportune environment to
detection strategies experimentations. Also as a contribution of this research
is presented an evaluation of strategies in terms of precision and recall in
two systems of different domains. Results of conventional strategies and of
history-sensitive strategies are compared in detections of classical modularity
flaws, such as God Class, Divergent Change and Shotgun Surgery in
a total of 16 versions of these systems. Results of this study showed that
the use of information related to the code evolution can provide important
contributions to detect design flaws in code.
|
24 |
[en] DECOMPOSITION IN MATHEMATICAL PROGRAMMING APPLIED TO COMPUTATIONAL GREEN NETWORKS / [pt] DECOMPOSIÇÃO EM PROGRAMAÇÃO MATEMÁTICA APLICADA A REDES COMPUTACIONAIS VERDESDEBORA ANDREA DE OLIVEIRA SANTOS 29 January 2016 (has links)
[pt] O crescente consumo de energia já se tornou uma preocupação mundial e atualmente mais de quarenta países estão envolvidos em pesquisas e programas para criar mecanismos para economizá-la. No presente trabalho é tratado o problema de Engenharia de Tráfego com base na energia (em inglês, energy-aware Traffic Engineering) aplicado ao backbone de uma rede IP que utiliza como protocolo de roteamento um SPF (Shortest Path First), como o OSPF (Open Shortest Path First), por exemplo. Na abordagem proposta
são considerados os problemas de desligamento de nós (roteadores) e circuitos, para a economia de energia; e da garantia de um nível de máxima utilização dos circuitos, para assegurar os requisitos de QoS. Para a resolução do problema de otimização, em lugar de adotarem-se métodos heurísticos, propõe-se o tratamento direto por meio de decomposição de Benders, segmentando um problema complicado e de elevada carga computacional em vários menores cuja resolução é mais simples e cuja convergência é mais
rápida. / [en] The growing energy consumption has already become a global concern and currently more than forty countries are involved in researches and programs in order to create mechanisms to save it. This work deals with the energy-aware Traffic Engineering problem applied to the backbone of an IP network in which the used routing protocol is a SPF (Shortest Path First) one, such as OSPF (Open Shortest Path First), for example. The proposed approach considers the problem of switching-off nodes (routers) and circuits, for energy saving; and it also considers the problem of ensuring a maximum utilization level by the circuits, towards to assure QoS requirements. In order to solve the optimization problem, rather than adopting heuristic methods, we propose the direct processing by means of Benders decomposition, crumbling a complicated and hard to solve problem into several smaller ones whose resolution is more simple and whose convergence is faster.
|
25 |
[pt] INSTRUMENTOS PSICOMÉTRICOS NA PESQUISA EM ENGENHARIA DE SOFTWARE SOBRE PERSONALIDADE / [en] ON PSYCHOMETRIC INSTRUMENTS IN SOFTWARE ENGINEERING RESEARCH REGARDING PERSONALITYDANILO ALMEIDA FELIPE 14 July 2022 (has links)
[pt] Contexto: Embora o desenvolvimento de software seja uma atividade humana,
a pesquisa em Engenharia de Software (ES) concentra-se principalmente
em processos e ferramentas, esquecendo-se dos fatores humanos por trás. Ainda
quando explorados, os pesquisadores não tem adotado adequadamente referencial
da psicologia para entender melhor os fatores humanos em ES, bem como
dos instrumentos psicométricos, que visam medir algum tipo de fator humano.
Objetivo: Nosso objetivo é apresentar uma visão geral e reflexões sobre o uso
dos instrumentos psicométricos na pesquisa da ES em relação a personalidade. Método: Foi realizado um mapeamento sistemático da literatura para gerar um catálogo dos instrumentos psicométricos utilizados.
Resultados: Esta dissertação contribui com a atualização de um estudo secundário
existente para cobrir cinquenta anos de pesquisa em ES (de 1970 a 2020). Observamos discrepâncias remanescentes entre um dos instrumentos mais popularmente adotado (MBTI) e as recomendações existentes na literatura sobre o seu uso. Conclusão: A adoção de instrumentos psicométricos relativos a personalidade em ES precisa ser aprimorada. Trabalhos futuros nos direcionam a analisar a literatura mapeada sob a ótica de especialistas e pesquisadores das ciências
sociais. / [en] Context: Although software development is an inherently human activity, research in Software Engineering (SE) has focused mostly on processes and tools, thus failing to recall the human factors behind it. Even when explored, researchers typically do not properly use the psychological background to understand better human factors in SE, such as the psychometric instruments, which aim to measure human factors. Objective: Our goal is to present an overview and reflections on psychometric instruments in SE research regarding personality. Method: We conducted a systematic mapping of the literature to generate a catalog of the psychometric instruments used. Results: This dissertation contributes with an update of an existing secondary study to cover fifty years of SE research (1970 to 2020). We observed remaining discrepancies between one of the most popular adoption instruments (MBTI) and existing recommendations in the literature on the use of this instrument. Conclusion: The findings lead us to conclude that the adoption of psychometric instruments regarding personality in SE needs to be improved. Future work directs us to analyze the mapped literature under the lens of social science specialists and researchers.
|
26 |
[en] A FRAMEWORK TO AUTOMATE DATA SCIENCE TASKS THROUGH PERSONALIZED CHATBOTS / [pt] UM FRAMEWORK PARA AUTOMATIZAR TAREFAS DE CIENCIA DE DADOS ATRAVéS DE INTERFACES CONVERSACIONAISJEFRY SASTRE PEREZ 31 January 2022 (has links)
[pt] Diversas soluções foram criadas para automatizar cenários específicos de
ciência de dados e implementações de conteúdo personalizado em interfaces de
conversação. No entanto, o entendimento geral dessas interfaces de conversação
que fornecem sugestões personalizadas para cientistas de dados ainda é pouco
explorado. Identificamos a necessidade de automatizar procedimentos de ciência de dados até diferentes níveis de automação. Nossa pesquisa se concentra
em ajudar os cientistas de dados durante a automação desses procedimentos
usando interfaces conversacionais. Propomos um framework para a criação de
um sistema chat-bot para facilitar a automação de cenários comuns de ciência de dados. Além disso, instanciamos a solução em dois cenários diferentes
de ciência de dados. O primeiro cenário se concentra na detecção de valores
discrepantes e o segundo na limpeza de dados. Conduzimos um estudo com 28
participantes para demonstrar que os cientistas de dados podem usar a solução
proposta. Todos os participantes concluíram as atividades corretamente e 75 a
80 por cento acharam o framework relativamente fácil de estender e usar. Nossa análise sugere que o uso de interfaces conversacionais pode facilitar a automação
de tarefas de ciência de dados. / [en] Several solutions have been created for automating specific data science
scenarios and implementations of personalized content in conversational interfaces. However, the overall understanding of these conversational interfaces
that provide personalized suggestions for data scientists is still poorly explored. We identify the need to automate data science procedures up to different
levels of automation. Our research focuses on helping data scientists during the
automation of these procedures by using conversational interfaces. We propose
a framework for creating a chat-bot system to facilitate the automation of data
science common scenarios. In addition, we instantiate the framework in two
different data science scenarios. The first scenario focuses on outlier detection,
and the second scenario on data cleaning. We conducted a study with 28 participants to demonstrate that data scientists can use the proposed framework.
All participants completed the activities correctly, and 75 to 80 percent found the
framework relatively easy to extend and use. Our analysis suggests that the
use of conversational interfaces can facilitate the automation of data science
tasks.
|
27 |
[pt] ENGENHARIA DE REQUISITOS PARA SISTEMAS INTEGRADOS COM COMPONENTES DE APRENDIZADO DE MÁQUINA: STATUS QUO E PROBLEMA / [en] REQUIREMENTS ENGINEERING FOR ML-ENABLED SYSTEMS: STATUS QUO AND PROBLEMSANTONIO PEDRO SANTOS ALVES 06 February 2024 (has links)
[pt] Sistemas que usam Aprendizado de Máquina, doravante Machine Learning (ML), tornaram-se comuns para empresas que deseajam melhorar seus
produtos, serviços e processos. A literatura sugere que a Engenharia de Requisitos (ER) pode ajudar a explicar muitos problemas relacionados à engenharia de sistemas inteligentes envolvendo componentes de ML (ML-Enabled
Systems). Contudo, o cenário atual de evidências empíricas sobre como ER é
aplicado na prática no contexto desses sistemas é amplamente dominado por
estudos de casos isolados com pouca generalização. Nós conduzimos um survey
internacional para coletar informações de profissionais sobre o status quo e problemas de ER para ML-Enabled Systems. Coletamos 188 respostas completas
de 25 países. Realizamos uma análise quantitativa sobre as práticas atuais utilizando bootstrapping com intervalos de confiança; e análises qualitativas sobre
os problemas reportados através de procedimentos de codificação open e axial.
Encontramos diferenças significativas nas práticas de ER no contexto de projetos de ML, algumas já reportadas na literatura e outras totalmente novas. Por
exemplo, (i) atividades relacionadas à ER são predominantemente conduzidas
por líderes de projeto e cientistas de dados, (ii) o formato de documentação
predominante é baseado em Notebooks interativos, (iii) os principais requisitos não-funcionais incluem qualidade dos dados, confiança e explicabilidade no
modelo, e (iv) os principais desafios consistem em gerenciar a expectativa dos
clientes e alinhar requisitos com os dados disponíveis. As análises qualitativas revelaram que os praticantes enfrentam problemas relacionados ao baixo
entendimento sobre o domínio do negócio, requisitos pouco claros e baixo engajamento do cliente. Estes resultados ajudam a melhorar o entendimento sobre
práticas adotadas e problemas existentes em cenários reais. Destacamos a necessidade para adaptar ainda mais e disseminar práticas de ER relacionadas à
engenharia de ML-Enabled Systems. / [en] Systems that use Machine Learning (ML) have become commonplace
for companies that want to improve their products, services, and processes.
Literature suggests that Requirements Engineering (RE) can help to address
many problems when engineering ML-Enabled Systems. However, the state of
empirical evidence on how RE is applied in practice in the context of MLenabled systems is mainly dominated by isolated case studies with limited
generalizability. We conducted an international survey to gather practitioner
insights into the status quo and problems of RE in ML-enabled systems. We
gathered 188 complete responses from 25 countries. We conducted quantitative
statistical analyses on contemporary practices using bootstrapping with confidence intervals and qualitative analyses on the reported problems involving
open and axial coding procedures. We found significant differences in RE practices within ML projects, some of them have been reported on literature and
some are totally new. For instance, (i) RE-related activities are mostly conducted by project leaders and data scientists, (ii) the prevalent requirements
documentation format concerns interactive Notebooks, (iii) the main focus of
non-functional requirements includes data quality, model reliability, and model
explainability, and (iv) main challenges include managing customer expectations and aligning requirements with data. The qualitative analyses revealed
that practitioners face problems related to lack of business domain understanding, unclear requirements, and low customer engagement. These results help to
provide a better understanding of the adopted practices and which problems
exist in practical environments. We put forward the need to adapt further and
disseminate RE-related practices for engineering ML-enabled systems.
|
28 |
[pt] IDENTIFICANDO PREOCUPAÇÕES AO ESPECIFICAR SISTEMAS COM COMPONENTES DE APRENDIZADO DE MÁQUINA: UMA ABORDAGEM BASEADA EM PERSPECTIVA / [en] IDENTIFYING CONCERNS WHEN SPECIFYING MACHINE LEARNING-ENABLED SYSTEMS: A PERSPECTIVE-BASED APPROACHHUGO RICARDO GUARIN VILLAMIZAR 05 February 2024 (has links)
[pt] A engenharia de sistemas habilitados em Machine Learning (ML) bem-sucedidos apresenta vários desafios, tanto do lado teórico quanto prático. Entre
esses desafios estão como abordar eficazmente às expectativas irrealistas das
capacidades de ML por parte de clientes, gestores e até mesmo outros membros
da equipe de desenvolvimento, e como ligar o valor do negócio às atividades de
engenharia e ciência de dados compostas por equipes interdisciplinares. Nesta
tese, estudamos o estado da prática e da literatura da engenharia de requisitos
para ML para propor PerSpecML, uma abordagem baseada em perspectiva
para especificar sistemas habilitados para ML que ajuda os profissionais a
identificar quais atributos, incluindo componentes de ML e não-ML, são importantes para contribuir para a qualidade geral do sistema. A abordagem
envolve a análise de 60 preocupações relacionadas a 28 tarefas que os profissionais normalmente enfrentam em projetos de ML, agrupando-as em cinco perspectivas: objetivos do sistema, experiência do usuário, infraestrutura, modelo
e dados. Juntas, essas perspectivas servem para mediar a comunicação entre
gestores de projeto, especialistas de domínio, designers, engenheiros de software/ML e cientistas de dados. A criação da PerSpecML envolveu uma série de
validações realizadas em diferentes contextos: (i) na academia, (ii) com representantes da indústria e (iii) em dois estudos de casos industriais reais. Como
resultado das diversas validações e melhorias contínuas, PerSpecML se destaca
como uma abordagem promissora, preparada para impactar positivamente a
especificação de sistemas habilitados para ML, ajudando particularmente a revelar componentes-chave que, de outra forma, teriam sido perdidos sem o uso
da PerSpecML. / [en] Engineering successful machine learning (ML)-enabled systems poses various challenges from both a theoretical and a practical side. Among those
challenges are how to effectively address unrealistic expectations of ML capabilities from customers, managers and even other team members, and how to
connect business value to engineering and data science activities composed by
interdisciplinary teams. In this thesis, we studied the state of the practice and
literature of requirements engineering (RE) for ML to propose PerSpecML, a
perspective-based approach for specifying ML-enabled systems that helps practitioners identify which attributes, including ML and non-ML components, are
important to contribute to the overall system s quality. The approach involves
analyzing 60 concerns related to 28 tasks that practitioners typically face in
ML projects, grouping them into five perspectives: system objectives, user experience, infrastructure, model, and data. Together, these perspectives serve
to mediate the communication between business owners, domain experts, designers, software and ML engineers, and data scientists. The conception of
PerSpecML involved a series of validations conducted in different contexts: (i)
in academia, (ii) with industry representatives, and (iii) in two real industrial
case studies. As a result of the diverse validations and continuous improvements, PerSpecML stands as a promising approach, poised to positively impact the specification of ML-enabled systems, particularly helping to reveal key
components that would have been otherwise missed without using PerSpecML.
|
29 |
[en] DEALING WITH DEVICE DATA OVERFLOW IN THE CLOUD / [pt] UTILIZANDO A NUVEM PARA LIDAR COM A SOBRECARGA DE DADOS EM DISPOSITIVOS FIXOS E MÓVEISJAUMIR VALENCA DA SILVEIRA JUNIOR 18 January 2017 (has links)
[pt] A Computação em Nuvem torna-se a cada dia mais importante como plataforma para pesquisa na Engenharia de Software. Apesar da vasta literatura disponível para uso da Nuvem em ambientes comerciais, ainda há pouca pesquisa feita para que se modelem, desenhem e implementem novos aplicativos que façam uso inteligente da Nuvem. Nesta dissertação é proposta uma abstração que explora um aspecto fundamental dos sistemas em Nuvem - a elasticidade de dados. A abstração Container Database (CDB) provê uma solução baseada em Nuvem para a falta de espaço para armazenamento local de dados em dispositivos eletrônicos. Para demonstrar a viabilidade desta abordagem, é apresentada uma implementação da abstração CDB como uma API que funciona nos sistemas operacionais Windows 7 e Windows Mobile Phone 7. / [en] Cloud computing is rapidly becoming an important platform for research in Software Engineering. Despite the vibe and huge literature on commercial Cloud environments, there is, however, little research on how to capture, model, design and implement new software applications that can make intelligent use of the Cloud. In this paper we propose a new abstraction that explores a fundamental aspect of Cloud systems – data elasticity. The Container Database (CDB) abstraction provides a Cloud-based solution for scenarios where device local storage is not sufficient for manipulating data. To demonstrate the viability of the proposed approach we present an implementation of the CDB abstraction as an Object-Oriented API designed to work on Windows 7 and Windows Mobile Phone 7 Operation Systems.
|
30 |
[en] SDIFF: A COMPARISON TOOL BASED IN SYNTACTICAL DOCUMENT STRUCTURE / [pt] SDIFF: UMA FERRAMENTA PARA COMPARAÇÃO DE DOCUMENTOS COM BASE NAS SUAS ESTRUTURAS SINTÁTICASTHIAGO PINHEIRO DE ARAUJO 15 September 2010 (has links)
[pt] Associado a cada sistema de controle de versão existe uma ferramenta de
comparação responsável pela extração das diferenças entre duas versões de um
documento. Estas ferramentas costumam realizar a comparação baseando-se na
informação textual dos documentos, em que o elemento indivisível na comparação
é a linha ou a palavra. Porém, o conteúdo versionado normalmente é fortemente
estruturado (como exemplo, linguagens de programação) e a utilização deste
mecanismo pode desrespeitar limites sintáticos e outras propriedades do
documento, dificultando a interpretação das alterações. Nesse trabalho foi
construída uma ferramenta para identificar as diferenças entre duas versões de um
documento utilizando um mecanismo de comparação baseado na sua estrutura
sintática. Desta forma, é possível identificar com maior precisão as diferenças
relevantes ao leitor, reduzindo o esforço para compreender a semântica das
alterações. A ferramenta construída é capaz de suportar diferentes tipos de
documentos a partir da implementação de componentes que tratem das sintaxes
desejadas. O componente implementado como exemplo neste trabalho trata a
sintaxe da linguagem de programação C++. / [en] Associated with each version control system there’s a comparison tool for
extracting the differences between two versions of a document. These tools tend
to make a comparison based on textual information from documents, in which the
indivisible element is the line or word. But the content versioned is usually highly
structured (for example, programming languages) and the use of this mechanism
can disrespect syntactical limits and other properties of the document, becoming
difficult to interpret what really changed. In this work we created a tool to identify
differences between two versions of a document using a comparison mechanism
based on the syntactic structure. Thus, it is possible to identify more precisely the
relevant differences to the reader, reducing the effort to understand the semantics
of the changes. The tool can support different types of documents by
implementing components that interprets the desired syntax. The example syntax
component implemented in this work deals with the syntax of the programming
language C++.
|
Page generated in 0.0287 seconds