Introdução à Qualidade de Software
Ricardo de Almeida Falbo
Tópicos Especiais – Qualidade de Software
2008/2
Departamento de Informática
Universidade Federal do Espírito Santo
Agenda





O que é Qualidade?
O que é Qualidade de Software?
Qualidade do Produto e do Processo
Normas e Organismos Normativos
Qualidade de Software e Processos Relacionados
Tópicos Especiais - Qualidade de Software 2008/2
2
O que é Qualidade?


O que um determinado produto apresenta para
considerarmos que o mesmo tem qualidade?
Ex.: Carro
Qualidade é um conceito relativo. Diversos
aspectos são levados em conta. No caso de um
automóvel, fatores como conforto, segurança,
desempenho, beleza e custo têm estreita relação
com a qualidade.
Tópicos Especiais - Qualidade de Software 2008/2
3
O que é Qualidade?




Qualidade está fortemente relacionada à
conformidade com os requisitos.
O que é “conformidade em relação a requisitos”?
observado x especificado.
Pode haver problemas na observação.
Pode haver problemas na especificação.
Tópicos Especiais - Qualidade de Software 2008/2
4
O que é Qualidade?


Qualidade diz respeito à satisfação do cliente.
Requisitos são especificados por pessoas e com
o objetivo de satisfazer outras pessoas.


Uma especificação depende das escolhas feitas (clientes
alvo).
Pode haver problemas na especificação.
Tópicos Especiais - Qualidade de Software 2008/2
5
Breve Histórico da Qualidade




Relatos Históricos de 4.000 anos atrás no Egito.
Marco Importante: Revolução Industrial
1920: Controle Estatístico da Produção
1940: Surgimento de vários organismos ligados
à qualidade





ASQC (American Society for Quality Control)
ABNT (Associação Brasileira de Normas Técnicas)
ISO (International Standardization Organization)
Ainda década de 1940: Japão destaca-se.
Década de 1970: Qualidade de Software
Tópicos Especiais - Qualidade de Software 2008/2
6
O que é Qualidade de Software?


Conferência da NATO (1968) – Crise de Software
Problemas detectados:







Cronogramas não observados.
Projetos abandonados.
Módulos que não operam corretamente quando
combinados.
Programas que não fazem exatamente o que era
esperado.
Sistemas tão difíceis de usar que são descartados.
Sistemas que simplesmente param de funcionar.
Passados 40 anos, o que mudou?
Tópicos Especiais - Qualidade de Software 2008/2
7
O que é Qualidade de Software?

Qualidade em geral:




é um conceito relativo.
está fortemente relacionada à conformidade com
requisitos.
diz respeito à satisfação do cliente.
Como isso se manifesta em software?
Tópicos Especiais - Qualidade de Software 2008/2
8
Desenvolvimento de Software



O aspecto não repetitivo do desenvolvimento de
software torna essa atividade difícil e, em boa
medida, imprevisível.
Delimitar o escopo de um sistema não é trivial.
A volatilidade dos requisitos é lugar comum no
desenvolvimento de software.
Tópicos Especiais - Qualidade de Software 2008/2
9
Fatores que afetam o Desenvolvimento de
Software e influenciam a Qualidade






Tamanho e complexidade do software;
Número de pessoas envolvidas no projeto;
Métodos, técnicas e ferramentas utilizadas;
Custo x benefício do sistema;
Custos associados à existência de erros;
Custos associados à detecção e remoção de
erros; etc.
Tópicos Especiais - Qualidade de Software 2008/2
10
O que é 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.
Desenvolvedores
Usuários
Finais
Usuários
Indiretos
Tópicos Especiais - Qualidade de Software 2008/2
11
Qualidade do Produto x
Qualidade do Processo de Software


Qualidade do produto de software não se atinge
de forma espontânea.
A qualidade do produto depende fortemente da
qualidade do processo de desenvolvimento.
Tópicos Especiais - Qualidade de Software 2008/2
12
O que é Processo de Software?

Processos de Software devem estabelecer:




atividades a serem realizadas durante o processo, sua
estrutura e organização (decomposição e precedência),
incluindo a definição de um modelo de ciclo de vida
quando pertinente (ex.: processo de desenvolvimento);
artefatos requeridos e produzidos por cada uma das
atividades do processo;
procedimentos (métodos, técnicas, roteiros e padrões)
a serem adotados na realização das atividades;
recursos necessários (humanos, hardware e software)
para a realização das atividades.
Tópicos Especiais - Qualidade de Software 2008/2
13
Qualidade do Processo de Software

