6 research outputs found

    A survey of search-based refactoring for software maintenance

    Get PDF
    This survey reviews published materials relating to the specific area of Search Based Software Engineering concerning software maintenance. 99 papers are selected from online databases to analyze and review the area of Search Based Software Maintenance. The literature addresses different methods to automate the software maintenance process. There are studies that analyze different software metrics, studies that experiment with multi-objective techniques and papers that propose refactoring tools for use. This survey also suggests papers from related areas of research, and introduces some of the concepts and techniques used in the area. The current state of the research is analyzed in order to assess opportunities for future research. This survey is beneficial as an introduction for any researchers aiming to work in the area of Search Based Software Maintenance and will allow them to gain an understanding of the current landscape of the research and the insights gathered. The papers reviewed as well as the refactoring tools introduced are tabulated in order to aid researchers in quickly referencing studies

    A Survey of Search-Based Refactoring for Software Maintenance

    Get PDF
    Abstract This survey reviews published materials related to the specific area of Search-Based Software Engineering that concerns software maintenance and, in particular, refactoring. The survey aims to give a comprehensive review of the use of search-based refactoring to maintain software. Fifty different papers have been selected from online databases to analyze and review the use of search-based refactoring in software engineering. The current state of the research is analyzed and patterns in the studies are investigated in order to assess gaps in the area and suggest opportunities for future research. The papers reviewed are tabulated in order to aid researchers in quickly referencing studies. The literature addresses different methods using search-based refactoring for software maintenance, as well as studies that investigate the optimization process and discuss components of the search. There are studies that analyze different software metrics, experiment with multi-objective techniques and propose refactoring tools for use. Analysis of the literature has indicated some opportunities for future research in the area. More experimentation of the techniques in an industrial environment and feedback from software developers is needed to support the approaches. Also, recent work with multi-objective techniques has shown that there are exciting possibilities for future research using these techniques with refactoring. This survey is beneficial as an introduction for any researchers aiming to work in the area of Search-Based Software Engineering with respect to software maintenance and will allow them to gain an understanding of the current landscape of the research and the insights gathered

    Uso de padrões em projeto arquitetural baseado em busca de linha de produto de Software

    Get PDF
    Orientadora : Profª. Drª. Silvia Regina VergilioCo-orientadora : Profª. Drª. Thelma Elita Colanzi LopesDissertação (mestrado) - Universidade Federal do Paraná, Setor de Ciências Exatas, Programa de Pós-Graduação em Informática. Defesa: Curitiba, 23/10/2014Inclui referênciasResumo: Padrões de projeto visam a melhorar o entendimento e o reúso de arquiteturas de software. No projeto baseado em busca eles têm sido aplicados com sucesso por meio de operadores de mutação em processos evolutivos. No contexto de Arquiteturas de Linha de Produtos (ALPs), alguns trabalhos têm aplicado padrões de projeto manualmente, mas não existem abordagens baseadas em busca que considerem o uso destes padrões. Tornar este uso possível é o objetivo deste trabalho, que introduz uma forma automática para aplicação de padrões de projeto por meio de um operador de mutação na abordagem Multi-objective Optimization Approach for PLA Design (MOA4PLA). A ideia é que esta aplicação não gere anomalias na arquitetura e garanta que estes padrões sejam aplicados em escopos realmente propícios para suas aplicações. Para isso, foi realizada uma análise de viabilidade para determinar quais padrões do catálogo GoF (Gang of Four) são aplicáveis no contexto da MOA4PLA. Um operador de mutação é proposto para ser utilizado neste contexto, de modo a aplicar estes padrões de projeto em ALPs durante o processo evolutivo utilizando métodos de verificação de escopos e aplicação de padrões. O operador de mutação foi implementado no módulo OPLA-Patterns da ferramenta OPLA-Tool, que dá suporte a abordagem MOA4PLA. Experimentos foram configurados e executados em ALPs reais para avaliar quantitativamente e qualitativamente os resultados obtidos. Os resultados mostram que a aplicação de padrões de projeto permite a obtenção de arquiteturas com melhores valores em métricas de software resultando em uma maior diversidade de soluções para que o arquiteto possa escolher qual delas mais se adequa aos seus objetivos. Portanto, aplicar padrões de projeto por meio do operador proposto contribui positivamente para o projeto de ALP.Abstract: Design patterns aim at improving the understanding and reuse of software architectures. In the search-based design they have been successfully applied by mutation operators in the evolutionary process. In the software Product Line Architecture (PLA) context, some works have manually applied design patterns, but there are no search-based approaches that take into account the use of these patterns. To make this use possible is the goal of this work, which introduces an automated way for the application of design patterns through a mutation operator in the MOA4PLA approach (Multi-objective Optimization Approach for PLA Design). The goal is to avoid the introduction of architectural anomalies and to ensure that these patterns are applied only in feasible scopes. To this end, a feasibility analysis was conducted to determine which patterns of the GoF (Gang of Four) catalog could be applied in the context of MOA4PLA. A mutation operator is proposed in order to apply feasible design patterns in PLAs during the evolutionary process. The operator uses scope verification and design patterns application methods. The mutation operator was implemented in the OPLA-Patterns module of OPLA-Tool, which supports the MOA4PLA approach. Experiments were configured and executed in real PLAs to quantitatively and qualitatively evaluate the results. The results showed that the application of design patterns allows the generation of architectures with better values of the software metrics. A greater diversity of solutions was obtained, then the architect can choose which one best fits his/her objectives. Therefore, the application of design patterns using the proposed operator contributes positively to the PLA design

    UnterstĂĽtzung von Entwurfsmustern im Quelltext durch bedeutungsorientierte Dokumentation

    Get PDF
    Die Bedeutung erweiterbarer und wartbarer Software wächst mit zunehmender Komplexität des Technologiemarktes. Es gibt zahlreiche Ansätze, Entwickler bei der Erstellung derartiger Software zu unterstützen. Ein Ansatz sind Entwurfsmuster. Sie helfen bei der Reduzierung des Problems des Architekturzerfalls, der durch naturgemäß steigende Entropie und Komplexität während des Software-Entwicklungsprozesses entsteht. Die Anzahl der dokumentierten Entwurfsmuster nimmt durch neue Publikationen stetig zu. Die Auswahl geeigneter Muster für einen Anwendungsfall wird dadurch immer schwieriger. Weiterhin wird die in der Praxis nur bedingt verfügbare und unzureichende Unterstützung für Entwickler bei der Arbeit mit Entwurfsmustern der intensiven Beschäftigung in der Forschung mit diesem Thema nicht gerecht. Diese Arbeit leistet einen Beitrag zur besseren Unterstützung des Entwicklers bei der Arbeit mit Mustern jeglicher Granularität. Die formale Dokumentation dieser wird thematisiert, um anhand dessen die Anwendbarkeit eines Musters für einen objektorientierten Quelltext festzustellen und das Muster mit Hilfe von Quelltexttransformationen werkzeuggestützt anzuwenden. Sie stellt eine durchgängige Methodik bereit für das Anreichern von Programmtext mit semantischen Informationen, die bei der Musterselektion und -anwendung dienlich sind. Die vorgestellte Methodik ist für den Einsatz in Quelltextrezensionen geeignet, deckt also die Forward- und Reengineering-Phase bei der Software-Entwicklung ab.The significance of extendable and maintainable software rises with the growing complexity of technologies. Numerous approaches support developers to create software with these characteristics. One such approach is given with design patterns. They help in reducing the problem of architectural decay, which comes naturally from escalating entropy and complexity during the process of software development. The number of to-date documented design patterns raises through new publications steadily. Thus, the selection of applicable patterns for a given use case becomes more difficult. Besides, the limited support for developers when working with design patterns in practice does not reflect the massive effort put into this issue by academic research. This work contributes to a better support of patterns with arbitrary granularity in the developer’s daily work. Focus lies on the formal documentation of patterns in order to determine their applicability for a given object-oriented source code and to apply them on a tool-basis with help of source code transformations. This work provides a method for enriching source code with semantic information that is seen as valuable for the processes of selecting and applying a pattern. The present work is suited for source code reviews and thus covers the forward and reengineering phase during software development

    Automated Application of Design Patterns to Legacy Code

    No full text
    In reengineering legacy code it is frequently useful to introduce a design pattern in order to add clarity to the system and thus facilitate further program evolution. We show that this type of transformation can be automated in a pragmatic manner and propose a methodology for the development of design pattern transformations. We address the issues of the definition of a starting point for the transformation, the decomposition of a pattern into minipatterns and the development of corresponding minitransformations that can introduce these minipatterns to a program. The architecture of an existing software prototype is also discussed and the results of applying this methodology to develop a transformation for the Factory Method pattern are presented
    corecore