2.2 Sele¸c˜ ao de requisitos de software
2.2.1 T´ ecnicas para a Sele¸c˜ ao de Requisitos de Software Baseadas em
2.2.1.2 T´ ecnicas baseadas em busca para o MONRP
h´a uma necessidade de t´ecnicas que auxiliem no processo de compreens˜ao, an´alise e interpreta¸c˜ao de resultados obtidos para a inclus˜ao de requisitos para a pr´oxima vers˜ao
2.2 SELEC¸ ˜AO DE REQUISITOS DE SOFTWARE 23
do software. Nos casos mais simples (mono-objetivo), uma compara¸c˜ao equitativa entre alguns algoritmos (por exemplo, Simullated Annealing e Hill Climbing), observando a quantidade de esfor¸co exigido por cada busca e uma an´alise estat´ıstica elementar, pode ser usada para analisar a melhor solu¸c˜ao para um conjunto de requisitos (HARMAN et al., 2012).
No entanto, na pr´atica, em um projeto de software ´e mais prov´avel que existam muitos objetivos conflitantes para tratar quando for necess´ario determinar o conjunto de requisitos para incluir na pr´oxima vers˜ao do software. Portanto, quando a meta de modelar o problema ´e a otimiza¸c˜ao de v´arios objetivos e restri¸c˜oes, h´a uma necessidade de t´ecnicas para melhorar a busca de solu¸c˜oes, porque, ao contr´ario da otimiza¸c˜ao mono- objetivo (NRP), a solu¸c˜ao de um problema multi-objetivo (MONRP) n˜ao ´e um ponto ´
unico com valor unit´ario, mas um conjunto de solu¸c˜oes expressando mais de um valor, de acordo com a quantidade de objetivos propostos (HARMAN et al., 2012; ZHANG et al., 2011; SAGRADO et al., 2010).
Esse conjunto de solu¸c˜oes ´e conhecido como Frente de Pareto, em que v´arios objetivos de otimiza¸c˜ao s˜ao combinados sem ter que decidir qual tem prevalˆencia sobre os outros (HARMAN et al., 2012; HARMAN, 2007). Uma ilustra¸c˜ao de uma Frente de Pareto pode ser vista na Figura 2.5.
Figura 2.5: Exemplo de Frente de Pareto para problema de maximiza¸c˜ao de dois objetivos. Adaptado de Abraham et al.(ABRAHAM; JAIN; GOLDBERG, 2005)
Nessa Figura ´e poss´ıvel perceber que o que diferencia as solu¸c˜oes da Frente de Pa- reto das demais ´e a dominˆancia. De acordo com Deb (DEB; KALYANMOY, 2001), a dominˆancia existe quando uma solu¸c˜ao ´e melhor ou igual que uma outra solu¸c˜ao em to- dos os crit´erios de otimiza¸c˜ao, e estritamente melhor em pelo menos um dos crit´erios.
Logo, as solu¸c˜oes fora da Frente de Pareto (por exemplo, Solu¸c˜ao A na Figura 2.5) s˜ao completamente dominadas pelas solu¸c˜oes que est˜ao na Frente de Pareto.
De forma mais detalhada, a otimiza¸c˜ao atrav´es da an´alise da Frente de Pareto ´e o pro- cesso de encontrar um conjunto de solu¸c˜oes n˜ao-dominadas pertencentes a um conjunto de solu¸c˜oes candidatas, e cada solu¸c˜ao n˜ao dominada pode ser visto como um combina¸c˜ao ideal em todos os objetivos envolvidos na otimiza¸c˜ao (SAYYAD; MENZIES; AMMAR, 2013). Sendo assim, uma solu¸c˜ao pertencente ao Pareto indica que n˜ao foi poss´ıvel, no processo de busca, encontrar uma outra solu¸c˜ao que melhora o desempenho de um dos objetivos a serem otimizados sem que diminua a qualidade de, pelo menos, um outro crit´erio (TALBI, 2009).
Como muitas vezes, o espa¸co de busca para sele¸c˜ao de requisitos ´e imenso e h´a m´ultiplos objetivos conflitantes, m´etodos heur´ısticos s˜ao utilizados para se obter a Frente de Pareto. Conforme Hillier e Lieberman (HILLIER; LIEBERMAN, 2004), um m´etodo heur´ıstico ´e um procedimento que, provavelmente, vai encontrar uma excelente solu¸c˜ao vi´avel, mas n˜ao necessariamente uma solu¸c˜ao ´otima, para um problema em quest˜ao. N˜ao se pode dar garantia sobre a qualidade da solu¸c˜ao obtida, por´em uma heur´ıstica bem ela- borada, em geral, ´e capaz de fornecer uma solu¸c˜ao que se encontra pelo menos pr´oxima da ´
otima (COELLO; LAMONT; VELDHUIZEN, 2007; TALBI, 2009; ABRAHAM; JAIN; GOLDBERG, 2005; EHRGOTT, 2000).
Um avan¸co em rela¸c˜ao a essas t´ecnicas s˜ao as meta-heur´ısticas. Uma meta-heur´ıstica ´
e um m´etodo de resolu¸c˜ao geral que fornece tanto uma estrutura quanto diretrizes de estrat´egia gerais para desenvolver uma solu¸c˜ao. Na verdade, ela ´e um tipo de m´etodo que orquestra a intera¸c˜ao entre procedimentos de melhoria local e estrat´egias de n´ıvel mais alto para criar um processo que seja capaz de realizar uma busca consistente em uma regi˜ao de solu¸c˜oes vi´aveis (HILLIER; LIEBERMAN, 2004). Podem ser citadas como meta-heur´ısticas conhecidas: Tabu Search (GENDREAU; POTVIN, 2005), Simulated Annealing (KIRKPATRICK; GELATT; VECCHI, 1983) e, algoritmos gen´eticos (GEN- DREAU; POTVIN, 2010).
Os Algoritmos Gen´eticos (AG) s˜ao uma esp´ecie de algoritmo de busca bio-inspirado com base na evolu¸c˜ao do conjunto de indiv´ıduos resultantes da sele¸c˜ao natural e gen´etica naturais (POLI; LANGDON; MCPHEE, 2008; ABRAHAM; JAIN; GOLDBERG, 2005). De acordo com Talbi (TALBI, 2009), a um AG geralmente aplica-se um operador de re- combina¸c˜ao de duas solu¸c˜oes que desempenham um papel importante, al´em de um opera- dor de muta¸c˜ao que altera aleatoriamente o conte´udo do indiv´ıduo (uma poss´ıvel solu¸c˜ao) para promover a diversidade. Algoritmos Gen´eticos vem sendo utilizados com bastante frequˆencia pela comunidade de SBSE para resolver o NRP e/ou MONRP (HARMAN et al., 2012; PITANGUEIRA et al., 2013) pois tendem a ser, particularmente, eficientes na explora¸c˜ao de diversas partes da regi˜ao de solu¸c˜oes vi´aveis, obtendo uma evolu¸c˜ao gradual no sentido das melhores solu¸c˜oes do espa¸co de busca (ZHANG; HARMAN, 2010; HARMAN et al., 2012; ZHANG; HARMAN; LIM, 2013).
Na ´area de SBSE, um dos algoritmos gen´eticos mais comumente utilizado ´e o NSGA- II (Non-Sorted Genetic Algorithm) desenvolvido por Deb et al. (DEB et al., 2002), que ´
e muitas vezes utilizado em problemas complexos que envolvem a sele¸c˜ao de requisitos (ZHANG; HARMAN, 2010; FINKELSTEIN et al., 2009; DURILLO et al., 2011). As
2.2 SELEC¸ ˜AO DE REQUISITOS DE SOFTWARE 25
principais caracter´ısticas citadas por Zhang e Harman (ZHANG; HARMAN, 2010) sobre o NSGA-II foram a capacidade deste algoritmo para obten¸c˜ao de melhores solu¸c˜oes em instˆancias de dados grandes e a diversidade das solu¸c˜oes apresentadas no processo de otimiza¸c˜ao.
Uma outra maneira de abordar problemas de sele¸c˜ao de requisitos de software ´e o uso de hibridiza¸c˜ao. De acordo com Harman et al. (HARMAN et al., 2012), hibridiza¸c˜ao de t´ecnicas de busca como uma meta-heur´ıstica e uma t´ecnica linear (ex: programa¸c˜ao inteira (AKKER et al., 2005b; PURSHOUSE et al., 2014)) pode ser ben´efico para inje- tar solu¸c˜oes em algoritmos evolutivos, a fim de acelerar o processo de encontrar solu¸c˜oes pr´oximas das solu¸c˜oes ´otimas. Conforme Abraham et al. (ABRAHAM; JAIN; GOLD- BERG, 2005), algumas das raz˜oes para a aplica¸c˜ao de hibridiza¸c˜ao incluem: (1) melhorar o desempenho do algoritmo evolutivo, por exemplo, sua velocidade de convergˆencia; (2) melhorar a qualidade de solu¸c˜oes obtidas por meio da execu¸c˜ao do algoritmo evolutivo; e (3) incorporar o algoritmo evolutivo como parte de um sistema maior.
As t´ecnicas de busca e as formula¸c˜oes apresentadas mostram as possibilidades de abordagens para o problema de sele¸c˜ao de requisitos de software, no entanto, para o trabalho de Tese ´e necess´ario um panorama mais detalhado das aplica¸c˜oes e formas de uso das t´ecnicas de busca. Portanto, o pr´oximo cap´ıtulo mostra uma revis˜ao e mapeamentos sistem´aticos da literatura relacionada a esses temas aqui mostrados, identificando as t´ecnicas de busca mais utilizadas para a sele¸c˜ao de requisitos de software e as formula¸c˜oes usadas tanto para o NRP quanto para o MONRP.