Qualidade de Software
Valdir Sant’Ana……….RA01580/00-5
Sidnei da Silva Padilha….RA03219/00-1
Luiz Ricardo C. Batista….RA 00499/00-4
André de Souza Barbosa….RA02783/00-3
Qualidade de Software
Conjunto de características a serem
satisfeitas em um determinado grau de
modo que o software satisfaça às
necessidades de seus usuários
Usuários de Software
Desenvolvedores
Usuário Final
Suporte
Outra Classe de Usuários
“penumbra”
O software deve ter características que
atendam às necessidades de todos os
seus usuários
Controle da Qualidade de Software
conjunto planejado e sistemático de todas
as ações necessárias para fornecer uma
confiança adequada de que o item ou
produto está de acordo com os requisitos
técnicos estabelecidos
Qualidade de Software
Qualidade do Processo
Qualidade do Produto
Produto e Processo estão fortemente
relacionados e não podem ser separados
quando se analisa a qualidade
A implantação de um Programa de Qualidade
começa pela definição e implantação de um
processo de desenvolvimento
O processo de desenvolvimento de
software deve estar documentado,
compreendido e seguido
Qualidade do Processo
A qualidade do processo é essencial para
se ter qualidade do produto
ISO 9000-3
CMM
ISO 9000-3
 Sistema da Qualidade: Estrutura
 Responsabilidade do fornecedor
 Responsabilidade do comprador
 Análise crítica conjunta
 Atividades do Ciclo de Vida








Análise crítica do contrato
Especificação dos Requisitos do comprador
Planejamento do desenvolvimento
Projeto e implementação
Testes e validação
Aceitação
Cópia, entrega e instalação
Manutenção
ISO 9000-3
 Atividades de Apoio









Gerenciamento da configuração
Controle de documentos
Registros da qualidade
Medição
Regras, convenções
Ferramentas e técnicas
Aquisição
Produto de software incluído
Treinamento
Certificação ISO 9000
• Demonstra que o Sistema de Qualidade
da Organização é efetivo
Fornece evidência de que a Organização é
capaz de produzir produtos e serviços de
qualidade
Não avalia diretamente a qualidade de
nenhum produto ou serviço
CMM - Capability Maturity Model
(Modelo de Maturidade de Capacidade)
• Motivação: Projetos do Departamento de
Defesa
• 5 Níveis de Maturidade para o Processo
CMM - Níveis de Maturidade
5. Otimizado
Gerência de mudanças no processo
Gerência de mudanças na tecnologia
Prevenção de defeitos
4. Gerenciado
Gerência da qualidade de software
Gerência quantitativa do processo
3. Definido
Revisões
Coordenação entre grupos
Engenharia do produto de software
Gerência de software integrada
Programa de treinamento
Definição do processo da organização
Foco no processo da organização
Gerência de configuração
Garantia da qualidade de software
Gerência de contratos de software
Acompanhamento de projetos de software
Planejamento de projetos de software
Gerência de requisitos
2. Repetível
1. Inicial
Comparação entre ISO 9000-3 e CMM
ISO 9000-3
• identifica os requisitos mínimos para um
Sistema da Qualidade
CMM
• tem como filosofia a necessidade de
contínuos aperfeiçoamentos no processo
Qualidade do Produto
 Características de Qualidade
 Técnicas para Avaliação da Qualidade
Dois tipos de Avaliação
Avaliação ao longo do processo
de desenvolvimento
Avaliação de pacotes
Avaliação ao longo do
Desenvolvimento
 qualidade externa
deve estar explicitamente definida
Especificação de Requisitos do Projeto
na
 qualidade interna
atributos que são geralmente acrescentados
pela empresa
QUALIDADE
EXTERNA
QUALIDADE
INTERNA
Características de
Qualidade do Produto
Norma ISO 9126
Características de Qualidade para
Domínios Específicos
Características de Qualidade para
Tecnologias Específicas
ISO 9126
• Define seis características de qualidade e
sub-características associadas a estas
características
Característica da ISO 9126

FUNCIONALIDADE
Conjunto de atributos que evidenciam a
existência de um conjunto de funções e suas
propriedades especificadas
Sub-características:
• adequação
• acurácia
• interoperabilidade
• conformidade
• segurança de acesso
Característica da ISO 9126

