Issuu on Google+

Universidade Estadual do Ceará Mestrado Acadêmico em Ciência da Computação

Uma Nova Abordagem de Otimização Multiobjetiva para o Planejamento de Releases em Desenvolvimento Iterativo e Incremental de Software SOES – Seminário de Otimização em Engenharia de Software Márcia Maria Albuquerque Brasil * 27 de Agosto de 2010 *


Agenda 

Introdução



Trabalhos Relacionados



Definição do Problema ◦ Aspectos Considerados ◦ Formulação Matemática



Avaliação Preliminar



Considerações Finais



Agradecimentos



Referências Bibliográficas


Introdução 

Desenvolvimento Iterativo e Incremental ◦ Possibilita aos clientes receberem funcionalidades do software mais cedo; ◦ Os clientes identificam as funcionalidades a serem fornecidas e quais consideram mais importantes; ◦ O software não é desenvolvido e disponibilizado integralmente, mas através de pequenos e freqüentes releases; ◦ A especificação, o projeto, a implementação e o teste são intercalados; ◦ Filosofia seguida pelas “metodologias ágeis”.


Introdução 

Desenvolvimento Iterativo e Incremental

Figura 1.1. Modelo incremental [Presmann 2006]


Introdução 

Desenvolvimento Iterativo e Incremental ◦ Vantagens:  Clientes participam da especificação e avaliação de cada incremento;  Feedback rápido dos clientes e demais stakeholders;  Clientes podem definir mudanças e novos requisitos a serem incorporados em releases posteriores;  Maior execução de testes;  Tratamento antecipado de riscos.


Introdução 

Planejamento de Releases de Software (Software Release Planning) ◦ Atividade integrante deste modelo de desenvolvimento; ◦ Definição de estágios de entrega, onde cada estágio fornece um subconjunto de funcionalidades do sistema; ◦ Envolve aspectos e decisões relacionados à seleção, priorização e alocação de requisitos em seqüências de releases do software; ◦ Atividade importante e complexa; ◦ Realizado informalmente através do conhecimento e experiências anteriores de gerentes.


Introdução 

Objetivos: ◦ Propor uma abordagem automatizada e baseada em otimização multiobjetiva para auxiliar Gerentes de Projeto em um planejamento eficaz; ◦ Propor uma nova formulação para o problema do Planejamento de Releases de Software, considerando:      

Satisfação de clientes; Priorização; Valor de negócio agregado; Riscos envolvidos; Recursos disponíveis; Precedência entre requisitos.


Trabalhos Relacionados 

O problema do próximo release: ◦ “The Next Release Problem” [Bagnall et al. 2001]; ◦ Selecionar um conjunto de clientes cujos requisitos serão atendidos no próximo release; ◦ Considera:  A importância de cada cliente para a organização;  A precedência entre requisitos;  O orçamento disponível;

◦ Formulação mono-objetiva; ◦ Planejamento apenas para o próximo release; ◦ Não considera a importância que os requisitos têm para cada cliente.


Trabalhos Relacionados 

Versão multiobjetiva do problema do próximo release: ◦ “The Multi-Objective Next Release Problem” [Zhang et al. 2007]; ◦ Selecionar um conjunto de requisitos a serem disponibilizados no próximo release; ◦ Considera:  A importância de cada cliente para a organização;  A importância que os requisitos têm para cada cliente;  O orçamento disponível;

◦ Formulação Multiobjetiva: minimização do custo do projeto e maximização da satisfação dos clientes; ◦ Planejamento apenas para o próximo release; ◦ Não contempla a precedência entre requisitos.


Trabalhos Relacionados 

Planejamento de Releases: ◦ “Software Release Planning: An Evolutionary and Iterative Approach” [Greer and Ruhe 2004] e “The Art and Science of Software Release Planning” [Ruhe and Saliu 2005]; ◦ Abordagens evolutivas e iterativas, baseadas em algoritmos genéticos; ◦ Consideram:     

A prioridade atribuída aos requisitos pelos stakeholders; O valor de negócio agregado; Os recursos disponíveis; A precedência entre requisitos; O replanejamento;

◦ Desvantagens:  Não tratam o risco inerente a cada requisito;  Somente no segundo a quantidade de releases é fixa.


Trabalhos Relacionados 

