Page 1

Otimizando a Engenharia de Software


Roteiro  Introdução  Técnicas de Otimização + Engenharia de Software  Contextualização  Estado da Arte

 Planejamento de Releases  Contextualização  Estado da Arte

 Abordagem Proposta  Experimentos  Perguntas A New Approach to the Software Release Planning

2


Introdução  Evolução da Engenharia de Software  Disciplina recente  Evolução e propagação da tecnologia  Automatização de tarefas é uma tendência

 Planejamento de Releases  Fase de planejamento do desenvolvimento  Complexidade, riscos, incertezas  Geralmente é feito de forma ad hoc

 Técnicas de otimização    

Automatização de tarefas Menor margem de erro Desenvolvimento menos dependente de um indivíduo O engenheiro de software fica responsável por guiar a tarefa, em vez de executá-la A New Approach to the Software Release Planning

3


Search-Based Software Engineering

 Problema: Como adaptar os problemas às técnicas de otimização?  Realístico  Confiável  Eficaz / Eficiente A New Approach to the Software Release Planning

4


Search-Based Software Engineering

 Problemas aos quais SBSE tem sido aplicada:        

Testes de Software Estimação de Custos Refatoração de Software Design de Software Linguagens de Programação Planejamento de Releases Qualidade de Software Gerência de Projetos  Programa de Simulação de Projetos (PSP)  Build-or-Buy  Alocação de Recursos A New Approach to the Software Release Planning

5


Search-Based Software Engineering

A New Approach to the Software Release Planning

6


Planejamento de Releases  Desenvolvimento iterativo e incremental  Planejamento dos Releases (Liberações)  Custos  Prioridades dos clientes  Interdependência de requisitos  Alocação de recursos  Gerenciamento de riscos  Mudança de Requisitos (replanejamento)

A New Approach to the Software Release Planning

7


Planejamento de Releases  [Karlsson and Ryan 1997] / [Jung 1998]  

Priorização de Requisitos NP-hard

 [Bagnall et al. 2001]  

“The Next Release Planning” Só faz o planejamento do próximo release

 [Greer and Ruhe 2004] 

Formulação mais completa e utilizável na prática.

 [Zhang et al. 2007] 

Versão multi-objetivo  Minimizar custos  Maximizar benefícios



Desconsidera aspectos básicos A New Approach to the Software Release Planning

8


Abordagem Proposta

 Objetivo:

Formular e resolver o problema de Planejamento de Releases utilizando uma abordagem multi-objetivo, que seja aplicรกvel na prรกtica

A New Approach to the Software Release Planning

9


Técnicas de Otimização  Objetivos  Maximização/minimização de algum fator  Ex: Minimizar o custo

 Restrições  Restrições impostas pelo problema  Ex: Respeitar interdependências

 Metaheurísticas:  Técnicas de otimização genéricas  Aplicáveis a problemas de alta complexidade  Não garantem a melhor solução, mas geralmente

conseguem uma solução suficientemente boa em tempo hábil A New Approach to the Software Release Planning

10


Abordagens multi-objetivo  Problemas de otimização podem ter mais de um objetivo a se otimizar, possivelmente conflitantes  Geralmente apresentam mais de uma solução  Vantagem:  Possibilita maior discernimento acerca das soluções  Exemplo: vale a pena melhorar um objetivo em

detrimento de outro(s)? A New Approach to the Software Release Planning

11


Abordagens multi-objetivo  Pareto-Front  Melhores soluções em relação aos múltiplos

objetivos

A New Approach to the Software Release Planning

12


O Problema  Aspectos considerados  Satisfação dos Clientes  Priorização de Requisitos  Interdependência entre Requisitos  Recursos Limitados  Gerenciamento de Riscos  Mudança nos Requisitos e Replanejamentos  Participação do Engenheiro de Software

A New Approach to the Software Release Planning

13


O Problema  Formulação do problema         

Requisitos: R= {r1, r2, ..., r|R|} Clientes: S = {s1, s2,..., s|S|} Releases: K = {k1, k2,..., k|K|} Recursos: P = {p1, p2, ..., p|P|} Cada cliente possui um peso Cada cliente tem uma prioridade para cada requisito Cada requisito tem um custo relativo a cada recurso Há um valor disponível para cada recurso em cada iteração Cada requisito tem um risco associado  Quanto mais tarde implementar o requisito, maior o risco

 Cada requisito deve ser implementado em um release ou não

implementado  A cada iteração, um novo planejamento pode ser realizado A New Approach to the Software Release Planning

14


O Problema  Objetivos:  Maximizar a satisfação dos clientes  Minimizar os riscos do projeto

 Sujeito a:  Quantidade de recursos disponíveis em cada iteração  Interdependência entre requisitos

A New Approach to the Software Release Planning

15


O Problema  Maximizar:

 Minimizar:

 Sujeito a:

A New Approach to the Software Release Planning

16


Abordagem utilizada  NSGA-II [Deb et al. 2002] 

Non-dominated Sorting Genetic Algorithm II

 Algoritmo    

População inicial randômica A cada geração, soluções são ordenadas pelo nível de dominância Considera a granularidade (crowding distance) Usa elitismo

[Deb et al. 2002] A New Approach to the Software Release Planning

17


O Experimento  19 requisitos  5 releases  5 clientes 

Cada qual com suas prioridades em relação aos requisitos

 3 recursos  

Cada release com uma quantidade limitada. Total disponível no projeto menor que o custo total de todos os requisitos

 Interdependência entre requisitos:

A New Approach to the Software Release Planning

18


Resultados

A New Approach to the Software Release Planning

19


Resultados

A New Approach to the Software Release Planning

20


Resultados  Compara莽茫o  NSGA-II x Rand么mico  Conforme esperado, a abordagem proposta superou o algoritmo

rand么mico

A New Approach to the Software Release Planning

21


Resultados  Comparação  NSGA-II x ad hoc  Resultados obtidos por 5 profissionais experientes

A New Approach to the Software Release Planning

22


Conclusão e Trabalhos Futuros  Conclusão  Nova formulação para o problema do planejamento de releases

 Multi-objetivo  Situações práticas do cotidiano  Participação do engenheiro de software e replanejamentos  Experimentos

 Validação com dados artificiais  A comparação com resultados de seres-humanos, mostrou evidências que a abordagem pode possibilitar grandes ganhos.

 Trabalhos Futuros  Aplicação em Projetos Reais  Aperfeiçoamento da Formulação  Utilização de outras metaheurísticas A New Approach to the Software Release Planning

23


Perguntas?

A New Approach to the Software Release Planning

24

Otimizando a Engenharia de Software  

O trabalho mostra a aplicação de otimização no planejamento de releases de software.

Read more
Read more
Similar to
Popular now
Just for you