Apresentação sobre qualidade de software na disciplina de Engenharia de Software no Mestrado Acadêmico em Ciência da Computação em parceria com Bruno Neves.
1. Qualidade de Software
Álvaro Oliveira1
; Bruno Neves2
1 - antonioalvarooliveira@gmail.com
2- fbrunoneves@gmail.com
UNIVERSIDADE ESTADUAL DO CEARÁ – UECE
PRÓ-REITORIA DE PÓS-GRADUAÇÃO E PESQUISA - PROPGPq
CENTRO DE CIÊNCIAS E TECNOLOGIA – CCT
Mestrado Acadêmico em Ciência da Computação - MACC
Engenharia de Software
Prof. Dr. Paulo Henrique Mendes Maia
2. Crise de Software
● Foram descobetos no ano de 1960;
● No desenvolvimento de um grande sistema;
● Continuaram a incomodar durante todo o seculo xx.
2
3. Crise do Software - Problemas
● 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.
3
5. Como definir Qualidade?
● Qualidade é um termo que pode ter diferentes interpretações;
● Existem muitas definições de qualidade propostas na literatura com
diferentes pontos de vista;
● Visão popular pode ser diferente do seu uso profissional.
5
6. Exemplo: Carro
O que um determinado produto
apresenta para considerarmos
que o mesmo tem qualidade?
6
7. Exemplo: Carro
● Diversos aspectos são levados em conta:
No caso de um automóvel, fatores
como conforto, segurança,
desempenho, beleza e $$ têm
estreita relação com a qualidade.
7
8. Normas e Modelos para Qualidade
● ISO 9126 - Norma para qualidade de produtos de software
● ISO 12119 - Norma para qualidade de pacotes de software
● ISO 12207 - Processos de ciclo de vida do software.
● NBR ISO 9003:2004 -Diretrizes para aplicação da norma ISO 9001
ao desenvolvimento, fornecimento e manutenção de software.
● CMMI- Capability Maturity Model Integration. Modelo do SEI que
estende o CMM para avaliação de processos de software.
8
9. Conceito de Qualidade
Segundo a atual norma brasileira sobre o assunto (NBR ISO 8402), qualidade
é:
“A totalidade das características de uma entidade
que lhe confere a capacidade de satisfazer
às necessidades explícitas e implícitas”
9
10. Qualidade de Software - Motivação
● O principal objetivo da Engenharia de Software (ES) é ajudar a produzir
software de qualidade;
● Empresas que desenvolvem software de qualidade são mais
competitivas;
● Empresas que utilizam software de alta qualidade podem, em geral,
oferecer um melhor serviço a um preço mais competitivo.
10
11. Definição de 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”
11
12. Princípios Básicos da Qualidade
12
Redução de custo da
Qualidade
Satisfação do cliente
Controle do projeto
Melhoria continua dos
processos
13. O que o Cliente Deseja?
● Atendimento aos requisitos especificados
● Defeito zero
● Alto desempenho
● Baixo custo
● Desenvolvimento rápido
● Facilidade de uso
● Eficiência nos serviços associados
● Inovação
13
14. Gerenciamento da qualidade
● Nível organizacional
○ Framework;
○ Padrões de processos organizacionais;
○ Definir os processos de desenvolvimento de software;
■ Incluindo os requisitos de sistema, projeto e código.
● Nível de projeto
○ Aplicação de processos de qualidades;
○ Saídas conformes aos padrões do projeto;
○ Estabelecimento do plano de qualidade.
14
15. Plano de qualidade
● Introdução ao produto
● Planos de produto
● Descrições de processo
● Metas de Qualidade
● Riscos e Gerenciamentos de riscos
15
Deve estabelecer as qualidades desejadas para o software e
descrever como elas devem ser avaliadas.
18. Garantia da Qualidade
● Tenta produzir software com uma baixa taxa de defeitos;
● Natureza proativa (Estar no controle)
● Definição de procedimentos, padrões, treinamentos.
● Gerência e melhoria de processo.
18
19. Controle da Qualidade
● Evita que produtos defeituosos sejam entregues aos
clientes;
● Natureza reativa (Estar sob controle)
● Objetiva monitoração de processo, e detecção e correção
de defeitos.
● Ex: Inspeções, ensaios e testes.
19
20. Revisões e Inspeções
● Atividades de controle de qualidade que examinam software e sua
documentação em busca de possíveis erros ou inconformidades com os
padrões previamente escolhidos.
20
Isto envolve:
● Examinar o software:
○ Sua documentação;
○ os registros do processo para descobrir erros e omissões;
○ verificar se os padrões de qualidade foram seguidos
21. O Processo de Revisão
Divide-se em Três: Atividades pré-revisão, Reunião de Revisão e
Atividades pós-revisão.
21
22. Inspeções de Programa
● As inspeções de programa são'revisões em pares'em que os membros da
equipe colaboram para encontrar bugs no programa que está sendo
desenvolvido.
● As inspeções podem fazer parte dos processos de verificação e validação
de software.
● Elas complementam os testes.
● Se usa um checklist de erros comuns de programação para ajudar na
busca por bugs.
22
25. 99 % é bom?
● Visão Clássica de Qualidade
● Equivale a 3,8 sigma.
O que isso significa?
Supondo que 5 mil cirurgias sejam realizadas num hospital por semana.
50 operações por semana seriam incorretas !
25
26. 99% é bom?
Tabela de Conversão do Nível SIGMA
Porcentagem de Acerto Defeitos por Milhão de
Oportunidades (DPMO)
SIGMA
31% 690.000 1 sigma
69,2% 308.537 2 sigma
93,3% 66.807 3 sigma
99,4% 6.210 4 sigma
99,977% 233 5 sigma
99,99966% 3,4 6 sigma
26
27. Histórico do Seis SIGMA
Criado em 1980 pela Motorola
Popularizou-se por ser utilizado com sucesso em empresas como a General
Eletric e a Allied Signal.
Sigma é uma letra grega que é usada para representar o desvio padrão da
média. Quanto maior o desvio padrão, maior a imprevisibilidade.
27
28. O que é o Seis SIGMA?
Conjunto de práticas para otimizar o desempenho dos processos, eliminando
os defeitos e colocando-os em consonância com o padrão da empresa.
Sua escala é usada para medir o nível de qualidade de um processo através
de uma relação entre o número de defeitos por milhão e o nível SIGMA.
O objetivo é chegar próximo de “zero” defeito.
28
29. Seis SIGMA e o DMAIC
● D - Definir (Define)
○ define-se com precisão o escopo do projeto
● M- Medir (Measure)
○ determina-se a localização ou foco do problema
● A- Analisar (Analyze)
○ determinam-se as causas de cada problema prioritário
● I - Melhorar (Improve)
○ propõem-se, avaliam-se e implementam-se soluções para cada problema prioritário
● C - Controlar (Control)
○ garante-se que o alcance da meta seja mantido no longo prazo
29