Alocação de Recursos em Projetos de Software

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


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.