Page 1

ALOCAÇÃO DE RECURSOS EM PROJETOS DE SOFTWARE

1


Search-Based Software Engineering Engenharia de Software

Search-Based Software Engineering Otimização

 Problema: Como adaptar os problemas às técnicas de

otimização?

 Realístico  Confiável  Eficaz / Eficiente 2


Alocação de Recursos  O problema:  

Realizar a alocação de recursos em projetos de software Visando otimizar algum(ns) objetivo(s), tais como: minimizar custos e minimizar tempo.  Considerando as restrições existentes, como os recursos disponíveis e as interdependência entre tarefas

 Enquadra-se no processo “Desenvolvimento do cronograma” do

PMBoK

 Contribuições:      

Nova formulação Abordagem multi-objetivo Validação com dados reais Comparação com resultados de profissionais Análises de sensibilidade (?) Ferramenta (?) 3


Estado Atual do Trabalho  Anteriores:    

Fase de pesquisa e estudo Formulação inicial do problema Formulação “definitiva” Implementação (jMetal)

 Atual:  Aperfeiçoamento em busca de melhores soluções  Exportação de dados para programas como MS Project  Testes Iniciais com dados sintéticos (sem coleta de resultados)

 Próximas  Experimentos e análise de resultados

 Com dados sintéticos  Com dados reais de projetos passados (Synergia – UFMG)  Comparação com seres humanos  Elaboração da dissertação 4


Formulação  Aspectos:               

Recursos disponíveis (recursos humanos) Skills (habilidades) Tarefas a serem executadas Interdependências entre tarefas Horas-extra Treinamentos Deadlines Linha de tempo (projeto dividido em espaços de tempo; macros) Planejamento multi-projetos Margens de erro (de estimativa) Importância das tarefas Overhead de comunicação (Brooks’ law) Curva de aprendizado durante execução da tarefa Possibilidade de atualização dinâmica (??) Possibilidade restrições definidas pelo gerente (??) 5


Formulação 

Recursos       

Tarefas     

Dedicação diária (em horas) Disponibilidade (períodos nos quais estará disponível) Salário (empregados) Custo de hora-extra (empregados) Custo de hora trabalhada (contratados) Skills (habilidades individuais e nível de proficiência) Experiência (nível de experiência na execução da tarefa)

Esforço estimado (homens-hora) Nível de importância Deadline (se existir) Interdependência entre tarefas Skills necessários

Recurso i executa tarefa j no tempo t

Espaços de tempo   

Os projetos são divididos em espaços de tempo atômicos. Em cada espaço de tempo há equipes (subconjunto dos recursos) para executar as tarefas O tamanho do espaço de tempo é definido pelo gerente (ex: um dia, uma semana, um mês). Cada passagem entre dois espaços de tempo consecutivos pode ser vista com uma macro ou submacro do projeto.

6


Resultado da Alocação:

7


Objetivos

8


Restrições

9


Implementação  Framework jMetal  NSGA-II

 Dificuldade: Qualidade das soluções  Restrições desrespeitadas  Soluções demasiadamente aleatórias; ruins.

 Soluções  Heurísticas para melhorias  Aplicadas aleatoriamente a cada nova geração  Completude, skills, continuidade, hora-extra, inderdependências  Modificações no algorítmo  População inicial somente com restrições respeitadas  Modificação dos operadores de crossover e mutação 10


Próximos Passos  Término da implementação  Experimentos  Dados sintéticos  Dados de projetos reais  Comparação com resultados humanos

 Coleta, análise e apresentação dos resultados  Gráficos multi-objetivo  Diagramas Gantt  Softwares de planejamento (ex: MS Project)

 Outros  Análises de sensibilidade  Abordagem dinâmica  Protótipo de ferramenta (GUI, entrada de dados, exibição de resultados) 11


Perguntas?

12

Alocação de Recursos em Projetos de Software  

Essa pesquisa apresenta uma abordagem a atividade de alocaçaõ de recursos utilizando técnicas de otimização, com o objetivo de contornar lim...

Read more
Read more
Similar to
Popular now
Just for you