Definição de Prioridades de Requisitos Universidade Federal de Pernambuco Departamento de Informática Mestrado em Ciência da Computação Definição de Prioridades de Requisitos Tópicos Avançados de Engenharia de Software 1 Alexandre Vasconcelos Jaelson Castro Ana Karina Barbosa / Cristine Gusmão
Ana Karina Barbosa / Cristine Gusmão Tópicos Introdução Porquê Priorizar Requisitos? Métodos e Técnicas de Priorização Considerações Finais Conclusão Agradecimentos Ana Karina Barbosa / Cristine Gusmão
Ana Karina Barbosa / Cristine Gusmão Introdução O fundamental para o sucesso, em qualquer modelo de desenvolvimento de software, é a Definição e Análise dos Requisitos Necessidades e Expectativas dos Stakeholders Gerência dos Requisitos do Sistema Negociação e Concordância de Requisitos Processo de Desenvolvimento Produção do Software Como selecionar um subconjunto dos requisitos do cliente e ainda assim produzir um sistema que atenda todas as necessidades? Ana Karina Barbosa / Cristine Gusmão
Porquê Priorizar Requisitos? Seleção informal de processos Não utilização de técnicas Não conhecimento da importância dos requisitos Custos e dificuldades técnicas associadas O conhecimento sobre a Priorização de Requisitos ajudará a focar o processo de desenvolvimento e a uma maior eficiência e competência na gerência de projetos. Ana Karina Barbosa / Cristine Gusmão
Porquê Priorizar Requisitos? Determinar o grau de importância de cada requisito para o cliente Os requisitos mais críticos deverão ser implementados primeiro Identificar requisitos conflitantes Planejar revisões sucessivas do produto Ana Karina Barbosa / Cristine Gusmão
Típicos Participantes de um Processo de Priorização Gerente de Projeto Representantes dos Clientes Representantes dos Desenvolvedores Ana Karina Barbosa / Cristine Gusmão
Métodos e Técnicas de Priorização QFD - Quality Function Deployment (Yoji Akao) AHP - Analytic Hierarchy Process (T.L. Saaty) Comparação Pairwise Avaliação Numérica Priorização baseada no valor, custo e risco Ana Karina Barbosa / Cristine Gusmão
Quality Function Deployment O conceito de QFD foi introduzido no Japão por Yoji Akao em 1966 É uma forma de assegurar a qualidade do projeto, enquanto o produto está na fase de planejamento Quando apropriadamente aplicado o QFD demonstra uma redução do tempo de desenvolvimento de 1/2 para 1/3 House of Quality Ana Karina Barbosa / Cristine Gusmão
Quality Function Deployment Partindo da voz do cliente para a especificação técnica do projeto Identificando o Cliente Determinando os Requisitos do Cliente Priorizando os Requisitos Competição de Idéias Convertendo os Requisitos do Cliente em Requisitos de Engenharia Mensuráveis Definindo metas para o projeto Ana Karina Barbosa / Cristine Gusmão
Analytic Hierarchy Process Desenvolvido por T. L. Saaty - 1980 Pontos Fortes Conceitualmente simples e de fácil entendimento Robusto o suficiente para lidar com problemas complexos Pontos Fracos Dados quantitativos solicitados Julgamento ainda é um fator Ana Karina Barbosa / Cristine Gusmão
Analytic Hierarchy Process O AHP é baseado no domínio da hierarquização, onde o problema é decomposto em níveis hierárquicos. Passos Escolha os requisitos para priorizar Coloque os requisitos na matriz AHP n x n Utilização da comparação pairwise Some as colunas Normalize a soma das colunas Calcule a média das linhas Ana Karina Barbosa / Cristine Gusmão
Ana Karina Barbosa / Cristine Gusmão Estudo de Caso Projeto RAN (Radio Access Network) - O objetivo do projeto era identificar e especificar requisitos para um sistema que daria informações gerencias sobre Operação de Telefonia Móvel. (Joachim Karlsson, Kevin Ryan) Identificação dos níveis de requisitos - 14 de alto nível Definição dos Valores dos Requisitos Definição dos Custos dos Requisitos Análise do Custo - Valor dos Requisitos Os resultados obtidos indicaram que a técnica pairwise é muito mais rápida, embora o número de comparações seja muito maior, além de ser mais informativa. Ana Karina Barbosa / Cristine Gusmão
Priorização baseada no Valor, Custo e Risco Escolha de Requisitos que apresentam o melhor custo benefício (abordagem tradicional). Utilização de técnicas como a pairwise Problema: existência de risco associada a cada requisito Riscos técnicos e de desenvolvimento precisam ser avaliados Ana Karina Barbosa / Cristine Gusmão
Ana Karina Barbosa / Cristine Gusmão Estudo de Caso Benefício Relativo Penalidade Relativa Valor Total Custo Relativo Risco Relativo Requisito Prioridade Prioridade = Valor% Custo% * peso do custo + Risco % * peso do risco Ana Karina Barbosa / Cristine Gusmão
Ana Karina Barbosa / Cristine Gusmão Metodologia SERUM Riscos sistema corrente Modelos da Análise de Negócio e recomendações 1. Refinar sistema proposto avaliando os riscos no sistema corrente Riscos sistema proposto 2. Refinar sistema proposto avaliando os riscos no sistema proposto Custos Benefícios 3. Definir mudanças 4. Executar análise custo-benefício Riscos desenvolvimento 5. Avaliar riscos de desenvolvimento Ana Karina Barbosa / Cristine Gusmão
Ana Karina Barbosa / Cristine Gusmão Riscos sistema corrente Riscos sistema proposto Custos Benefícios Riscos desenvolvimento 6. Priorizar mudanças utilizando a análise de custo-benefício & avaliação de riscos 7. Desenvolver plano de mudança 8. Criar planejamento de controle de risco de desenvolvimento Plano de Mudanças Plano de Controle de Risco de Desenvolvimento Ana Karina Barbosa / Cristine Gusmão
Ana Karina Barbosa / Cristine Gusmão Riscos sistema corrente Riscos sistema proposto 9. Criar planejamento de controle de risco técnico para os riscos aceitáveis Plano de Controle de Risco Técnico Ana Karina Barbosa / Cristine Gusmão
Ana Karina Barbosa / Cristine Gusmão Ordenado Por: Benefício Depois Por: Custo Depois Por: Eficácia em redução de risco Depois Por: Exposição à risco de desenvolvimento Ana Karina Barbosa / Cristine Gusmão
Ana Karina Barbosa / Cristine Gusmão Estudo de Caso NEC Corporation Projeto de planejamento de versões do Sistema de Gerenciamento de Redes Custo Benefício EER ERD Mudança Melhorar velocidade de comunicação Interface para ferramenta de planejamento 1 mês 2-3 meses Muito alto OK 0,44% 2,64% 15 44 Ana Karina Barbosa / Cristine Gusmão
Ana Karina Barbosa / Cristine Gusmão Considerações Finais Avaliação dos requisitos candidatos Detecção de deficiências Diversidade de fatores Utilização de métodos complementares Requisitos que não participam da priorização Funções de negócio Ana Karina Barbosa / Cristine Gusmão
Ana Karina Barbosa / Cristine Gusmão Considerações Finais Dificuldades na estimativa de benefícios, custos e risco Utilização de método e técnicas de priorização como Guidelines Ana Karina Barbosa / Cristine Gusmão
Ana Karina Barbosa / Cristine Gusmão Conclusão Priorizar é o ato de dar precedência a um item em relação à outro. Existe um crescimento na literatura que ressalta a importância de priorização de requisitos. Existem pesquisas que indicam que a grande maioria das funções de software desenvolvidas são raramente (19%) ou nunca utilizadas (45%). Só 36% são algumas vezes ou sempre utilizadas. Ana Karina Barbosa / Cristine Gusmão
Ana Karina Barbosa / Cristine Gusmão Agradecimentos Sra. Edna Pacheco (PR/BR) Sr. Kevin Ryan (Irlanda) Sr. Joachim Karlsson (Suécia) Prof. Jaelson Castro (PE/BR) Ana Karina Barbosa / Cristine Gusmão