Planejamento de Releases: ◦ “A New Approach to the Software Release Planning” [Colares et al. 2009]; ◦ Um conjunto de requisitos é selecionado para ser implementado em um número fixo de releases; ◦ Objetivos: maximizar a satisfação de clientes e minimizar os riscos do projeto; ◦ Restrições: respeitar os recursos disponíveis e a precedência entre os requisitos; ◦ Desvantagens:  A satisfação dos clientes é alcançada apenas pela implementação antecipada dos requisitos prioritários.


Definição do Problema 

A abordagem proposta tem por objetivos: ◦ Maximizar a satisfação de clientes  Implementando cada requisito no release mais desejado pelo cliente;  Priorizando a implementação dos requisitos mais importantes;

◦ Minimizar os riscos do projeto  Antecipando a implementação dos requisitos com maior risco;



E por restrições, respeitar: ◦ Os limites de tempo e orçamento disponíveis em cada release; ◦ A precedência entre requisitos;


Definição do Problema 

Aspectos Considerados:

Requisitos: R = {ri | i = 1, 2, ..., N} é o conjunto de funcionalidades a serem implementadas e alocadas em releases. ◦ A cada requisito ri é associado:  custo costi  tempo timei  risco riski (1 à 5)

◦ relacionamentos de precedência Clientes: C = {cj | j = 1, 2, ..., M} é o conjunto de clientes cujos requisitos devem ser atendidos. Cada cliente cj possui uma importância para a organização definida por wj (1 à 10). Releases: S = {sk | k = 1, 2, ..., P} é o conjunto de releases a serem desenvolvidos. ◦ Cada release sk tem um orçamento disponível (budgetReleasek), assim como um tempo máximo para entrega (timeReleasek) que não devem ser ultrapassados.


Definição do Problema 

Aspectos Considerados:

Clientes versus Requisitos – Grau de importância que um cliente atribui a um requisito: importance(j, i). Varia de 0 à 9. Requisitos versus Clientes versus Releases – Os clientes têm valores de preferência ou urgência de implementação para cada requisito em cada release: urgency(j, i, k).Varia de 0 à 10. Exemplo: supondo que, para a implementação de um requisito r1 no primeiro release (s1), o cliente c1 tem grau de preferência 5; para que seja no segundo release (s2), preferência 10; e, para que seja no terceiro release (s3), preferência 1. Assim, o cliente c1 prefere mais fortemente que o requisito r1 seja atendido no segundo release (s2).


Definição do Problema 

Formulação Matemática


Definição do Problema 

Formulação Matemática ◦ Função (1) – expressa, de forma ponderada, a satisfação dos clientes pela implementação dos requisitos mais importantes. ◦ Função (II) – expressa, de forma ponderada, a satisfação dos clientes pela implementação de cada requisito no release mais desejado, aplicando uma penalidade quando esta condição não for atendida. ◦ Função (III) – expressa o gerenciamento de riscos do projeto como um todo, indicando que os requisitos com maior risco devem ser implementados mais cedo.


Definição do Problema 

Formulação Matemática ◦ (IV) e (V) – são as restrições que limitam o custo e o tempo de implementação de requisitos em cada release ao orçamento disponível e à duração do release, respectivamente. ◦ (VI) – restrição que expressa relacionamentos de precedência entre requisitos.


Definição do Problema 

Formulação Matemática

◦ representa o benefício pela implementação do requisito ri no release xi conforme grau de preferência do cliente cj.

◦ representa a penalidade pela implementação do requisito ri após o release mais desejado pelo cliente cj. Em caso contrário, nenhuma penalidade é aplicada.


Definição do Problema 

Formulação Matemática ◦ A solução é um vetor onde cada posição representa um requisito e o conteúdo de cada posição corresponde ao release de implementação do requisito. ◦ Ex.: | r1 | r2 | r3 | r4 | r5 | r6 | r7 | r8 | r9 | r10| --------------------------------------------------| 3 | 5 | 0 | 1 | 1 | 1 | 2 | 3 | 4 | 2 |


Avaliação Preliminar 

Definição de um cenário para validação inicial da abordagem;



Três instâncias de problemas: ◦ InstânciaA – 5 releases, 30 requisitos e 3 clientes ◦ Instância B – 10 releases, 50 requisitos e 5 clientes ◦ Instância C – 20 releases, 80 requisitos e 8 clientes



Atributos gerados randomicamente, conforme as escalas definidas;



