PEDRO HENRIQUE DE OLIVEIRA E SILVA MESTRE EM MODELAGEM MATEMÁTICA E COMPUTACIONAL E-MAIL: PEDROHOLI@GMAIL.COM REVISÃO PROVA
O que é qualidade? Oque é um software bom? Qual é o melhor?
Depende da necessidade do usuário
Como atendemos as necessidades do usuário? Direcionamos
Como atendemos as necessidades do usuário? Identificar
Exemplo: Desenvolvimento de um software para controle de estoque. Requisitos funcionais:
Exemplo: Desenvolvimento de um software para controle de estoque. Requisitos funcionais: Login Cadastro de Produtos Controle de Estoque Cadastro de Fornecedores Pesquisa Emissão de Relatórios Entrada e Saída de Produtos
Exemplo: Desenvolvimento de um software para controle de estoque. Requisitos não-funcionais:
Exemplo: Desenvolvimento de um software para controle de estoque. Requisitos não-funcionais: Segurança Login Cadastro de Produtos Controle de Estoque Cadastro de Fornecedores Pesquisa Emissão de Relatórios Entrada e Saída de Produtos
Exemplo: Desenvolvimento de um software para controle de estoque. Requisitos não-funcionais: Usabilidade Login Cadastro de Produtos Controle de Estoque Cadastro de Fornecedores Pesquisa Emissão de Relatórios Entrada e Saída de Produtos
Exemplo: Desenvolvimento de um software para controle de estoque. Requisitos não-funcionais: Performance Login Cadastro de Produtos Controle de Estoque Cadastro de Fornecedores Pesquisa Emissão de Relatórios Entrada e Saída de Produtos
Como medir a qualidade do software? Métricas de Software Intuito de aperfeiçoar o desenvolvimento do software buscando produtos de melhor qualidade
Por que medir? Obter auto conhecimento (interno); Atender a uma pressão imediata (externa); Preparar-se para o futuro (tendências).
Obter auto conhecimento? Se não sabemos onde estamos... Não conseguimos...... Saber para onde se quer ir.... Saber o que será feito. É importante ter saber o que se tem, o que se está produzindo e aonde se quer chegar.
Atender a uma pressão imediata? Saber o que fazer em uma necessidade a curto prazo. Ex.: Ser aprovado na concorrência de um projeto de desenvolvimento de software. É importante saber o que se deve fazer HOJE.... Saber para onde caminhar. Se o ambiente de desenvolvimento não tiver uma estrutura concreta de produção, como serão os próximos projetos?
Possíveis Riscos... Se não se consegue MEDIR...... Não se consegue... Controlar; Gerenciar; Melhorar; Trabalhar.
Até onde medir? Alinhar os objetivos dos projetos (necessidades) com os objetivos da empresa. Estabelecer um programa de métricas: Adequado; Fundamentado; Gradual. Não medir mais do que é necessário
Mas... Quais as vantagens de utilizar métricas no desenvolvimento de sistemas? Diminuir: Defeitos; Prazo de entrega; Desperdício; Custo; Aumentar: Satisfação do cliente; Produtividade dos recursos; Visibilidade das ações; Qualidade do gerenciamento;
Possibilidades de Métricas
Possibilidades de Métricas em Software Tamanho do software; Quantidade de defeitos; Complexidade do software; Acesso e segurança; Qualidade do produto; Utilidade do produto; Usabilidade do produto; Estimativa de durabilidade; Comportamento dos defeitos; Taxa de inovação: novas funcionalidades (Entre versões); Dentre outras... como... Medir a quantidade de funcionalidades incluídas em um software -> tamanho do produto
Uma métrica deve ser: Válida: quantifica o que queremos medir Confiável: produz os mesmos resultados dadas as mesmas condições Prática: barata, fácil de computar e fácil de interpretar Dois contextos para medição de software Processo: ex. produtividade Produto: ex. qualidade
Processo de medição: Planejar Implementar as decisões Medir Tomar decisões baseadas na análise Analisar os dados
Métricas Recursos Produtos (software ) Clientes Processo Gestão
Métricas Recursos Tempo Pessoas Custo
Métricas para o tempo: Natureza do tempo: volatilidade, incontrolabilidade, perecibilidade Definição da unidade de medida: normalmente HORAS Distribuição do tempo: TOTAL DISPONIBILIZADO TOTAL APLICADO PRODUTIVO PROGRESSO MODIFICAÇÕES RETRABALHO IMPRODUTIVO PARADA
Tempo dedicado ao projeto, produzindo alguma funcionalidade Tempo total aplicado ao(s) projeto(s) Tempo total aplicado ao projeto TO TAL D ISPO N IB ILIZADO TO TA L A PLIC A D O PR O D U TIVO Tempo perdido ou utilizado para outras atividades P R O G R E S S O M O D IFIC A Ç Õ E S R E TR A B A LHO IM P R O D U TIV O P A R A D A Tempo dedicado para inovações e novas funcionalidades Tempo dedicado para ajustes ou modificações do usuário Tempo dedicado para ajustes e acertos devido a erros Tempo de estudo, preparação, dedicação indireta ao projeto
Métricas para o custo: Identificar quanto implica monetariamente: Custo direto devido a realização de cada uma das atividades Custos indiretos dos demais desembolsos O valor mais significativo é a mão-de-obra direta empregada: CUSTO = f (esforço) Exemplo de Métricas: Custo total do projeto Custo por fase do projeto e por tipo de custo Custos imprevistos Custos de ociosidade Custos de retrabalho Custo de modificações
Métricas para as pessoas: O objetivo: é evidenciar a situação presente e a tendência dos recursos pessoais Tendência: rotular pessoas x problemas Exemplo de Métricas: Diversidade de conhecimentos técnicos, metodológicos e gerenciais Profundidade dos conhecimentos Quantidade de detalhes conhecidos Aplicação dos conhecimentos Quantidade de problemas entregues x resolvidos Complexidade de problemas Tempo de resolução Ocupação lotação do tempo disponível
Métricas Recursos Produtos (software ) Clientes Processo Gestão
Métricas para o Produto Tamanho do software pronto (acervo) a ser desenvolvido (estimativa) a ser modificado (rearranjo do conteúdo) Quantidade de defeitos: por origem ou por complexidade Complexidade do software Exigência de algum padrão de complexidade Idade do software Usabilidade do produto facilidade de uso (legibilidade) eficiência do uso inteligibilidade / compreensibilidade agradabilidade (interface homem-máquina)