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?
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
(Information Technology - Software product evaluation - Quality characteristics and guidelines for their use)
Versão 2001:9126-1: modelo de qualidade9126-2: métricas externas9126-3: métricas internas9126-4: métricas para qualidade no uso
ISO 9126
Diferentes Visões da Qualidade de Software
Necessidades de qualidade do usuário
Necessidades de qualidade do usuário
Qualidade Interna
Qualidade InternaVerificação
Validação
Uso e Feedback
Qualidade Externa
Qualidade Externa
indica
Qualidade no uso
Qualidade no uso
indica
Requisitos internos de qualidade
Requisitos internos de qualidade
Contribuem para especificar
Requisitos externos de qualidade
Requisitos externos de qualidade
Contribuem para especificar
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
Qualidade Interna e Externa
Qualidade Interna e Externa
FuncionalidadeFuncionalidade
ConfiabilidadeConfiabilidade
UsabilidadeUsabilidade
EficiênciaEficiência
ManutenabilidadeManutenabilidade
PortabilidadePortabilidade
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
Qualidade em usoQualidade em uso
EfetividadeEfetividade
ProdutividadeProdutividade
Segurança CríticaSegurança Crítica
SatisfaçãoSatisfação
Modelo para Qualidade em uso
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
influencia influencia influenciaQualidade
de processo
Medidas do processo
depende de
Atributos de
qualidade interna
Medidas internas
depende de
Atributos de
qualidade externa
Medidasexternas
depende de
Processo Produto de Software
Atributos de
qualidade no uso
Medidas de qualidade no
uso
Efeitos do produto de software
Contextos de uso
Modelo de Qualidade
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 para Domínios de Aplicação e Tecnologias de Desenvolvimento Específicas
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