Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI...

64
Engenharia da Fiabilidade: M ´ etodos Formais e Aplicac ¸ ˜ oes Sim ˜ ao M ELO DE S OUSA [email protected] DI-UBI, Covilh ˜ a - Portugal Mestrado DI-UBI, 17-10-2003 – p.1

Transcript of Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI...

Page 1: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Engenharia da Fiabilidade: Metodos Formaise Aplicacoes

Simao MELO DE SOUSA

[email protected]

DI-UBI, Covilha - Portugal

Mestrado DI-UBI, 17-10-2003 – p.1

Page 2: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Plano

• Contexto e Motivacao

• Panorama dos formalismos e das ferramentas

• Conclusoes

Mestrado DI-UBI, 17-10-2003 – p.2

Page 3: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Plano

• Contexto e Motivacao

• Panorama dos formalismos e das ferramentas

• Conclusões

Mestrado DI-UBI, 17-10-2003 – p.2

Page 4: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Evolução dos Sistemas Informáticos

• Difusao dos Sistemas Informáticos (SIs) (emsectores essenciais da sociedade) cada vezmaior;

• Complexidade dos SIs cada vez maior:tamanho e evolução técnica;

• Emergencia de novas tecnologias, de novosmercados, assim como de novas exigências.

Mestrado DI-UBI, 17-10-2003 – p.3

Page 5: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Evolução dos Sistemas Informáticos

Exemplos: informática omnipresente, sociedadedigital, e-government, sistemas embebidos,sistemas de segurança, sistemas críticos, etc...

=⇒ Métodos actuais de desenvolvimento de

SIs desactualizados frente aos novos desafios

tecnicos e cientıficos

Mestrado DI-UBI, 17-10-2003 – p.3

Page 6: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Evolução dos Sistemas InformáticosSIs modernos = novos desafios

a

fiabilidade

correccao

seguranca

robustez

etc. . .

dos SIs como desafio central

Mestrado DI-UBI, 17-10-2003 – p.3

Page 7: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Engenharia de Software & Análise de Sistemas

• Identificação de algumas noções chaves,como a de ciclo de vida dum SI

• Produção: planeamento, análise,quantificação e gestão dos custos,manutenção, etc...

• Introdução de metodologia de produção, deexploração (etc...) do SI: =⇒ inıcio de rigor.

Mestrado DI-UBI, 17-10-2003 – p.4

Page 8: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Engenharia de Software & Análise de Sistemas

Exemplos: quantificação de custos deprodução

• Manutenção de um SI =2

3dos custos totais

• Conserto de um erro de especificação:esforço 20 vezes maior se detectado apósprodução do SI

Mestrado DI-UBI, 17-10-2003 – p.4

Page 9: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Inadequação do ciclo Detecção-Conserto

• Um erro na especificação pode implicar maisdo que um simples conserto (vidas humanas,impacto económico, confiança dos clientes,etc...);

• SIs em que o aparecimento de erro éinaceitável

Mestrado DI-UBI, 17-10-2003 – p.5

Page 10: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Inadequação do ciclo Detecção-Conserto

Mais uma vez:

SIs modernos = novos desafios

necessidade da fiabilidade como desafio central

Mestrado DI-UBI, 17-10-2003 – p.5

Page 11: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Alguns Factos e Números

Despite 50 years of progress, the softwareindustry remains years – perhaps decades –short of the mature engineering disciplineneeded to meet the needs of an information-agesociety.

W. Gibbs, Trends in Computing: Software’s Chronic Crisis

- Scientific American - 1994.

Mestrado DI-UBI, 17-10-2003 – p.6

Page 12: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Alguns Factos e Números

• comercialização = criação de um canal parabug reports.

• Impacto económico

• Ariane V : 2 biliões de $• Avaliação pelo NIST dos custos dos erros

em SIs na economia dos USA:1995 : 81 biliões de $1996 : 100 biliões de $2002 : 59.5 biliões de $

Mestrado DI-UBI, 17-10-2003 – p.6