CONFIABILIDADE
conjunto de atributos que evidenciam a
capacidade do software de manter seu nível
de desempenho sob condições estabelecidas
durante um período de tempo estabelecido
Sub-características:
• maturidade
• tolerância a falhas
• recuperabilidade
Característica da ISO 9126

USABILIDADE
conjunto de atributos que evidenciam o esforço
necessário para se poder utilizar o software,
bem como o julgamento individual deste uso,
por um conjunto explícito ou implícito de
usuários
Sub-características:
• inteligibilidade
• apreensibilidade
• operacionalidade
Característica da ISO 9126

EFICIÊNCIA
conjunto de atributos que evidenciam o
relacionamento entre o nível de desempenho do
software e a quantidade de recursos usados, sob
condições estabelecidas
Sub-características:
• comportamento em relação ao tempo
• comportamento em relação aos recursos
Característica da ISO 9126

MANUTENIBILIDADE
conjunto de atributos que evidenciam o
esforço necessário para fazer modificações
especificadas no software
Sub-características:
• analisabilidade
• modificabilidade
• estabilidade
• testabilidade
Característica da ISO 9126

PORTABILIDADE
conjunto de atributos que evidenciam a
capacidade do software ser transferido de um
ambiente para outro
Sub-características:
• adaptabilidade
• capacidade para ser instalado
• conformidade
• capacidade para substituir
Necessidades explícitas
ou implícitas
Requisitos
Gerenciais
ISO 9126/NBR13596 e outras
informações técnicas
Especificação dos
Definição dos
requisitos de
qualidade
Requisitos de Qualidade
Seleção de
Métricas
Definição do
nível de
pontuação
Definição dos
critérios de
julgamento
Produtos/Prod.
Desenvolvimento intermediários
de software
Valor medido
Medição
Pontuação
Nível de
pontuação
Julgamento
Resultado
(aceitável ou inaceitável)
Modelo de Processo de Avaliação
Avaliação de pacotes
ISO-12119
estabelece requisitos de qualidade
mostra como testar
Definições
FATOR (CARACTERÍSTICA) DE QUALIDADE
 atributo de software que contribui para a sua qualidade
 orientado ao usuário (o que o usuário espera encontrar no
produto)
MÉTRICA DE QUALIDADE
 função cuja entrada são dados do software e cuja saída é
um valor que pode ser interpretado como o grau em que o
software possui um dado atributo que afeta sua qualidade
ENTENDER
RAZÕES PARA
MEDIR SOFTWARE
PREDIZER
CONTROLAR
“Quando você pode medir o que você está
falando, e expressá-lo em números, você
conhece alguma coisa sobre ele; quando você
não pode expressá-lo em números o seu
conhecimento é imperfeito”
Lord Kelvin
Não podemos gerenciar o que
não podemos medir
Métricas de Software
• Utilizadas para permitir a quantificação do
grau em que as características estão presentes
em um determinado produto de software
 métricas objetivas e subjetivas
 métricas diretas e indiretas
 métricas do produto e do processo
• Dificuldades para o uso de métricas
 falta de experimentos para validação
 falta de ferramentas de apoio
Características de Boas Métricas
CARACTERÍSTICAS ORGANIZACIONAIS
•
•
•
•
•
•
•
•
•
•
•
Aplicação ao processo de software e à gerência do projeto
Alta visibilidade
Consistência na aplicação
Interesse e apoio da gerência
Aceitação na organização
Compatibilidade com a política da organização
Existência de responsabilidade e controle
Disponibilidade de dados históricos
Correspondência ao processo de desenvolvimento
Apoio aos objetivos de melhoria do processo
Paciência
Características de Boas Métricas
CARACTERÍSTICAS TÉCNICAS
•
•
•
•
•
•
Número limitado de métricas
Facilidade de cálculo
Disponibilidade de dados para cálculo da métrica
Precisão da definição
Apoio de ferramentas
Realização de experimentos
Identificação de Métricas Úteis
• A prática de coletar e usar métricas não validadas não
pode ser aceita como Engenharia de Software
• Quando uma métrica parece promissora, a partir de
resultados de pesquisa, ela deve ser validada pelo uso
na Indústria em projetos de grande escala
• O benefício de uma métrica não pode ser avaliado de
forma imediata
São necessários dados históricos para avaliar e
refinar métricas
 Necessidade de Ferramentas