Algoritmos usados: ◦ Busca Randômica; ◦ Metaheurísticas: NSGA-II e MOCell;



Implementação através do framework jMetal;



Execução dos três algoritmos em cada uma das instâncias;



Análise dos resultados através de conceitos da frente de Pareto, onde uma frente gerada por cada metaheurística em cada instância foi utilizada na construção dos gráficos.


Avaliação Preliminar


Avaliação Preliminar


Avaliação Preliminar


Avaliação Preliminar 

Conclusões: ◦ A estratégia randômica foi superada pelas duas metaheurísticas em todas as instâncias; ◦ O comportamento das metaheurísticas foi semelhante para a instância A, pelo fato de ser a menor das instâncias, com um espaço de busca mais reduzido, possibilitando a definição de frentes semelhantes; ◦ Para a instância B, percebe-se que, nos extremos da frente, as melhores soluções são as apresentadas pelo NSGA-II. Porém, nas outras regiões, as melhores soluções foram as obtidas pelo MOCell; ◦ Para a instância C, pode-se visualizar no primeiro gráfico que há um cruzamento entre as duas frentes. Nota-se também que cada metaheurística conseguiu soluções em diferentes regiões do gráfico; ◦ Diante dos resultados obtidos nas instâncias B e C, percebeu-se que as metaheurísticas podem ser utilizadas de forma complementar, reforçando a idéia de uma utilização conjunta de diferentes metaheurísticas.


Considerações Finais ◦ Devido à quantidade de aspectos envolvidos, o Planejamento de Releases de Software apresenta uma complexidade tal que torna o problema adequado para resolução por meio da aplicação de técnicas automatizadas na tentativa de se obter bons resultados. ◦ É uma abordagem consistente para o problema pois considera diversos aspectos que influenciam a tomada de decisões em projetos reais. ◦ Os resultados preliminares obtidos nos experimentos demonstram a viabilidade da aplicação da formulação proposta.


Agradecimentos 

Trabalho desenvolvido com apoio do Grupo de Otimização em Engenharia de Software da UECe (GOES/UECe). (Fabrício Gomes de Freitas, Thiago Gomes Nepomuceno da Silva, Jerffeson Teixeira de Souza, Mariela Inés Cortés )


Referências Bibliográficas    

  

  

Bagnall,A. J., Rayward-Smith,V. J., Whittley, I. M. (2001) “The Next Release Problem”, Information and Software Technology 43, 14, 883-890, 2001. Colares, F., Souza, J., Carmo, R., Pádua, C., Mateus, G. R. (2009) “A New Approach to the Software Release Problem”, In: XXIII Simpósio Brasileiro de Engenharia de Software, 2009. Deb, K., Pratap, A., Agarwal, S., Meyarivan,T. (2002) “A Fast and Elitist Multiobjective Genetic Algorithm: NSGA-II”, Evolutionary Computation, IEEE Transactions on, 6(2):182–197, 2002. Durillo, J. J., Nebro, A. J., Luna, F., Dorronsoro, B., Alba, E. (2006) “jMetal: a Java Framework for Developing Multi-Objective Optimization Metaheuristics”,Technical Report: ITI 2006-10, University of Málaga, 2006. Greer, D., Ruhe, G. (2004) “Software Release Planning:An Evolutionary and Iterative Approach”, Information and Software Technology, 46, 243-253, 2004. Harman, M., Jones, B. F. (2001) "Search-Based Software Engineering", Information and Software Technology, 43(14):833–839, 2001. Nebro, A. J., Durillo, J. J., Luna, F., Dorronsoro, B., Alba, E. (2009) “MOCell:A Cellular Genetic Algorithm for Multiobjective Optimization”, International Journal of Intelligent Systems, vol. 24, pp. 726-746, Julho 2009. Ruhe, G., Saliu, M. (2005) "The Art and Science of Software Release Planning", Software, IEEE, 22(6):47–53, 2005. Sommerville, I. (2007) “Engenharia de Software”, 8.ed., São Paulo: Pearson Addison-Wesley, 2007. Zhang,Y., Harman, M., Mansouri, S. A. (2007), "The Multi-Ojective Next Release Problem", In Proceedings of the 9th annual conference on Genetic and evolutionary computation, pages 1129–1137.ACM, 2007.


Nova Abordagem Otimização Multiobjetiva para Plan de Releases em Desenvolvimento de Software