Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.
Transcript of Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.
![Page 1: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/1.jpg)
Fundamentos de Engenharia de Software
Gestão de Qualidade
ou
Garantia da Qualidade de Software
![Page 2: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/2.jpg)
Engenharia de Software:
• OBJETIVO– Produção econômica de software de qualidade
• Produto Software
• Processo de Produção de Software
• Qualidade
![Page 3: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/3.jpg)
Software: produto
• Produção intelectual, portanto humana• Maleabilidade problemática• O “produto software” inclui o código objeto e os
manuais de uso e mais, os requisitos, o projeto, o código fonte, os dados de teste, enfim todos os artefatos produzidos no processo de produção.
![Page 4: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/4.jpg)
Software: processo de produção
• Dinâmica das atividades envolvidas na “produção” de software
• atividades técnicas e gerenciais
• modelos prescritivos de processo
• Problema: como organizar e controlar essa dinâmica de forma a produzir economicamente software de qualidade?
![Page 5: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/5.jpg)
Qualidade de Software
• Perspectivas– Conceitual
• o que é qualidade de software?
– Quantitativa• objetivo revisto: produção mais econômica de
software de mais qualidade
– Processual• a “produção” da qualidade
![Page 6: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/6.jpg)
Correção, Confiabilidade e Robustez– Correção: aderência à especificação.
– Confiabilidade: confiança que o usuário deposita no SW
– Robustez: capacidade de lidar com situações não previstas
Desempenho:capacidade de uso econômico dos recursos computacionais
Ergonomia: Facilidade de uso, representada pela interface
Verificabilidade: Facilidade com que propriedades podem ser verificadas
Qualidades do produto
![Page 7: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/7.jpg)
Manutenibilidade: – Manutenção não é o termo correto
– Manutenção pode ser : corretiva, adaptativa e perfectiva
– Consome 60% dos recursos durante a vida
Reusabilidade: – Fator importante do custo
– Aplicado em vários níveis : especificação, projeto e rotinas
Portabilidade:– Capacidade de ser executado em vários ambientes
– Variações de CPUs e Sistemas operacionais
Qualidades do produto
![Page 8: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/8.jpg)
Compreensibilidade: Facilidade do usuário compreender o sistema
Interoperabilidade:– Capacidade de coexistir e cooperar com outros Sws.
– Sistema aberto: conjunto extensível de aplicações, independentes que cooperam para atuar como um sistema integrado.
Qualidades do produto
![Page 9: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/9.jpg)
Produtividade: – Eficiência do processo
– Recursos necessários para atingir a qualidade
Pontualidade: – Capacidade do processo de entregar produto no prazo
– Problemas: estimativa, mudança de requisitos
Transparência: – Importante para : tomada de decisões, rotação de pessoal
– Documentação do processo
Qualidades do processo
![Page 10: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/10.jpg)
Qualidade de Software
• Perspectivas– Conceitual
• o que é qualidade de software?
– Quantitativa (=> Métricas)• objetivo revisto: produção mais econômica de
software de mais qualidade
– Processual• a “produção (garantia)” da qualidade
![Page 11: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/11.jpg)
Produção da Qualidade
• Mecanismos– o processo (técnico) de produção de software
(métodos, técnicas e ferramentas)– a Gestão de Qualidade (ou Garantia de
Qualidade de Software)
![Page 12: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/12.jpg)
Gestão de Qualidade
• Alguns conceitos– controle de qualidade– garantia da qualidade– custo da qualidade
• custo de prevenção
• custo de falha
![Page 13: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/13.jpg)
1
10
100
1000
10000
Requisitos Análise e Projeto Código Teste Produção
Cu
sto
Re
lati
vo d
a C
orr
eç
ão
de
Err
os
Custo do Erro
![Page 14: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/14.jpg)
Gestão de Qualidade
Qualidade de software: Conformidade com os requisitos funcionais e de performance explicitamente declarados, com os padrões de desenvolvimento explicitamente documentados, e características implícitas que são esperadas de todo software profissionalmente desenvolvido
![Page 15: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/15.jpg)
Gestão de Qualidade
• Tipos de atividades– atividades GQS (ou do grupo GQS)
• verificar e garantir as conformidades
– revisões técnicas• detectar erros
![Page 16: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/16.jpg)
Atividades GQS – (1)
1. Preparar um plano SQA para o projeto • Avaliações a serem realizadas;
• Auditorias e revisões a serem efetivadas;
• Padrões aplicáveis ao projeto;
• Procedimentos para informar e acompanhar os erros;
• Documentos a serem produzidos pelo grupo SQA;
• Quantidade de feedback a ser fornecido à equipe de software.
2. Participar no desenvolvimento da descrição do processo de software do projeto
3. Rever atividades para verificar a conformidade ao processo definido
![Page 17: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/17.jpg)
Atividades GQS – (2)
4. Auditar alguns produtos selecionados para verificar conformidade com suas especificações segundo o processo;
5. Assegurar que os desvios nas atividades e nos produtos sejam documentados e tratados segundo um procedimento documentado.
6. Registrar toda não conformidade e informar a gerência do projeto
7. Coordenar o controle e gerência das mudanças. 8. Ajudar a coletar e analisar métricas
![Page 18: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/18.jpg)
Gestão de Qualidade
• Tipos de atividades– atividades GQS (ou do grupo GQS)
• verificar e garantir as conformidades
– revisões técnicas• detectar erros
![Page 19: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/19.jpg)
Modelo de Amplificação de Defeitos
Passo de desenvolvimento
Defeitos Detecção
Erros advindos do passo anterior Erros que atravessaram
Erros amplificados 1:x
Erros recém-gerados
Percentual
de eficiência
na detecção
de erros Erros passados para o próximo passo
![Page 20: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/20.jpg)
Modelo de Amplificação de Defeitos(sem revisões)
0 0%
0
10 4 x 1.5 0%
6
25 27 x 3 20%
10
25
0 50%
0 0 50%
0 0 50%
0
Projeto preliminar
Projeto detalhado (x=1.5)
Código/Teste de unidade (x=3)
Teste de integração
Teste de validaçãoTeste de sistema
10 6
437 10
27 94
94 47
24
12
![Page 21: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/21.jpg)
Modelo de Amplificação de Defeitos(com revisões)
0 70%
0
10 1 x 1.5 50%
2
25 10 x 3 60%
5
25
0 50%
0 0 50%
0 0 50%
0
Projeto preliminar
Projeto detalhado (x=1.5)
Código/Teste de unidade (x=3)
Teste de integração
Teste de validaçãoTeste de sistema
3 2
115 5
10 24
24 12
6
3
![Page 22: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/22.jpg)
Diferença de custos
Unidade
Custo para projeto 1,5 22 33 0 0Custo antes do teste 6,5 36 234 22 143Custo durante o teste 15 21 315 82 1230Custo após a entrega 67 3 201 12 804
Total 783 2177
Com Revisão Sem Revisão?
![Page 23: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/23.jpg)
Revisões técnicas formais
• Objetivos:– Descobrir erros na função, lógica, ou implementação de qualquer
representação do software;– Verificar se o software (representação) atende aos requisitos.– Garantir que o software tenha sido representado conforme padrões
pré-definidos.– Obter softwares que sejam desenvolvidos mais uniformemente.– Tornar os projetos mais gerenciáveis.
• A FTR serve como espaço de treinamento e para promover backup e a continuidade.
![Page 24: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/24.jpg)
Reunião de revisão• Restrições à reunião:
– Entre 3 e 5 pessoas, uma preparação antecipada (que dure não mais que duas horas) e duração da reunião inferior a 2 horas
• O foco da reunião FTR é um produto – um componente de software.
• Atividades preparatórias: produtor, líder do projeto, revisor líder, revisores.
• Reunião: participantes, agenda, escriba.• Ao final da reunião, os participantes devem decidir:
– Aceitam o produto.– Rejeitam o produto (após correção dos erros, outra revisão deve ser
realizada).– Aceitam o produto provisoriamente (nenhuma revisão adicional é
exigida)
![Page 25: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/25.jpg)
Registro da revisão
• Sumário de revisão1. O que foi revisado?
2. Quem fez a revisão?
3. Quais foram as descobertas e conclusões?
• Acompanhamento
![Page 26: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/26.jpg)
Diretrizes para a revisão• Revise o produto, não o produtor.• Fixe e mantenha uma agenda.• Limite o debate e a contestação.• Enuncie as áreas problemáticas, mas não tente resolver cada
problema anotado.• Faça anotações por escrito.• Limite o número de participantes e insista numa preparação
antecipada.• Desenvolva uma lista de conferência para cada produto que
será revisto.• Atribua recursos e uma programação de tempo para as FTRs.• Realize um treinamento para todos os revisores.• Reveja suas antigas revisões.
![Page 27: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/27.jpg)
Garantia Estatística de Qualidade de Software
• Objetivo– identificar, estatisticamente, deficiências do processo
que estejam ocasionando erros e corrigi-las.
• Etapas– coletar dados sobre erros
– identificar causas
– categorizar as causas
– totalizar por categoria
– aplicar o Princípio de Pareto
![Page 28: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/28.jpg)
Garantia Estatística de Qualidade de SW
![Page 29: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/29.jpg)
Garantia Estatística de Qualidade de SW
Incomplete or Erroneus SpecificationMisinterpretation of Customer ComunicationIntentional Deviation from SpecificationsViolation of Programming StandardsError in Data RepresentationInconsistent Component InterfaceError in Design LogicIncomplete or Erroneus TestingInaccurate or Incomplete DocumentationError in Programming Language TranslationInconsistent Human / Coomputer InterfaceMiscellaneous
![Page 30: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/30.jpg)
Confiabilidade de Software
• Confiabilidade– probabilidade de operação livre de falhas em um
dado ambiente por um dado tempo– MTBF = MTTF + MTTR
• Disponibilidade– = (MTTF/(MTTF + MTTR) x 100%
TTR TTF
TBF
![Page 31: Fundamentos de Engenharia de Software Gestão de Qualidade ou Garantia da Qualidade de Software.](https://reader036.fdocument.pub/reader036/viewer/2022081507/552fc130497959413d8d4af4/html5/thumbnails/31.jpg)
BIBLIOGRAFIA
• Capítulo 26, Pressman, R., Engenharia de Software, 6a edição, McGraw Hill, 2006.
• Yourdon, E., Revisões Estruturadas, tradução de Structured Walkthroughs, 4a edição, Editora Campus, 1989