Page 13: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Alguns Factos e Números

• Argumentos de comercialização:• ruptura de contrato por razões de falta de

garantias de fiabilidade (exemplo da IBM)

US Federal Aviation Agency : 8 biliões de $

DoD : 2 biliões de $

• confiança dos clientes=⇒ Intel e do Bug do Pentium:Impacto da perda de confiança dos clientemaior do que o impacto económico doconserto.

Mestrado DI-UBI, 17-10-2003 – p.6

Page 14: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Alguns Factos e Números

etc...

Mestrado DI-UBI, 17-10-2003 – p.6

Page 15: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Soluções?

Nao ha solucoes universais!

No entanto: soluções adaptadas e satisfatórias:• repensar e adaptar o ciclo de produção de SIs

de forma a integrar a fiabilidade como umrequisito central

=⇒ Common Criteria

Mestrado DI-UBI, 17-10-2003 – p.7

Page 16: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Soluções?

Nao ha solucoes universais!

No entanto: soluções adaptadas e satisfatórias:• integrar e utilizar métodos de “fiabilização”:

• Testes e Simulação• Métodos Formais

Mestrado DI-UBI, 17-10-2003 – p.7

Page 17: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Testes e Simulação

Para um determinado modelo do SI alvo, fornecer

um conjunto de dados representativos e comparar a

resposta com o resultado esperado.

Mestrado DI-UBI, 17-10-2003 – p.8

Page 18: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Testes e Simulação

Para um determinado modelo do SI alvo, fornecerum conjunto de dados representativos e comparara resposta com o resultado esperado.

=⇒ Nao existe teste satisfatorio:

exaustividade: geralmente impossível (conjuntode valores possíveis eventualmente infinito)

representatividade: em geral problemas ocorremquando os dados têm valores inesperados(i.e. não representativos).

Mestrado DI-UBI, 17-10-2003 – p.8

Page 19: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Testes e SimulaçãoLittlewood provou, em 1914 e à surpresa geral de todos,que a função

π(n) − li(n)

onde

li(n) =

n

0

du/ln(u) e π(n) = numero de primos ≤ n

muda de sinal infinitamente.

Surpresa? sim, porque apesar de intensos testes sobre

valores chegando a 1010 (antes da aparição dos computa-

dores), nenhuma mudança de sinal foi detectada.

Mestrado DI-UBI, 17-10-2003 – p.8

Page 20: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Métodos Formais

The term formal methods refers to the useof mathematical modeling, calculation andprediction in the specification, design, analysisand assurance of computer systems andsoftware. The reason it is called formal methodsrather than mathematical modeling of softwareis to highlight the character of the mathematicsinvolved.

J. Rushby, Formal Methods and their Role in the Certification of

Critical Systems - SRI - 1995.

Mestrado DI-UBI, 17-10-2003 – p.9

Page 21: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Métodos Formais

• exaustividade: raciocínio formal (por oposiçãoa informal) sobre o conjunto dos valorespossíveis na sua globalidade

• rigor: bases matemáticas bem assentes• adequacao: solução avaliada como satisfatória

para a garantia de fiabilidade=⇒ Common Criteria

Mestrado DI-UBI, 17-10-2003 – p.9

Page 22: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Common Criteria

Reflexão conjunta de várias entidades norma-

tivas sobre a

