Prévia do material em texto
1 QUALIDADE DE PRODUTO DE SOFTWARE Sandra Fabbri O que é Qualidade de Produto de Software ? 2 2 O que é Qualidade de Produto de Software ? 3 � Boa fabricação � Deve durar muito � Bom desempenho � Utilizável em vários SOs � Adaptável às minhas necessidades específicas � Fácil de usar � Sem defeitos Tem vários Significados! Qualidade de Produto de Software 4 � ISO/IEC 8402 “A totalidade de características e critérios de um produto ou serviço que exercem suas habilidades para satisfazer as necessidades explícitas ou implícitas” � ISO - The International Organization for Standardization � IEC - The International Electrotechnical Commission � (formam o sistema especializado para padronização mais conhecido) 3 Qualidade de Produto de Software 5 � 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 Modelos de Qualidade de Produto de Software 6 � 1977: Proposta de McCall � 1987: HP define um conjunto de características chamada de FURPS � 1991: ISO define a ISO9126 (NBR 13596) � 1997:ISO define a ISO12119 (NBR 12119) � 2001:ISO define a nova versão da ISO9126 4 Modelo de Qualidade de McCall e Cavano 7 � (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) Modelo de Qualidade de McCall e Cavano 8 Adaptabilidade a Novos Ambientes Habilidade de ser Alterado Eficiência Integridade Usabilidade Portabilidade Reusabilidade Interoperabilidade Manutenibilidade Flexibilidade Testabilidade Corretitude Confiabilidade Características Operacionais 5 Organização do Modelo de McCall 9 � 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 Fatores e Critérios de McCall 10 � 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. 6 Fatores e Critérios de McCall 11 � 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. Fatores e Critérios de McCall 12 � 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. 7 Fatores e Critérios de McCall 13 � 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. Métricas de McCall 14 � É 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. Fq = c1 x m1+ c2 x m2 + M ... cn x mn onde: Fq - fator de qualidade de software cn - coeficientes de regressão mn - métricas que afetam o fator de qualidade 8 Métricas de McCall 15 � 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) Exemplo: 16 � (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) Medida de Usabilidade= c1 x O + c2 x T Checklist de Operabilidade 1- 2- ... Checklist de Treinamento 1- 2- ... 9 Métricas de McCall 17 • 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 Métricas de McCall 18 � 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 10 Métricas de McCall 19 � 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 Métricas de McCall 20 � 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 11 Métricas de McCall 21 � 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 Métricas de McCall 22 � 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 12 Métricas de McCall 23 � 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 Fatores e Métricas de Qualidade 24 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 Co n fia b ili d a de C o rr e tit u d e E fic iê n ci a In te g ri d a d e F le xi b ili d a d e Te st a b ili d a d e 13 Modelo de Qualidade da Hewlett-Packard 25 � Baseado no Modelo de McCall FURPS Functionality (Funcionalidade) Usability (Usabilidade) Reliability (Confiabilidade) Performance (Desempenho) Supportability (Suportabilidade) Modelo de Qualidade da Hewlett-Packard 26 � 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 - freqüência e gravidade de falhas, acurácia dos resultados de saída, tempo médio entre falhas, previsibilidade do programa 14 Modelo de Qualidade da Hewlett-Packard 27 � 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 Norma ISO/IEC 9126 28 � Tem como objetivo definir as características de qualidade desejáveis para um produto de software � Estas características provêem uma linha base para posteriores refinamentos � Define métricas para as características de qualidade 15 Norma ISO/IEC 9126 29 � Divide-se em: �9126-1: modelo de qualidade �9126-2: métricas externas �9126-3: métricas internas �9126-4: métricas para qualidade em uso Visões de qualidade 30 Necessidades Qualidade em uso Requisitos de qualidade externa Qualidade externa Requisitos de qualidade interna Qualidade interna utilização de feedback validação verificação determinam determinam indica indica 16 Qualidade Interna 31 � Conjunto de características do produto de software que avaliam o produto segundo uma visão interna � Usados para definir estratégias de desenvolvimento e critérios para avaliação e verificação durante todo o desenvolvimento Qualidade Externa 32 � Conjunto de características do produto de software que avaliam o produto segundo uma visão externa � Qualidade quando o software é executado � Avaliado através de testes em ambientes simulados 17 Qualidade em Uso 33 � Visão do usuário sobre a qualidade do produto quando em uso em um ambiente especificado dentro de um contexto de uso � Mede até que ponto o usuário alcança satisfatoriamente seus objetivos em um ambiente específico Modelo de Qualidade em Uso 34 Qualidade em uso Qualidade em uso Eficácia Produtividade Segurança Satisfação 18 Modelo de Qualidade em Uso 35 Qualidade em uso Qualidade em uso Eficácia Produtividade Segurança Satisfação Capacidade do produto de software possibilitar ao usuário alcançar seus objetivos com correção e completude no contexto de uso especificado Modelo de Qualidade em Uso 36 Qualidade em uso Qualidade em uso Eficácia Produtividade Segurança Satisfação Capacidade do alcançada Capacidade do produto de software possibilitar ao usuário gastar quantidade de recursos adequados em relação a efetividade alcançada 19 Modelo de Qualidade em Uso 37 Qualidade em uso Qualidade em uso Eficácia Produtividade Segurança Satisfação Capacidade do especificado Capacidade do produto de software alcançar níveis aceitáveis de risco de prejuízo à pessoas, negócios, software ou ao ambiente em um contexto de uso especificado Modelo de Qualidade em Uso 38 Qualidade em uso Qualidade em uso Eficácia Produtividade Segurança Satisfação Capacidade do produto de software satisfazer os usuários em um contexto de uso 20 Modelo de Qualidade Interna e Externa 39 Qualidade externa e interna Funcionabilidade Confiabilidade Usabilidade Eficiência Manutenibilidade Portabilidade Modelo de Qualidade Interna e Externa 40 Qualidade externa e interna Funcionabilidade Confiabilidade Usabilidade Eficiência Manutenibilidade Portabilidade As funções disponíveis no software atendem às necessidades? •Adequação •Acurácia •Interoperabilidade •Segurança de acesso 21 Modelo de Qualidade Interna e Externa 41 Qualidade externa e interna Funcionabilidade Confiabilidade Usabilidade Eficiência Manutenibilidade Portabilidade Quão confiável é o Quão confiável é o software? •Maturidade •Tolerância a Falhas •Recuperabilidade Modelo de Qualidade Interna e Externa 42 Qualidade externa e interna Funcionabilidade Confiabilidade Usabilidade Eficiência Manutenibilidade Portabilidade O software é fácil de usar? •Inteligibilidade •Apreensibilidade •Operacionalidade •Atratividade 22 Modelo de Qualidade Interna e Externa 43 Qualidade externa e interna Funcionabilidade Confiabilidade Usabilidade Eficiência Manutenibilidade Portabilidade Quão eficiente é o software? •Comportamento em relação ao tempo •Comportamento em relação aos recursos Modelo de Qualidade Interna e Externa 44 Qualidade externa e interna Funcionabilidade Confiabilidade Usabilidade Eficiência Manutenibilidade Portabilidade Quão fácil é modificar o software? •Analisabilidade •Modificabilidade •Estabilidade •Testabilidade 23 Modelo de Qualidade Interna e Externa 45 Qualidade externa e interna Funcionabilidade Confiabilidade Usabilidade Eficiência Manutenibilidade Portabilidade Quão fácil é transferir o software para outro ambiente? •Adaptabilidade •Capacidade de instalação •Coexistência •Capacidade de substituição Modelo de Qualidade 46 Qualidade do processo Atributos de qualidade interna Atributos de qualidade externa influencia influencia influencia Atributos de qualidade em uso depende de depende de depende de Medidas de Processo Medidas de Processo Medidas de Processo Medidas de Processo Processo Produto de software Efeitos do produto de software Contextos de uso 24 Métricas da ISO/IEC 9126 47 � Na ISO/IEC existem as métricas: �9126-2: métricas externas �9126-3: métricas internas �9126-4: métricas para qualidade no uso Exemplos de Métricas 48 Métrica Descrição Fórmula Densidade estimada de defeito latente Quantos defeitos ainda existem que podem surgir como falhas futuras. X= abs(A1-A2)/B; A1=número de defeitos latentes estimado; A2=número de defeitos encontrados; B=tamanho do sistema. Densidade de defeito Quantos defeitos foram detectados durante o período de teste definido. X=A/B; A=número de defeitos encontrados; B=tamanho do sistema. Disponibilidade O quanto o sistema é disponível para o uso durante um período de tempo especificado. X=To/(To+Tr); To=tempo total de operação; Tr=tempo total de reparo. Remoção de defeitos Quantos defeitos foram corrigidos. X=A1/A2; A1=número de defeitos corrigidos; A2=número de defeitos encontrados. Tempo médio de queda Qual é o tempo médio em que o sistema fica indisponível quando uma falha ocorre. X=T/N; T=tempo total de queda; N=número de quedas. Tempo médio entre falhas (MTBF) Com que freqüência o software falha em operação. X=T/A; T=tempo total de operação; A=númerode falhas detectadas.