Qualidade de Software QUALIDADE DE SOFTWARE PRODUTO
O que é Qualidade de Software Produto? Boa fabricação. Deve durar muito. Bom desempenho. Utilizável tanto em UNIX quanto em DOS. Adaptável às minhas necessidadess específicas. Fácil de usar. Sem defeitos. VÁRIOS SIGNIFICADOS 2
Qualidade de Software Produto A especificação de Qualidade de Software Produto deve ser mais precisa e detalhada A formalização de Qualidade de Software Produto pode ser feita usando-se um Modelo de Qualidade de Software Produto 3
Modelo de Qualidade de McCall e Cavano (1977) - primeiro passo em direção à Qualidade de Software Envolve um conjunto de fatores que avalia o software a partir de 3 pontos de vista distintos: (1) Operação do Produto (usando-o) (2) Revisão do Produto (mudando-o) (3) Transição do Produto (mudando-o para funcionar num ambiente diferente) 4
Organização do Modelo de McCall O modelo está organizado em 3 níveis: FATORES (para especificar) Descrevem a visão externa do software, como vista pelos usuários CRITÉRIOS ( para construir) Descrevem a visão interna do software, como vista pelo desenvolvedor MÉTRICAS (para controlar) Definidas e usadas para fornecer uma escala e métodos para medidas 6
Fatores e Critérios de McCall Com relação ao uso do Produto: Corretitude - Quanto um programa satisfaz sua especificação e cumpre os objetivos visados pelo cliente. Confiabilidade - Quanto que se pode esperar que um programa execute a função pretendida com a precisão exigida. Eficiência - Quantidade de recursos de computação e de código exigida para que um programa execute sua função. 7
Fatores e Critérios de McCall Com relação ao uso do Produto: Integridade - Quanto o acesso ao software ou a dados, por pessoas não-autorizadas, pode ser controlado. Usabilidade - O esforço para aprender, operar, preparar a entrada e interpretar a saída de um programa. 8
Fatores e Critérios de McCall Com relação às mudanças do Produto: Manutenibilidade - O esforço exigido para localizar e reparar erros em um programa. Flexibilidade - O esforço exigido para modificar um programa operacional. Testabilidade - O eforço exigido para testar um programa a fim de garantir que ele execute a função pretendida. 9
Fatores e Critérios de McCall Com relação à transição do Produto: Portabilidade - O esforço exigido para transferir o programa de um ambiente de sistema de hardware e/ou software para outro. Reusabilidade - Quanto um programa ( ou partes de um programa) pode ser reutilizado em outras aplicações. Interoperabilidade - O esforço exigido para acoplar um sistema a outro. 10
Métricas de McCall É difícil (ou até mesmo impossível) desenvolver medidas diretas dos fatores de qualidade. Portanto, é definido um conjunto de métricas para desenvolver expressões que poderão ser utilizadas para avaliar cada um dos fatores. F q = c 1 x m 1 + c 2 x m 2 +... c n x m n onde F q - fator de qualidade de software c n - coeficientes de regressão m n - métricas que afetam o fator de qualidade 11
Métricas de McCall F q = c 1 x m 1 + c 2 x m 2 +... c n x m n m n - métricas que afetam o fator de qualidade Métricas subjetivas Estão na forma de um checklist usado para graduar atributos específicos do software O esquema de graduação de McCall é uma escala de 0 (baixo) a 10 (alto) 12
Exemplo: (McCall) - a Usabilidade do software é afetada por: facilidade de operação de um programa (Operabilidade) o quanto o software auxilia no sentido de ajudar novos usuários a aplicarem o sistema (Treinamento) Checklist de Operabilidade 1-2-... Checklist de Treinamento 1-2-... Medida de Usabilidade = c 1 x O + c 2 x T 13
Métricas de McCall Auditabilidade Acurácia Comunidade de Comunicação Inteireza Concisão Consistência Comunidade de Dados Tolerância a Erros Eficiência de Execução Expansabilidade Generalidade Independência de Hardware Instrumentação Modularidade Operabilidade Segurança Autodocumentação Simplicidade Independência de Software Básico Rastreabilidade Treinamento 14
Métricas de McCall Auditabilidade - facilidade com que se pode checar a conformidade aos padrões Acurácia - A precisão das computações e do controle Comunidade de Comunicacão (Communication Commonality) - O grau em que as interfaces padrões, protocolos e larguras de banda (bandwidths) são usados Inteireza - O quanto a implementação total da função requerida foi conseguida 15
Métricas de McCall Concisão - A compactação do programa em termos de linhas de código Consistência - O uso de técnicas de projeto e documentação uniformes ao longo do projeto de desenvolvimento de software Comunidade de Dados ( Data Commonality) - O uso de estruturas e tipos de dados padrões ao longo do programa Tolerância a Erros - O dano que ocorre quando um programa encontra um erro 16
Métricas de McCall Eficiência de Execução - O desempenho de run-time de um programa Expansabilidade - O quanto o projeto arquitetural, procedimental e de dados podem ser ampliados Generalidade - A amplitude de aplicação em potencial de componentes de programa. Independência de Hardware - O quanto o software é desvinculado do hardware em que opera 17
Métricas de McCall Instrumentação - O quanto o programa monitora sua própria operação e identifica erros que venham a ocorrer Modularidade - A independência funcional dos componentes do programa Operabilidade - A facilidade de operação de um programa Segurança - A disponibilidade de mecanismos que controlem ou protejem programas e dados 18
Métricas de McCall Autodocumentação - O quanto o código fonte apresenta documentação significativa Simplicidade - O quanto um programa pode ser entendido sem dificuldade Independência do Software Básico - O quanto um programa é independente de particularidades não padronizadas de linguagens de programação nonstandard, das características de sistemas operacionais e de outras sujeições ambientais 19
Métricas de McCall Rastreabilidade - A capacidade de rastrear uma representação de projeto ou componente de programa até os requisitos Treinamento - O quanto o software auxilia no sentido de ajudar novos usuários a aplicarem o sistema 20
Confiabilidade Corretitude Eficiência Integridade Flexibilidade Testabilidade Fatores e Métricas de Qualidade Fator de Qualidade Métrica de Qualidade Auditabilidade X X Acurácia X Complexidade X X X Concisão X X Consistência X X X 21
Modelo de Qualidade da Hewlett-Packard Baseado no Modelo de McCall FURPS Functionality (Funcionalidade) Usability (Usabilidade) Reliability (Confiabilidade) Performance (Desempenho) Supportability (Suportabilidade) 22
Modelo de Qualidade da Hewlett-Packard Avaliação dos Fatores de Qualidade Funcionalidade - conjunto de características e capacidades do programa, generalidades das funções, segurança do sistema global Usabilidade - fatores humanos, estética global, consistência, documentação Confiabilidade - frequência e gravidade de falhas, acurácia dos resultados de saída, tempo médio entre falhas, previsibilidade do programa 23
Modelo de Qualidade da Hewlett-Packard Avaliação dos Fatores de Qualidade Desempenho - velocidade de processamento, tempo de resposta, consumo de recursos, eficiência Suportabilidade - capacidade de ampliar o programa, adaptabilidade, capacidade de seviço, capacidade de teste, compatibilidade, capacidade de organizar e controlar elementos da configuração de software, facilidade com que um sistema pode ser instalado, facilidade com que problemas podem ser detectados 24
Norma de Qualidade da ISO/IEC Norma ISO/IEC 9126/1991 ou NBR 13596/1996 Representa a atual padronização mundial para a qualidade de software produto Baseada em 3 níveis: Características, Subcaracterísticas e Métricas Cada característica é refinada em um conjunto de subcaracterísticas e cada subcaracterística é avaliada por um conjunto de métricas 25
(Norma ISO/IEC 9126) Características e Subcaracterísticas O QUE Funcionalidade QUANDO e COMO Confiabilidade Usabilidade Eficiência Manutenibilidade Portabilidade 26
(Norma ISO/IEC 9126) Características e Subcaracterísticas FUNCIONALIDADE - Satisfaz as necessidades? SUBCARACTERÍSTICA PERGUNTA CHAVE Adequação Propõe-se a fazer o que é apropriado? Acurácia Faz o que foi proposto de forma correta? Interoperabilidade É capaz de interagir com os sistemas especificados? Conformidade Segurança de Acesso Está de acordo com as normas, leis, etc.? Evita acesso não autorizado a programas e dados? 27
(Norma ISO/IEC 9126) Métricas Existem poucas métricas de aceitação geral para as características Grupos ou organizações de normalização podem estabelecer seus próprios modelos de processo de avaliação e métodos para a criação e validação de métricas relacionadas com as características Também é necessário estabelecer níveis de pontuação e critérios específicos para a organização ou para a aplicação 28
(Norma ISO/IEC 9126) A Importância de cada Característica Cada tipo de software tem seus próprios requisitos de qualidade A importância de cada característica de qualidade varia dependendo da Classe de software CLASSE Sistema de Missão Crítica Software de Sistema em Tempo Real Software Interativo em relação ao Usuário Final CARACTERÍSTICA Confiabilidade Eficiência Usabilidade 29
Software para Controle de Estoque EXEMPLO Software Embutido em Satélite Características Selecionadas Funcionalidade Confiabilidade Usabilidade Eficiência Manutenibilidade Portabilidade Características Relevantes 30
Sumário Qualidade de Software Produto Modelo de Qualidade de McCall e Cavano Modelo de Qualidade de Hewlett-Pakard Modelo de Qualidade da ISO/IEC A Importância de cada Característica de Qualidade Modelo de Processo de Avaliação 31