Qualidade de Software
Engenharia de Software
Profa. Inês Ap. Gasparotto Boaventura
1. Semestre/2001
Introdução
• Qualidade é um dos principais objetivos da
Engenharia de Software.
• Muitos métodos, técnicas e ferramentas são
desenvolvidas para apoiar a produção com
qualidade.
• “Tem-se dado grande importância ao processo
como forma de se garantir um software de
melhor qualidade.”
Qualidade
Termo que pode ser definido de várias formas,
causando mal-entendidos:
1. Qualidade não tem um único sentido;
2. Para cada conceito existem vários níveis de
abstração;
3. Visão popular pode ser diferente do seu uso
profissional.
Qualidade: Visão Popular
• termo indefinível.
• pode ser sentida, discutida, julgada, mas
não pode ser medida;
• luxo, classe e elegância. Produtos caros e
complexos têm melhor nível de qualidade.
Confiabilidade e o número de reparos
efetuados não são considerados.
Qualidade: Definições Simples
• Qualidade é estar em conformidade com os
requisitos do cliente.
• Qualidade é antecipar e satisfazer os
requisitos dos clientes.
• Qualidade é escrever tudo o que se deve
fazer e fazer tudo o que foi escrito.
Qualidade: Visão Profissional
Definições
Crosby: “Conformidade aos Requisitos”
Requisitos devem ser claramente definidos e não
podem ser mal-interpretados.
Não conformidade = ausência de qualidade.
Juran: “Conveniência para Uso”
As
• Considera os requisitos e a expectativa do cliente.
• Um produto deve ter elementos que satisfaçam as
duas definições
são similares embora a segunda
diversas maneiras com que os clientes o utilizarão.
dê mais ênfase
às expectativas
douso:
usuário.
• Parâmetros
da conveniência para
Qualidade de Projeto e de Conformidade.
Qualidade: Definição segundo NBR 8402
Qualidade :
A totalidade das características de uma
entidade que lhe confere a capacidade de
satisfazer as necessidades explícitas e
implícitas.
Ex: Qualidade de um prato de
comida está relacionado com
a satisfação das necessidades:
• sabor
• aparência
• temperatura
• rapidez no serviço
• preço
• higiene
• valor nutricional
Qualidade : Certificação de Qualidade
A qualidade não basta existir, ela deve ser
reconhecida pelo cliente.
A certificação de qualidade oficial é emitida com base
em um padrão.
Ex. Certificados
 O selo do SIF
 O selo da ABIC
 A classificação em estrelas dos hotéis
 Os certificados de qualidade da série ISO 9000
(padrão de qualidade) .
Qualidade : Organizações Normalizadoras
 ISO - International Organization for Standardization
 IEEE - Instituto de Engenharia Elétrica e Eletrônica
 ABNT - Associação Brasileira de Normas Técnicas
Para a emissão de certificado, é preciso a
realização de todo um processo de avaliação e
julgamento de acordo com uma determinada
norma.
INMETRO - orgão do governo responsável
pelo credenciamento das instituições que
realizam a certificação.
Evolução dos Conceitos de Qualidade







1900 - Inspeção pós-produção - avalia o produto final.
1940 - Controle estatístico da produção.
1950 - Avaliação do procedimento de produção.
1960 - Educação das pessoas.
1970 - Otimização dos processos.
1980 - Projeto robusto - avaliação do processo.
1990 - Engenharia Simultânea - avalia a própria
concepção do produto.
Qualidade aplicada ao Software
Mito: Criar programas é uma arte que não pode
seguir regras, normas ou padrões.
Causas:
Produtos de software são complexos.
Software não tem produção em série. Custo está no projeto e
desenvolvimento.
Software não se desgasta.
Software é invisível. Sua representação em grafos e diagramas não
é precisa.
A Engenharia de Software ainda não está madura, é uma tecnologia
em evolução.
Não há um acordo entre os profissionais sobre o que é qualidade
de software.
Qualidade de Software
Perspectiva Histórica da Engenharia de Software:
 anos 60 - Era Funcional
 anos 70 - Era do Método
 anos 80 - Era do Custo
 anos 90 e depois - Era da Qualidade
