Métodos Formais Centro de Informática UFPE
Software é diferente? tempo Criatividade Inteligência Cálculo Teoria Inovação 1884 Repetição “trivial” 1975 Home Insurance BuildingPrefeitura do Recife O mesmo padrão ocorre para outros produtos: pontes, túneis, estradas, casas, viadutos, ginásios, etc.
Software é diferente? tempo Criatividade Inteligência Cálculo Teoria 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 CivilEngenharia de Software Faz produtos fixos (prédios, pontes, estradas) Faz produtos novos (iTunes, orkut, gmail notifier)
Software é diferente? Criatividade Inteligência Cálculo Teoria Inovação tempo Skype Criatividade Inteligência Cálculo Teoria Inovação tempo iPhone Criatividade Inteligência Cálculo Teoria Inovação tempo Bompreço Criatividade Inteligência Cálculo Teoria 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 RealModelo Cientista (Isaac Newton) Força GravitaçãoMassa 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çãoInvariante Mundo RealModelo 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çãoInvariante Mundo RealModelo 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?