Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Qualidade de Software | A crise do software e F...

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →

Qualidade de Software | A crise do software e Fatores de Qualidade

Slides utilizados em aula na disciplina Qualidade de Software do Instituto de Ciências Exatas e Informática - Sistemas de Informação. Pontifícia Universidade Católica de Minas Gerais - Unidade Barreiro, 1º Semestre 2015.

Eduardo Miranda

March 03, 2015

Transcript

30 slides
  1. Qualidade de Software Pontifícia Universidade Católica de Minas Gerais Unidade

    Barreiro — 1º Semestre 2015 Prof. Eduardo Miranda [email protected] A crise do software e Fatores de Qualidade
  2. " A coisa mais mortal em software é o conceito,

    que quase universalmente parece ser seguido, que você está indo especificar o que você vai fazer, e depois fazê-lo. E é aí que a maioria de nossos problemas vêm." — Douglas T. Ross [1968] a crise do software
  3. " A gestão de desenvolvimento de software vai continuar a

    merecer a sua atual má reputação em eficácia de custos e cronograma, até que uma compreensão mais completa do processo de concepção de software seja alcançado." — Mr. K. Kolence [1968] a crise do software
  4. " Nós tendemos a continuar por anos com investimentos enormes

    para descobrir que o sistema, que não foi bem compreendido para ser iniciado, não funciona como esperado. Nós construímos sistemas como os irmãos Wright construíam aviões — nós construir a coisa toda, o empurramos pelo penhasco, o deixamos cair e começar tudo de novo. " — James Wesley Graham [1968] a crise do software
  5. a crise do software O relatório de 1968 da conferência

    de NATO (Organização do Tratado do Atlântico Norte ) e outros documentos da década de 1970 descrevem que a causa para a crise do software estavam relacionadas aos seguintes problemas: • Projetos extrapolando o orçamento; • Prazos de entrega não cumpridos; • Ineficiência dos softwares; • Software de baixa qualidade; • Software constantemente não atendendo os requisitos; • Software não eram sequer finalizados; • Projetos muito difíceis de gerenciar e código difícil de manter.
  6. código difícil de manter 10 i = 0 20 i

    = i + 1 30 PRINT i; " squared = "; i * i 40 IF i >= 10 THEN GOTO 60 50 GOTO 20 60 PRINT "Program Completed." 70 END 10 FOR i = 1 TO 10 20 PRINT i; " squared = "; i * i 30 NEXT i 40 PRINT "Program Completed." 50 END Código espaguete Código estruturado
  7. exercício 1) Na teoria de grafos, o problema do caminho

    mínimo consiste na minimização do custo de travessia de um grafo entre dois nós (ou vértices); custo este dado pela soma dos pesos de cada aresta percorrida. Existem várias variantes para problemas de caminho mínimo, cada uma adequada a um conjunto de problemas diferente. Elabore um cronograma para caso você tivesse que implementar o problema de origem-destino: determinar o menor caminho entre nós dados. ➔ Inclua tempo para estudo e projeto, para programação e testes e acrescente uma margem de segurança. 2) A confiabilidade de software, ao contrário de muitos outros fatores de qualidade, pode ser medido diretamente e estimado usando dados históricos e de desenvolvimento. A confiabilidade do software é definida em termos estatísticos como "a probabilidade de um programa de computador ser livre de falha em um ambiente especificado por um tempo determinado" 1 . Para ilustrar, o programa X é estimado para ter uma confiabilidade de 0,96 no decorrer de oito horas de processamento. Em outras palavras, se o programa X fosse executado 100 vezes e exigisse oito horas de tempo de processamento (tempo de execução), é provável que funcione corretamente (sem falha) 96 vezes em 100. Qualidade e confiabilidade são conceitos relacionados mas são fundamentalmente diferentes de várias formas. Quais? Justifique sua resposta. 1 Musa, J. D., A. Iannino, and K. Okumoto. "Engineering and managing software with reliability measures." (1987).
  8. fatores de qualidade McCall, Richards, and Walters : Fatores de

    Qualidade Correção Confiabilidade Usabilidade Integridade Eficiência Manutenibilidade Flexibilidade Testabilidade Portabilidade Reusabilidade Interoperabilidade Apresentação original: http://www.ic.unicamp.br/~ranido/mc626/Qualidade.pdf Revisão Operação Transição
  9. Características operacionais Correção O quanto um programa satisfaz a sua

    especificação e cumpre os objetivos visados pelo cliente Confiabilidade O quanto um programa executa a função pretendida com a precisão exigida Eficiência A quantidade de recursos computacionais e de código exigida para que um programa execute sua função Integridade O quanto o acesso ao software ou aos dados por pessoas não autorizadas pode ser controlado Usabilidade O quanto de esforço é necessário para aprender, preparar a entrada e interpretar a saída de um programa Apresentação original: http://www.ic.unicamp.br/~ranido/mc626/Qualidade.pdf fatores de qualidade
  10. fatores de qualidade McCall, Richards, and Walters : Fatores de

    Qualidade Correção Confiabilidade Usabilidade Integridade Eficiência Manutenibilidade Flexibilidade Testabilidade Portabilidade Reusabilidade Interoperabilidade Apresentação original: http://www.ic.unicamp.br/~ranido/mc626/Qualidade.pdf Revisão Operação Transição
  11. Habilidade para ser submetido a alterações Manutenibilidade O quanto de

    esforço é necessário para localizar e eliminar erros em um programa Flexibilidade O quanto de esforço é necessário para modificar um programa Testabilidade O quanto de esforço é necessário para testar um programa a fim de garantir que ele execute a função pretendida Apresentação original: http://www.ic.unicamp.br/~ranido/mc626/Qualidade.pdf fatores de qualidade
  12. fatores de qualidade McCall, Richards, and Walters : Fatores de

    Qualidade Revisão Transição Operação Correção Confiabilidade Usabilidade Integridade Eficiência Manutenibilidade Flexibilidade Testabilidade Portabilidade Reusabilidade Interoperabilidade Apresentação original: http://www.ic.unicamp.br/~ranido/mc626/Qualidade.pdf
  13. Adaptabilidade a novos ambientes Portabilidade O quanto de esforço é

    necessário para transferir um programa de uma plataforma de hardware e/ou software para outra Reusabilidade O quanto um programa (ou partes dele) pode ser reutilizado em outros programas Interoperabilidade O quanto de esforço é necessário para se acoplar um programa a um outro Apresentação original: http://www.ic.unicamp.br/~ranido/mc626/Qualidade.pdf fatores de qualidade
  14. A norma ISO 9126 foi desenvolvida na tentativa de identificar

    os principais atributos de qualidade para um software de computador. A norma identifica seis principais atributos de qualidade: 1. Funcionalidade – O software satisfaz às necessidades explícitas e implícitas do usuário? 2. Confiabilidade – O software, durante um período de tempo, funciona de acordo com as condições pré-estabelecidas? 3. Usabilidade – O software é fácil de usar? 4. Eficiência – O software desperdiça recursos? 5. Manutenibilidade – O software é fácil de alterar? 6. Portabilidade – O software é facilmente adaptável a diferentes plataformas? Apresentação original: http://www.ic.unicamp.br/~ranido/mc626/Qualidade.pdf características de qualidade
  15. Funcionalidade – O software satisfaz às necessidades explícitas e implícitas

    do usuário? • Adequação – Propõe-se a fazer o que é apropriado ? • Acurácia – Gera resultados corretos ou conforme acordado ? • Interoperabilidade – É capaz de interagir com os sistemas especificados ? • Conformidade – Está de acordo com normas e convenções previstas em leis, normas e descrições similares ? • Segurança de acesso – Evita acesso não autorizado, acidental ou deliberado acesso a programa e dados ? características e subcaracterísticas
  16. Confiabilidade – O software, durante um período de tempo, funciona

    de acordo com as condições pré-estabelecidas? • Maturidade – Com que freqüência apresenta falhas ? • Tolerância a falhas – Ocorrendo falhas, como ele reage ? • Recuperabilidade – É capaz de recuperar dados após uma falha ? características e subcaracterísticas
  17. Usabilidade – O software é fácil de usar? • Inteligibilidade

    – É fácil entender os conceitos utilizados? • Apreensibilidade – É fácil de aprender a usar? • Operacionalidade – É fácil de operar e controlar a operação? características e subcaracterísticas
  18. Eficiência – O software desperdiça recursos? • Comportamento em relação

    tempo – Qual é o tempo de resposta e de processamento? • Comportamento em relação aos recursos – Quanto recurso usa? Durante quanto tempo? características e subcaracterísticas
  19. Manutenibilidade – O software é fácil de alterar? • Analisabilidade

    – É fácil encontrar um erro quando ocorre? • Modificabilidade – É fácil modificar e remover erros? • Estabilidade – Há grandes riscos de erros quando se faz alterações? • Testabilidade – É fácil testar quando se faz alterações? características e subcaracterísticas
  20. Portabilidade – O software é facilmente adaptável a diferentes plataformas?

    • Adaptabilidade – É fácil adaptar a outras plataformas sem aplicar outras ações ou meios além dos fornecidos para esta finalidade no software considerado? • Capacidade para instalar – É fácil instalar em outras plataformas? • Capacidade para substituir – É fácil substituir por outro software? • Conformidade – Está de acordo com padrões e convenções de portabilidade? características e subcaracterísticas
  21. Cada tipo de software tem seu próprio requisito de qualidade.

    A importância de cada característica depende do tipo de software. Apresentação original: http://www.ic.unicamp.br/~ranido/mc626/Qualidade.pdf qualidade X tipo de software Funcionalidade Confiabilidade Usabilidade Eficiência Manutenibilidade Portabilidade Vídeo locadora Satélite
  22. Cada tipo de software tem seu próprio requisito de qualidade.

    A importância de cada característica depende do tipo de software. Apresentação original: http://www.ic.unicamp.br/~ranido/mc626/Qualidade.pdf qualidade X tipo de software ✓ Funcionalidade ✓ Confiabilidade Usabilidade Eficiência Manutenibilidade Portabilidade Vídeo locadora Satélite
  23. Cada tipo de software tem seu próprio requisito de qualidade.

    A importância de cada característica depende do tipo de software. Apresentação original: http://www.ic.unicamp.br/~ranido/mc626/Qualidade.pdf qualidade X tipo de software ✓ Funcionalidade ✓ ✓ Confiabilidade ✓ Usabilidade Eficiência Manutenibilidade Portabilidade Vídeo locadora Satélite
  24. Cada tipo de software tem seu próprio requisito de qualidade.

    A importância de cada característica depende do tipo de software. Apresentação original: http://www.ic.unicamp.br/~ranido/mc626/Qualidade.pdf qualidade X tipo de software ✓ Funcionalidade ✓ ✓ Confiabilidade ✓ ✓ Usabilidade Eficiência Manutenibilidade Portabilidade Vídeo locadora Satélite
  25. Cada tipo de software tem seu próprio requisito de qualidade.

    A importância de cada característica depende do tipo de software. Apresentação original: http://www.ic.unicamp.br/~ranido/mc626/Qualidade.pdf qualidade X tipo de software ✓ Funcionalidade ✓ ✓ Confiabilidade ✓ ✓ Usabilidade Eficiência ✓ Manutenibilidade Portabilidade Vídeo locadora Satélite
  26. Cada tipo de software tem seu próprio requisito de qualidade.

    A importância de cada característica depende do tipo de software. Apresentação original: http://www.ic.unicamp.br/~ranido/mc626/Qualidade.pdf qualidade X tipo de software ✓ Funcionalidade ✓ ✓ Confiabilidade ✓ ✓ Usabilidade Eficiência ✓ ✓ Manutenibilidade Portabilidade Vídeo locadora Satélite
  27. Cada tipo de software tem seu próprio requisito de qualidade.

    A importância de cada característica depende do tipo de software. Apresentação original: http://www.ic.unicamp.br/~ranido/mc626/Qualidade.pdf qualidade X tipo de software ✓ Funcionalidade ✓ ✓ Confiabilidade ✓ ✓ Usabilidade Eficiência ✓ ✓ Manutenibilidade ✓ Portabilidade Vídeo locadora Satélite
  28. Randell, Brian. "The 1968/69 nato software engineering reports." History of

    Software Engineering (1996): 37. http://homepages.cs.ncl.ac.uk/brian.randell/NATO/nato1968.PDF Wagner, Stefan. Software product quality control. Berlin: Springer, 2013. referências

More Decks by Eduardo Miranda

Other Decks in Education