Métodos Formais

12
1 Métodos Formais Desenvolvimento Formal de Software

description

Métodos Formais. Desenvolvimento Formal de Software. Visão geral. Motivação Um Modelo para Desenvolvimento Formal de Software Estilos de Especificação Considerações Finais. Motivação. Crise de Software Na prática, o desenvolvimento é Ad hoc Não há um padrão para o processo - PowerPoint PPT Presentation

Transcript of Métodos Formais

Page 1: Métodos Formais

1

Métodos Formais

Desenvolvimento Formal de Software

Page 2: Métodos Formais

2

Visão geral

Motivação

Um Modelo para Desenvolvimento Formal de Software

Estilos de Especificação

Considerações Finais

Page 3: Métodos Formais

3

Motivação Crise de Software

– Na prática, o desenvolvimento é Ad hoc– Não há um padrão para o processo– São necessários: teorias, técnicas, métodos,

ferramentas,... Profissionais incapazes de controlar

– Custo– Tempo (duração do processo)– Qualidade do produto desenvolvido

Manutenção: 70-80% do esforço dedicado

Page 4: Métodos Formais

4

Modelo de Desenvolvimento - Na Prática

Especificação

Projeto

Implementação

Manutenção Especificação: informal Projeto: informal ou estruturado, semi-formal

– JSD, Yourdon, OMT, BON, UML, ... Implementação: sem garantia de realizar o projeto

Verificação e validação são ignorados!

Page 5: Métodos Formais

5

O que é um método formal emengenharia de software?

Método de desenvolvimento de software através do qual se pode definir

precisamente um sistema e

desenvolver implementações garantidamente corretas em relação a esta definição.

Page 6: Métodos Formais

6

Características de Métodos Formais

Delineamento preciso do processo de desenvolvimento

Baseado em linguagens de especificação e programação com semântica bem definida

Processo de desenvolvimento incremental, que possibilita expressão em vários níveis de abstração

Processo de desenvolvimento usualmente baseado em regras de transformação

Page 7: Métodos Formais

7

Por que métodos formais?

Lançador Ariane – Explodiu 40s após lançamento em 1996

Therac-25 – Entre 1985 e 1987, pelo menos 6

acidentes causaram mortes e ferimentos graves durante terapia de radiação

Dezenas de outros acidentes Perda de controle do desenvolvimento

e evolução de sistemas complexos

Page 8: Métodos Formais

8

Alguns resultados práticos

CICS da IBM Unidade de ponto flutuante (transputers) Protocolos de comunicação Aplicações espaciais e de aviação Sistemas de controle de trens Equipamentos médicos Arquiteturas de hardware Aplicações bancárias Aplicações meteorológicas

Page 9: Métodos Formais

9

Especificação Formal Descrição Matemática Precisa

– Não ambígua – Permite verificar propriedades (ex.

consistência) – Usualmente abstratas e concisas

É a base para– Documento contratual – Documentação do produto – Referência para etapas seguintes

E aspectos como completude, corretude? Especificação é apenas uma etapa!

Page 10: Métodos Formais

10

Grau de formalismo no desenvolvimento

Informal ou Ad hoc – Pouca (ou nenhuma) regra pré-definida

Sistemático – Conjunto de regras pré-estabelecidas

Rigoroso – Regras de transformação estritas– Partes críticas desenvolvidas formalmente

Formal – Verificação formal de todo o processo

Page 11: Métodos Formais

11

Um Modelo para Desenvolvimento Formal

Modelo Contratual– Cada etapa do desenvolvimento é

caracterizada por um contrato entre um cliente e um fornecedor.

– Por exemplo, na fase de análise de requisitos, o cliente é o usuário final do sistema e o fornecedor é o analista.

– Validação e verificação são realizadas

Page 12: Métodos Formais

12