4. Programação Estruturada
Sequência, seleção, iteração. Testes provam a presença de bugs, não a ausência.
Resumo
- Dijkstra: goto impede decompor programas em unidades prováveis. Sem goto, módulos são verificáveis.
- Böhm e Jacopini: todo programa se constrói com sequência, seleção e iteração.
- Prova matemática formal nunca vingou. Venceu o método científico: falseabilidade.
- Testes mostram presença de bugs, não ausência. Software é ciência: provamos incorreção, não correção.
- Valor arquitetural: decomposição funcional em módulos pequenos e testáveis, em todos os níveis.
Perguntas-chave
responda de cabeça, depois abraQuais as três estruturas de controle suficientes?
Sequência, seleção (if) e iteração (loop). Provado por Böhm e Jacopini.
Por que testes não provam que o código está correto?
Testes só podem falsear. Um teste que passa não prova correção; prova que não achamos o erro ainda.
Qual o legado arquitetural da estruturada?
Decompor o sistema em funções/módulos pequenos, cada um falseável por testes.
Exercícios de fixação
0/5 respondidas1.
"Testes mostram a presença, não a ausência, de bugs." Isso significa que software se parece mais com:
2.
Qual foi o principal problema que Dijkstra identificou no uso irrestrito de goto?
3.
Böhm e Jacopini provaram que todo programa pode ser construído a partir de:
4.
O que aconteceu com a ideia de provas matemáticas formais para programas?
5.
Qual o valor da programação estruturada para a arquitetura?