Métodos Formais Centro de Informática UFPE 2009.1.
Transcript of Métodos Formais Centro de Informática UFPE 2009.1.
Métodos Formais
Centro de InformáticaUFPE
2009.1
Software é diferente?
tempo
CriatividadeInteligência
CálculoTeoria
Inovação
1884
Repetição “trivial”
1975
Home Insurance Building Prefeitura do Recife
O mesmo padrão ocorre para outros produtos: pontes, túneis, estradas, casas, viadutos, ginásios, etc.
Software é diferente?
tempo
CriatividadeInteligência
CálculoTeoria
Inovação
1954
Repetição “trivial”
2009
John Backus & Fortran
Má notícia: este padrão raramente ocorre na Engenharia de Software. Compiladoes são uma exceção.
Geradores de compiladores
Software é diferente?
Burj Dubai
Museu Guggenheim
Euro Túnel
Large Hadron Collider
Software é diferente?
Engenharia Civil Engenharia de Software
Faz produtos fixos (prédios, pontes, estradas)
Faz produtos novos (iTunes, orkut, gmail notifier)
Software é diferente?
CriatividadeInteligência
CálculoTeoria
Inovação
tempoSkype
CriatividadeInteligência
CálculoTeoria
Inovação
tempoiPhone
CriatividadeInteligência
CálculoTeoria
Inovação
tempoBompreço
CriatividadeInteligência
CálculoTeoria
Inovação
tempo
Sistema Único de Saúde
Software é diferente?
• Entretanto, projetos de ponta da Engenharia Civil– O cálculo não é abandonado (pelo contrário!)
• Simulações e cálculos são feitos exaustivamente
– Não há fase de testes após a entrega
Software é diferente?
• Por que a Engenharia de Software continua semi-formal? – Semi-formal = Semi-artesanal– A principal razão é custo
• Apenas projetos de ponta na Engenharia de Software adotam cálculos (por exemplo, a NASA)
• É possível introduzir métodos mais formais mantendo um bom custo/benefício?
Métodos Formais
Mundo Real Modelo
Cientista(Isaac Newton)
Força
Gravitação Massa
221
r
mmGF
Fórmulas e propriedades específicas de um produto (provados matematicamente com papel e lápis)
Métodos Formais
Cientista(Tony Hoare)
Pré-condição
Pós-condição Invariante
}{;}{
}{}{},{}{
RTSP
RTQQSP
Mundo Real Modelo
Fórmulas e propriedades específicas de um produto (provados matematicamente com papel e lápis)
Neste curso....
Cientista(Tony Hoare)
Pré-condição
Pós-condição Invariante
}{;}{
}{}{},{}{
RTSP
RTQQSP
Mundo Real Modelo
Ferramenta
Produto não verificado
Produto verificado
Resumo
• As engenharias usam matemática em projetos inovadores– Trazem muita qualidade– Dispensam boa parte dos testes
• Infelizmente, a maioria dos projetos de software são inovadores (ou de difícil reuso)– O uso de métodos formais traz muita qualidade, mas
é caro.– É possível achar um meio termo razoável através de
ferramentas automáticas?