Padrões de Qualidade e Métricas de Software Aécio Costa Padrões de Qualidade e Métricas de Software Qual o Principal objetivo da Engenharia de Software? Padrões de Qualidade e Métricas de Software O principal objetivo da Engenharia de Software (ES) é ajudar a produzir software de qualidade; Empresas que desenvolvem software de qualidade são mais competitivas; Empresas que tem qualidade em seus processos podem, em geral, oferecer um melhor serviço a um preço mais competitivo. Padrões de Qualidade e Métricas de Software E o que é Qualidade? “Propriedade, atributo ou condição das coisas ou das pessoas capaz de distingui-las das outras e de lhes determinar a natureza” (Aurélio) Qualidade é estar em conformidade com os requisitos dos clientes; Qualidade é antecipar e satisfazer os desejos dos clientes. Padrões de Qualidade e Métricas de Software A Garantia da Qualidade tem a finalidade de assegurar que o processo planejado (o processo em si e o produto) é implementado. Existem visões da qualidade de Software: Usuário Desenvolvedor Organização Padrões de Qualidade e Métricas de Software Usuário Facilidade de Uso, Desempenho, Confiabilidade dos Resultados, Preço do Software, etc. Desenvolvedor Taxa de defeitos, Facilidade de Manutenção e Conformidade em relação aos Requisitos de Usuários, etc Organização Cumprimento de Prazo, Boa Previsão de Custo, Boa Produtividade Padrões de Qualidade e Métricas de Software Padrões de Qualidade Padrões de produto: Se aplicam ao produto de software em desenvolvimento. Incluem padrões de documentos, como a estrutura de um documento de requisitos até como uma linguagem de programação deve ser usada. Padrões de processo: Definem os processos que devem ser seguidos durante o desenvolvimento de software. Padrões de Qualidade e Métricas de Software Padrões de Qualidade – Qual a Importância? São baseados no conhecimento sobre as melhores e mais apropriadas práticas para a empresa; O conhecimento freqüentemente é adquirido somente após um grande número de tentativas e erros; Ajudam a empresa a evitar a repetição de erros cometidos no passado; Fornecem frameworks conceituais para que o processo de garantia da qualidade seja assegurado. Padrões de Qualidade e Métricas de Software Quais os padrões de Qualidades existentes? SPICE (Software Process Improvement & Capability dErtemination) CMMI (Capability Maturity Model Integration) MPS.BR ... Padrões de Qualidade e Métricas de Software Métricas de Software Padrões de Qualidade e Métricas de Software “Métricas de Software” é um assunto discutido há mais de 20 anos na engenharia de software... ...e no entanto não é verificada sua utilização, na prática, pela grande maioria dos projetos de construção de software! Padrões de Qualidade e Métricas de Software Pesquisas realizadas em empresas de software indicam que mais da metade de grandes projetos de software se deparam com algum tipo de atraso, excesso de custo ou prazo ou algum fracasso na execução quando implantado. Falta de controle dos projetos!! Padrões de Qualidade e Métricas de Software “Não se pode gerenciar o que não se pode medir”. Tom De Marco Padrões de Qualidade e Métricas de Software E o que são métricas? Uma métrica é a medição de um atributo (propriedades ou características ) de uma determinada entidade (produto, processo ou recursos). Tamanho do produto de software (ex: Número de Linhas de código); Número de pessoas necessárias para implementar um caso de uso; Número de defeitos encontrados por fase de desenvolvimento; Esforço para a realização de uma tarefa; Tempo para a realização de uma tarefa; Custo para a realização de uma tarefa; Grau de satisfação do cliente (ex: adequação do produto ao propósito, conformidade do produto com a especificação. Padrões de Qualidade e Métricas de Software Por que medir software? Entender e aperfeiçoar o processo de desenvolvimento; Melhorar a gerência de projetos e o relacionamento com clientes; Reduzir frustrações e pressões de cronograma; Gerenciar contratos de software; Indicar a qualidade de um produto de software; Avaliar a produtividade do processo; Avaliar os benefícios (em termos de produtividade e qualidade) de novos métodos e ferramentas de engenharia de software; Avaliar retorno de investimento; Melhorar a exatidão das estimativas; Embasar solicitações de novas ferramentas e treinamento. Padrões de Qualidade e Métricas de Software 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 Padrões de Qualidade e Métricas de Software Categorização de Métricas Métricas diretas (fundamentais ou básicas) Medida realizada em termos de atributos observados (usualmente determinada pela contagem) Ex.: custo, esforço, Número linhas de código, capacidade de memória, Número de diagramas, etc. Métricas indiretas (derivadas) Medidas obtidas a partir de outras métricas Ex.: complexidade, eficiência, confiabilidade, facilidade de manutenção Padrões de Qualidade e Métricas de Software Outras Categorizações de Métricas Métricas orientadas a tamanho Métricas orientadas por função Métricas de produtividade Métricas de qualidade Métricas técnicas Padrões de Qualidade e Métricas de Software Os dois principais métodos utilizados para dimensionar um software são: Análise por Ponto de Função (APF) Pontos por caso de Uso (UCP) Padrões de Qualidade e Métricas de Software Pontos por caso de Uso (UCP) Elaborado por Gustav Karner no ano de 1993; Procura avaliar o sistema através da análise da forma como os usuários utilizarão o sistema, a complexidade das tarefas requisitadas, bem como um estudo dos passos para efetuar cada atividade. Padrões de Qualidade e Métricas de Software O método UCP tem como característica a possibilidade de mensurar o sistema na fase de levantamento de requisitos do projeto utilizando os documentos feitos na mesma como base para fazer o calculo dimensional. Padrões de Qualidade e Métricas de Software Relacionar os atores de acordo com nível de complexidade representado na tabela. (Atores) Padrões de Qualidade e Métricas de Software Relacionar e classificar os casos de usos de acordo com a complexidade abaixo. (Casos de Uso) Padrões de Qualidade e Métricas de Software Estimativas de Software Padrões de Qualidade e Métricas de Software É difícil conhecer se é possível desenvolver o produto desejado pelo cliente antes de conhecer os detalhes do projeto. Padrões de Qualidade e Métricas de Software Por que é tão difícil estimar? Desenvolvimento é um processo gradual de refinamento Incerteza da natureza do produto contribui para a incerteza da estimativa; Requisitos e escopo mudam; Defeitos são encontrados e demandam retrabalho; Produtividade varia. Padrões de Qualidade e Métricas de Software O Processo de estimar é dividido em 4 Tipos: 1. 2. 3. 4. Estimar o tamanho do produto Estimar o esforço Estimar o prazo Fornecer estimativas dentro de uma faixa permitida e refinar essa faixa à medida que o projeto progride Padrões de Qualidade e Métricas de Software Tipos de Estimativas Tamanho Quantidade de software a ser produzida Ex.: Linhas de código, Número de pontos de função, Número de requisitos, pontos de casos de uso Esforço Derivado da estimativa de tamanho Ex. dividindo a estimativa de tamanho por produtividade produz-se o esforço Padrões de Qualidade e Métricas de Software Tipos de Estimativas Prazo Geralmente são dirigidos a datas fornecidas pelo Cliente Qualidade Medidas de resultados Ex. defeitos por fase, esforço de mudanças