ALOCAÇÃO DE RECURSOS HUMANOS
APLICADA A SOLICITAÇÕES DE MUDANÇA
DE SOFTWARE
RICARDO VOIGT
• Introdução • Objetivo do trabalho • Fundamentação Teórica • Desenvolvimento • Resultados e Discussões • Conclusão • Extensões • Demonstração
Roteiro
Introdução
• Gerenciamento de pessoas
• Manutenção de software corresponde por 60% de todo o esforço
• Processo não sistemático, baseado em experiência pessoal
Objetivo do trabalho
Desenvolver uma ferramenta de apoio à alocação de recursos humanos aplicados a
Objetivos Específicos
• Aplicar algoritmo de busca para seleção do melhor recurso humano para a solicitação • Avaliar a aderência da ferramenta a norma
Gestão de Mudanças
• Mudanças de software
• Alto custo da manutenção • Problemas de sistema
Recursos Humanos
• Equipe com experiência, capacitada e qualificada
• As pessoas representam o capital intelectual
Algoritmo Genético
MultiObjetivo NSGA-II
• Em problemas de engenharia de software são utilizadas metaheurísticas (busca local, busca tabu e algoritmo genético)
• Implementa o conceito de dominância,
classificando a população total em fronts de acordo com o grau de dominância
• Retorna um ou mais elementos como melhor solução identificada.
Algoritmo Genético
MultiObjetivo NSGA-II
Norma ISO/IEC 12207
Garantir que todos os problemas serão identificados, analisados, gerenciados e controlados até a resolução
• é desenvolvida uma estratégia de gestão de problemas • os problemas são documentados, identificados e
classificados
• problemas são analisados e avaliados para identificar soluções aceitáveis
• é implementada a resolução de problemas
• problemas são rastreados até o seu fechamento
Norma ISO/IEC 12207
Adaptação da norma a solicitação de mudança
• é desenvolvida uma estratégia de solicitação de mudanças
• as solicitações de mudanças são documentadas,
identificadas e classificadas
• as solicitações de mudanças são analisadas e avaliadas para
identificar soluções aceitáveis
• é implementada a resolução da solicitação de mudança
• solicitações de mudanças são rastreadas até o seu fechamento
MVC Framework
• Lógica da interface do usuário pertence à
View
• Entrada lógica pertence ao Controller • Lógica do negócio pertence ao Model
• Concentra em um aspecto da aplicação de cada vez
Trabalhos Correlatos
• Planejamento de alocação de recursos humanos em projetos
Trabalhos Correlatos
Desenvolvimento
• Requisitos
• Especificação
– Diagrama de casos de uso – Diagramas de classes
– Diagrama de seqüência – Diagrama de atividades
• Implementação • Resultados
Requisitos
Funcionais• Cadastro de sistemas, módulos, habilidades, competências, conhecimentos, recursos, prioridades, solicitações de
mudança, tipos de solicitação • Alocação manual de recursos
• Alocação automática de recursos com NSGA-II • Calendário de alocação de recursos
Não Funcionais
• C# ASP.NET utilizando Microsoft Visual Studio 2010 • SQL Server
• Compatível com navegadores IE, Firefox, Chrome • Atender as diretrizes da norma ISO/IEC 12207
Diagrama
de classes
class 4.1 Modelo de classes
Sistema - Codigo: int - Descricao: string Modulo - Codigo: int - Descricao: string - Sistema: Sistema Requisito - Codigo: int - Descricao: string - Modulo: Modulo Usuario - Codigo: int - Descricao: string Recurso - Codigo: int - Descricao: string - HorasDia: int - Funcao: Funcao Funcao - Codigo: int
- Descricao: string Habilidade - Codigo: int - Descricao: string Competencia - Codigo: int - Descricao: string Conhecimento - Codigo: int - Percentual: double Prioridade - Codigo: int - Descricao: string - Ordem: int Tipo Solicitacao - Codigo: int - Descricao: string SolicitacaoMudanca - Codigo: int - Numero: int - Solicitacao: String - Descricao: string - DataSolicitacao: datetime - PrazoCliente: datetime - PrazoEntrega: datetime Feriado - Codigo: int - Descricao: string - DataInicio: datetime - DataFim: datetime Restricao - Codigo: int - DataInicio: datetime - Descricao: string - DataFim: datetime AlocacaoRecurso - Codigo: int - DataInicio: datetime - DataFim: datetime TipoRestricao - Codigo: int - Descricao: string Proj eto - Codigo: int - Descricao: string Status - Codigo: int - Descricao: string Solicitante - Codigo: int - Nome: string - Email: string Cliente - Codigo: int - Descricao: string RecursoHabilidade - percentual: int 0..* 1 0..* 1 0..* 1 0..* 0..* 1 0..* 0..* 1 0..* 1 0..* 1 0..* 1 0..* 1 1..* 1 1..* 1 0..* 1 1 1..* 0..* 1 1..* 1 1..* 1 1 0..* 1 0..* 0..* 1
Diagrama de seqüência
sd Diagrama de Sequencia Gerente «view» Alocacao «controller» AlocacaoController «Model» AlocacaoRecurso ExecutarAlocacao() Executar() GeraListaSolicitacoes() GeraListaRecursos() CrowdingDistance() CalculaDiasInicio() OrdenaCrowd() CalculaRank() GravarAlocacao() Create()Diagrama
de
atividades
act Diagrama de Ativ idadesSistema Gerente Inicio Seleciona Alocação Automática Seleciona todas as Solicitações de Mudanças pendentes Ordena por ordem de prioridade Seleciona os recursos com funçao de programador
Itera a lista de solicitações de mudanças
Itera na lista de recursos
Calcula a pontucao conforme competencia, habilidade e conhecimento Acabou lista de recursos? Itera na lista de recursos Adiciona na lista de Dominantes, Dominados e Geração conforme a pontuação Acabou lista de recursos?
Ordena a lista de recursos dominantes pela pontuação Ordena a lista de recursos geração pela pontuação
Crow ding Distance Dominantes
OrdenaCrow d
CalculaRank Ordena Recursos pela
pontução
Seleciona o primeiro recurso
Grav a alocação do recurso para a solicitaçao de mudança Acabou lista de solicitaçao de mudança? Fim Gera v isualização da alocação [Não] [Não] [Sim] [Não] [Sim] [Sim]
Diagrama
de
atividades
act Diagrama de Ativ idadesSistema Gerente Inicio Seleciona Alocação Automática Seleciona todas as Solicitações de Mudanças pendentes Ordena por ordem de prioridade Seleciona os recursos com funçao de programador
Itera a lista de solicitações de mudanças
Itera na lista de recursos
Calcula a pontucao conforme competencia, habilidade e
conhecimento
Acabou lista de
recursos? Itera na lista de recursos
Adiciona na lista de Dominantes, Dominados e Geração conforme a pontuação Acabou lista de recursos?
Ordena a lista de recursos dominantes pela pontuação Ordena a lista de recursos geração pela pontuação
Crow ding Distance Dominantes
OrdenaCrow d
CalculaRank Ordena Recursos pela
pontução
Seleciona o primeiro recurso
Grav a alocação do recurso para a solicitaçao de mudança Acabou lista de solicitaçao de mudança? Fim Gera v isualização da alocação [Não] [Não] [Sim] [Não] [Sim] [Sim]
Implementação
• Microsoft .Net Framework 3.5
• Microsoft ADO.NET Entity Framework • Microsoft ASP.NET MVC Framework • Microsoft Visual Studio 2010
Implementação
Alocação automática
Por que NSGA-II ? Pontuação:
conhecimentos: (1000 * percentual) recurso x modulo da SMS habilidades: (100 * percentual) recurso x modulo da SMS
Operacionalidade da Implementação
act Fluxo Cadastros Alocação Automática Alocação Manual Visualização da Alocação Fim InicioResultados e discussões
Funcionalidade Voigt Bastos QuickArrow
Plataforma Web Web Web
Idioma Português Português Inglês
Geração automática de alocações
Sim Sim Não
Visualização das alocações através de calendário de recursos
Sim Sim Sim
Cadastro de recursos e atributos Sim Sim Sim
Controle de custos Não Não Sim
Integração com outros sistemas Não Não Sim
Resultados e discussões
• suporta estratégia de solicitação de mudança de software • as solicitações de mudança de software são
documentadas, identificadas e classificadas
• as solicitações de mudança de software são avaliadas parcialmente para identificar soluções aceitáveis
• as solicitações de mudança de software são identificadas, classificadas e estimadas;
• as solicitações de mudança de software são rastreados até seu fechamento parcialmente
• o estado de cada uma das solicitações de mudança de software é conhecido
Resultados e discussões
Teste realizado na Benner Sistemas com recursos reaisConclusão
• Objetivo alcançado
– maior agilidade no processo de alocação de
recursos humanos para as solicitações de mudança de software
• NSGA-II (Ganho de tempo + experiência) • Norma ISO/IEC 12207
– aderente de forma total e parcial a 75% dos resultados previstos pela norma
Conclusão
• Uso de tecnologias atuais
– C# ASP.Net, Entity Framework, LINQ, MVC
Extensões
• Exportação dos resultados para outras ferramentas de cronograma de projetos • Criação de uma API para a entrada de
solicitações de mudanças
• Incorporar funções para maior abrangência da norma ISO/IEC 12207
• Comparação do cronograma previsto com o realizado