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 1 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 2 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 Ana Karina Barbosa / Cristine 3 atenda todasGusmão as necessidades? 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 4 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 5 Típicos Participantes de um Processo de Priorização • Gerente de Projeto • Representantes dos Clientes • Representantes dos Desenvolvedores Ana Karina Barbosa / Cristine Gusmão 6 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 7 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 Ana Karina Barbosa / Cristine 1/3 Gusmão House of Quality 8 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 9 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 10 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 11 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 Barbosa / Cristine muito maior, além de Ana serKarina mais informativa. Gusmão 12 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 13 Estudo de Caso Requisito Benefício Penalidade Valor Custo Risco Prioridade Relativo Relativa Total Relativo Relativo Prioridade = Valor% Custo% * peso do custo + Risco % * peso do risco Ana Karina Barbosa / Cristine Gusmão 14 Metodologia SERUM Riscos sistema Modelos da corrente Análise de Negócio e 1. Refinar sistema recomendações proposto avaliando Riscos sistema os riscos no sistema proposto corrente 2. Refinar sistema proposto avaliando Custos os riscos no sistema proposto 3. Definir mudanças Benefícios 4. Executar análise custo-benefício Riscos Ana Karina Barbosa / Cristine desenvolvimento Gusmão 5. Avaliar riscos15de desenvolvimento Riscos sistema corrente Riscos sistema Custos proposto 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 16 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 17 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 18 Estudo de Caso NEC Corporation Projeto de planejamento de versões do Sistema de Gerenciamento de Redes Mudança Custo Melhorar velocidade de comunicação 1 mês Interface para ferramenta 2-3 de planejamento meses Benefício Custo EER Benefício ERD Muito alto OK 0,44% 15 Muito alto OK 2,64% 44 Ana Karina Barbosa / Cristine Gusmão 19 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 20 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 21 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 22 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 23