400 likes | 637 Views
Qualidade de Produto de Software. Mariano Montoni. Objetivo. Características de Qualidade ISO 9126 Medição de Produtos de Software Avaliação de Qualidade de Produto de Software ISO 14598 e ISO 12119. Características de Qualidade de Software. O Que é Qualidade de Software?.
E N D
Qualidade de Produto de Software Mariano Montoni
Objetivo • Características de Qualidade • ISO 9126 • Medição de Produtos de Software • Avaliação de Qualidade de Produto de Software • ISO 14598 e ISO 12119
O Que é Qualidade de Software? • Totalidade de características de um produto de software que lhe confere a capacidade de satisfazer às necessidades explícitas e implícitas. (ISO 8402) ISO/CD 8402; Quality Concepts and Terminology Part One: Generic Terms and Definition; ISO; dezembro 1990
O Que é Qualidade? • Conjunto de características que devem ser alcançadas em um determinado grau para que o produto atenda às necessidades de seus usuários. • A qualidade de um produto de software é descrita e avaliada a partir das características de qualidade identificadas
Características de Qualidade • Características de qualidade podem ser detalhadas em vários níveis de sub-características • Necessário organizar as características de qualidade em modelos para avaliar a qualidade de software
Modelos de Qualidade • Facilitam o entendimento sobre a contribuição das facetas para a qualidade do produto como um todo.
Características de Qualidade de Produto de Software • Norma ISO 9126 • Norma 12119 • Características de Qualidade para Domínios Específicos • Características de Qualidade para Tecnologias Específicas
ISO 9126 (Information Technology - Software product evaluation - Quality characteristics and guidelines for their use) • Versão 2001: • 9126-1: modelo de qualidade • 9126-2: métricas externas • 9126-3: métricas internas • 9126-4: métricas para qualidade no uso
Diferentes Visões da Qualidade de Software Necessidades de qualidade do usuário Qualidade no uso Uso e Feedback Contribuem para especificar indica Requisitos externos de qualidade Qualidade Externa Validação Contribuem para especificar indica Requisitos internos de qualidade Qualidade Interna Verificação
Qualidade Interna • 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 • 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
Qualidade em Uso • Visão do usuário sobre a qualidade do produto quando em uso em um ambiente especificado dentro de um contexto de uso • É medida em relação ao resultado da utilização do software e não em relação a características do produto • Representa o efeito combinado da qualidade externa e interna
Modelo para Qualidade Interna e Externa Funcionalidade Confiabilidade Usabilidade Qualidade Interna e Externa Eficiência Manutenabilidade Portabilidade
ISO 9126(Information Technology - Software product evaluation - Quality characteristics and guidelines for their use) • Define seis características de qualidade e sub-características associadas a estas características
Funcionalidade • Capacidade do produto de software fornecer funções que satisfazem as necessidades explícitas ou implícitas quando o software é usado sob condições especificadas Sub-características: • adequação: capacidade do produto de software de fornecer um conjunto de funções adequado para as tarefas especificadas e os objetivos dos usuários • acurácia: capacidade do produto de software de fornecer os resultados corretos ou acordados com o grau necessário de precisão
Funcionalidade Sub-características: • interoperabilidade: capacidade do produto de software interagir com um ou mais sistemas especificados • segurança: capacidade do produto de software proteger a informação e os dados de forma que pessoas ou sistemas não autorizados não possam lê-los ou modificá-los e pessoas e sistemas autorizados não tenham negado o acesso aos mesmos • conformidade da funcionalidade: capacidade do produto de software aderir a normas, convenções ou regulamentações previstas em leis e prescrições similares, relacionadas à funcionalidade
Confiabilidade • Capacidade do produto de software manter o nível de desempenho especificado quando usado sob as condições especificadas Sub-características: • maturidade: capacidade do produto de software evitar falhas provocadas por defeitos no software • tolerância a defeitos: capacidade do produto de software manter um nível de desempenho especificado em casos de defeitos no software ou de violação de suas interfaces especificadas
Confiabilidade Sub-características: • recuperabilidade: capacidade do produto de software restabelecer o nível de desempenho especificado e recuperar os dados diretamente afetados, em caso de uma falha • conformidade da confiabilidade: capacidade do produto de software aderir a normas, convenções ou regulamentações relacionadas à confiabilidade
Usabilidade • Capacidade do produto de software ser entendido, ser aprendido e ser atraente ao usuário quando usado sob as condições especificadas Sub-características: • inteligibilidade: capacidade do produto de software que permite ao usuário entender se o software é adequado e como ele pode ser usado para tarefas e condições de uso específicas
Usabilidade Sub-características: • apreensibilidade: capacidade do produto de software permitir ao usuário aprender a sua aplicação. • operacionalidade: capacidade do produto de software permitir ao usuário sua operação e controle • atratividade: capacidade do produto de software ser atraente ao usuário • conformidade da usabilidade: capacidade do produto de software aderir a normas, convenções, diretrizes de estilo ou regulamentações relacionadas à usabilidade
Eficiência • Capacidade do produto de software fornecer o desempenho adequado, relacionado à quantidade de recursos usados, sob condições estabelecidas Sub-características: • comportamento em relação ao tempo: capacidade do produto de software fornecer tempo de resposta e de processamento e taxas de throughput ao realizar suas funções sob condições estabelecidas
Eficiência Sub-características: • utilização de recursos: capacidade do produto de software usar quantidade e tipos adequados de recursos quando o software realiza suas funções sob condições estabelecidas • conformidade da eficiência: capacidade do produto de software aderir a normas e convenções relacionadas à eficiência
Manutenibilidade • Capacidade do produto de software de ser modificado. As modificações podem incluir correções, melhorias ou adaptação do software a mudanças no ambiente, nos requisitos e nas especificações funcionais. Sub-características: • analisabilidade: capacidade do produto de software ser diagnosticado com relação a deficiências ou causas de falhas no software, ou para identificar as partes a serem modificadas
Manutenibilidade Sub-características: • modificabilidade: capacidade do produto de software permitir que uma modificação especificada seja implementada. • estabilidade: capacidade do produto de software evitar efeitos inesperados, ocasionados por modificações no software. • testabilidade: capacidade do produto de software permitir que o software modificado seja validado • conformidade da manutenibilidade: capacidade do produto de software aderir a normas e convenções relacionadas à manutenibilidade
Portabilidade • Capacidade do produto de software ser transferido de um ambiente para outro Sub-características: • adaptabilidade: capacidade do produto de software ser adaptado a diferentes ambientes especificados, sem a necessidade de aplicação de outras ações ou meios além daqueles fornecidos para essa finalidade pelo software considerado
Portabilidade Sub-características: • capacidade para ser instalado: capacidade do produto de software ser instalado em um ambiente especificado • co-existência: capacidade do produto de software co-existir com outro software independente num ambiente comum partilhando recursos • capacidade para substituir: capacidade do produto de software ser usado para substituir um outro software especificado, para o mesmo objetivo no mesmo ambiente • conformidade da portabilidade: capacidade do produto de software aderir a padrões ou convenções relacionados à portabilidade
Modelo para Qualidade em uso Efetividade Produtividade Qualidade em uso Segurança Crítica Satisfação
Efetividade • Capacidade do produto de software possibilitar ao usuário alcançar seus objetivos com correção e completude no contexto de uso especificado
Produtividade • Capacidade do produto de software possibilitar ao usuário gastar quantidade de recursos adequados em relação a efetividade alcançada
Segurança Crítica • 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
Satisfação • Capacidade do produto de software satisfazer os usuários em um contexto de uso
Modelo de Qualidade Efeitos do produto de software Produto de Software Processo influencia influencia Qualidade de processo Atributos de qualidade interna Atributos de qualidade externa Atributos de qualidade no uso influencia depende de depende de depende de Contextos de uso Medidas do processo Medidas de qualidade no uso Medidas internas Medidas externas
Qualidade para Domínios de Aplicação e Tecnologias de Desenvolvimento Específicas
Qualidade para Domínios de Aplicação e Tecnologias de Desenvolvimento Específicas • Rocha,A.R., Maldonado,J.C., Weber,K.(eds) Qualidade de Software: Teoria e Prática. Prentice-Hall, 2001 (Cap6) • 6.1 Qualidade do Software Educacional (Gilda Campos, Fernanda Campos) • 6.2 Qualidade de Software Médico (Ana Regina Rocha, Kathia Oliveira, Alvaro Rabelo) • 6.3 Qualidade de Software Orientado a Objetos (Clifton Clunie, Claudia Werner) • 6.4 Qualidade de Software Web (Kathia Oliveira, Raquel Lima, Ana Regina Rocha)
Qualidade de Software Web • Usabilidade • inteligibilidade global do site • feedback on line e help • interface e aspectos estéticos • aspectos especiais • Funcionalidade • capacidade de busca e recuperação • aspectos navegacionais e de browsing • aspectos relacionados ao domínio da aplicação • Eficiência • tempo de resposta • velocidade na geração de páginas • velocidade na geração de gráficos • Confiabilidade • correção no processamento de links • recuperação de erros • validação e recuperação de entradas do usuário • Manutenibilidade • facilidade de correção • adaptabilidade • extensibilidade Olsina,L et al Specifying Quality Characteristics and Attributes for Web Sites; First ICSE Workshop on Web Engineering, Los Angeles, 1999
Requisitos de Qualidade • quais e em que grau os requisitos de qualidade referente à funcionalidade, eficiência, usabilidade, manutenibilidade, confiabilidade e portabilidade devem ser satisfeitos • podem ser acrescentados novos atributos de qualidade dependendo da natureza do projeto e do produto
Definição de Requisitos de Qualidade • Projetos diferentes têm requisitos de qualidade distintos • Requisitos de Qualidade devem: • fazer parte da Especificação de Requisitos • ser identificados com os usuários/clientes
Atividades para Definição de Requisitos de Qualidade • Selecionar as características de qualidade de interesse • Definir prioridades e relações entre as características • Definir quantitativamente os requisitos de qualidade atribuindo valores esperados a cada medida