Qualidade não é um fator de vantagem no mercado, mas é
uma necessidade para a garantia da competitividade.
Qualidade de Software - atividades para garantia
de qualidade de produtos de software
Software Quality Assurance: padrão sistemático e
planejado de ações que são exigidas para garantir
a qualidade de software. Essas ações englobam:
 Aplicações de métodos técnicos
 Realizações de revisões técnicas formais
 Atividade de teste de software
 Aplicação de padrões e procedimentos formais
 Processo de controle de mudanças
 Mecanismos de medição
Qualidade de Software - técnicas aplicadas ao
processo de desenvolvimento
 Planejamento de qualidade
 Melhoria no processo e controle de qualidade
 Gerenciamento de qualidade no processo
 Análise de dados sobre a satisfação do cliente
Definição de Qualidade de Software
“Conformidade aos requisitos de desempenho e de
funcionalidade que foram explicitamente
definidos, aos padrões de desenvolvimento
explicitamente documentados e às
características implícitas que são esperadas por
todo software desenvolvido por profissionais.”
Visões sobre a importância da qualidade do produto e
do processo
• Visão que aborda a qualidade do produto
– Funcionalidade, confiabilidade, usabilidade, eficiência,
manutenibilidade e portabilidade (ISO 9126 e NBR 13596).
• Visão que aborda a qualidade do processo
– Dos requisitos do usuário à entrega do produto final,
existe um processo de desenvolvimento complexo e
dividido em fases, que pode comprometer a qualidade do
software.
Mesmo diante de divergências, o fato é que o processo
influi nas características finais do software.
Principais Normas Nacionais e Internacionais na Área
de Software
NORMA
ISO 9126
Características da qualidade de
produtos de software
NBR 13596
Versão brasileira da ISO 9126
ISO 14598
Guias para avaliação de produtos de
software, baseados na ISO 9126
ISO 12119
Características de qualidade de pacotes de
software (software de prateleiras)
ISO 12207
Norma para a qualidade do processo de
desenvolvimento de software.
NBR ISO 9001 Modelo para garantia de qualidade em
projeto, desenvolvimento, intalação e
assistência técnica (processo)
Principais Normas Nacionais e Internacionais na Área
de Software
NORMA
CMM
SPICE
ISO 15504
ISO
Modelo da SEI para avaliação da qualidade
do processo de desenvolvimento de
software. Não é uma norma ISO, mas é
muito bem aceita no mercado.
Projeto da ISO/IEC para avaliação de
processo de desenvolvimento de software.
Ainda não é uma norma oficial ISO, mas o
processo está em andamento.
Qualidade de Produtos de Software
• O que é qualidade de software?
• Que padrões utilizar? Parece difícil ...
• Muito se tem pensado sobre isso:
– ISO/IEC 9126 - publicada em 1991.
– NBR 13596 - publicada em agosto de 1996
Listam um conjunto de características que devem ser
verificadas em um software para que ele seja considerado
um software de qualidade
Qualidade de Produtos de Software - NBR 13596
Característica
Subcaracterísticas
Pergunta chave para a
subcaracterística
Funcionalidade
(satisfaz as
necessidades?)
Adequação
Propõe-se a fazer o que é
apropriado?
Faz o que propôs de maneira
correta?
Interage com os sistemas
especificados?
Evita acesso não autorizado a
dados?
Está de acordo com as normas,
leis, etc.
Com que frequência apresenta
falhas?
Ocorrendo falhas, como reage?
É capaz de recuperar dados em
caso de falhas?
É fácil entender o conceito e a
aplicação?
É fácil aprender a usar?
É fácil operar e controlar
Acurácia
Interoperabilidade
Segurança de acesso
Conformidade
Confiabilidade
(É imune a
falhas?)
Maturidade
Usabilidade
(É fácil de usar?)
Inteligibilidade
Tolerância a falhas
Recuperabilidade
Apreensibilidade
Operacionalidade
Qualidade de Produtos de Software - NBR 13596
Característica
Subcaracterísticas
Pergunta chave para a
subcaracterística
Eficiência
(Rápido e enxuto)
Tempo
Qual o tempo de resposta,
velocid. de execução?
Quanto recurso usa? Durante
quanto tempo?
É fácil encontrar uma falha,
quando ocorre?
È fácil modificar e adaptar?
Há grande risco quando se faz
alterações?
É fácil testar quando se faz
alterações?
É fácil adaptar a outros
ambientes?
É fácill instalar em outros
ambientes?
Está de acordo com padrões de
portabilidade?
É fácil usar para substituir outro
sistema?
Recursos
Manutenibilidade
(É fácil de
modificar?)
Analisabilidade
Modificabilidade
Estabilidade
Testabilidade
Portabilidade
Adaptabilidade
(É fácil de usar em
outro ambiente?)
Capacidade para ser
instalado
Conformidade
Capacidade para
substituir
Qualidade de Produto de Software - NBR 13596
Como aplicar a norma ISO 9126/ NBR 13560?
• Para avaliar um software segundo a norma deve-se tentar
atribuir valores (notas ou conceitos) a cada uma das
subcaracterísticas.
Fato: É difícil aplicar a norma sem se estar familiarizado com o
processo de avaliação de software.
Guias para a avaliação da qualidade - descrevem,
detalhadamente todos os passos para se avaliar um
software.
Qualidade de Processo de Software
Processo de Software = conjunto de ferramentas, métodos
e práticas usadas para produzir um software.
• Para melhorar a qualidade no desenvolvimento precisa-se
de modelos de processos para a descrição precisa e
formal das atividades do ciclo de vida do software.
• Modelo de Processo é representado por um conjunto
seqüencial de atividades, objetivos, transformações e
eventos que encapsulam estratégias para o cumprimento da
evolução do software
Gerência de Processo de Software
• A gerência de processo objetiva a geração de produtos de
acordo com o planejado e, ao mesmo tempo, melhorar a
capacidade de produzir software com mais qualidade.
• Melhor capacidade de lidar com o software:
Passo 1. Compreender o estado atual do processo;
Passo 2. Desenvolver uma visão do processo desejado;
Passo 3. Estabelecer ações para a melhoria do processo;
Passo 4. Gerar um plano para acompanhar estas ações;
Passo 5. Compreender os recursos para execução do plano;
Passo 6. Recomeçar a partir do Passo 1.
• Para a evolução do processo de software é necessário ter
uma maneira para medí-lo.
Modelos para a Avaliação do Processo de Software
•
•
•
•
•
Modelo Capability Maturity Model (CMM)
ISO 9000-3
Projeto SPICE
Modelo PSP (Personal Software Process)
Projeto SQUID, etc
ISO 9000-3
• Guia para a aplicação da ISO 9001 para o
desenvolvimento, fornecimento e
manutenção de software, criado em 1993.
• Especifica requisitos mínimos para
assegurar a qualidade de produtos e
serviços, não definindo modelos ou
impondo sistemas de qualidade.
ISO 9000-3 Atividades do Ciclo de Vida
• Agrupa as atividades do ciclo de vida em 9 categorias:
análise crítica do contrato
especificação dos requisitos do comprador
planejamento do desenvolvimento
planejamento da qualidade
projeto e implementação
ensaios e validação
aceitação
cópia, entrega e instalação
manutenção
ISO 9000-3 Atividades de Suporte
• Estão organizadas em 9 itens:









gestão de configuração
controle de documentos
registros da qualidade
medição
regras, práticas e convenções
ferramentas e técnicas
aquisição
produto de software incluído
treinamento
SPICE - Introdução
• Motivação
– Mortalidade dos trabalhos de padronização
• SPICE (Software Process Improvement and
Capability dEtermination)
• Organização
– 4 Centros Técnicos
– Conselho Administrativo
– Organizações privadas e estatais
SPICE - O que é ?
• É um conjunto de documentos
• Consiste de um framework de avaliação
–
–
–
–
–
Facilita o auto-julgamento
Desperta consciência do contexto
Produz um perfil do processo
Direciona a adequação das atividades
Apropriado para organizações de diversos
tamanhos
SPICE - Aplicação
• Aplicado para organizações envolvidas com
qualquer atividade relacionada ás
atividades de computação
• A Avaliação examina o processo e
determina a efetividade deste
• Resultados podem usados para
– Auto-Avaliação
– Melhoria do processo
Documentos do SPICE
• O SPICE é composto por 9 partes:
parte 1: Conceitos e Guia Introdutório
parte 2: Modelo de Gerenciamento de Processo
parte 3: Avaliação do Processo
parte 4: Guia para Condução de uma Avaliação
parte 5: Construção, Seleção e Uso das Ferramentas de
Avaliação
parte 6: Qualificação e Treinamento dos Avaliadores
parte 7: Guia para o Processo de Melhoria
parte 8: Guia para Orientação da Determinação da
Capacidade do Processo
parte 9: Dicionários
Quadro Comparativo
Aspectos
ISO 9000-3
Abordagem Verificação de
conformidade
de processos a
padrões
documentados.
CMM (SEI)
SPICE
Classificação das organizações
em níveis de maturidade
crescente.
Avaliação dos
processos com o
objetivo de
determinar a
capacitação da
organização e
propor melhoria.
Determinar a
capacitação da
organização e
apoiar sua evolução
de acordo com os
objetivos da
organização.
Organizações em
geral.
Meta/
Objetivo
Certificar a
organização de
acordo com os
padrões
estabelecidos.
Determinar a capacitação da
empresa e apoiar sua evolução
de acordo com os 5 níveis.
Empresas
Alvo
Organizações
que necessitam
de uma
certificação.
Organizações de grande porte
que necessitam de uma
certificação.
Quadro Comparativo
Aspectos
CMM
(SEI)
SPICE
Não estabelece
Definições
de Processos processos,
Estabelece
18 processos
organizados
em 5 níveis.
Estabelece
35
processos
organizados
em 5
categorias.
Flexibilidade
Não admite
adaptação.
Instrumento
de Avaliação
de nível de
capacitação
ISO 9000-3
(estabelece as
atividades a ser
cumpridas, com
visão de
estrutura, ciclo
de vida e
suporte).
Não admite
adaptação.
Check list.
Adaptável
aos
objetivos da
organização
.
Questionário. Fornece
orientações
para montar
questionário
.
Aspectos
Inspiração
e
Influência
Benefícios
Limitações
ISO 9000-3
CMM (SEI)
Normas militares
americanas,
canadenses,
sistemas de
qualidade do
Reino Unido.
Difusão extensa;
Reconhecimento
do valor da
certificação.
Princípios de
Shewart, Deming,
Juran, Crosby.
Risco de se
colocar a
Certificação
como objetivo
principal.
Ausência de
apoio à melhoria
contínua. Foco
exclusivo no
processo.
Pouca
consideração à
diversidade das
organizações.
Dificuldade de
aplicação em
pequenas
organizações.
Foco exclusivo no
processo.
SPICE
TQM, PDCA,
CMM,
TRILLIUM,
Malcolm
Baldrige,
Bootstrap.
Estabelecimento
Expansão e
de um roteiro para flexibilização
a melhoria
dos modelos
contínua.
citados.
Dificuldade de
aplicação
devido à
grande
quantidade de
informações.
Foco exclusivo
no processo.
Conclusões
• Dos métodos de avaliação de processo apresentados,
alguns estão estabelecidos no mercado (CMM), e outros
apresentam projetos ambiciosos a nível mundial
(SPICE).
• Dentre estes, existem modelos que além de avaliar o
processo de desenvolvimento propõem algum
mecanismo para melhoria do processo.
Conclusões
• Não existe um modelo ideal de avaliação de
qualidade que seja aplicável indistintamente às
organizações, abrangendo os diversos objetivos
que elas tem em relação a qualidade.
• A qualidade de software não é garantida somente
pela qualidade de processo, mas também pela
garantia de qualidade do produto final.
• A maior preocupação deve ser sempre a
satisfação do usuário final.
Alguns endereços na Web:
• http://www.sei.cmu.edu/cmm/cmm.html
• http://www.ISO_online.com
Download

Qualidade de Software