Ferramentas asseguram:
• que as medidas sejam consistentes
• produtividade na coleta de métricas
Gerência da Qualidade de Software
 Planejamento da Qualidade
 Controle da Qualidade
Para avaliar software são necessárias as seguintes
informações:
Características de Qualidade de Interesse
Documentos do Projeto
Informações sobre o Processo
Técnicas de Avaliação
Planejamento do Controle da Qualidade
Identificação das características de qualidade de
interesse para o produto
Definição da importância de cada característica
Definição de processos de avaliação
Definição de marcos e pontos de controle ao longo do
processo de desenvolvimento
Plano de Controle da Qualidade
• Contem a descrição de todos os procedimentos
a serem adotados no projeto
para controle da qualidade de produtos
intermediários ao longo do desenvolvimento
para avaliação do produto final
• Define a equipe de controle da qualidade
Técnicas para Avaliação da Qualidade
 Certificação
• Walkthrough
• Inspeção
• Prova Formal
 Testes
Walkthrough e Inspeções
OBJETIVOS
 detectar erros em qualquer representação do software
 verificar se o software sob avaliação atinge os requisitos
 assegurar que foram obedecidos normas e padrões
 assegurar que o software é desenvolvido de forma uniforme
 tornar o produto gerenciável
 treinar a equipe
CARACTERÍSTICAS
 reunião com grupos de 3 a 5 pessoas
 envolve preparação prévia à reunião
 devem durar em torno de 2 horas
Inspeção
semelhante ao walkthrough embora
mais formal
baseada em critérios previamente
definidos
Procedimentos para tornar eficaz a reunião
 rever o produto e não o desenvolvedor
 estabelecer uma agenda e mantê-la
 limitar o debate
 detectar problemas mas não tentar resolvê-los na reunião
 fazer anotações
 limitar o número de participantes
 elaborar um conjunto de critérios a serem avaliados
 alocar recursos e espaço no cronograma para a reunião
 treinar revisores
 rever revisões anteriores
Inspeção por Fases
A avaliação do produto é feita através de uma
série de avaliações parciais que podem ser
realizadas com inspetores individuais ou com
múltiplos inspetores
Cada avaliação parcial tem o objetivo de
verificar se o produto possui uma ou mais
propriedades
Prova Formal
OBJETIVO
demonstrar matematicamente a correção de um programa
VANTAGEM
percorrer todos os caminhos de um programa
DESVANTAGEM
dificuldade
ausência de ferramentas
Modelos de Confiabilidade
 avaliam a qualidade do software quando o
trabalho de desenvolvimento está completo
 são usados para estimar a taxa de defeitos que
está latente no produto quando este é entregue
 esta estimativa é importante porque:
é uma medida objetiva da qualidade do código
pode indicar quando se deve terminar a fase de
testes
pode ser usada para planejamento de recursos de
manutenção e suporte
Cleanroom
Processo de desenvolvimento onde se enfatiza a
construção correta do programa
Prioridade 1:
Prevenir falhas em vez de remover falhas
Solução: verificação formal
Prioridade 2:
Fornecer uma certificação estatística da
qualidade do software
Solução:
• a medida da qualidade é o tempo entre falhas
do produto em unidades de tempo
• leva em consideração o crescimento da
confiabilidade durante o teste do sistema
Seleção do Nível de Avaliação
NÍVEL
AMBIENTE
PESSOAS
D
Pequeno dano a Sem risco para
propriedades
pessoas
C
Dano a proprie- Poucas pesdades
soas mutiladas
B
A
ECONOMIA
APLICAÇÃO
Perda econômi-  Lazer
ca desprezível
 Uso
doméstico
Perda econômi-  Alarme de
ca significativa
incêndio
 Controle de
processos
Dano recuperá- Risco para
Grande perda
 Sistemas
vel ao ambiente vidas humanas econômica
médicos
 Sistemas
financeiros
Dano irrecupe- Muitas pessoas Desastre finan-  Controle de
rável ao ammortas
ceiro
trens
biente
 Sistemas
