Anda di halaman 1dari 32

Inteligncia Computacional Aplicada a Engenharia de Software

Estudo de Caso I
Prof. Ricardo de Sousa Britto rbritto@ufpi.edu.br

Problema
Alocar uma equipe de desenvolvimento para um
projeto de desenvolvimento de software baseado em metodologia gil.

Os membros da equipe devem ter conhecimento de


teste, anlise de requisitos, programao, modelagem.

A produtividade da equipe deve ser a maior possvel e


o custo o menor possvel.

Problema complexo!!!

Abordagens mais utilizadas para resoluo


Muitos trabalhos tem resolvido o problema da alocao
de um time gil utilizando somente metaheursticas, mono ou multiobjetivo .

Limitaes:
Modelagem mais complexa; Espao de busca cresce exponencialmente de acordo
com as variveis do problema; Maior esforo computacional.

Abordagem hbrida
No trabalho proposto em Britto el al. (2012), os autores
propem uma abordagem hbrida.

Essa abordagem baseada em sistemas de inferncia


fuzzy e metaheurstica multiobjetivo.

Alm disso, no mesmo trabalho utilizada a


metodologia de avaliao da competncia de recursos humanos KSA (Knowledge, Skills, Attitudes).

Abordagem hbrida
Segundo Britto el al. (2012), as contribuies mais
relevantes do trabalho so: Uma abordagem de avaliao de desenvolvedores baseada

em questionrio; Uma abordagem para estimar a produtividade dos desenvolvedores baseada em um sistema de inferncia fuzzy e na avaliao KSA; Uma abordagem para avaliar as alocaes de times geradas pela metaheurstica utilizada no trabalho; Uma abordagem hbrida que utiliza o conhecimento de um gerente de projeto no problema em todas as suas etapas. Uma avaliao emprica da abordagem proposta, que comparou os resultados da abordagem com a intuio de alguns gerentes de projeto.

Etapas da abordagem hbrida


A abordagem tem 5 estgios:
1. Avaliao dos desenvolvedores disponveis; 2. Estimao da produtividade dos desenvolvedores; 3. Gerao de times por meio de uma metaheuristica
multiobjetivo; 4. Avaliao das solues geradas na etapa 3; 5. Seleo da melhor soluo.

Etapas da abordagem hbrida

Etapa 1
Nessa etapa os desenvolvedores disponveis so
avaliados por meio de uma tcnica chamada de matriz de competncia.

Essa matriz dividida em 3 reas:


Knowledge Relacionado ao saber. Adquirido por meio
de estudos; Skill Relacionado saber como fazer. Adquirido por meio da prtica/experincia; Attitude Relacionado ao querer fazer. Orgulho, paixo e crena no seu trabalho.

Knowledge
Knowledge indica o nvel de conhecimento do
desenvolvedor relaciodo a diversas reas.

A empresa que for usar a metodologia deve mapear todas


as tecnologias utilizadas por ela para o desenvolvimento de software (BD, linguagens, teste, ...).

Na metodologia, cada desenvolvedor pode ter 1 de 4 nveis


de Knowledge: Null 0 Low 1 Regular 2 Good - 3

Skill
Skill provm informaes sobre como usar o
knowledge para se fazer algo.

Na abordagem existem 6 questes relacionadas as a


comunicao, criatividade, inteligncia emocional, liderana, organizao e trabalho em equipe.

Attitude
Skill relacionada ao comportamento registrado
durante as atividades dirias de uma fbrica de software.

Na abordagem existem 5 questes relacionadas as a


disciplina, iniciativa/proatividade, interesse e dedicao, pontualidade e relacionamento.

Processo de avaliao
Cada desenvolvedor deve fazer uma autoavaliao,
respondendo aos questionamentos relacionados s 3 reas.

Cada desenvolvedor deve avaliar seus colegas. Os gerente de projetos tambm devem avaliar cada
desenvolvedor.