Um bom processo não garante que os produtos
produzidos são de boa qualidade, mas é um
indicativo de que a organização é capaz de
produzir bons produtos.
Tópicos Especiais - Qualidade de Software 2008/2
14
Motivação para a busca da Qualidade do
Processo de Software






Aumento da qualidade do produto.
Diminuição do retrabalho.
Maior produtividade.
Redução do tempo para atender o mercado
(time to market).
Maior competitividade.
Maior precisão nas estimativas.
Tópicos Especiais - Qualidade de Software 2008/2
15
Como definir um processo?

Apoio de Normas e Modelos de Qualidade de
Processos de Software.
Tópicos Especiais - Qualidade de Software 2008/2
16
Normas e Organismos Normativos


Normas internacionais de qualidade são criadas
no trabalho voluntário de especialistas do mundo
todo.
Essas normas tornaram-se a base para
especificar produtos, organizar o fornecimento
de serviços e até mesmo para a elaboração de
legislação em vários países.
Tópicos Especiais - Qualidade de Software 2008/2
17
Padrões de Facto



Muitas vezes padrões surgem espontaneamente,
a partir de uma necessidade ou como uma
solução amplamente adotada quando comparada
a outras alternativas.
Padrões de facto são padrões aplicados na
prática, mas que não foram formalizados como
um regulamento.
Podem ser criados involuntariamente ou por
razões comerciais.
Tópicos Especiais - Qualidade de Software 2008/2
18
Padrões de Jure


São criados de maneira formal, regulamentada.
São escritos seguindo regulamentos e aprovados
por instituições reconhecidas publicamente como
capacitadas para tal (ex., ISO, IEEE etc).
Tópicos Especiais - Qualidade de Software 2008/2
19
Uso de Padrões



Adequação x Certificação.
Adequação: deve preceder a certificação e
consiste em colocar em prática, total ou
parcialmente, aquilo que é proposto no padrão.
Certificação: Envolve a participação de um
organismo ou empresa externa que possa
atestar que a empresa candidata segue
efetivamente o padrão.
Tópicos Especiais - Qualidade de Software 2008/2
20
Qualidade e Processos Relacionados
Gerência de Configuração
de Software
Documentação
Qualidade de Software
Verificação e Validação
Tópicos Especiais - Qualidade de Software 2008/2
21
Qualidade e Processos Relacionados
Gerência de Configuração
de Software
Documentação
Qualidade de Software
Verificação e Validação
Tópicos Especiais - Qualidade de Software 2008/2
22
Documentação e Gerência de
Configuração



Artefatos registram a evolução do software para
que sejam criadas as bases para o
desenvolvimento, utilização e manutenção
efetivos.
Artefatos devem retratar fielmente o software,
de modo que as atividades de avaliação e
modificação possam ser realizadas sem maiores
transtornos.
Artefatos evidenciam a evolução do projeto. Mas
é muito importante registrar modificações que
ocorrem nos mesmos, de modo a se ter um
histórico da evolução, o que é feito por meio da
Gerência de Configuração de Software (GCS).
Tópicos Especiais - Qualidade de Software 2008/2
23
Gerência de Configuração


Permite manter o controle da evolução dos
artefatos de software, além de ajudar a cumprir
metas de garantia da qualidade.
Envolve, dentre outros:





a identificação de itens de configuração de software,
controle de alterações,
registro e apresentação da situação dos itens e das
solicitações de alteração,
garantia da consistência dos itens alterados,
controle de versão, armazenamento, manipulação e
distribuição de itens.
Tópicos Especiais - Qualidade de Software 2008/2
24
Qualidade e Processos Relacionados
Gerência de Configuração
de Software
Documentação
Qualidade de Software
Verificação e Validação
Tópicos Especiais - Qualidade de Software 2008/2
25
Verificação e Validação


Verificação: assegurar que o software, ou
determinada função do mesmo, está sendo
desenvolvido corretamente, o que inclui verificar
se os métodos e processos estão sendo
aplicados adequadamente.
Validação: assegurar que o software que está
sendo desenvolvido é o software correto.
Tópicos Especiais - Qualidade de Software 2008/2
26
Análise Estática e Análise Dinâmica


Análise Estática: não envolve a execução
propriamente dita do produto. Pode e deve ser
aplicada em qualquer artefato intermediário.
Ex.: Revisões técnicas, inspeção de código.
Análise Dinâmica: envolve a execução do
produto. Ex.: Testes.
Tópicos Especiais - Qualidade de Software 2008/2
27
Download

Qualidade de Software - Informática