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

Post on 09-Feb-2020

3 views 0 download

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

Engenharia da Fiabilidade: Metodos Formaise Aplicacoes

Simao MELO DE SOUSA

desousa@di.ubi.pt

DI-UBI, Covilha - Portugal

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

Plano

• Contexto e Motivacao

• Panorama dos formalismos e das ferramentas

• Conclusoes

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

Plano

• Contexto e Motivacao

• Panorama dos formalismos e das ferramentas

• Conclusões

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

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

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

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

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

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

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

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

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

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

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

Alguns Factos e Números

etc...

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

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

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

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

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

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

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

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

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

Common Criteria

Common Criteria = avaliacao da seguranca dos SIs:

elaboratecertifyevaluate adquire

products and goals

LabsCustomersCertification

InstitutesEvaluationDesigners

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

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

Plano

• Contexto e Motivação

• Panorama dos formalismos e das ferramentas

• Conclusões

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Plano

• Contexto e Motivação

• Panorama dos formalismos e das ferramentas

• Conclusoes

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

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

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

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

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

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

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

That’s all folks

Obrigado pela atencao!

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