nucleares
Técnicas de Avaliação
CARACTERÍSTICA
NÍVEL D
NÍVEL C
NÍVEL B
NÍVEL A
Teste funcional
+ Inspeção de
documentos
+ Teste de
componentes
+ Prova formal
Confiabilidade
Facilidades da
linguagem de
programação
+ Análise da
tolerância a
falhas
+ Modelos de
crescimento da
confiabilidade
+ Prova formal
Usabilidade
Inspeção da
interface com
o usuário
+ Aderência a
padrões de
interface
+ Teste em
laboratório
+ Modelos
mentais do
usuário
Funcionalidade
Técnicas de Avaliação
CARACTERÍSTICA
NÍVEL D
NÍVEL C
NÍVEL B
NÍVEL A
Eficiência
Medição do
tempo de
execução
+ Benchmark
+ Análise da
complexidade de
algorítmos
+ Análise de
desempenho
Manutenibilidade
Inspeção de
documentos
+ Análise
estática
+ Análise do
processo de
desenvolvimento
+ Avaliação da
rastreabilidade
Portatilidade
Análise da
instalação
+ Aderência a
normas de
programação
+ Avaliação das
restrições do
ambiente
+ Avaliação do
projeto de programas
Eficiência das Técnicas para a
Detecção e Correção de Erros
ATIVIDADE
EFICIÊNCIA
Revisões informais de projeto
25% a 40%
Inspeções formais de projeto
45% a 65%
Revisões informais de código
20% a 35%
Inspeções formais de código
45% a 70%
Teste de unidades
15% a 50%
Teste de integração
25% a 40%
Teste do sistema
25% a 55%
Beta-teste (< 10 clientes)
24% a 40%
Beta teste (> 1000 clientes)
60% a 85%
Capers Jones, Software defect-removal efficiency,
IEEE Computer, março 1996
Projeto SEC - Uma Experiência de
Gerência da Qualidade de Software
QUALIDADE DO PROCESSO
Definição do Processo de Desenvolvimento
Uso do processo na construção da 1a. versão do
SEC
Avaliação do processo
Melhorias no processo para construção das
demais versões
Projeto SEC - Uma Experiência de
Gerência da Qualidade de Software
QUALIDADE DO PRODUTO
Identificação de características de qualidade de
sistemas especialistas
Definição dos requisitos de qualidade do SEC
Elaboração do Plano de Qualidade
Avaliação da qualidade ao longo do desenvolvimento
• walkthrough
• inspeções
Testes, depuração e refinamentos
Programa Brasileiro de Qualidade e
Produtividade / Software
 Diagnóstico das Empresas Brasileiras
 Indicadores e Metas
 Projetos
 Eventos
Diagnóstico da Qualidade e
Produtividade em Software
1997 - 589 Empresas
Certificação do Sistema da Qualidade
Empresas Certificadas
Todos os setores
Setor de Informática
Pesquisa da Qualidade em Software
Certificação ISO 9001
Certificação ISO 9002
SW explicitado no escopo certificado
1997
1.788
129
45
36
11
16
Diagnóstico da Qualidade e
Produtividade em Software
1997 - 589 Empresas
Conhecimento dos Modelos CMM e SPICE
Categorias
Conhece e usa
Conhece e começa a usar
Conhece mas não usa
Não conhece
CMM
No
%
7
20
143
419
1,2
3,4
24,3
71,1
SPICE
No
%
1
7
99
482
0,2
1,2
16,8
81,8
Diagnóstico da Qualidade e
Produtividade em Software
1997 - 589 Empresas
Conhecimento de Normas para Qualidade
Categorias
Conhece e usa
Conhece mas não usa
Não conhece
ISO 12207
ISO 9126 ou 12119
No
%
No
%
32
115
441
5,5
19,6
75,0
43
113
443
7,3
19,2
73,5
Diagnóstico da Qualidade e
Produtividade em Software
1997 - 589 Empresas
Avaliação de Produtos Baseada nas Normas de
Qualidade de Produtos de Software
Categorias
Segundo ISO 9126
Segundo ISO 12119
Auto-Avaliação
Em estudo/Preparando-se
Não adota
No de empresas
8
5
177
246
168
%
1,4
0,8
30,1
41,8
28,5
Download

PPT - QSL.net