1. Prof. Marcelo H. Yamaguti (1)
Pontifícia Universidade Católica do Rio Grande do Sul
Faculdade de Informática
Prof. Marcelo H. Yamaguti
Introdução à Engenharia de
Software
DESENVOLVIMENTO DE SOFTWARE
Gerenciamento da Qualidade
2. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (2)
Referências
• Estude para aprofundamento no conteúdo:
– SOMMERVILLE, Ian. Engenharia de Software. 9ª ed. São
Paulo: Pearson, 2011. – Capítulos 24.
– IEEE. Guide to the Software Engineering Body of Knowledge.
SWEBOK. Version 3. IEEE Computer Society. 2014. –
Chapter 10.
– WAZLAWICK, R. S. Engenharia de Software: conceitos e
práticas. Rio de Janeiro: Elsevier, 2013. – Capítulos 10 e 11.
Introdução à Engenharia de Software
3. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (3)
Qualidade
•O que significa qualidade?
•Phil Crosby (um dos mestres da
qualidade): “conformidade com os
requisitos”.
•Watts Humphrey (CMM): atingimento de
níveis excelentes de capacidade de uso.
Introdução à Engenharia de Software
4. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (4)
Qualidade
• O conceito varia de acordo com o local, época, o
produto e as pessoas.
• Para evitar o subjetivo, é necessário o
estabelecimento de padrões e sistemas de
medição.
– Exemplo: Produção em série da indústria de manufatura
Introdução à Engenharia de Software
5. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (5)
Qualidade de produto X processo
• Qualidade do produto:
– Visa o produto final.
– Qualidade do produto não se atinge de forma espontânea
– Verificada, por exemplo, por meio de testes, inspeções
– A qualidade do produto depende fortemente da qualidade do
processo de desenvolvimento
Introdução à Engenharia de Software
6. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (6)
• Qualidade do processo:
– Visa melhorar a qualidade do modo como o produto é
produzido e mantido.
– Verificada, por exemplo, por meio de auditorias, revisões
– 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.
Introdução à Engenharia de Software
Qualidade de produto X processo
7. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (7)
Gerenciamento de qualidade
• Gerenciamento da qualidade (subcategorias):
– Planejamento da qualidade
– Garantia da qualidade
– Controle da qualidade
– Melhoria do processo
Introdução à Engenharia de Software
8. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (8)
Gerenciamento de qualidade
• Gerenciamento da qualidade (Planejamento da
qualidade):
– Uso de modelos de qualidade. Ex.: ISO 9000.
– Custo da qualidade.
Introdução à Engenharia de Software
9. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (9)
Gerenciamento de qualidade
• Regra de Myers (custo de correção de defeitos)
Introdução à Engenharia de Software
Adaptado de Glen, Myers. The art of software testing.
10. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (10)
Gerenciamento de qualidade
Introdução à Engenharia de Software
Custo da
Qualidade
Custo da
Conformidade
(controle)
Prevenção
de Falhas
Avaliação de
Produto
Custo da Não
Conformidade
(falhas)
Falhas Detectadas
Internamente
Falhas Detectadas
Em Produção
Custo da Qualidade
11. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (11)
Custos da Conformidade
• Custos para alcançar a qualidade.
• Prevenção de falhas
– Melhoria de processos
– Garantia da Qualidade (PPQA)
– Coleta e análise de métricas
– Planejamento
– Treinamento
– Padrões e procedimentos
• Avaliação de qualidade do produto
– Detecção e remoção de defeitos
– Testes
– Revisões técnicas
– Verificação e Validação
Introdução à Engenharia de Software
12. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (12)
Custos da melhoria
• Custos da melhoria de processos (conformidade).
• Definição de processos
– Esforço da equipe de melhoria.
– Treinamento.
– Consultoria.
– Aquisição de ferramentas.
• Institucionalização de processos
– Projetos piloto.
– Treinamentos.
– Overhead das atividades “novas”.
– Garantia da continuidade e evolução dos processos.
Introdução à Engenharia de Software
13. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (13)
Custos da Não-Conformidade
• Custos da falta de qualidade.
• Falhas detectadas internamente
– Retrabalho
– Lixo – produto descartado
– Gerenciamento de falhas
– Não cumprimento de prazos e custos
– Falta de motivação da equipe
• Falhas detectadas em Produção
– Perda de receita
– Suporte aos clientes
– Renegociação
– Garantia
– Desgaste de imagem
– Recall
Introdução à Engenharia de Software
14. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (14)
Gerenciamento de qualidade
• Gerenciamento da qualidade (Garantia da
qualidade):
– Foco no processo de software.
– Técnicas usuais de avaliação:
• Auditoria
• Revisões
Introdução à Engenharia de Software
15. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (15)
Auditoria
• Avaliação independente dos artefatos e produtos de
software para verificar a conformidade e aderência
em relação às especificações, aos padrões, acordos e
critérios pré-definidos.
• Como objetivo principal, deve buscar identificar
oportunidades de melhoria.
• Realização periódica para fornecer à gerência uma
visão coerente com a realidade da empresa (e seus
produtos e processos de desenvolvimento).
Introdução à Engenharia de Software
16. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (16)
Auditoria
• Constituída de quatro etapas:
– Planejamento e preparação
– Realização
– Relato (comunicação) dos resultados
– Identificação e acompanhamento das ações
corretivas
• O programa de auditorias deve ser periodicamente
avaliado.
Introdução à Engenharia de Software
17. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (17)
Revisão
• Tem como objetivo identificar e remover defeitos de
artefatos e produtos tão cedo quanto possível.
Também, identificar melhorias.
• É uma revisão formal, planejada e metódica.
• Em geral, utiliza-se de checklists para orientar a
revisão.
• Conduzida por “pares”.
• Deve-se acompanhar e averiguar se os defeitos
identificados foram revisados.
• Resultados interessam a gerência.
Introdução à Engenharia de Software
18. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (18)
Gerenciamento da qualidade
• Gerenciamento da qualidade (Controle da
qualidade):
– Foco no produto de software.
– Técnicas usuais de avaliação:
• Teste
• Inspeção
• Walkthrough
Introdução à Engenharia de Software
19. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (19)
Walkthrough
• Tem como objetivo avaliar um elemento único do
produto.
• Bastante associado e utilizado na avaliação de
códigos-fonte de software, mas pode ser usado para
documentos.
• Interessante abordagem para troca de experiência
entre os participantes.
• Ocorre em uma reunião, com um número
indeterminado de participantes.
Introdução à Engenharia de Software
20. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (20)
Walkthrough
• O responsável pela criação (autor) do elemento que
está sendo avaliado deve fazer uma breve
apresentação de seu objetivo.
• Após, estabelece-se uma discussão aleatória sobre o
elemento sob avaliação.
• Dependência do envolvimento dos participantes.
• Resultados são anotados e o criador do elemento
encarrega-se de tratá-los.
Introdução à Engenharia de Software
21. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (21)
Inspeção
• Criada por Michael Fagan, em 1976, da IBM, com o
objetivo de aumentar a produtividade dos
desenvolvedores daquela empresa.
• Tem como objetivo identificar defeitos de artefatos e
produtos tão cedo quanto possível.
• Normalmente associada à código.
• É uma revisão formal e rigorosa, possui critérios de
avaliação.
• Averigua se o elemento satisfaz as especificações e
está de acordo com os padrões determinados.
• Em geral é conduzida por “pares”.
Introdução à Engenharia de Software
22. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (22)
Gerenciamento da qualidade
• Gerenciamento da qualidade (Melhoria do processo):
– Processos de melhoria contínua:
• PDCA
• IDEAL
• DMAIC
Introdução à Engenharia de Software
23. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (23)
PDCA
Introdução à Engenharia de Software
• PDCA (Deming)
24. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (24)
IDEAL
• IDEAL (SEI)
Introdução à Engenharia de Software
25. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (25)
• DMAIC (Six Sigma):
D – Define (Definir)
M – Measure (Medir)
A – Analyze(Analisar)
l – Improve (Melhorar)
C – Control(Controlar)
Six Sigma
Introdução à Engenharia de Software
“Dumb Managers Always Ignore Clients”
26. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (26)
Medição da qualidade
• Medição da qualidade:
– Definição de padrões de qualidade
• Ex.: modelo ISO 25010
Introdução à Engenharia de Software
27. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (27)
Medição da qualidade
• Medida: número ou categoria atribuído que fornece
uma indicação quantitativa da extensão, quantidade,
dimensão, capacidade ou tamanho de um atributo de
uma entidade.
– Quando os dados de um único ponto são coletados, uma
medida é estabelecida. Ex.: Quantidade de erros descobertos
em uma revisão.
• Medição: é o ato de medir, isto é, de determinar uma
medida.
Introdução à Engenharia de Software
28. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (28)
Medição da qualidade
• Métrica: procura correlacionar medidas individuais
com o objetivo de se ter uma ideia da eficácia da
entidade sendo medida.
• Indicador: informação relacionada a uma medida,
métrica ou combinação de métricas que pode ser
utilizada para se ter uma compreensão da entidade
sendo medida.
Introdução à Engenharia de Software
29. PUCRS - FACIN
Prof. Marcelo H. Yamaguti (29)
Medição da qualidade
Introdução à Engenharia de Software
Exemplo: gráfico de controle da diferença na entrega de deliverables intermediárias
30. Prof. Marcelo H. Yamaguti (30)
Pontifícia Universidade Católica do Rio Grande do Sul
Faculdade de Informática
Prof. Marcelo H. Yamaguti
Introdução à Engenharia de
Software
DESENVOLVIMENTO DE SOFTWARE
Gerenciamento da Qualidade