introdução à qualidade de software ricardo de almeida falbo tópicos especiais – qualidade de...
TRANSCRIPT
Introdução à Qualidade de Software
Ricardo de Almeida Falbo
Tópicos Especiais – Qualidade de Software 2008/2
Departamento de InformáticaUniversidade Federal do Espírito Santo
Tópicos Especiais - Qualidade de Software 2008/2 2
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 3
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 4
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 5
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 6
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 7
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 8
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 9
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 10
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 11
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.
UsuáriosFinais
Desenvolvedores
UsuáriosIndiretos
Tópicos Especiais - Qualidade de Software 2008/2 12
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 13
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 14
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 15
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 16
Como definir um processo? Apoio de Normas e Modelos de Qualidade de
Processos de Software.
Tópicos Especiais - Qualidade de Software 2008/2 17
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 18
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 19
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 20
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 21
Qualidade e Processos Relacionados
Qualidade de Software
Documentação Gerência de Configuração de Software
Verificação e Validação
Tópicos Especiais - Qualidade de Software 2008/2 22
Qualidade e Processos Relacionados
Qualidade de Software
Documentação Gerência de Configuração de Software
Verificação e Validação
Tópicos Especiais - Qualidade de Software 2008/2 23
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 24
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 25
Qualidade e Processos Relacionados
Qualidade de Software
Documentação Gerência de Configuração de Software
Verificação e Validação
Tópicos Especiais - Qualidade de Software 2008/2 26
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 27
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.