CBSoft 2015
CBSoft 2015
WESB 2015
VI WORKSHOP DE ENGENHARIA DE SOFTWARE BASEADA EM BUSCA September 23rd, 2015
Belo Horizonte – MG, Brazil
ANAIS | PROCEEDINGS
COORDENADORES DO COMITÊ DE PROGRAMA DO WESB 2015 | PROGRAM COMMITTEE CHAIR OF WESB 2015
Maria Cláudia Figueiredo Pereira Emer (UTFPR-Curitiba) Thelma Elita Colanzi (UEM)
COORDENADORES GERAIS DO CBSOFT 2015 |CBSOFT 2015 GENERAL CHAIRS Eduardo Figueiredo (UFMG)
Fernando Quintão (UFMG) Kecia Ferreira (CEFET-MG) Maria Augusta Nelson (PUC-MG)
REALIZAÇÃO | ORGANIZATION
Universidade Federal de Minas Gerais (UFMG)
Pontíficia Universidade Católica de Minas Gerais (PUC-MG)
Centro Federal de Educação Tecnológica de Minas Gerais (CEFET-MG)
PROMOÇÃO |PROMOTION
Sociedade Brasileira de Computação | Brazilian Computing Society
APOIO | SPONSORS
CAPES, CNPq, FAPEMIG, Google, RaroLabs, Take.net, ThoughtWorks, AvenueCode, AvantiNegócios e Tecnologia.
VOLUME 01 ISSN: 2178-6097
CBSoft 2015
APRESENTAÇÃO
Sejam todos bem-vindos ao Workshop de Engenharia de Software Baseada em Busca – WESB 2015. O WESB tem contribuído para o crescimento da área no cenário nacional, tornando-se um fórum de grande importância para discussão e divulgação de pesquisas em temas relacionados à área no Brasil. Nas últimas edições realizadas observou-se que o WESB é fundamental para a formação de uma comunidade de pesquisa em Engenharia de Software Baseada em Busca. Ele tem permitido que pesquisadores, ora trabalhando isoladamente, se conheçam, possam se unir, discutir interesses em comum e
propor/realizar projetos de pesquisa. Sendo assim, nesta sexta edição o WESB pretende fortalecer a comunidade de pesquisa recém-criada e contribuir para o crescimento da área no Brasil.
No contexto do WESB, técnicas de busca englobam tanto técnicas tradicionais, como força bruta ou branch-and-bound, quanto meta-heurísticas, como algoritmos genéticos e outros algoritmos bio-inspirados. O WESB é um workshop sobre fundamentos teóricos, de experiências práticas e de automatização da Engenharia de Software Baseada em Busca (SBSE – Search Based Software Engineering) em projetos acadêmicos e industriais.
Os trabalhos submetidos para esta sexta edição foram cuidadosamenterevisados por três avaliadores do comitê de programa, que contou compesquisadores de diferentes regiões do país, e com a colaboração de alguns revisoresexternos. Estes anais contêm os
trabalhos selecionados dentre as submissõesrecebidas. Ao todo, sete trabalhos completos foram selecionados e serão apresentadosnas três sessões técnicas que
integram o evento. Os principais temas abordadosincluem: teste de software, requisitos e linha de produto de software. Além das sessões técnicas, aprogramação também inclui uma palestra convidada e discussões sobre SBSE.
A realização do evento não seria possível sem a colaboração de diversas pessoas.
Portanto, gostaríamos de agradecer a todos que auxiliaram para a realização do evento, em especial, aos membros do comitê de programa. Também, gostaríamos de parabenizar a todos os autores dos trabalhos selecionados e de agradecer aos autores de todas as submissões realizadas. Certamente que sem a colaboração de todos não seria possível realizar o evento. Agradecemos também aos organizadores do CBSoft 2015 pela oportunidade, apoio e infraestruturadisponibilizada.
Desejamos a todos um excelente evento e esperamos que o WESB 2015 possa contribuir para estimular e consolidar a Engenharia de Software Baseada em Busca no Brasil.
Belo Horizonte, setembro de 2015.
Maria Cláudia Figueiredo Pereira Emer (UTFPR-Curitiba) Thelma Elita Colanzi (UEM)
Coordenadoras do Gerais do WESB 2015
CBSoft 2015
COMITÊ DE ORGANIZAÇÃO | ORGANIZING COMMITTEE
CBSOFT 2015 GENERAL CHAIRS
Eduardo Figueiredo (UFMG) Fernando Quintão(UFMG) Kecia Ferreira (CEFET-MG) Maria Augusta Nelson (PUC-MG) CBSOFT 2015 LOCAL COMMITTEE
Carlos Alberto Pietrobon (PUC-MG)
Glívia Angélica Rodrigues Barbosa (CEFET-MG) Marcelo Werneck Barbosa (PUC-MG)
Humberto Torres Marques Neto (PUC-MG) Juliana Amaral Baroni de Carvalho (PUC-MG) WEBSITE AND SUPPORT
Diego Lima (RaroLabs)
Paulo Meirelles (FGA-UnB/CCSL-USP) Gustavo do Vale (UFMG)
Johnatan Oliveira (UFMG)
CBSoft 2015
COMITÊ TÉCNICO | TECHNICAL COMMITTEE
COORDENADORES DO COMITÊ DE PROGRAMA DO WESB 2015 | 2015 | PROGRAM COMMITTEE CHAIR OF WESB 2015
Maria Cláudia Figueiredo Pereira Emer (UTFPR-Curitiba) Thelma Elita Colanzi (UEM)
COMITÊ DIRETIVO | STEERING COMMITTEE Auri Marcelo Rizzo Vincenzi (UFG)
Celso Gonçalves Camilo Junior (UFG)
Maria Cláudia Figueiredo Pereira Emer (UTFPR-Curitiba) Thelma Elita Colanzi (UEM)
Silvia Regina Vergílio (UFPR)
COMITÊ DE PROGRAMA | PROGRAM COMMITTEE Adriana C. F. Alvim (UNIRIO)
Arilo Claudio Dias Neto (UFAM) Auri Marcelo Rizzo Vincenzi (INF/UFG) Cássio Leonardo Rodrigues (INF/UFG) Celso G. Camilo-Junior (INF/UFG) Eliane Martins (IC/Unicamp) Geraldo Robson Mateus (UFMG) Gledson Elias (UFPB)
Jerffeson Teixeira de Souza (UECE) Leila Silva (UFS)
Márcio Eduardo Delamaro (ICMC/USP) Márcio de Oliveira Barros (UNIRIO)
Maria Cláudia Figueiredo Pereira Emer (UTFPR)
Mel Ó Cinnéide (University College Dublin, IE (Irlanda)) Pedro de Alcântara dos Santos Neto (UFPI)
Plínio de Sá Leitão Júnior (INF/UFG) Silvia Regina Vergilio (UFPR)
Thelma Elita Colanzi (UEM)
REVISORES EXTERNOS |EXTERNAL REVIEWERS Eduardo Freitas, IFG
Kenyo Faria, IFG Renata Rego, UFAM
CBSoft 2015
PALESTRAS CONVIDADAS | INVITED TALKS
Estudos Experimentais com Algoritmos de Otimização em Engenharia de Software
Márcio de Oliveira Barros(UNIRIO)
Resumo: Nesta palestra apresentaremos a área de Engenharia de Software baseada em Buscas como um excelente domínio para a realização de estudos experimentais
relacionados com problemas da Engenharia de Software. A realização de estudos experimentais dentro da Engenharia de Software é um assunto relativamente recente.
Embora os primeiros estudos já tenham mais de três décadas, o uso deste recurso de pesquisa para identificação de evidências se intensificou nos últimos 10 anos. Existem diversas razões para esta lenta adoção dos estudos experimentais na Engenharia de Software, mas muitas destas razões deixam de existir quando tratamos da Engenharia de Software baseada em Buscas. Sendo assim abordaremos as razões pelas quais estudos com algoritmos heurísticos tendem a ser mais simples do que em outras áreas da
Engenharia de Software e veremos as técnicas mais comumente utilizadas nestes estudos.
Márcio de Oliveira Barros possui graduação em Informática pelo IM/UFRJ (1992), Mestrado em Engenharia de Sistemas e Computação pela COPPE/UFRJ (1995) e doutorado em Engenharia de Sistemas e Computação pela COPPE/UFRJ (2001).
Atualmente é Professor Associado da UNIRIO. Atua como revisor de diversos periódicos da área de Engenharia de Software, como o Journal of Systems and Software, JSERD, JSEP, ESE, IJSEKE, TOSEM e JUCS. Atua também como revisor de projetos de fomento do CNPq, onde possui uma bolsa de Produtividade em Pesquisa N2. Tem experiência na área de Ciência da Computação, com ênfase em Engenharia de Software e atua em pesquisa nos seguintes temas: otimização heurística na Engenharia de Software (SBSE), software design, gerência de projetos, modelagem e simulação de projetos de software.
CBSoft 2015
ARTIGOS TÉCNICOS | TECHNICAL RESEARCH PAPERS
SESSÃO 1: Hiper-Heurísticas
Uma hiper-heurística de seleção de meta-heurísticas para estabelecer sequências de módulos para o teste de software
Vinicius Renan de Carvalho, Silvia Regina Vergilio, Aurora Pozo 1 Uma Solução Baseada em Hiper-Heurística para Determinar Ordens de Teste
na Presença de Restrições de Modularização
Giovani Guizzo, Silvia Regina Vergilio, Aurora Trinidad Ramirez Pozo 11 SESSÃO 2: Requisitos
Seleção de Elementos de Elicitação de Requisitos utilizando Algoritmos Evolutivos Multiobjetivo
Renata M. Rêgo, Arilo C. Dias-Neto, Rosiane de Freitas.
21
Uma abordagem utilizando NSGA-II In Vitro para resolução do Problema do Próximo Release Multiobjetivo
Átila Freitas, Allysson Allex Araújo, Matheus Paixão, Altino Dantas, Celso Camilo-Júnior, Jerffeson Souza
31
Uma Adaptação dos Operadores Genéticos para o Problema do Próximo Release com Interdependência entre Requisitos
Italo Yeltsin, Allysson Allex Araújo, Altino Dantas, Jerffeson Souza
41
SESSÃO 3: Linha de Produto de Software
Otimizando o Projeto de Arquitetura de Linha de Produto de Software com Muitos Objetivos: um Estudo Exploratório
Marcelo C. B. Santos, Wainer Moschetta, Thelma E. Colanzi, Edson Oliveira Jr 51
Utilizando Otimização por Colônia de Formigas na Seleção de Produtos para o Teste de Mutação do Diagrama de Características
Thiago do Nascimento Ferreira e Silvia Regina Vergilio 61
Uma hiper-heur´ıstica de selec¸˜ao de meta-heur´ısticas para estabelecer sequˆencias de m´odulos para o teste de software
Vinicius Renan de Carvalho1, Silvia Regina Vergilio1, Aurora Pozo1
1DInf-UFPR, Centro Polit´ecnico, Jardim das Am´ericas, CP 19081, CEP 19031-970, Curitiba - PR. (UFPR)
Resumo. Meta-heur´ısticas, tais como algoritmos evolutivos multi-objetivos, s˜ao utilizadas para estabelecer sequˆencias de m´odulos para o teste de integrac¸˜ao, a fim de minimizar o custo relacionado `a construc¸˜ao de stubs. Con- tudo, resultados da literatura mostram que nenhum algoritmo pode ser consi- derado o melhor para qualquer sistema e contexto. Muitas vezes ´e necess´ario configurar diferentes algoritmos e realizar experimentos para determinar qual
´e o melhor. Para evitar esta tarefa e reduzir o esforc¸o do testador, este trabalho prop˜oe uma hiper-heur´ıstica, chamada MOCAITO-HH, que utiliza o m´etodo de selec¸˜ao Choice Function para selecionar, em tempo de execuc¸˜ao, o melhor algoritmo com o melhor desempenho em um dado momento e sistema, conside- rando diferentes indicadores da ´area de otimizac¸˜ao. O uso da hiper-heur´ıstica obteve resultados equivalentes estatisticamente ao melhor algoritmo, sem que seja necess´aria a escolha da meta-heur´ıstica por parte do testador.
Abstract. Meta-heuristics, such as multi-objective and evolutionary algorithms, have been successfully used to establish sequence of modules for the integration testing with minimal stubbing cost. However, results from the literature show that no algorithm has been obtained the best performance for any system and context. Many times it is necessary to configure different algorithms and to con- duct experiments to determine the best one. To avoid this and reducing tester’s efforts, this work introduces a hyper-heuristic, named MOCAITO-HH, which uses the method Choice Function to select, in execution time, the algorithm with the best performance in a given moment and system, according to common qua- lity indicators of the optimization field. The use of the hyper-heuristic obtained results that are statistically equivalent to the best algorithm, without requiring the tester’s choice of a meta-heuristic.
1. Introduc¸˜ao
O problema de determinar uma sequˆencia de m´odulos para o teste de integrac¸˜ao visa a determinar uma ordem em que os m´odulos de um sistema devem ser integrados e testados, que possua o menor custo poss´ıvel, relacionado `a construc¸˜ao destubs. Isto pode ser feito decidindo qualstubdeve ser implementado primeiro. Esta tarefa n˜ao ´e uma tarefa trivial, pois o custo ´e influenciado por diversos fatores.
Diferentes abordagens s˜ao propostas na literatura para resolver este problema.
Dentre estas, destacam-se abordagens baseadas em busca [Wang et al. 2011], tais como a abordagem MOCAITO [Assunc¸˜ao et al. 2014] que trata este problema como um pro- blema de muitos objetivos, e por esta raz˜ao, a ser otimizado com algoritmos multi- objetivos. A abordagem inclui passos para a escolha dos objetivos e do algoritmo de
otimizac¸˜ao (meta-heur´ıstica), entretanto n˜ao oferece nenhum suporte para auxiliar o testa- dor nesta tarefa. Nos experimentos conduzidos com algoritmos evolutivos multi-objetivos (MOEAs), e relatados em [Assunc¸˜ao et al. 2014], observou-se que nenhum algoritmo se mostrou o melhor para todos os sistemas. A escolha pode depender de caracter´ısticas e interdependˆencias existentes nos m´odulos dos sistemas e esta escolha pode implicar na conduc¸˜ao de experimentos para a determinar o melhor algoritmo. Isto ´e uma tarefa dif´ıcil para testadores que n˜ao tˆem conhecimento na ´area de Engenharia de Software Baseada em Busca (SBSE) e que consome bastante tempo e esforc¸o.
Em tais situac¸˜oes, o uso de hiper-heur´ısticas tem despertado interesse da co- munidade de SBSE mais recentemente [Harman et al. 2012]. Ainda s˜ao poucos os trabalhos que tratam deste t´opico. Segundo Burke et al. (2013), hiper-heur´ıstica pode ser definida como: (i) metodologias de selec¸˜ao de heur´ısticas: heur´ısticas para escolher heur´ısticas, e (ii) metodologias de gerac¸˜ao de heur´ısticas: heur´ısticas para gerar heur´ısticas. Ainda s˜ao poucos os trabalhos que aplicam hiper-heur´ısticas em SBSE [Kaelbling et al. 1996, Basgalupp et al. 2013, Guizzo et al. 2015a, Jia et al. 2015].
No contexto do problema de integrac¸˜ao e teste de m´odulos, destaca-se a hiper-heur´ıstica HITO [Guizzo et al. 2015a] com o objetivo de auxiliar o testador na escolha de operado- res, tais como o de cruzamento e mutac¸˜ao, que melhor resolvem o problema. HITO foi implementada com o algoritmo NSGA-II e apresentou melhores resultados quando com- parada ao algoritmo tradicional. Entretanto, HITO n˜ao auxilia na escolha do algoritmo multi-objetivo mais adequado ao sistema sendo testado.
Com o objetivo de facilitar esta escolha e evitar esforc¸o comparando diferen- tes algoritmos, este trabalho prop˜oe uma hiper-heur´ıstica, chamada MOCAITO-HH, que trabalha com a abordagem MOCAITO para resolver o problema de determinac¸˜ao de sequˆencias de teste, e que utiliza a func¸˜ao de selec¸˜ao CF (Choice Func- tion [Cowling et al. 2001]), que permite escolher durante a otimizac¸˜ao o melhor algo- ritmo em um dado momento, dentre os algoritmos evolutivos: NSGA-II, SPEA-2 e IBEA.
MOCAITO-HH utiliza um ranqueamento considerando o desempenho dos algoritmos de acordo com os indicadoresHypervolume, Spread, Algorithm Effort(AE), Ratio of Non- dominated Individuals (RNI), e um mecanismo para troca de populac¸˜ao que permite a alternˆancia de execuc¸˜ao entre os algoritmos. Resultados obtidos pela hiper-heur´ıstica mostram equivalˆencia estat´ıstica com a execuc¸˜ao de um ´unico (o melhor) algoritmo em cada caso, mas com a vantagem de n˜ao ser necess´ario realizar experimentos para saber qual ´e o melhor.
O trabalho est´a organizado como segue. Na Sec¸˜ao 2 a abordagem MOCAITO ´e brevemente descrita. Ap´os isso, ´e fornecida uma introduc¸˜ao `a ´area de hiper-heur´ısticas e a func¸˜ao de selec¸˜ao CF (Sec¸˜ao 3). A hiper-heur´ıstica ´e proposta na Sec¸˜ao 4 e resultados de sua avaliac¸˜ao s˜ao apresentados na Sec¸˜ao 5. A Sec¸˜ao 6 cont´em trabalhos relacionados e a Sec¸˜ao 7 apresenta as considerac¸˜oes finais.
2. Abordagem MOCAITO
A atividade de teste ´e geralmente realizada em fases. O teste de unidade, por exemplo, visa a testar cada m´odulo de software separadamente. Depois disto, estes m´odulos s˜ao integrados e testados. Na maioria das vezes os m´odulos n˜ao s˜ao integrados de uma vez.
Essa integrac¸˜ao acontece em partes e, por isso a ordem de integrac¸˜ao de m´odulos pode
depender da disponibilidade pr´evia de um outro m´odulo, do qual eles dependem. Desta forma, faz-se necess´aria a determinac¸˜ao da ordem com que os elementos devem ser cons- tru´ıdos e testados, e caso necess´ario a construc¸˜ao de um stub. Criar um stub tem um custo, este custo deve ser minimizado por meio de alguma estrat´egia que decida qualstub deve ser implementado primeiro, esta tarefa n˜ao ´e uma tarefa trivial devido a conflitos de restric¸˜oes, fatores que impactam a criac¸˜ao de umstube poss´ıveis restric¸˜oes contratuais.
Dentre as diversas abordagens existentes para o problema [Wang et al. 2011], destaca-se a abordagem MOCAITO (Multi-objective Optimization and Coupling-based Approach for the Integration and Test Order problem), de Assunc¸˜ao et al. (2014). Esta abordagem foi escolhida devido ao fato de trabalhar com algoritmos multi-objetivos. A abordagem MOCAITO permite o uso de diferentes m´etricas e meta-heur´ısticas, fazendo desta uma abordagem gen´erica e abrangente. Duas entradas devem ser fornecidas. A pri- meira ´e a informac¸˜ao sobre os relacionamentos de dependˆencia entre os m´odulos. No con- texto de software orientado a objetos (OO) os m´odulos s˜ao classes, e a dependˆencia entre as classes ´e dada por um diagrama chamado ORD (Object Relation Diagram). No con- texto de software Orientado a Aspectos, este diagrama ´e estendido para conter tamb´em as dependˆencias entre aspectos e entre classes e aspectos. A segunda entrada ´e a informac¸˜ao sobre o custo envolvido na construc¸˜ao de umstub, seus valores s˜ao utilizados pela func¸˜ao de aptid˜ao do algoritmo (objetivos) [Assunc¸˜ao et al. 2014]. Estas entradas s˜ao utiliza- das em conjunto pelo algoritmo de otimizac¸˜ao multi-objetivo pois a informac¸˜ao sobre os relacionamentos ´e necess´aria para que a minimizac¸˜ao do custo envolvido na criac¸˜ao n˜ao viole as restric¸˜oes do problema a ser trabalhado. Ao final o testador deve escolher a melhor soluc¸˜ao de acordo com os recursos do teste.
Em [Assunc¸˜ao et al. 2014] a abordagem MOCAITO foi avaliada em experimentos com diferentes sistemas e com os algoritmos NSGA-II, SPEA2 e PAES, e os operadores Two Points CrossovereSwap Mutationcomo operadores de cruzamento e mutac¸˜ao, res- pectivamente. Dois modelos de custo foram utilizados: um com dois objetivos, composto do n´umero de atributos (A) e do n´umero de operac¸˜oes (O) que precisam se emulados caso ostubseja constru´ıdo; e um com quatro objetivos, que utiliza al´em das medidas A e O, o n´umero de tipos distintos de retorno (R) e n´umero de tipos distintos de parˆametro (P) envolvidos nas operac¸˜oes. Os resultados obtidos foram promissores, mas nenhum algo- ritmo provou ser o melhor para todos os sistemas. Para que n˜ao seja necess´aria a escolha de tal algoritmo este artigo prop˜oe uma abordagem baseada em hiper-heur´ıstica.
3. Hiper-heur´ısticas
Meta-heur´ısticas tˆem sido amplamente utilizadas na busca de soluc¸˜oes de diversos pro- blemas, contudo conforme v˜ao surgindo aplicac¸˜oes de meta-heur´ısticas em novos pro- blemas, tem-se a dificuldade de determinar qual combinac¸˜ao de meta-heur´ısticas e ope- radores seriam os mais efetivos para um dado problema. Neste contexto, o conceito de hiper-heur´ıstica surge como uma poss´ıvel soluc¸˜ao para que um processo de busca seja guiado de forma que seja aplicada automaticamente a melhor heur´ıstica de baixo n´ıvel (Low Level Heuristic- LLH) [Sabar et al. 2015].
Segundo Cowling et al. (2001) hiper-heur´ısticas s˜ao heur´ısticas que escolhem heur´ısticas. Posteriormente devido `a expans˜ao da ´area, uma nova definic¸˜ao foi proposta por Burke et al.(2013), hiper-heur´ısticas portanto s˜ao: (i) metodologias de selec¸˜ao de
heur´ısticas; e/ou (ii) metodologias de gerac¸˜ao de heur´ısticas. Assim a escolha de uma LLH ´e realizada comparando os resultados obtidos com resultados anteriores, baseando- se em algum indicador de qualidade comoHypervolume, etc. As LLH podem ser ope- radores (como por exemplo operadores de mutac¸˜ao e cruzamento), ou meta-heur´ısticas (como NSGA-II, SPEA2, etc.).
Neste trabalho, as LLH s˜ao meta-heur´ısticas, algoritmos de otimizac¸˜ao multi- objetivos a serem escolhidos automaticamente. ´E utilizado um m´etodo de selec¸˜ao de heur´ısticas conhecido comoChoice Function(CF) [Cowling et al. 2001] por sua simpli- cidade de implementac¸˜ao e melhora geralmente proporcionada por sua aplicac¸˜ao.
3.1. Choice Function
O m´etodo de Choice Function (CF) foi inicialmente proposto por Cowling et al.
(2001) e tem como objetivo escolher uma LLH de acordo com um ranqueamento.
Para isto, este m´etodo adaptativamente classifica cada LLH com relac¸˜ao a uma pontuac¸˜ao [Burke et al. 2013]. Esta pontuac¸˜ao leva em considerac¸˜ao qu˜ao bom foram os resultados da execuc¸˜ao da LLH, a melhora obtida de sua execuc¸˜ao em relac¸˜ao `a executada previamente, e o tempo de espera desde sua ´ultima utilizac¸˜ao. Maashi et al. (2014) pro- puseram uma simplificac¸˜ao para o m´etodo CF, implementando um sistema que utiliza dois ranqueamentos baseados em indicadores (Figura 1). O primeiro ranqueamento ´e criado a partir dos valores obtidos, para cada heur´ısticahi, dos indicadores deHypervolume(H), Algorithm Effort(AE), Ratio of Non-dominated Individuals(RNI) eSpread(S), ordena- dos do melhor para o pior, e posteriormente classificados de acordo com a quantidade de vezes que um dado algoritmo obteve o melhor resultado frente aos outros, ou seja, obteve a primeira colocac¸˜ao em algum indicador. A partir do primeiro ranqueamento ´e criado o segundo, que tem como func¸˜ao ordenar os elementos do melhor para o pior atribuindo- lhes uma colocac¸˜aoF reqrank.
Figura 1. Ranqueamento em dois n´ıveis, adaptada de [Maashi et al. 2014]
A func¸˜ao de selec¸˜ao ´e ent˜ao dada pela Equac¸˜ao 1:
F(hi) =αf1(hi) +βf2(hi) (1) ondeαeβ s˜ao parˆametros que regulam o impacto de cada item da equac¸˜ao.
O valor def1 ´e dado pela Equac¸˜ao 2 trabalhando-se diretamente com as vari´aveis F reqrank(obtida atrav´es do segundo ranqueamento (Figura 1)),RN Irank (obtido atrav´es
do ranqueamento do maior RNI para o menor) eN (quantidade de LLHs). A adic¸˜ao do valor de RNI na Equac¸˜ao 2 permite que o algoritmo n˜ao olhe apenas para os melhores resultados, mas tamb´em busque um maior n´umero de soluc¸˜oes n˜ao dominadas.
f1(hi) = 2∗(N + 1)−(F reqrank(hi) +RN Irank(hi)) (2) O elementof2(hi)´e o tempo (em segundos) decorrido desde a ´ultima execuc¸˜ao da heur´ısticahi. A heur´ıstica que maximiza CF ´e escolhida.
No trabalho de Maashi et al. (2014) as meta-heur´ısticas NSGA-II, SPEA2 e MOGA foram usadas como LLH para solucionar o problemaWalking Fish Group (WFG) benchmark[Huband et al. 2006]. Devido aos bons resultados obtidos, esta abordagem foi empregada neste trabalho como descrito na pr´oxima sec¸˜ao.
4. MOCAITO-HH
A MOCAITO-HH (MOCAITO using Hyper Heuristics), combina o m´etodo Choice Function proposto em [Maashi et al. 2014] com a abordagem MO- CAITO [Assunc¸˜ao et al. 2014]. Para isto, aplica a CF por classificac¸˜ao usando as m´etricasHypervolume, AE, RNI eSpread. A MOCAITO-HH utiliza o algoritmos como sendo as heur´ısticas de baixo n´ıvel (LLH), sendo estas NSGA-II, SPEA2 e IBEA, todos implementados no jMetal1.
A Figura 2 mostra como se d´a a transferˆencia das populac¸˜oes entre os algorit- mos. No caso de uma transic¸˜ao do algoritmo NSGA-II para SPEA2/IBEA, a populac¸˜ao ´e atribu´ıda normalmente e o arquivo recebe o subconjunto de soluc¸˜oes n˜ao dominadas. No caso da transic¸˜ao de SPEA2/IBEA para NSGA-II, uma uni˜ao ´e realizada entre a populac¸˜ao e o arquivo provenientes de SPEA2/IBEA, e um subconjunto ´e selecionado com ajuda do mecanismoCrowding Distancedo NSGA-II, posteriormente, este subconjunto ´e atribu´ıdo como populac¸˜ao no NSGA-II.
Figura 2. Tipos de passagem de populac¸ ˜ao
Os c´alculos dos indicadores Hypervolume e Spread s˜ao feitos como base uma dada populac¸˜ao e um ponto de referˆencia, sendo este ponto a pior soluc¸˜ao poss´ıvel para o problema a ser otimizado. O RNI representa o percentual de soluc¸˜oes n˜ao dominadas
1Neste trabalho, diferentemente do trabalho de Assunc¸˜ao et al. (2014) , n˜ao foi utilizado o algoritmo PAES, pelo fato de este n˜ao ser um algoritmo populacional. Em seu lugar foi escolhido ent˜ao o IBEA.
da populac¸˜ao em quest˜ao. O AE representa o tempo computacional necess´ario para a LLH executar. Depois de efetuado o c´alculo dos indicadores, os ranqueamentos s˜ao re- alizados, com base na Equac¸˜ao 2, e obtido oF(hi) para cada LLH levando tamb´em em considerac¸˜ao of2(hi), que ´e o tempo em segundos que uma dada LLH ficou sem atividade (representado pelo vetorEstimatedT imeW aiting) . Por fim, o maior valor deF(hi)´e selecionado e a LLH em quest˜ao ´e aplicada. Para isto recebe a populac¸˜ao LLH vigente.
Algoritmo 1:Pseudoc´odigo da hiper-heur´ıstica MOCAITO-HH na escolha de algoritmos
1 Entrada:A- Problema a ser trabalhado;W- tamanho da janela
2 Sa´ıda: O problema trabalhadoA.
3 in´ıcio
4 Algs←Inicializa algoritmos;
5 enquantoTodos algoritmos n˜ao forem executadosfac¸a
6 Alg←Algs;
7 Alg.atribuirProblema(A);
8 enquantoO tamanho da janela W n˜ao for atingidofac¸a
9 Alg.execute();
10 fim
11 fim
12 EstimatedT imeW aiting←Inicia vetor com 0 para cada LLH;
13 Hypervolumes←Calcula Hypervolume para cada algoritmo;
14 RN Is←Calcula RNI para cada algoritmo;
15 Spreads←Calcula Spread para cada algoritmo;
16 AEs←Calcula AE para cada algoritmo;
17 Ranking←CalculaRanking(Algs, Hypervolumes, RNIs, Spreads, AEs);
18 Alg←ChoiceFunction(Ranking, EstimatedTimeWaiting, RNIs);
19 enquantoA quantidade m´axima de avaliac¸˜oes n˜ao for realizadafac¸a
20 enquantoO tamanho da janela W n˜ao for atingidofac¸a
21 Alg.execute();
22 fim
23 EstimatedT imeW aiting←Incrementa EstimatedTimeWaiting de outros algoritmos;
24 Hypervolumes←Calcula Hypervolume para cada algoritmo;
25 RN Is←Calcula RNI para cada algoritmo;
26 Spreads←Calcula Spread para cada algoritmo;
27 AEs←Calcula AE para o algoritmo Alg;
28 Ranking←CalculaRanking(Algs, Hypervolumes, RNIs, Spreads, AEs);
29 proxAlg←ChoiceFunction(Ranking, EstimatedTimeWaiting, RNIs);
30 proxAlg.setPopulation(Alg.getPopulation);
31 Alg←proxAlg;
32 fim
33 A←Alg.obterResultado();
34 retornaA;
35 fim
O Algoritmo 1 mostra o comportamento da MOCAITO-HH na escolha de algorit- mos. Primeiramente os algoritmos NSGA-II, IBEA e SPEA2 s˜ao inicializados e recebem uma mesma populac¸˜ao inicial aleat´oria. Em seguida, na linha 8 cada um dos algoritmos ´e executado porW avaliac¸˜oes para que posteriormente os vetores deHypervolume,Spread, AE e RNI sejam preenchidos de forma que cada posic¸˜ao destes vetores representem um dos algoritmos. A abordagem de dois ranqueamentos [Maashi et al. 2014] ´e utilizada, e o vetorRanking ´e gerado (linha 17), que juntamente com o vetorRNIs, s˜ao utilizados pela CF para que o algoritmoAlgseja escolhido.
Na linha 19 do pseudoc´odigo inicia-se uma repetic¸˜ao que controla a quantidade de avaliac¸˜oes que devem ser executadas. Na linha 20 o mesmo processo da linha 8 ´e realizado, contudo este processo ´e executado apenas para o algoritmoAlg. Na linha 23 o incremento dos itens do vetorEstimatedTimeWaiting ´e realizado para todos os algorit- mos diferentes deAlge, posteriormente, os vetores deHypervolume, Spread, AE, RNI e
Rankings˜ao recalculados. A vari´avelproxAlg recebe o algoritmo escolhido pela CF na linha 29, para que posteriormente, na linha 30, seja realizada a passagem de populac¸˜ao do algoritmoAlg(populac¸˜ao corrente) para o algoritmoproxAlg.
5. Avaliac¸˜ao da Hiper-heur´ıstica
Para avaliar a MOCAITO-HH foram consideradas duas instˆancias do problema: uma com 2 objetivos (A e O) e outra com 4 (A,O,R,P) (ver Sec¸˜ao 2). Foram utilizados os sistemas mais complexos descritos em [Assunc¸˜ao et al. 2014] e na Tabela 1, ou seja, para os quais houve diferenc¸a no comportamento dos algoritmos.
Foram utilizados os parˆametros da Tabela 2, conforme usado no trabalho de Assunc¸˜ao et al.; α, β e W foram obtidos empiricamente, testando-se diferentes valo- res. Os algoritmos e a hiper-heur´ıstica foram executados 30 vezes. Para cada execuc¸˜ao foram obtidas a quantidade de soluc¸˜oes n˜ao dominadas e realizado o c´alculo doHyper- volumepara a populac¸˜ao final obtida. Ap´os a execuc¸˜ao, foram calculadas a m´edias das 30 execuc¸˜oes para a m´etricaHypervolumee para a quantidade de soluc¸˜oes n˜ao domina- das. Em seguida o teste estat´ıstico Kruskal-Wallis [Derrac et al. 2011] foi aplicado com a finalidade de verificar equivalˆencias estat´ısticas (significˆancia de 95%).
5.1. Resultados
As Tabelas 3 e 4 mostram os resultados para cada uma das meta-heur´ısticas individual- mente comparados ao resultado do MOCAITO-HH. A coluna Id se refere `a identificac¸˜ao do sistema usado, Hyp a m´edia doHypervolumecom seu desvio padr˜ao em parenteses, e a m´edia da quantidade de soluc¸˜oes n˜ao dominadas e seu desvio padr˜ao. Valores em negrito representam igualdade estat´ıstica segundo o teste Kruskal-Wallis.
Tabela 1. Sistemas Utilizados no Experimento
Id Sistema Linguagem Vers˜ao LOC Classes Aspectos Dependˆencias
1 AJHotDraw AspectJ 0.4 18586 290 31 1592
2 AJHSQLDB AspectJ 18 68550 276 25 1338
3 BCEL Java 5.0 2999 45 - 289
4 MyBatis Java 3.0.2.2 23535 331 - 1271
Tabela 2. Par ˆametros do experimento
Aval. Populac¸˜ao/Arquivo Cruzamento Mutac¸˜ao α β W
MOCAITO 60000 300 95% 2% - - -
MOCAITO-HH 60000 300 95% 2% 1 0.1 600
Os resultados mostram que a MOCAITO-HH obteve, em todos os casos, resul- tados de Hyp equivalentes aos resultados do melhor algoritmo, independentemente do n´umero de objetivos utilizados. Com relac¸˜ao ao tempo de execuc¸˜ao os resultados mostra- ram que o NSGA-II obteve o menor tempo de execuc¸˜ao, seguido pelo IBEA, MOCAITO- HH e SPEA2. O fator custo dever´a ser objeto de estudos futuros, considerando o uso da MOCAITO-HH em diferentes problemas.
As Figuras 3 e 4 mostram, respectivamente, o percentual de escolha de cada meta- heur´ıstica pelo MOCAITO-HH em cada um dos problemas testados. Percebe-se que o
Tabela 3. Resultados para 2 objetivos para MOCAITO-IBEA, MOCAITO-NSGA-II, MOCAITO-SPEA2 e MOCAITO-HH
ID IBEA NSGA-II SPEA2 MOCAITO-HH
1 Hyp 9.63E-1 (4.14E-3) 9.67E-1 (5.00E-3) 9.65E-1 (3.80E-3) 9.67E-1 (5.05E-3) Qtd 3.87 (1.50) 4.40 (1.81) 4.83 (2.19) 5.10 (2.25)
2 Hyp 8.59E-1 (8.19E-3) 8.71E-1 (9.24E-3) 8.65E-1 (9.98E-3) 8.64E-1 (1.07E-2) Qtd 17.93 (7.31) 32.20 (7.83) 27.80 (10.97) 25.40 (8.39) 3 Hyp 7.78E-1 (3.33E-3) 7.79E-1 (3.32E-3) 7.77E-1 (5.44E-3) 7.77E-1 (3.90E-3)
Qtd 27.46 (1.16) 28.87 (0.35) 28.77 (0.86) 28.60 (0.6215) 4 Hyp 9.05E-1 (6.95E-3) 9.10E-1 (6.59E-3) 9.11E-1 (7.16E-3) 9.10E-1 (6.21E-3)
Qtd 47.30 (4.45) 60.84 (8.43) 57.20 (5.86) 55.43 (6.59)
Tabela 4. Resultados para 4 objetivos para MOCAITO-IBEA, MOCAITO-NSGA-II, MOCAITO-SPEA2 e MOCAITO-HH
ID IBEA NSGA-II SPEA2 MOCAITO-HH
1 Hyp 9.34E-1 (4.56E-3) 9.48E-1 (4.47E-3) 9.47E-1 (5.03E-3) 9.45E-1 (5.33E-3) Qtd 7.63 (2.95) 65.26 (11.35) 74.56 (24.28) 57.80 (19.50) 2 Hyp 7.17E-1 (1.91E-2) 7.35E-1 (1.72E-2) 7.33E-1 (1.67E-2) 7.31E-1 (1.81E-2)
Qtd 33.40 (18.53) 164.73 (37.95) 122.73 (33.13) 96.66 (32.83) 3 Hyp 4.92E-1 (5.79E-3) 5.01E-1 (1.64E-3) 5.01E-1 (3.01E-4) 5.01E-1 (5.87E-4)
Qtd 19.60 (2.14) 36.20 (1.44) 36.33 (1.27) 36.33 (1.88) 4 Hyp 7.82E-1 (1.25E-2) 8.28E-1 (1.34E-2) 8.25E-1 (1.10E-2) 8.22E-1 (1.01E-2)
Qtd 38.47 (13.64) 276.74 (7.15) 248.73 (5.50) 195.90 (53.05) NSGA-II foi a meta-heur´ıstica mais escolhida pela MOCAITO-HH, e a menos utilizada foi a IBEA, o algoritmo que apresentou os piores resultados. Isto mostra a capacidade da hiper-heur´ıstica em escolher a meta-heur´ıstica mais adequada.
6. Trabalhos Relacionados
O uso de hiper-heur´ısticas desperta interesse da comunidade de SBSE [Harman et al. 2012], mas ainda s˜ao poucos os trabalhos que tratam deste t´opico.
Jia et al. (2015) introduziram uma hiper-heur´ıstica para aprender e aplicar es- trat´egias de teste combinatorial. O objetivo ´e obter uma algoritmo gen´erico para apli- car este tipo de teste. Basgalupp et al. (2013) propuseram uma hiper-heur´ıstica para a gerac¸˜ao de algoritmos que criam ´arvores de decis˜ao, onde estas ´arvores de decis˜ao fo-
NSGA-II
36.08%
SPEA2 36.54%
IBEA 27.38%
(a) AJHotDraw
NSGA-II
42.39%
SPEA2 31.48%
IBEA 26.38%
(b) AJHsqldb
NSGA-II
66.08%
SPEA2
18.54% IBEA
15.38%
(c) BCEL
NSGA-II
36.08%
SPEA2 30.54%
IBEA 33.38%
(d) MyBatis
Figura 3. Percentual de escolha para 2 objetivos.
NSGA-II
41.82%
SPEA2 33.10%
IBEA 25.08%
(a) AJHotDraw
NSGA-II
47.27%
SPEA2 28.35%
IBEA 24.38%
(b) AJHsqldb
NSGA-II
71.78%
SPEA2 15.08% IBEA
13.22%
(c) BCEL
NSGA-II
41.95%
SPEA2 33.09%
IBEA 24.96%
(d) MyBatis
Figura 4. Percentual de escolha para 4 objetivos.
ram utilizadas na predic¸˜ao de esforc¸o software. Kumari e Srinivas (2013) propuseram uma hiper-heur´ıstica para trabalhar com o problema de agrupamento de m´odulos, a fim de selecionar LLHs tais como operadores de mutac¸˜ao e crossover. Com este mesmo ob- jetivo, o trabalho de Guizzo et al. (2015a) introduziu uma hiper-heur´ıstica, chamada HITO, que seleciona LLHs a serem usadas com o problema de teste e integrac¸˜ao de clas- ses e aspectos. Este trabalho aplica hiper-heur´ısticas para o mesmo problema abordado neste trabalho, entretanto HITO seleciona dentre um conjunto de 9 operadores de busca os mais adequados ao problema. Estes operadores s˜ao as LLHs. J´a o trabalho de Guizzo et al. (2015b) aplica a abordagem HITO utilizando NSGA-II no problema de ordens de teste na presenc¸a de restric¸˜oes de modularizac¸˜ao, este trabalho seleciona dentre um conjunto de 20 operadores de busca os mais adequados ao problema.
No presente trabalho, as LLHs n˜ao s˜ao os operadores de busca e sim as meta- heur´ısticas. Neste sentido as abordagens tem diferentes objetivos e podem ser usadas de maneira complementar. Isto dever´a ser investigado em trabalhos futuros.
7. Conclus˜ao
Este trabalho introduziu a hiper-heur´ıstica MOCAITO-HH que tem como objetivo se- lecionar em tempo de execuc¸˜ao, durante o processo de otimizac¸˜ao, um algoritmo de otimizac¸˜ao multi-objetivo para determinar a sequˆencia de m´odulos para o teste de integrac¸˜ao associada ao menor custo para construc¸˜ao destubs.
MOCAITO-HH utiliza a func¸˜ao de selec¸˜ao CF, baseada em ranqueamento de acordo com o desempenho dos algoritmos considerando os indicadores Hypervolume, Spread, AE e RNI. Al´em disso, ´e considerado o tempo decorrido desde a ´ultima vez que um dado algoritmo foi executado. Os resultados da avaliac¸˜ao mostram que a hiper- heur´ıstica ´e capaz de obter resultados equivalentes estatisticamente ao melhor algoritmo, sem que seja necess´ario realizar experimentos para determinar qual o mais adequado em cada sistema. Isso reduz o esforc¸o do testador que n˜ao precisa optar por um algoritmo.
Como trabalhos futuros pretende-se avaliar o uso de MOCAITO-HH para outros sistemas e realizar um estudo experimental da abordagem em empresas de software. Al´em disso, poder˜ao ser implementadas e avaliadas outras func¸˜oes de selec¸˜ao tais como o MAB (Multi-Armed Bandit [Fialho et al. 2010]). MOCAITO-HH tamb´em poder´a ser utilizada para resolver outros problemas da Engenharia de Software.
Referˆencias
Assunc¸˜ao, W. K. G., Colanzi, T. E., Vergilio, S. R., and Pozo, A. (2014). A multi-objective optimization approach for the integration and test order problem. Information Science, 267:119–139.
Basgalupp, M. P., Barros, R. C., da Silva, T. S., and de Carvalho, A. C. P. L. F. (2013).
Software effort prediction: A hyper-heuristic decision-tree based approach. InProce- edings of the 28th ACM Symposium on Applied Computing, pages 1109–1116.
Burke, E. K., Gendreau, M., Hyde, M., Kendall, G., Ochoa, G., Ozcan, E., and Qu, R.
(2013). Hyper-heuristics. J. of the Operational Research Society, 64(12):1695–1724.
Cowling, P. I., Kendall, G., and Soubeiga, E. (2001). A hyperheuristic approach to sche- duling a sales summit. InSelected Papers from the Third International Conference on Practice and Theory of Automated Timetabling, pages 176–190.
Derrac, J., Garcia, S., Molina, D., and Herrera, F. (2011). A practical tutorial on the use of nonparametric statistical tests as a methodology for comparing evolutionary and swarm intelligence algorithms. Swarm and Evolutionary Computation, 1:3–18.
Fialho, A., Da Costa, L., Schoenauer, M., and Sebag, M. (2010). Analyzing bandit- based adaptive operator selection mechanisms. Annals of Mathematics and Artificial Intelligence, 60(1-2):25–64.
Guizzo, G., Fritsche, G. M., Vergilio, S. R., and Pozo, A. T. R. (2015a). A hyper-heuristic for the multi-objective integration and test order problem. In Proceedings of the 24th Genetic and Evolutionary Computation Conference (GECCO’15). ACM.
Guizzo, G., Vergilio, S. R., and Pozo, A. T. R. (2015b). Uma soluc¸˜ao baseada em hiper- heur´ıstica para determinar ordens de teste na presenc¸a de restric¸˜oes de modularizac¸˜ao.
InWorkshop de Engenharia de Software Baseada em Busca.
Harman, M., Burke, E., Clark, J., and Yao, X. (2012). Dynamic adaptive search based software engineering. InProceedings of the ACM-IEEE International Symposium on Empirical Software Engineering and Measurement, pages 1–8.
Huband, S., Hingston, P., Barone, L., and While, L. (2006). A review of multiobjective test problems and a scalable test problem toolkit. IEEE Transactions on Evolutionary Computation, 10(5):477–506.
Jia, Y., Cohen, M., Harman, M., and Petke, J. (2015). Learning combinatorial interac- tion test generation strategies using hyperheuristic search. InProceedings of the 37th International Conference on Software Engineering (ICSE’15).
Kaelbling, L. P., Littman, M. L., and Moore, A. W. (1996). Reinforcement learning: a survey. Journal of Artificial Intelligence Research, 4:237–285.
Kumari, A. C., Srinivas, K., and Gupta, M. P. (2013). Software module clustering using a hyper-heuristic based multi-objective genetic algorithm. In3rd International Advance Computing Conference (IACC’13), pages 813–818.
Maashi, M., ¨Ozcan, E., and Kendall, G. (2014). A multi-objective hyper-heuristic based on choice function. Expert Systems with Applications, 41(9):4475–4493.
Sabar, N., Ayob, M., Kendall, G., and Qu, R. (2015). A dynamic multiarmed bandit- gene expression programming hyper-heuristic for combinatorial optimization pro- blems. IEEE Transactions on Cybernetics, 45(2):217–228.
Wang, Z., Li, B., Wang, L., and Li, Q. (2011). A brief survey on automatic integration test order generation. InProceedings of the 23rd Software Engineering and Knowledge Engineering, pages 254–257.
Uma Solução Baseada em Hiper-Heurística para Determinar Ordens de Teste na Presença de Restrições de Modularização
Giovani Guizzo, Silvia Regina Vergilio, Aurora Trinidad Ramirez Pozo∗
1DInf - Universidade Federal do Paraná (UFPR) – Curitiba, PR – Brasil CP:19081, CEP: 19031-970
{gguizzo,silvia,aurora}@inf.ufpr.br
Abstract. Hyper-heuristics are techniques to select or generate low-level heu- ristics, generally applied to make the use of search algorithms more generic and to improve their results. Despite their advantages, hyper-heuristics have been underexplored in the Search Based Software Engineering (SBSE) field. An ini- tiative for this purpose that was successfully applied to established unit orders for the integration test, is the Hyper-Heuristic for the Integration and Test Order Problem (HITO). HITO helps in the selection of genetic operators during the al- gorithm execution. This work presents results from the application of HITO in a more complex version of the same problem, in which unit clusters are con- sidered. This version encompasses modularization restrictions and a greater number of possible operators. Evaluation results obtained with HITO are bet- ter or equivalent to that, obtained with the conventional algorithm for all tested systems.
Resumo. Hiper-heurísticas são técnicas para a seleção ou geração de heurísti- cas de baixo nível, geralmente utilizadas para tornar a utilização dos algoritmos de busca mais genérica e melhorar os seus resultados. Apesar das suas vanta- gens, hiper-heurísticas têm sido pouco exploradas no contexto de Engenharia de Software Baseada em Busca (SBSE). Uma iniciativa com este propósito que obteve bons resultados no estabelecimento de ordens de unidades para realizar o teste de integração, é a Hyper-Heuristic for the Integration and Test Order Problem (HITO). HITO visa à seleção de operadores genéticos em tempo de execução dos algoritmos. Neste trabalho são apresentados resultados da ava- liação de HITO em uma versão mais complexa do mesmo problema, na qual o agrupamento de unidades é considerado, o que envolve restrições de modu- larização e um conjunto maior de possíveis operadores. Os resultados obtidos com HITO são superiores ou equivalentes aos obtidos com o algoritmo genético convencional em todos os sistemas testados.
1. Introdução
Algoritmos Evolutivos Multiobjetivos (Multi-Objective Evolutionary Algorithms – MOEAs) têm sido aplicados em diferentes problemas da engenharia de soft- ware [Harman et al. 2012]. Entretanto, tais algoritmos demandam um certo esforço e experiência do engenheiro de software para configurá-los e ajustar seus parâmetros, como
∗Os autores agradecem à CAPES e ao CNPq pelo apoio financeiro.
por exemplo determinar quais são os melhores operadores de busca (cruzamento, mutação e seleção) e suas probabilidades de aplicação. Além disso, as soluções são, em geral, de- pendentes do problema e os algoritmos precisam ser ajustados constantemente. O uso de hiper-heurísticas pode ajudar a superar esses desafios [Harman et al. 2012]. Uma hiper- heurística pode ser definida como uma “heurística para selecionar ou gerar heurísticas [de baixo nível]” [Burke et al. 2010]. A principal característica de hiper-heurísticas é que elas agem sobre o espaço de heurísticas para selecionar ou gerar heurísticas que melhor resolvam o problema, ao invés de agir sobre o problema diretamente, o que geralmente acarreta em bons resultados.
Mesmo com as vantagens que podem ser obtidas, o uso de hiper-heurísticas na área de Engenharia de Software Baseada em Busca ainda é um tema pouco explorado.
Dentre eles destacam-se: o trabalho de Basgalupp et al. (2013) que apresenta uma hiper- heurística para evoluir algoritmos de geração de árvores de decisão para a predição de es- forço. Kumari et al. (2013) apresentam uma hiper-heurística para a solução do problema de agrupamento de módulos. Jia et al. (2015) propõem uma hiper-heurística para aprender e aplicar estratégias de teste combinatorial. Em um trabalho anterior, Guizzo et al. (2015) propuseram uma hiper-heurística para resolver o problema de determinar ordens de unida- des (classes ou aspectos) para realizar o teste de integração. Este é um problema difícil da área de teste de software, que consiste em encontrar uma sequência para se testar unida- des de software de modo a diminuir o custo para a criação destubs[Wang et al. 2011]. A hiper-heurística chamada HITO (Hyper-heuristic for the Integration and Test Order Pro- blem) foi proposta para selecionar operadores de cruzamento e mutação (heurísticas de baixo nível) enquanto MOEAs são executados. Para este fim, HITO utiliza um método de seleção baseado em escore chamadoChoice Function(CF) [Maashi et al. 2014] e utiliza o MOEANon-dominated Sorting Genetic Algorithm-II(NSGA-II) [Deb et al. 2002]. Nos experimentos realizados, HITO obteve melhores resultados que os obtidos pelo NSGA- II [Guizzo et al. 2015].
Os bons resultados obtidos com HITO motivaram estudos futuros tais como o descrito em [de Carvalho et al. 2015] e o presente trabalho aqui descrito, que tem como objetivo apresentar resultados da aplicação de HITO em uma outra instância do problema, que é o estabelecimento de ordens de teste na presença de restrições de modularização.
Neste problema o objetivo também é determinar uma sequência de unidades a fim de mi- nimizar o custo de construção destubs, entretanto considerando uma característica muito importante do software que é a modularidade. Isso implica na existência de restrições que determinam que unidades relacionadas geralmente sejam desenvolvidas em conjunto e devam ser testadas como um agrupamento (cluster). Dessa maneira, o problema torna- se mais complexo e outros operadores genéticos que lidam com restrições foram pro- postos [Assunção et al. 2013], o que aumenta ainda mais a dificuldade de configuração adequada para o testador na hora de aplicar a solução baseada em busca.
Portanto, a hipótese deste trabalho é que a hiper-heurística HITO é capaz de obter melhores resultados que o MOEA, no caso o NSGA-II, em um problema mais restritivo e mais difícil de ser resolvido. Para responder a esta hipótese são apresentados resultados com os mesmos sistemas e metodologia descritos no trabalho que oferece o tratamento convencional para o problema [Assunção et al. 2013].
Este trabalho é organizado da seguinte forma: A Seção 2 contém brevemente
conceitos de hiper-heurísticas. A Seção 3 descreve a hiper-heurística HITO. A avaliação experimental é apresentada na Seção 4, juntamente com as discussões dos resultados. Por fim, a Seção 5 conclui este trabalho e apresenta trabalhos futuros.
2. Hiper-Heurísticas
Uma hiper-heurística pode ser definida como um conjunto de abordagens para selecio- nar ou gerar heurísticas de baixo nível, com aprendizado durante ou antes da otimiza- ção [Burke et al. 2010]. Hiper-heurísticas com aprendizado antes da otimização são cha- madasoff-line, as quais utilizam instâncias debenchmarkspara serem treinadasa priori.
Aprendizado durante a otimização é chamadoon-line, o qual se dá enquanto o problema está sendo resolvido, sem a necessidade de um treinamento prévio [Burke et al. 2010].
Outra possibilidade é não utilizar aprendizado, como por exemplo com uma técnica alea- tória ou gulosa. Heurísticas de baixo nível podem ser operadores de busca ou até mesmo meta-heurísticas, sendo classificadas de natureza de perturbação (muda uma solução exis- tente) ou criação (sintetiza uma solução gradualmente).
Hiper-heurísticas de seleção geralmente possuem uma barreira de domínio que esconde detalhes do problema. Assim, a barreira previne que a hiper-heurística se aco- ple com o problema e a mantém genérica. Hiper-heurísticas de seleção geralmente pos- suem dois componentes principais [Burke et al. 2010]: i) método de seleção – faz a seleção, com ou sem aprendizado; e ii) método de aceitação – decide aceitar ou não uma solução gerada. Neste artigo é utilizado o método de seleção Choice Function (CF) [Maashi et al. 2014]. A Equação 1 apresenta o cálculo de escore de uma heurís- tica de baixo nível utilizando o CF original [Cowling et al. 2001].
f(hi) = αf1(hi) +βf2(hj, hi) +δf3(hi) (1) onde hi é a heurística de baixo nível sendo avaliada; f1 é a última performance de hi; f2 é a última performance de hi ao ser executada logo após hj; f3 é a quantidade de segundos de CPU que se passaram desde a última vez quehi foi executada; e α, β e δ são os valores de peso paraf1, f2 e f3. Uma característica peculiar do CF é que este método faz o balanceamento entre a exploração e a intensificação (exploration vs exploi- tation–EvE dilemma). Enquantof1 ef2são utilizadas para medir a performance de uma heurística de baixo nível (intensificação), f3 é utilizada como fator de tempo (explora- ção). Caso a exploração seja preferível, então o pesoδ deve ser incrementado, ouαeβ devem ser incrementados caso a intensificação deva ser focada. Isso se dá pois é interes- sante continuar aplicando heurísticas de baixo nível com boa performance, mas também é interessante aplicar heurísticas de baixo nível que já estão há algum tempo sem serem aplicadas para aumentar a diversidade das soluções.
O método CF utilizado neste trabalho é a versão simplificada apresentada em [Maashi et al. 2014]. Essa adaptação contém apenas as funções f1 e f3 do método original. A Equação 2 apresenta esse método.
CF(h) = αf1(h) +βf3(h) (2)
Os bons resultados obtidos por esta função em um trabalho ante- rior [Guizzo et al. 2015] e na literatura [Burke et al. 2010, Maashi et al. 2014] motivaram a sua utilização neste trabalho. Outras vantagens são a sua implementação fácil e a sua compatibilidade com o contexto em que HITO é aplicada (a cada cruzamento).
3. HITO
Hyper-heuristic for the Integration and Test Order Problem(HITO) foi proposta em um trabalho anterior [Guizzo et al. 2015] para a seleção on-line de operadores genéticos e para o problema de determinar uma ordem de teste de integração de unidades com mínimo custo de construção destubs, usando o algoritmo NSGA-II.
O problema de ordem de teste de integração de unidades, resumidamente, é um problema de teste de software que tenta diminuir o custo da criação de stubs en- contrando uma sequência para que as unidades do sistema sejam integradas e testa- das [Wang et al. 2011]. Um stub é uma simulação de uma unidade requerida e possui um custo para a sua criação. Uma versão mais complexa deste problema insere o agru- pamento de unidades, de modo que as unidades de um determinado grupo sejam integra- das e testadas juntas [Assunção et al. 2013]. Isso acarreta em outras restrições e em um incremento na dificuldade do problema, uma vez que quando uma solução possui suas restrições violadas, a mesma é corrigida, acaba tendo seufitnessdeteriorado e o processo de busca se torna menos eficiente. Portanto, é preferível aplicar operadores que consigam otimizar as soluções sem violar suas restrições. Além disso, este problema se torna mais difícil quando múltiplos objetivos são considerados. Em sistemas Orientados a Objetos (OO) uma unidade é uma classe, enquanto que em sistemas Orientado a Aspectos (OA) uma unidade pode ser também um aspecto. Neste trabalho são utilizados sistemas OO e OA, codificados em um problema de permutação e representados por grafosObject Rela- tion Diagram(ORD). Além disso, os seguintes objetivos compõem as funções defitness utilizadas para avaliar o custo dosstubs: i)A– quantidade de atributos que deverão ser emulados porstubs; e ii)M– quantidade de métodos que deverão ser emulados porstubs.
Este problema é propício de ser resolvido por hiper-heurísticas como HITO de- vido às suas características principais: i) é impactado por diferentes fatores e resolvido adequadamente por MOEAs [Assunção et al. 2013]; ii) é difícil de ser resolvido, princi- palmente considerando o agrupamento de unidades o qual é acompanhado de restrições de modularidade; iii) possui diversos operadores que podem ser adaptativamente seleci- onados; e iv) o problema é encontrado em diversos contextos, como por exemplo OO e OA [Assunção et al. 2013].
HITO inclui um conjunto de passos apresentados na Figura 1. O primeiro passo é a inicialização de HITO, no qual o usuário seleciona a instância do problema, as funções de fitness, o MOEA a ser executado, as heurísticas de baixo nível que sejam compatí- veis com a representação e o método de seleção, bem como os parâmetros. No segundo passo são estabelecidas as heurísticas de baixo nível. Neste trabalho cada heurística de baixo nível é composta por um operador de cruzamento e um operador de mutação, ou só um operador de cruzamento, formados por todas as combinações possíveis de quatro operadores de cruzamento e quatro operadores de mutação: i) Inter e Intra Cluster Two Points Crossover, e Inter e Intra Cluster Uniform Crossover; ii) Inter e Intra Cluster Swap Mutation, e Inter e Intra Cluster Simple Insertion Mutation. De acordo com Assunção et al. (2013), a diferença entre os operadores Inter e Intra Cluster é que os operadores Intra Cluster fazem a permutação diretamente nas unidades dentro de um grupo, enquanto que os operadores Inter Cluster fazem a permutação de grupos inteiros. Dados estes operado- res, foram formadas 20 heurísticas de baixo nível. A vantagem aqui é que o engenheiro de software não vai precisar selecionar qual destes operadores deverá ser utilizado, sendo
Figura 1. Fluxo de HITO
delegada esta decisão à hiper-heurística. Como mencionado anteriormente, essa seleção é feita por meio do método CF [Maashi et al. 2014].
Cada heurística de baixo nível possui um valor de performance instantânea calcu- lado porf1no intervalo[0,1]e um valor de tempo calculado porf3no intervalo[0..+∞], que definem respectivamente a última performance da heurística de baixo nível e quantos cruzamentos passaram desde a sua última execução. Quanto maior o valor def1, melhor a heurística de baixo nível se saiu. No segundo passo de HITO, ambos valores são ini- cializados com0e posteriormente cada heurística é aplicada uma vez para atribuir uma performance inicial. Esses valores são atualizados toda vez que uma heurística de baixo nível é aplicada. Basicamente, a cada atualização, o valorf3 da heurística aplicada é ze- rado e o valorf3 das demais é incrementado em 1. Já para f1, a sua atualização é feita utilizando apenas os pais e os filhos envolvidos no cruzamento e na mutação, de acordo com a seguinte equação:
f1 = 1
|P| · |C| ·X
c∈C
X
p∈P
1 ifc≺p 0 ifp≺c 0.5 caso contrário
(3)
ondeP são os pais envolvidos no cruzamento;Csão os filhos gerados;pé um pai; ecé
um filho. O resultado é um somatório normalizado entre[0,1]onde0significa que ambos os filhos são dominados (p ≺ c) pelos pais (resultado ruim) e 1significa que ambos os filhos dominam os pais (resultado bom). Portanto, quanto maior o resultado da equação, melhor a performance da heurística e mais propícia esta é para ser aplicada.
No terceiro passo a população é inicializada, e avaliada no quarto passo. A partir daí o laço de repetição de gerações é iniciado até que o critério de parada seja atingido. A cada geração a população filha é preenchida com novas soluções. Para cada cruzamento, os pais são selecionados pelo algoritmo, a heurística de baixo nível com o maior valor de CF é selecionada e aplicada nos pais, as soluções filhas são avaliadas e a atualização de performance def1 é feita no próximo passo, que também atualiza f3. Após isso, a população sobrevivente é selecionada pelo MOEA e a geração é incrementada. Quando o critério de parada é atingido, o algoritmo finaliza e retorna a população atual.
Hiper-heurísticas que abordam problemas multiobjetivos devem se preocupar em como avaliar a performance de heurísticas de baixo nível, uma vez que soluções podem ser não dominadas. Em [Maashi et al. 2014] os autores utilizam um mecanismo de perfor- mance baseado em indicadores de qualidade que avaliam uma população como um todo a cada geração. Outros trabalhos como [Kumari et al. 2013, Kateb et al. 2014] também avaliam a performance a cada geração. Em [Li et al. 2014] os autores avaliam a perfor- mance de uma heurística de baixo nível de acordo com os subproblemas de um MOEA baseado em Decomposição (MOEA/D). Entretanto, até onde foi possível analisar, na li- teratura apenas HITO utiliza uma função de performance que se baseia inteiramente no conceito de dominância de Pareto utilizando apenas os pais e filhos de um cruzamento, e seleciona as heurísticas de baixo nível a cada cruzamento.
Neste artigo apenas o MOEA NSGA-II é utilizado, mas HITO pode trabalhar com outros algoritmos, que geralmente utilizam operadores genéticos para gerar soluções, e dada a grande quantidade de operadores existentes, a seleção destes pode ser delegada à hiper-heurísticas tais como HITO.
4. Avaliação Experimental
Na avaliação experimental apresentada em [Guizzo et al. 2015], HITO superou o algo- ritmo NSGA-II [Deb et al. 2002] em todos os sistemas considerando o problema de or- dem de teste de integração. O presente trabalho tem como objetivo avaliar se HITO consegue obter os mesmos bons resultados diante de um problema mais complexo e restritivo, enquanto seleciona operadores genéticos diferentes. De modo a avaliar isto, foram utilizados os mesmos sistemas e agrupamentos de unidades tal como os descri- tos no trabalho que propõe a solução convencional para o problema utilizando MO- EAs [Assunção et al. 2013]. Os resultados de HITO e do algoritmo NSGA-II são com- parados utilizando o indicador de qualidade hypervolume [Zitzler and Thiele 1999] e o teste estatístico Kruskal-Wallis com 95% de significância [Derrac et al. 2011]. Este in- dicador é um dos mais utilizados na literatura e possui compatibilidade com o operador de comparação “/” (better – determina quando uma fronteira de Pareto é melhor que outra [Zitzler and Thiele 1999]).
Os sistemas utilizados são apresentados na Tabela 1. Esses sistemas são OO ou OA e variam em quantidade de unidades, quantidade de dependências entre unidades, linhas de código (LOC) e número declusters.
Tabela 1. Sistemas utilizados no estudo
Nome Contexto Unidades Dependências LOC Clusters
MyBatis OO 331 1271 23535 24
AJHSQLDB OA 301 1338 68550 15
AJHotDraw OA 321 1592 18586 12
BCEL OO 45 289 2999 3
JHotDraw OO 197 809 20273 13
HealthWatcher OA 117 399 5479 7
JBoss OO 150 367 8434 8
Para este trabalho foi adotada a mesma representação, restrições e funções defit- nessadotadas em [Assunção et al. 2013]. HITO foi implementado usando o framework jMetal [Durillo and Nebro 2011]. Tanto o NSGA-II quanto HITO recebem como entrada o ORD dos sistemas e operam sobre uma representação de permutação, onde o cromos- somo é uma lista de inteiros e cada valor (gene) é o número identificador de uma unidade.
As unidades devem ser integradas e testadas na ordem em que aparecem nesta lista. Um stubé necessário quando uma unidade aparece antes de uma unidade requerida na lista e as funções de fitness A e M (número de atributos e métodos) calculam os custos as- sociados. Além disso, informações sobre os grupos de unidades são disponibilizadas e utilizadas para manter a integridade das soluções durante o cruzamento e a mutação.
Cada algoritmo (HITO e NSGA-II) foi executado 30 vezes para cada sistema.
Por motivos de comparação, o algoritmo NSGA-II e seus parâmetros foram mantidos como apresentados em [Assunção et al. 2013]. Já os parâmetros de HITO foram mantidos como no artigo [Guizzo et al. 2015], no qual foram obtidos após um ajuste empírico. Os parâmetros são: tamanho da população: 300; máximo de gerações (critério de parada):
200; CFα(intensificação): 1; e CFβ (exploração): 0.00005.
Em adição, os valores de probabilidade de cruzamento de 95% e mutação de 2%
foram mantidos para o NSGA-II, conforme [Assunção et al. 2013]. Já para HITO, proba- bilidades de cruzamento e mutação não se aplicam, pois a hiper-heurística sempre aplica a heurística de baixo nível selecionada. Assim, caso a mutação deva ser aplicada menos vezes, então HITO identificará essa necessidade e aplicará mais as heurísticas de baixo nível que possuem apenas o operador de cruzamento. Essa é uma das principais vantagens de se utilizar hiper-heurísticas: o usuário não precisa escolher operadores e muito menos configurar suas probabilidades.
Como a fronteira de Pareto real (P Ftrue) para esses sistemas não é conhecida, ela foi formada pelas soluções não dominadas encontradas por ambos os algoritmos. Além disso, cada algoritmo obteve uma fronteira de Pareto conhecida (P Fknown) formada pelas soluções não dominadas encontradas em suas 30 execuções. Essas fronteiras também foram avaliadas utilizando o hypervolume.
4.1. Análise dos Resultados
A Tabela 2 apresenta os valores de hypervolume de cada P Fknown encontrados pelos algoritmos. Valores destacados em negrito são os melhores resultados.
Como visto na tabela, HITO foi capaz de encontrar as melhores fronteiras para
Tabela 2. Hypervolume of theP Fknown fronts for 2 objectives
Sistema NSGA-II HITO MyBatis 3,09E-1 5,00E-1 AJHSQLDB 5,27E-2 7,16E-1 AJHotDraw 1,42E-2 5,73E-1
BCEL 0,00E0 8,17E-2
JHotDraw 1,24E-1 2,78E-1 HealthWatcher 2,50E-1 2,50E-1
JBoss 0,00E0 0,00E0
todos os sistemas, empatando em apenas dois sistemas. Entretanto, esses dados mostram apenas a qualidade das fronteiras de Pareto final encontradas após as 30 execuções. Para uma avaliação mais precisa, a Tabela 3 apresenta a média dos 30 valores de hypervolume encontrados pelos algoritmos, juntamente com os valores de desvio padrão em parênteses.
Valores destacados em negrito são os melhores valores ou os que possuem igualdade es- tatística ao melhor valor de acordo com o teste de Kruskal-Wallis (95% de significância).
Tabela 3. Hypervolume average found for 2 objectives
Sistema NSGA-II HITO
MyBatis 2,77E-1 (6,91E-2) 3,63E-1 (9,13E-2) AJHSQLDB 7,74E-2 (8,91E-2) 2,11E-1 (1,18E-1) AJHotDraw 8,08E-2 (5,79E-2) 3,48E-1 (2,14E-1) BCEL 2,84E-2 (1,62E-2) 6,85E-2 (6,69E-2) JHotDraw 1,11E-1 (9,11E-2) 1,26E-1 (1,01E-1) HealthWatcher 1,67E-1 (8,80E-3) 2,03E-1 (6,91E-2) JBoss 4,67E-2 (1,70E-1) 3,22E-2 (1,72E-1)
Em resumo, HITO obteve as melhores médias de hypervolume, ou valores esta- tisticamente equivalentes ao do NSGA-II para todos os sistemas. Esses resultados são compatíveis com o trabalho anterior [Guizzo et al. 2015]. Além de não precisar esco- lher os operadores e configurá-los, o usuário pode também obter os melhores resultados utilizando hiper-heurísticas, também na presença de restrições de modularização.
De modo a entender melhor o funcionamento da hiper-heurística, foram avaliadas também a quantidade de vezes que cada heurística de baixo nível foi aplicada. Por moti- vos de espaço, esses dados não foram apresentados em uma tabela. Assim como ocorreu em [Guizzo et al. 2015], dentre as 20 heurísticas de baixo nível, as mais aplicadas foram sempre as que não possuem mutação, pois apresentaram uma performance melhor. Isso se dá pelo fato de que a mutação pode violar alguma restrição e assim deteriorar as solu- ções. Com isso, HITO decidiu aplicar menos vezes heurísticas com este operador. Dentre os operadores de cruzamento, para todos os sistemas exceto BCEL, a heurística de baixo nível que possui apenas o Inter Cluster Two Points Crossover foi aplicada mais vezes que as demais, e a que possui apenas o Intra Cluster Two Points Crossover foi aplicada mais vezes que as heurísticas de baixo nível que possuem o Uniform Crossover. Já para o sistema BCEL, o Inter Cluster Uniform Crossover foi melhor. De fato, os operadores
de cruzamento Inter Cluster (permutam grupos de unidades como sendo um gene) foram mais eficientes. Já para a mutação, em todos os sistemas, as heurísticas de baixo nível que possuem os operadores Intra Cluster (permutam unidades dentro de um grupo) foram melhores que as heurísticas de baixo nível que possuem o mesmo cruzamento e seus res- pectivos operadores de mutação Inter Cluster. Apesar disso, a utilização de ambos os tipos de operadores (Inter e Intra Cluster) são essenciais para a obtenção de bons resultados.
5. Considerações Finais
No artigo em que HITO foi proposta [Guizzo et al. 2015], essa hiper-heurística foi ava- liada e obteve os melhores resultados quando comparada com o NSGA-II em todos os sistemas testados. Neste trabalho, HITO foi avaliada para estabelecer ordens de integra- ção e teste de unidades considerando restrições de modularidade, uma versão mais difícil e restritiva. Devido à necessidade de se testar as unidades em conjunto, um número maior de operadores de mutação e cruzamento devem ser aplicados.
Os resultados mostraram que HITO é capaz de superar ou se igualar ao NSGA-II nos 7 sistemas testados, tanto na qualidade das fronteiras de Pareto finais quanto na mé- dia de hypervolume em 30 execuções. Além dessa análise, o comportamento de HITO foi estudado considerando a quantidade de vezes que cada uma das 20 heurísticas de baixo nível foi aplicada. A avaliação mostrou que heurísticas de baixo nível que possuem ape- nas operadores de cruzamento obtém melhores performances. Esses resultados positivos demonstram ainda mais as vantagens de se utilizar hiper-heurísticas como HITO: obten- ção de bons resultados e a diminuição do esforço na escolha de quais operadores devem ser utilizados, já que HITO faz isso dinamicamente.
Trabalhos futuros devem explorar a utilização de outros MOEAs em outros pro- blemas do teste de software, tais como a seleção e priorização de casos de teste. Outras heurísticas de baixo nível também podem ser utilizadas para analisar o comportamento de HITO. Pretende-se também utilizar abordagens para o ajuste dinâmico de parâmetros durante a execução da hiper-heurística. Por fim, trabalhos futuros devem explorar outras áreas da engenharia de software que podem se beneficiar do uso de hiper-heurísticas.
Referências
[Assunção et al. 2013] Assunção, W. K. G., Colanzi, T., Vergilio, S., and Pozo, A. (2013).
Determining integration and test orders in the presence of modularization restrictions.
InProceedings of the 27th Brazilian Symposium on Software Engineering (SBES’13), pages 31–40.
[Basgalupp et al. 2013] Basgalupp, M. P., Barros, R. C., da Silva, T. S., and Carvalho, A.
C. P. L. F. (2013). Software Effort Prediction: A Hyper-heuristic Decision-tree Based Approach. InProceedings of the 28th SAC, pages 1109–1116. ACM.
[Burke et al. 2010] Burke, E. K., Hyde, M., Kendall, G., Ochoa, G., Özcan, E., and Wo- odward, J. R. (2010). A classification of hyper-heuristic approaches. In Gendreau, M.
and Potvin, J.-Y., editors, Handbook of Metaheuristics, volume 146 of International Series in Operations Research & Management Science, pages 449–468. Springer US.
[Cowling et al. 2001] Cowling, P., Kendall, G., and Soubeiga, E. (2001). A hyperheuristic approach to scheduling a sales summit. In Burke, E. and Erben, W., editors, Pro-