3 research outputs found

    Uma abordagem de otimização multiobjetivo para projeto arquitetural de linha de produto de software

    Get PDF
    Resumo: A indústria de software tem adotado a abordagem de Linha de Produto de Software (LPS) com o objetivo de aumentar o reúso de software e diminuir o tempo de produção e os custos de desenvolvimento dos produtos. Nessa abordagem, o principal artefato e a arquitetura de LPS (PLA - Product Line Architecture). No entanto, obter uma PLA modular, extensível e reusável e uma tarefa não trivial. O arquiteto pode se apoiar em métricas arquiteturais para definir e melhorar o projeto da PLA. Contudo, essa tarefa pode envolver vários fatores, muitas vezes conflitantes entre si, e encontrar o melhor trade-off entre as métricas utilizadas para avaliar o projeto transforma o projeto de PLA em uma tarefa que demanda grande esforço humano. Nesse contexto, o projeto de PLA pode ser formulado como um problema de otimização com varios fatores. Porém, elaborar um projeto que atenda a todos os fatores envolvidos pode ser mais difícil do que reconhecer um bom projeto. Problemas da Engenharia de Software similares a esse tem sido eficientemente resolvidos com algoritmos de busca em um campo de pesquisa conhecido como Engenharia de Software Baseada em Busca (SBSE - Search Based Software Engineering). Entretanto, as abordagens existentes utilizadas para otimizar arquiteturas de software nãao são apropriadas para projeto de PLAs, pois não consideram características específicas de LPS. Desse modo, este trabalho propõe uma abordagem de otimização multiobjetivo automatizada para avaliar e melhorar um projeto de PLA no que tange a modularização de características, estabilidade do projeto e extensibilidade de LPS. A abordagem proposta inclui: (a) um processo sistemático para conduzir a otimização de projeto de PLA por meio de algoritmos de busca; (b) um metamodelo que permite que esses algoritmos manipulem projetos de PLA; (c) novos operadores de busca para evoluir projetos de PLA em termos de modularização de características; e (d) um tratamento multiobjetivo para o problema de projeto de PLA. Esse tratamento multiobjetivo engloba métricas que indicam a modularização de características e a extensibilidade de LPS, além de métricas convencionais para medir princípios básicos de projeto como coesão e acoplamento. Ao final do processo de otimização, um conjunto de possíveis soluções de projeto de PLA que representam os melhores trade-off entre os objetivos otimizados e retornado. O arquiteto deve selecionar uma solução de acordo com as suas prioridades. A ferramenta OPLA-Tool foi desenvolvida para instanciar a abordagem usando algoritmos evolutivos multiobjetivos, os quais tem sido usados com sucesso na área de SBSE. Utilizando a OPLA-Tool, quatro estudos empíricos foram realizados com nove PLAs para avaliar: os operadores de busca propostos; o uso das métricas de LPS; e os algoritmos escolhidos. Em comparação às PLAs originais, os resultados mostraram que a abordagem proposta consegue gerar projetos mais estáveis, mais elegantes e com melhor modularização de características

    Uma ferramenta de apoio ao projeto arquitetural de linha de produto de software baseado em busca

    Get PDF
    Orientadora : Profª Drª Silvia Regina VergílioCo-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: O projeto da Arquitetura de Linha de Produto (PLA) é uma tarefa complexa, influenciada por diversos fatores, como por exemplo, a modularização de características e a extensibilidade da PLA. Tais fatores, muitas vezes, são avaliados de acordo com diferentes métricas. Dessa forma, o projeto de PLA pode ser visto como um problema de otimização e tal categoria de problema vem sendo resolvida com sucesso em um campo de pesquisa chamado Search Based Software Engineering (SBSE), fazendo uso de meta-heurísticas como Algoritmos Genéticos. Diante deste fato, Colanzi [16] propôs uma abordagem chamada Multi-Objective Approach for Product-Line Architecture Design (MOA4PLA), a qual é implementada pela ferramenta denominada OPLA-Tool (Optimization for PLA Tool). Tal ferramenta é constituída de diferentes módulos, dentre estes, apenas um foi implementado por Colanzi [16]. Este trabalho implementa outros três módulos essenciais da ferramenta OPLA-Tool, que tornam a utilização da abordagem possível na prática: OPLA-Encoding, OPLA-Decoding e OPLA-GUI. Tais módulos fornecem recursos que automatizam diversas atividades da abordagem MOA4PLA, como por exemplo, leitura e instanciação de uma arquitetura em memória, geração das soluções encontradas para que seja possível sua visualização e uma interface gráfica, tornando seu uso mais produtivo. A implementação e integração de tais módulos foram avaliadas utilizando PLAs reais, os resultados obtidos mostram a utilidade da OPLA-Tool, que contribui para a redução de esforço em projetos de PLA e para a melhoria das mesmas. Palavras-chave: Ferramenta de Suporte; Arquitetura de Linha de Produto; Algoritmos Evolutivos Multiobjetivos.Abstract: The design of Product Line Architecture (PLA) is a complex task, which is influenced by several factors, such as feature modularization and PLA extensibility. Such factors are often evaluated according to different types of metrics. Thus, the PLA design can be seen as an optimization problem. This category of problem has been successfully solved in the research field named Search Based Software Engineering (SBSE) that uses metaheuristics, such as Genetic Algorithms. In this context, Colanzi [16] proposed an approach named Multi-Objective Approach for Product-Line Architecture Design (MOA4PLA), to be supported by a tool named OPLA-Tool (Optimization for PLA Tool). This tool is composed by different modules and only one of these modules has been implemented in [16]. This work implements three essential modules of OPLA-Tool, which offer automated support to allow the use of MOA4PLA in practice: OPLA-Encoding, OPLA-Decoding and OPLAGUI. Such modules provide features that automate many tasks of MOA4PLA approach, such as reading and instantiation of a PLA in memory, generation of solutions in order to be possible their visualization, and a graphical interface, making the use of MOA4PLA more productive. The implementation and integration of such modules were evaluated using real PLAs. The obtained results show the usefulness of OPLA-Tool, which contributes to reduce the effort spent in the PLA design and improvement. Keywords: Tool Support; Product Line Architecture Design; Multi-objective Evolutionary Algorithm
    corecore