2 research outputs found

    Avaliação Experimental da Detecção Interativa de Anomalias de Código

    Get PDF
    Anomalias de código são estruturas que frequentemente indicam a presença de problemas no software, dificultando sua manutenção e evolução. Existem várias anomalias catalogadas na literatura e sua detecção geralmente é feita por meio de abordagens de Detecção NãoInterativa (DNI). Essas abordagens não oferecem suporte à interação progressiva dos desenvolvedores com o código afetado, revelando ocorrências de anomalias mais globais apenas sob demanda do desenvolvedor, implicando recorrentemente na identificação tardia destas anomalias. Com o surgimento da Detecção Interativa (DI), busca-se lidar com as limitações das abordagens tradicionais, permitindo a revelação de instâncias de anomalias de código sem uma solicitação explícita do desenvolvedor, incentivando a detecção precoce como uma prática recomendada. Embora os desenvolvedores considerem o uso de abordagens DI, a literatura não oferece diretrizes claras sobre quando e como essas abordagens devem ser utilizadas no contexto das atividades de desenvolvimento de software. Neste trabalho, tem-se como objetivo a avaliação experimental da abordagem de detecção interativa de anomalias de código no contexto das atividades do processo de desenvolvimento de software. Para isso, foram conduzidos estudos no intuito de identificar a necessidade de uso de tal abordagem, avaliar métodos de detecção aderentes, desenvolver suporte automatizado com características DI, apresentar evidências empíricas sobre sua eficácia na detecção de anomalias, bem como descrever um modo de integração ao processo de desenvolvimento de acordo com o arcabouço do Scrum. As tarefas experimentais revelaram que o uso da DI resultou em um aumento de até 40% na medida recall e de até 25% na medida precision na detecção de anomalias durante as atividades de inspeção e desenvolvimento de código. Com base nos resultados dos estudos, conclui-se que fatores associados à DI contribuíram para detecção antecipada de um maior número de ocorrências de anomalias de código se comparada com abordagens tradicionais. Consequentemente, a utilização disciplinada da abordagem DI em um processo de desenvolvimento pode promover uma avaliação contínua e melhorar a qualidade do softwareCode smells generally indicate the presence of deeper problems in the software, making its maintenance and evolution difficult. Several smells are cataloged in the literature, and their detection is traditionally supported by Non-Interactive Detection (NID) approaches. These approaches do not support the progressive interaction of developers with the affected code, revealing occurrences of more global smells only at the developer’s request, recurrently implying a late identification of these smells. With the emergence of Interactive Detection (ID), the aim is to deal with the limitations of traditional approaches, allowing the revelation of instances of code smells without an explicit request from the developer, encouraging early detection as a recommended practice. Although developers consider using ID approaches, guidelines were not found in the literature on when and how such approaches should be used in the context of software development activities. In this work, the objective is the experimental evaluation of the interactive detection of code smells in the context of the activities of the software development process. For doing so, studies were conducted to identify the need to use such an approach, evaluate adherent detection methods, develop automated support with DI characteristics, present empirical evidence on its effectiveness in detecting anomalies, as well as describe a way of integration to the development process according to the Scrum framework. The experimental tasks revealed that using the ID technique led to an increase of up to 40% in the recall and up to 25% in the precision in the detection of code smells during inspection activities and code development. Based on the results of the studies, it is concluded that factors associated with ID contributed to the early detection of a greater number of occurrences of code smells compared to traditional approaches. Consequently, using the ID approach in a disciplined way in a development process can promote continuous evaluation and improve the quality of the software

    Uma abordagem híbrida para construção de documentação para apoio à instanciação de frameworks

    Get PDF
    Software reuse is one of the major goals in Software Engineering. Frameworks promote the reuse of individual building blocks, but also of system design. Framework instantiation is the construction of an application reusing a framework. This process requires a substantial understanding effort of the framework. So, high quality documentation may be a useful resource to minimize this effort. However, in most cases, appropriate documentation neither exists nor is up-to-date. A hypothesis is that the framework code itself and existing instantiations could provide useful information for new instantiations. However, in this case developers still would have to read large portions of code. The goal of this thesis is to demonstrate the feasibility of constructing relevant documentation for framework instantiation with static and dynamic analysis of the framework itself and pre-existing instantiations. The proposal is presenting the documentation in a cookbook style, where recipes are composed of programming tasks and information about framework elements related to a desired feature. Initially, two preliminary experiments were conducted to evaluate coverage and practical usefulness of the recipe information for developers. Results pointed out the need for some adjustments, but also indicated sufficient and relevant information in recipes. Finally, we performed a robust study, consisting of three experiments with 44 human subjects, and 88 executions of real framework instantiations. We compared the use of cookbooks with the use of traditional framework documentation. The generated cookbooks presented results better or as good as traditional framework documentation, in terms of correctness, time spent and the satisfaction perception of document uses.Tese (Doutorado)Reuso de software é um dos principais objetivos em Engenharia de Software. Frameworks de aplicação promovem a reutilização de blocos de construção, mas também da solução arquitetural para um determinado domínio de aplicação. A criação de uma aplicação reutilizando um framework denomina-se instanciação do framework e requer um esforço substancial de compreensão do mesmo. Uma documentação de alta qualidade pode ser um instrumento útil para minimizar esse esforço. No entanto, na maioria dos casos, a documentação adequada não existe ou não é atualizada. Uma hipótese é que o próprio código fonte do framework e de instâncias existentes poderiam oferecer informação útil para novas instanciações. Contudo, haveria o desafio dos desenvolvedores entenderem quantidade substancial de código fonte. Neste contexto, o objetivo desta tese é demonstrar a viabilidade de construção de documentação relevante para a instanciação de frameworks utilizando análise estática e dinâmica do código fonte do framework e de suas instanciações pré-existentes. A proposta é apresentar tal documentação como um livro de receitas, onde as receitas são compostas de tarefas de programação e informações sobre os elementos do framework associados a uma característica de interesse. Inicialmente, dois estudos preliminares foram realizados para avaliar a cobertura e a utilidade prática das informações contidas nas receitas, os quais mostraram a necessidade de alguns ajustes, mas também indicaram receitas com informações relevantes e cobertura adequada. Por fim, foi conduzido um estudo robusto composto de 3 experimentos envolvendo ao todo 44 sujeitos humanos, com 88 execuções de atividades reais de instanciação de frameworks, onde o uso de livros de receitas foi comparado ao uso de documentações tradicionais dos frameworks. Os livros de receitas gerados semi-automaticamente apresentaram resultados de uso iguais ou melhores, em termos de taxa de acerto, tempo de execução e percepção da satisfação dos usuários, cumprindo os objetivos de pesquisa
    corecore