Cada desenvolvedor, ao fim das avaliaes vai ter 3


scores: self-evaluation (SE), one evaluation for each team
member (TM), e the manager evaluation (ME).

Processo de avaliao
Para se calcular o score em cada rea se utiliza as
seguintes equaes:

Processo de avaliao

K = Knowledge do desenvolvedor. S = Skill do desenvolvedor. A = Attitude do desenvolvedor. SE relacionada a autoavaliao do desenvolvedor. TM relacionada a avaliao do desenvolvedor pelo time.

ME relacionada avaliao do gerente.


W = peso da avaliao no clculo do score. N = nmero de questes da rea.

Q = questo da rea.
i = ndice da questo.

Etapa 2
Aps a avaliao dos valores K, S e A, gerados na
etapa 1, constatou-se que seria possvel estimar a produtividade dos desenvolvedores por meio desses valores.

Para isso, foi projetado um sistema de inferncia fuzzy


de Mamdani que infere a produtividade dos desenvolvedores com base na matriz de competncia.

Sistema de inferencia fuzzy da etapa 1

Base de regras da etapa 1

Etapa 3
Com base na produtividade e salario de cada
desenvolvedor, for projetado um mdulo de otimizao multiobjetivo.

Esse mdulo implementa a metaheurstica NSGA-II

Mdulo de otimizao multiobjetivo

Modelagem matemtica

Modelagem matemtica
i = Developer index. N = Total number of available developers. W = salary of the developer. P = Productivity of the developer. D = 0 if the developer is not allocated to the team or 1 if he is allocated. E = Size of the desired team. T = Size of a team proposed by the algorithm. = Penalization constant of the cost of the team. = Penalization constant of the productivity of the team.

Etapa 4
Uma vez que o NSGA-II uma metaheurstca multiobjetivo,
ele fornece como soluo uma frente de Pareto, a qual contem solues as quais so, do ponto de vista dos objetivos otimizados, semelhantes.

Desse modo, para se escolher a melhor soluo, foi


desenvolvido um sistema de inferncia fuzzy que qualifica as solues geradas pelo NSGA-II.

Essa qualificao leva em considerao a viso de um


gerente de projeto, de modo a escolher a alocao de equipes com a relao custo produtividade mais adequada de acordo com o desejo do gerente de projeto

Sistema de inferncia fuzzy da etapa 4

Base de regras da etapa 4

Etapa 5
Uma vez que tenha sido feita a qualificao das
equipes geradas na etapa 3 por meio do sistema fuzzy, bastar ao gerente de projeto escolher a equipe com maior valor inferido.

Avaliao emprica
Para poder mostrar a viabilidade da abordagem
proposta, os autores realizaram uma avaliao emprica.

Foi aplicada a abordagem em uma empresa de


software real, na qual se envolveu 3 gerentes de projetos e 17 desenvolvedores.

Foi pedido a cada gerente que alocasse equipes com


tamanhos de 3, 5 e 7 desenvolvedores.

Resultados

Resultados

Concluses
O sistema fuzzy de entrada, que estima a
produtividade dos desenvolvedores mimetizou o comportamento do gerente de projeto.

As variveis produtividade e custo, utilizadas pelo


NSGA-II, crescem na mesma taxa.

Apesar dos times alocados pela abordagem serem


diferentes dos times alocados pelos gerentes de projeto, existe um grande grau de similaridade entre eles.

Trabalhos futuros
Melhorar a avaliao emprica.

Analisar estatisticamente as bases de regra e as


funes de pertinncia para poder melhor ajust-las.

Avaliar outras metaheursticas no mdulo de


otimizao da abordagem.

Referncias bibliogrficas
Britto et al. A Hybrid Approach to Solve the Agile Team
Allocation Problem. Proceedings of Congress on Evolutionary Computation (to appear), 2012.

Atividade
Ler o artigo referenciado nesta apresentao e fazer
um breve resumo, mostrando seu entendimento.

Anda mungkin juga menyukai