Buscar

aula_01_fundamentos_sobre_qualidade_de_software2

Prévia do material em texto

Aula 01 – Fundamentos sobre Qualidade de Software
Nesta Aula
• Conceitos de Qualidade
– Problemática
– Definições
• Cenário das Empresas 
de TI
• Qualidade de Projeto
• Qualidade de 
Conformidade
• Qualidade de Software
• Evolução da Qualidade
– Inspeção
– Controle de Qualidade
– Garantia da Qualidade
– Gerenciamento Total da 
Qualidade
• Qualidade e o SWEBOK
• Normas e Modelos de 
Qualidade de Software
• Auditorias
• Tipos de Auditorias
• Custo da Qualidade
13/03/2014 2
Cenário
Após ...
1. a especificação de um software,
2. a seleção da empresa externa ou grupo de
pessoas da empresa que a implementará, e
3. a realização da codificação propriamente dita,
testada e documentada,
... em teoria o “problema” está resolvido, certo ?
13/03/2014 3
Não!
Por que?
13/03/2014 4
Problema
1. Como saber se a solução atende realmente à especificação ?
2. Como ter um grau mínimo de certeza de que o software, uma vez
posto em execução no ambiente de produção, não vai ter bug e,
assim, ocasionar enormes problemas à fábrica ?
3. Como saber se ele foi testado corretamente ?
4. Como saber se ele foi documentado corretamente ?
5. Como saber se, uma vez pago, um pedido de uma próxima
modificação / manutenção não vai ser cobrado
desproporcionalmente ?
13/03/2014 5
Cenário das empresas de TI
13/03/2014 6
Acúmulo de 
trabalho Abandono de planos 
e procedimentos
Sucesso depende do 
esforço heroico das pessoas
Pouca
repetibilidade
Cenário das empresas de TI
13/03/2014 7
Prática e teoria 
muito distantes
Clientes e funcionários 
insatisfeitos
Produto funciona, mas com 
defeitos; prazo e custo 
maiores; e menos 
funcionalidade
Como está a situação dessas empresas?
13/03/2014 8
Fonte: The Standish Group International, The Chaos Manifesto, 2013.
Gráfico 1: Excesso de tempo e eusto e percentual de recursos entregues entre 2004 e 2012
Como está a situação dessas empresas?
Frequentemente os projetos não terminam com sucesso:
• ~ 30% dos projetos são cancelados;
• ~ 50% dos projetos custam quase o dobro do planejado;
• ~ 85% dos projetos não terminam no prazo;
• Muitos projetos só trazem ~70% das funcionalidades
originalmente planejadas.
13/03/2014 9
Fonte: Standish Group, The Chaos Manifesto, 2013.
Consequências
Sistemas de software são entregues mesmo
sabendo-se que têm defeitos. Motivos:
1. Pressão por menores custos,
2. Entrega dentro do prazo ou com menor
atraso,
3. Baixo preparo ou rigor técnico da equipe.
13/03/2014 10
13/03/2014 11
Portanto, como se precaver disso ?
Solução Tradicional
1. Analistas e engenheiros experientes conseguem
antever um pouco isso;
2. Esses profissionais exigem certos procedimentos das
empresas de software ou da equipe de TI.
No entanto,
1. Esses profissionais são escassos no mercado e,
2. Quem disse ou garante que esses procedimentos são
os mais adequados e aceitos claramente pelas
empresas de software e de auditoria ?
13/03/2014 12
13/03/2014 13
Afinal, então como se resolve 
efetivamente isso ?
Solução Adequada
1. Através da utilização dos conceitos e
práticas sólidas contidas nos Modelos de
Melhoria de Processo de Software;
2. Selo de Qualidade da empresa de
software (do engenheiro, do setor de TI da
empresa onde atua, ou da contratada);
3. Critério de seleção / decisão da empresa
de software.
13/03/2014 14
13/03/2014 15
Mas, o que é Qualidade ?
Qualidade
13/03/2014 16
“Qualidade... Sabemos o que ela é, embora não
saibamos o que ela é. Mas essa afirmação é
contraditória. Mas algumas coisas são melhores
que outras; ou seja, eles têm mais qualidade. Mas
quando tentamos dizer o que é qualidade,
excetuando as coisas que a têm, tudo desaparece
como num passe de mágica! Não há nada para
dizer a respeito. Mas se não conseguimos dizer o
que é Qualidade, como saber o que ela é ou como
saber até se ela existe mesmo? ...”
Qualidade
“... Se ninguém sabe o que ela é, então para fins
práticos ela não existiria. Porém, para fins práticos,
ela realmente existe. Em que mais se baseia a
qualidade? Por que outro motivo as pessoas
pagariam fortunas por algumas coisas e jogariam
outras na lata de lixo? Obviamente, certas coisas
são melhores que outras... Mas o que é o melhor?...
E por aí vai (andando em círculos), girando rodas
mentais e em nenhum lugar encontrando um ponto
de tração. Mas o que é mesmo Qualidade? O que é
isso?”
13/03/2014 17
Fonte: Persig, R., Zen and the Art of Motorcycle Maintence, Bantam Books, 1974.
O que é Qualidade?
“É um conceito complexo e multifacetado” que pode ser descrito
através de cinco pontos de vista diferente:
1. Visão transcendental: algo que se reconhece imediatamente, mas
não se consegue definir explicitamente.
2. Visão do usuário: percebe-se a qualidade em termos das metas
específicas de um usuário final. Se um produto atende a essas
metas, ele apresenta qualidade.
3. Visão do fabricante: se o produto atente as especificações, ele
apresenta qualidade.
4. Visão do produto: pode ser ligada a características inerentes de
um produto, por exemplo, funções e recursos.
5. Visão baseada em valor: tomando como base o quanto um
cliente estaria disposto a pagar por um produto.
13/03/2014 18
Fonte: Garvin, D., What does Product Quality Really Mean?, Sloan Management Reviw, Fall, 1984.
O que é Qualidade?
13/03/2014 19
Na verdade, qualidade possui todas essas visões 
e outras mais.
Questões abordadas na disciplina
13/03/2014 20
1. Quais são as características genéricas de um software de alta qualidade?
2. Como revisar a qualidade e como são realizadas revisões eficazes?
3. O que é garantida da qualidade de software?
4. Quais métodos são usados para projetar casos de teste eficazes?
5. Existem métodos práticos para garantir que um software está correto?
6. Como gerenciar e controlar mudanças que sempre ocorrem quando um
software é criado?
7. Que medidas e métricas podem ser usadas para avaliar a qualidade dos
modelos de requisitos e de projeto, código-fonte e casos de teste?
Qualidade de Projeto
13/03/2014 21
• Refere-se às características que os projetistas
especificam para um produto.
• A qualidade dos materiais, as tolerâncias e as
especificações de desempenho são fatores que
contribuem para a qualidade de um projeto.
• No desenvolvimento de software, engloba o grau
de atendimento às funções e características
especificadas no modelo de requisitos.
Qualidade de Conformidade
13/03/2014 22
• Refere-se ao grau em que a implementação
segue o projeto e o sistema resultante atende
suas necessidades e as metas de
desempenho;
13/03/2014 23
Então, os engenheiros de software 
devem se preocupar unicamente com 
a qualidade do projeto e a qualidade 
de conformidade?
Não!
Por que?
13/03/2014 24
O que os clientes querem?
13/03/2014 25
• Atendimento aos requisitos especificados
• Defeito zero
• Alto desempenho
• Baixo custo
• Desenvolvimento rápido
• Facilidade de uso
• Eficiência nos serviços associados
• Inovação
Satisfação do usuário
= 
produto compatível 
+ 
boa qualidade 
+ 
entrega dentro do orçamento e do prazo previsto.
Logo, qualidade é importante, mas se o usuário não
estivar satisfeito, nada mais importa.
13/03/2014 26
Fonte: Glass, R., Defining Quality Intuitively, IEEE Software, May, 1998.
Mas o que é Qualidade de Software?
13/03/2014 27
Qualidade de Software
13/03/2014 28
“Uma gestão de qualidade efetiva aplicada de 
modo a criar um produto útil que forneça valor 
mensurável para aqueles que o produzem” 
(Pressmam)
Qualidade de Software
13/03/2014 29
Produzir software de qualidade é o principal 
objetivo da Engenharia de Software.
Qualidade de Software
13/03/2014 30
Foca em três pontos importantes:
1. Gestão de qualidade efetiva;
2. Produto Útil;
3. Agregar valor ao fabricante e ao usuário;
Gestão de qualidade efetiva
13/03/2014 31
• Infraestrutura que dá suporte a qualquer tentativa de 
construir um produto de software de alta qualidade.
• Uso de mecanismos de controle e equilíbriode 
poderes que ajudem a evitar o caos no projeto.
• Práticas de engenharia de software para analisar o 
problema e elaborar uma solução consistente.
• Atividades de apoio como gerenciamento de mudanças 
e revisões técnicas.
Produto Útil
13/03/2014 32
• Fornece o conteúdo, as funções e os recursos que 
o usuário final deseja.
• Fornecer confiabilidade e isenção de erros.
• Satisfazer explicitamente as exigências definidas 
pelos interessados.
• Satisfazer requisitos implícitos. 
– Ex: Facilidade de uso.
Agregar valor ao fabricante e ao usuário
13/03/2014 33
• Gerar benefícios para a empresa e para a
comunidade de usuários finais.
• O fabricante ganha no valor agregado, pois um
software de qualidade gera menos manutenção
corretiva, menos suporte ao cliente
• Os usuários ganham um valor agregado, pois a
aplicação fornece a capacidade de agilizar algum
processo de negócio.
Agregar valor ao fabricante e ao usuário
13/03/2014 34
Resultado
1. Maior receita gerada pelo produto de
software;
2. Maior rentabilidade quando uma aplicação
suporta um processo de negócio;
3. Maior disponibilidade de informações
cruciais para o negócio.
Quem realiza a Qualidade?
13/03/2014 35
• Todo mundo.
– Engenheiros de software
– Gerentes
– Interessados
• Responsáveis
– Gestores da qualidade.
Por que é importante?
13/03/2014 36
Qualidade não é mais uma opção para as 
empresas ou clientes ...
É uma exigência!
Contextualização
• Globalização
– Novas exigências, alta competitividade,
concorrência internacional.
• Qualidade como Arma Competitiva
– Equiparação com padrões internacionais, garantia
de conformidade do produto, garantia da
satisfação do cliente.
• No contexto dos Sistemas de Informação
– Garantia de conformidade do software com os
requisitos especificados (qualidade de software).
13/03/2014 37
Evolução da Qualidade
TQM (Total 
Quality
Management)
QA (Quality
Assurance)
QC (Quality
Control)
Inspeção
1. Era da Inspeção
– Foco no Produto
2. Era do Controle Estatístico 
da Qualidade (QC)
– Foco no Processo 
3. Era da Garantia da 
Qualidade (QA)
– Foco no Sistema 
4. Era da Gestão da 
Qualidade Total (TQM)
– Foco no Negócio
13/03/2014 38
Figura 3: Relação entre os conceitos sobre Qualidade de Software
Inspeção
• Os atributos de um produto são examinados, 
medidos ou testados, a fim de assegurar a sua 
conformidade. 
• Utilização de referenciais e/ou modelos para 
comparação
– Desenhos, especificações, moldes, etc... 
• Detecção de Erro
• Retificação
13/03/2014 39
Qual a diferença entre
Controle da Qualidade
X
Garantia da Qualidade
?
13/03/2014 40
Controle da Qualidade
• Evita que produtos defeituosos sejam 
entregues aos clientes;
• Uso de métodos estatísticos e padrões de 
qualidade;
• Natureza reativa.
• Objetiva monitoramento de processo, 
detecção e correção de defeitos, por exemplo: 
– Inspeções 
– Testes.
13/03/2014 41
Garantia da Qualidade
• Tenta produzir software com uma baixa taxa 
de defeitos;
• Natureza proativa.
• Definição de procedimentos, padrões, 
treinamentos.
• Planejamento da qualidade
• Gerência e melhoria de processo
• Solução de problemas
13/03/2014 42
Total Quality Management (TQM)
• Envolvimento de clientes e fornecedores
– Atender as necessidades e expectativas do cliente (a 
“parte” mais importante da organização).
– Consideração ao cliente e fornecedor interno.
– Envolver todas as pessoas da organização.
– Grupos de trabalho
• Estratégia de qualidade
– Examinar custos relacionados com a qualidade.
– Desenvolver sistemas e procedimentos que suportem 
qualidade e melhoria.
– Desenvolver um processo de melhoria contínua.
13/03/2014 43
Qualidade e o SWEBOK
Qualidade de Software
Fundamentos de 
Qualidade de Software
Cultura e Ética em 
Engenharia de Software
Valor e Custo da 
Qualidade
Modelos e 
Características de 
Qualidade
Melhoria da Qualidade 
de Software
Software de Segurança
Processos de Gerência 
de Qualidade de 
Software
Garantia da Qualidade 
de Software
Verificações e 
Validações
Revisões e Auditoria
Considerações Práticas
Requisitos de Qualidade 
do Software
Caracterização de 
Defeitos
Técnicas de 
Gerenciamento de 
Qualidade de Software
Medição de Qualidade 
de Software
Ferramentas para 
Qualidade de Software
13/03/2014 44
Figura 3: Composição dos temas para a Qualidade de Software (SWBOK, 3ª ed. 2014)
Normas e Modelos de Qualidade de Software
• Processo
– ISO 12207 - Processos de ciclo de vida do software. 
– ISO 90003:2004 - Diretrizes para aplicação da norma ISO 9001 ao 
desenvolvimento, fornecimento e manutenção de software.
– ISO 15504 (SPICE) - Projeto da ISO/IEC para avaliação dos processos de 
desenvolvimento de software. 
– CMMI - Capability Maturity Model Integrated. Modelo do SEI que 
estende o CMM para avaliação de processos de software.
– MPS.BR - Modelo Brasileiro de qualidade de processo de software, 
baseado nas normas ISO 12207 e 15504, e no modelo CMMI.
• Produto
– ISO 9126 - Norma para qualidade de produtos de software
– ISO 14598 - Guias para avaliação de produtos de software
– ISO 25000 (SQuaRE) - Reformulação da 9126+14598 
13/03/2014 45
Certificação da Qualidade
• Não basta que a qualidade exista, ela deve ser 
reconhecida pelo cliente;
• Deve existir uma certificação oficial emitida com 
base em um padrão;
• As certificações são dadas por instituições 
competentes;
• Exemplos de certificação:
– Selo SIF de qualidade de produtos alimentícios;
– Selo ABIC de qualidade do café;
– Classificação da rede hoteleira.
13/03/2014 46
Certificação da Qualidade
• Por que Normalização Internacional?
– Garantir a confiabilidade do produto;
– Reduzir custos e evitar desperdícios e retrabalhos;
– Implementar e utilizar práticas reconhecidas 
internacionalmente;
– Estabelecer confiança no relacionamento com o 
cliente;
– Cartão de visita para o mercado internacional.
13/03/2014 47
Auditorias
“Uma validação independente de produtos de trabalho 
ou processos para verificar sua conformidade a padrões, 
procedimentos e especificações com base em critérios 
objetivos.” (IEEE 1028)
• Obtenção de evidências objetivas
– Informação com a qual pode ser comprovada uma 
verdade, baseado em fatos obtidos através de:
• Observação,
• Medição,
• Teste,
• Outros meios
– Evidências observadas ou documentadas independente de 
preconceito ou emoção
13/03/2014 48
Tipos de Auditorias
As auditorias podem ser classificadas como:
• Auditorias de Produto
– focadas na conformidade de produtos com os padrões
estabelecidos
• Auditorias de Processo
– concentra-se na garantia da execução efetiva de todos
os aspectos do procedimento
• Auditorias de Sistemas de Qualidade
– avalia a eficácia da implementação desse sistema e
determina o grau com o qual os objetivos do sistema
estão sendo atingidos
13/03/2014 49
Custos da Qualidade
• Custos da Prevenção
– Atividades de planejamento e gerenciamento, 
atividades técnicas (análise, projeto, desenvolvimento 
e testes) e treinamentos.
• Custos de Avaliação/Certificação
– Coleta de dados e avaliação de métricas,
– Revisões técnicas para produtos de software,
– Verificações no processo de produção.
• Custos de Falhas e Correção
– Custos de refazer atividades devido a erros na 
execução do processo ou no produto.
13/03/2014 50
Figura 5 – Custos relativo para correção de erros e defeitos
Fonte: PRESSMAN, R. S., “Engenharia de Software. Uma Abordagem Profissional”, Editora McGraw-Hill, 7ª edição, 2011.
13/03/2014 51
Próxima Aula
• Introdução a modelagem processo
13/03/2014 52
Referências
• GARVIN, D., What does Product Quality Really Mean?, Sloan Management Reviw, Fall, 1984.
• Glass, R., Defining Quality Intuitively, IEEE Software, May, 1998.
• KOSCIANSKI, A.; SOARES, M. S., Qualidade de Software. Editora Novatec, 2ª edição, 2007.
• PERSIG, R., Zen and the Art of Motorcycle Maintence, Bantam Books, 1974.
• PRESSMAN, R. S., Engenharia de Software. Uma Abordagem Profissional,Editora McGraw-Hill, 7ª 
edição, 2011.
• RABELO, R. J., Qualidade de Processo de Desenvolvimento de Software, Slides do Professor, UFSC, 
2014. Disponível em 
:http://www.das.ufsc.br/~rabelo/Ensino/DAS5316/MaterialDAS5316/Qualidade_de_Software.pdf>. 
Acessado em 03/2014.
• SOMMERVILLE, I., Engenharia de Software, Editora Addison-Wesley, 9ª edição, 2011.
• THE STANDISH GROUP INTERNATIONAL, The Chaos Manifesto, 2013.
• VASCONCELOS, A. M. L., Introdução a Qualidade de Software, Slides do Professor. UFPE, 2012. 
Disponível em: <http://www.cin.ufpe.br/~processos/TAES3/slides/qualidade.ppt>. Acessado em 
03/2014
13/03/2014 53
http://www.das.ufsc.br/~rabelo/Ensino/DAS5316/MaterialDAS5316/Qualidade_de_Software.pdf

Continue navegando