40
ALOCAÇÃO DE RECURSOS HUMANOS APLICADA A SOLICITAÇÕES DE MUDANÇA DE SOFTWARE RICARDO VOIGT Orientador: Everaldo Artur Grahl

ALOCAÇÃO DE RECURSOS HUMANOS APLICADA A …campeche.inf.furb.br/tccs/2012-I/TCC2012-1-25-AP-RicardoVoigt.pdf · •Demonstração Roteiro . Introdução •Gerenciamento de pessoas

  • Upload
    vudang

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

ALOCAÇÃO DE RECURSOS HUMANOS APLICADA A SOLICITAÇÕES DE MUDANÇA

DE SOFTWARE

RICARDO VOIGT

Orientador: Everaldo Artur Grahl

• 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

• Norma ISO/IEC 12207

Objetivo do trabalho

Desenvolver uma ferramenta de apoio à alocação de recursos humanos aplicados a

solicitações de mudança de software

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 ISO/IEC 12207

Gestão de Mudanças

• Mudanças de software

• Alto custo da manutenção

• Problemas de sistema

• Mudanças de regra de negócio e/ou legislação

Recursos Humanos

• Equipe com experiência, capacitada e qualificada

• As pessoas representam o capital intelectual

• Conhecimento, Habilidade e Atitude (competência)

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

• o estado de cada um dos problemas relatados é conhecido

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

• o estado de cada solicitação de mudança é conhecido

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

MVC Framework

Trabalhos Correlatos

• Planejamento de alocação de recursos humanos em projetos

Trabalhos Correlatos

• Resource Management

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

Casos de uso

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: stringHabilidade

- 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

Projeto

- 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 idades

SistemaGerenteInicio

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

Crowding Distance

Dominantes

OrdenaCrowd

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 idades

SistemaGerenteInicio

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

Crowding Distance

Dominantes

OrdenaCrowd

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

• Microsoft SQL Server 2008

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 competências: 10 pontos para cada competência do recurso

Operacionalidade da Implementação

act Fluxo

Cadastros

Alocação

Automática

Alocação

Manual

Visualização da

Alocação

FimInicio

Resultados 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

Alocação múltipla por dia Sim Não Não

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

Norma ISO/IEC 12207

Resultados e discussões

Teste realizado na Benner Sistemas com recursos reais

Caso real – Benner Sistemas

Conclusã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

• Teste com cenário real na empresa Benner

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

Demonstração

Demonstração da ferramenta