Qualidade de Software
Prevenção de erros
Formalidade no desenvolvimento
Semelhanças com a matemática
Técnicas existentes inadequadas
Necessária para o desenvolvimento
de novas técnicas de verificação
Funções mais sofisticadas
Mais difíceis de avaliar
Causam os problemas de software mais graves
Testes
Métodos existentes são exaustivos
Aplicados somente a alguns trechos do código
Métodos não-práticos
Certos tipos de erro não podiam ser identificados
Aprendizado da programação
Lógica de programação > Linguagens de programação
Reeducação de programadores mal habituados
Personalidades
Edsger Dijkstra
1930 - 2002
Construção de
compiladores
Algoritmos de grafos
Sistemas Operacionais
Teoria da Ciência da Computação
Niklaus Wirth
1934 - Presente
Pascal
Desenvolvimento de
linguagens de programação
Bernard Galler
1928 - 2006
Ministrou o primeiro
curso de programação
Reunião de Garmish
Problemas técnicos de software
Produzir softwares de alta qualidade
Questões acerca dos erros
Softwares grandes, muitos erros
Qual o porque dos erros?
Grande número de erros = sistema problemático?
Relação entre o número de erros e as atualizações
Logo após uma atualização
muitos erros são reportados
Logo antes de uma atualização,
poucos erros são reportados
Que tipo de erros?
Qual a frequência dos erros?
A frequência é maior em módulos supervisores?
Quem gera mais erros?
Programadores inexperientes
Programadores experientes
Por quanto tempo os erros permanecem no sistema?
Taxa de erros não é constante, mas crescente
Verificação de erros
Debugging
Análise em módulos
Realizada pelo programador
Métodos de análise
Durante a execução
Após a execução
Estrutura da linguagem deve
facilitar o desenvolvimento
Testes
Análise do sistema como um todo
Realizada por testadores
Falta de conhecimento do testador
sobre o software é indicada
Métodos automáticos(computador
executando as operações)
Reestruturação de código
Interpretação contextual
Documentação
Reuso de código
Verificação de irregularidades