{

necessidadedefinição

de um modelo

para a avaliacao da fiabilidade/seguranca dos SIs:

Norma ISO-15408 “Common Criteria”

Mestrado DI-UBI, 17-10-2003 – p.10

Page 23: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Common Criteria

Common Criteria = avaliacao da seguranca dos SIs:

elaboratecertifyevaluate adquire

products and goals

LabsCustomersCertification

InstitutesEvaluationDesigners

Mestrado DI-UBI, 17-10-2003 – p.10

Page 24: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Common Criteria

Common Criteria = avaliacao da seguranca dos SIs:

Certificação organizada em 7 níveis deconfiança (Evaluation Assurance Level)

Para os nível mais elevados (EAL5 a EAL7):• Entidade de certificação governamental

(independência da certificação)• Métodos Formais requeridos (rigor da

avaliação)

Mestrado DI-UBI, 17-10-2003 – p.10

Page 25: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Plano

• Contexto e Motivação

• Panorama dos formalismos e das ferramentas

• Conclusões

Mestrado DI-UBI, 17-10-2003 – p.11

Page 26: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

O Problema Central

O problema central que os Métodos Formaispretendem resolver:

Garantir que um SI tenha um determinado (bom)comportamento

Mestrado DI-UBI, 17-10-2003 – p.12

Page 27: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

O Problema Central

Garantir que um SI tenha um determinado (bom)comportamento

noção central de

{

modelo

especificacaopara levar o

objecto do discurso para a matematica.

Mestrado DI-UBI, 17-10-2003 – p.12

Page 28: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

O Problema Central

Garantir que um SI tenha um determinado (bom)comportamento

Subdivisão em dois sub-problemas:

1. Garantias de comportamento: Como garantir/verificar aonível do modelo o comportamento desejado

2. Confronto “modelo - implementacao”:

(a) Como obter de um modelo uma implementaçãousufruindo desse comportamento?

(b) Como garantir que uma implementação tem omesmo comportamento que um modelo?

Mestrado DI-UBI, 17-10-2003 – p.12

Page 29: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Panorama dos formalismos e das ferramentas

Visita dos formalismos e das ferramentasorganizada em camadas de funcionalidades:

• Especificar e analisar modelos• Especificar e demonstrar propriedades• Especificar e derivar implementações• Especificar e transformar especificações

Mestrado DI-UBI, 17-10-2003 – p.13

Page 30: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Especificar e Analisar

Formalismos/linguagens para expressarmodelos/especificações.Benefícios imediatos:

• linguagens formais = rigor e sem ambiguidades

=⇒ obriga a uma reflexão aprofundada e a umacompreensão detalhada dos mecanismosmodelados (e.g. D. Syme, CISC/IBM)

=⇒ “esperanto” ideal para a documentação ecomunicação entre as diferentes partes envolvidasna produção do SI

Mestrado DI-UBI, 17-10-2003 – p.14

Page 31: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Especificar e Analisar

Formalismos/linguagens para expressarmodelos/especificações.Benefícios imediatos:

• no caso da existência de uma implementação doformalismo, observação directa do comportamentosem necessidade de implementação: prototipagem

• enquadramento formal propício ao raciocíniomatemático

Mestrado DI-UBI, 17-10-2003 – p.14

Page 32: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Máquinas de Estados Abstractos

• formalismos da família dos sistemas de transiçãobaseado nas noções de estado e de transformaçõesde estado,

• SI = máquina abstracta = conjunto de estados +conjunto de transições não determinísticas

• transição = condição de eleição + transformações aoestado da máquina

• Turing-equivalente

• implementações : ASM_Gopher, Sistema B

Mestrado DI-UBI, 17-10-2003 – p.15

Page 33: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Modelização por Autómatos

• Outro formalismo da família dos sistemas detransição

• transição = evento• formalismo particularmente adaptado para a

modelação do comportamento do SI alvo:hardware, SI concorrente, SI reactivo, SIcomunicante, protocolo etc...

Mestrado DI-UBI, 17-10-2003 – p.16

Page 34: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Teoria dos Conjuntos e das Categorias

• estado = conjunto + funções + relações• transição = invariantes + pre/post condições• formalismo particularmente expressivo e

modular• alvo de numerosas implementações : Z,

VDM, RAISE, SPECWARE, CHARITY,CAMILA, etc...

Mestrado DI-UBI, 17-10-2003 – p.17

Page 35: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Especificação Algébrica

• baseado nas álgebras “multi-sorted”• tipos de dados do SI alvo = conjuntos• funções do SI alvo =

• símbolos de funções introduzidos porassinaturas

• propriedades dos símbolos estabelecidospor axiomas

• implementações : OBJ, CLEAR, ACT-ONE

Mestrado DI-UBI, 17-10-2003 – p.18

Page 36: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Modelização Declarativa

Uma classe importante de formalismos:• Formalismos logicos : baseado na noção de

predicados de primeira ordem• tipos de dados do SI alvo = estrutura de

dados (simples) da linguagem alvo• função = descrição via propriedades

comportamentais• implementações: Prolog, λ-Prolog, etc...• animação e execução

Mestrado DI-UBI, 17-10-2003 – p.19

Page 37: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Modelização Declarativa• Formalismos logico-funcionais : baseado no

λ−cálculo (teoria das funções de ordem superior)

• tipos de dados do SI alvo = tipos de dados(arbitrariamente complexos) da linguagem alvo(tipos indutivos, dependentes, etc..)

• função = funções de ordem superior

• implementações:• linguagens: Scheme, SML, Haskell, OCaml,• sistemas de prova: ACL2, DECLARE, COQ, PVS,

HOL, ISABELLE etc...

• Possibilidade de animação e de execução

Mestrado DI-UBI, 17-10-2003 – p.19

Page 38: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Modelização Declarativa

• Sistemas de reescrita: baseada na noção deredução• tipos de dados do SI alvo = estrutura de

dados da linguagem alvo• função = descrição computacional via

equações• implementações: ELAN, SPIKE etc...• animação e execução

Mestrado DI-UBI, 17-10-2003 – p.19

Page 39: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Modelização Declarativa

• Semantica para as linguagens de programacao:família de formalismos adaptados para aexpressão matemática de linguagens deprogramação.• ambiente para a expressão de semânticas

(expressão dos símbolos e docomportamento semântico destes)

• animação e execução• implementações: Action-Semantics,

LETOS, ASF+SDF, Centaur, RML, etc...

Mestrado DI-UBI, 17-10-2003 – p.19

Page 40: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Especificar e Demonstrar

Garantir um comportamento:=⇒ animar ou executar é insuficiente=⇒ necessidade de demonstrar:verificacao formal

3 tipos de suporte a verificação formal (J.

Rushby):

Mestrado DI-UBI, 17-10-2003 – p.20

Page 41: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Especificar e Demonstrar

1 - Ferramentas que fornecem umenquadramento formal, não disponibilizamnenhum suporte adicional

• demonstração “manual”• demonstração válida se convencer a

comunidade

Mestrado DI-UBI, 17-10-2003 – p.20

Page 42: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Especificar e Demonstrar

2 - Ferramentas que fornecem um sistemaformal para a expressão rigorosa de raciocínios

• demonstração “manual”• uso exclusivo de linguagem formal para a

expressão da demonstração

Mestrado DI-UBI, 17-10-2003 – p.20

Page 43: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Especificar e Demonstrar

3 - Ferramentas fornecendo um sistema formale um suporte computacional para a expressãode demonstrações=⇒ Mais rigoroso (e.g. Lamport, etc...)i.e. no mesmo enquadramento:

• expressão de um modelo• expressão formal e verificação mecânica de

demonstrações de propriedades do modelo.

=⇒ Panorama dos sistemas de n ıvel 3

Mestrado DI-UBI, 17-10-2003 – p.20

Page 44: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Sistemas de Prova

sistema formal = sistema dedutivo

a variedade dos formalismos explica-se pelobalanço entre dois factores antagónicos porconsiderar:

expressividade logicaversus

automatizacao da deducao

Mestrado DI-UBI, 17-10-2003 – p.21

Page 45: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Demonstradores de Teoremas

Privilegia: automatizacao da deducaoVantagens:

• Após parametrização do motor de dedução, ademonstração é automática

• Possibilidade de raciocínio sobre conjuntosinfinitos (e.g. por indução)

Desvantagem: Nem tudo o que pretendemosexpressar pode ser expresso

Sistemas: Prolog, SPIKE ELAN, ACL2, etc...

Mestrado DI-UBI, 17-10-2003 – p.22

Page 46: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Sistemas de Prova InteractivaPrivilegia: expressividade logica (em geral lógicade ordem superior)Vantagens:

• Muitas propriedades/demonstraçõesprecisam dessa expressividade

• Raciocínio próximo do raciocínio matemáticostandard

Desvantagem: lógica indecidível =⇒intervenção do utilizador necessáriaSistemas: Coq, PVS, DECLARE, HOL,ISABELLE

Mestrado DI-UBI, 17-10-2003 – p.23

Page 47: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Verificação de modelos

• Abordagem alternativa aos sistemas de provacom muitas aplicações bem sucedidas.

• Técnica de verificação propriedades de SImodelados como sistemas (concorrentes) deestados finitos (e.g. autómatos)

• Propriedades esperadas expressas porfórmulas de uma determinada lógica temporal

• Verificação de propriedade traduzida numadeterminada exploração do sistema detransição

Mestrado DI-UBI, 17-10-2003 – p.24

Page 48: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Verificação de modelos

Vantagens:

• Demonstração automática

• Exibição de um contra-exemplo em caso de erro

Desvantagem:

• Problema da explosão do espaço de estado(crescimento exponencial do grafo de estado emrelação ao tamanho do sistema modelado)

• Não sabe lidar com conjuntos infinitos

Sistemas: SMV, Murphy, SPIN, Kronos, Design/CPN etc...

Mestrado DI-UBI, 17-10-2003 – p.24

Page 49: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Anotações de programas e Lógica de Hoare

Última abordagem a prova de programasConsiste em:

=⇒ Anotações lógicas do programa fonte

=⇒ construção automática de um modelo w.r.t. semânticaaxiomática da linguagem alvo

=⇒ suporte para a demonstração de propriedades(delegação da demonstração a verificadores demodelos, sistemas de prova etc...)

Sistemas: fortemente ligados ás linguagens alvo.

Para Java: JML, LOOP tool, ESC/JAVA, Bandera, Jive etc...

Mestrado DI-UBI, 17-10-2003 – p.25

Page 50: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Especificar e Derivar

2o subproblema = Obter uma implementacao de umaespecificacao aprovada

• a própria linguagem de especificação é umalinguagem de programação =⇒ Q.E.D.

• Refinamento• Extracção

Mestrado DI-UBI, 17-10-2003 – p.26

Page 51: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Refinamento

técnica que permite a síntese “passo a passo”de implementações a partir de especificações.

=⇒ 1 passo = uma escolha de implementação(e.g. um conjunto por uma lista ligada)

=⇒ cada passo tem de ser formalmentejustificado (e.g. não altera comportamento)

Sistemas: Z, VDM, B, SPECWARE

Mestrado DI-UBI, 17-10-2003 – p.27

Page 52: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Extracção

Lógica inerente aos sistemas de prova assistida=

logica intuicionista =⇒ Isomorfismo de Curry-Howard

λ-calculo lógica programação

tipo enunciado lógico especificaçãoλ-termo demonstração programa

Mestrado DI-UBI, 17-10-2003 – p.28

Page 53: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Extracção

Seja T o teorema:

∀x, y ∈ N.∃q, r ∈ N.(y = (q × x + r) ∧ 0 ≤ r < x)

Uma demonstração de T é uma funcao quecalcula o par (q, r) que testemunha da validadede T =⇒ Q.E.D.

Sistemas: COQ

Mestrado DI-UBI, 17-10-2003 – p.28

Page 54: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Especificar e Transformar

Necessidade de mecanismos de transformaçãode modelos (e.g. definir uma variação, umasimplificação, extensão etc...) para expressarprovas complexas, modulares em especificaçõesde tamanho grande etc...

Exemplo : Abstraccao de especificacoes para focara especificação sobre um determinadocomportamento alvo da demonstração

Sistemas: ASF+SDF, JaKarTa

Mestrado DI-UBI, 17-10-2003 – p.29

Page 55: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Potencial das Combinações

Não existe nenhuma ferramenta que permiteresolver de forma global o problema central

=⇒ pertinência das plataformas de especifica-

ção permitindo a colaboração de vários métodos

formais: JaKarTa

Mestrado DI-UBI, 17-10-2003 – p.30

Page 56: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Uma contribuição : JaKarTaObjectivo: permitir um tratamento satisfatório e global:

• uma arquitectura centrada numa plataforma deespecificação própria;

• mecanismos de comunicação com diferentes métodosformais (sistemas de prova, demonstradores deteoremas, linguagens de programação);

• mecanismos de administração e automação dedemonstrações (em COQ);

• mecanismos de transformações de especificação;

• mecanismos de prova de correcção dastransformações realizadas.

Mestrado DI-UBI, 17-10-2003 – p.31

Page 57: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Plano

• Contexto e Motivação

• Panorama dos formalismos e das ferramentas

• Conclusoes

Mestrado DI-UBI, 17-10-2003 – p.32

Page 58: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Algumas aplicações bem sucedidas

Muitos exemplos:• hardware, protocolos, redes, SOs, sistemas

críticos, plataformas de execução, software,etc...

• Áreas de aplicações:• Aviação (NASA, FAA, ARIANE, etc...),• Caminhos de ferro (Metro, etc...)• Sistemas nucleares• Sistemas médicos• Sistemas embebidos

Mestrado DI-UBI, 17-10-2003 – p.33

Page 59: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Algumas aplicações bem sucedidas

Emergência de um mercado “aliciante” (i.e. $$!)ainda por liderar (por quanto mais tempo?):

Intel, Microsoft, IBM, NASA, Esterel Technology,

Prover Technology, Compaq/HP, SIBS (pt), Side-

reus (pt)

Mestrado DI-UBI, 17-10-2003 – p.33

Page 60: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Algumas aplicações bem sucedidasUma contribuição =⇒ verificação formal da plata-formaJavaCard (em conjunto com G. Barthe, G. Dufay):

Definiçãopioneira de uma metodologia paraautomaticamente obter da Especificacao de JavaCard e daDemonstracao de (citação de Milner)

Well-typed (JavaCard) Programs cannot gowrong

uma implementacao da plataforma e de um modulo de

verificacao estatica de programas (BCV) demonstrados correc-

tos

Mestrado DI-UBI, 17-10-2003 – p.33

Page 61: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Conclusões e Perspectivas

Caso da verificação formal do projecto CISC daIBM (Huxley Park- UK & Oxford):

• de 800 000 linhas de código, 268 000reescritas, 37 000 via Z (só especificação,sem provas)

• resultados:• custos de desenvolvimento −9%• 2, 5 vezes menos de bugs e os detectados

foram menos importantes.

Mestrado DI-UBI, 17-10-2003 – p.34

Page 62: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Conclusões e Perspectivas

• Importância estratégica dos Common Criteria cadavez maior

• Perspectivas: 2 eixos

• Desenvolvimento conceptual e técnico de novassoluções (formalismos e ferramentas)

• A tendência actual: Utilização cada vez maisintensiva dos métodos formais (caso FORMAVIE)

Mestrado DI-UBI, 17-10-2003 – p.34

Page 63: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

Conclusões e Perspectivas

• Importância estratégica dos Common Criteriacada vez maior

=⇒

- competencia valiosa e procurada

- o informatico, alem de saber produzir SIs,

devera saber valida-los

Mestrado DI-UBI, 17-10-2003 – p.34

Page 64: Engenharia da Fiabilidade: Metodos´ Formais e Aplicac¸oes˜desousa/2003-2004/Tcomp/mestrado.pdfSI = máquina abstracta = conjunto de estados + conjunto de transições não determinísticas

That’s all folks

Obrigado pela atencao!

Mestrado DI-UBI, 17-10-2003 – p.35