Qualidade de Produto de Software Mariano Montoni.

Post on 18-Apr-2015

109 views 2 download

Transcript of Qualidade de Produto de Software Mariano Montoni.

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