Otimizando a Engenharia de Software

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


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.