18.11.2014 Views

Proposta de tese de mestrado - Departamento de Informática da ...

Proposta de tese de mestrado - Departamento de Informática da ...

Proposta de tese de mestrado - Departamento de Informática da ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Proposta</strong> <strong>de</strong> <strong>tese</strong> <strong>de</strong> <strong>mestrado</strong><br />

<strong>Departamento</strong> <strong>de</strong> <strong>Informática</strong><br />

Universi<strong>da</strong><strong>de</strong> <strong>da</strong> Beira Interior<br />

Ano lectivo 2003/2004<br />

1 Título<br />

Um sistema <strong>de</strong> módulos para o sistema JaKarTa<br />

2 Orientação<br />

Simão Melo <strong>de</strong> Sousa (DIUBI)<br />

3 Enquadramento<br />

Os sistemas <strong>de</strong> informação ocupam um lugar ca<strong>da</strong> vez mais importante nos sectores essenciais <strong>da</strong>s socie<strong>da</strong><strong>de</strong>s<br />

mo<strong>de</strong>rnas. Paradoxalmente o crescimento rápido, em termos <strong>de</strong> complexi<strong>da</strong><strong>de</strong>, dos sistemas informáticos<br />

(SI) envolvidos que acompanha o seu uso e a sua evolução torna mais difícil a confiança que lhes po<strong>de</strong>mos<br />

atribuir. De facto, assegurar que o sistema alvo se <strong>de</strong>verá comportar como previsto é um problema ca<strong>da</strong> vez<br />

mais complicado.<br />

No que diz respeito à utilização, apesar <strong>da</strong> maior parte dos erros/bugs só induzirem inconvenientes menores,<br />

a situação com os sistemas qualificados <strong>de</strong> críticos (os equipamentos nucleares e médicos são exemplos<br />

clássicos) é radicalmente diferente. A correcção do comportamento <strong>da</strong>s componentes <strong>de</strong> tais sistemas é essencial.<br />

Ain<strong>da</strong> por cima, a emergência <strong>de</strong> novas tecnologias e a revolução <strong>da</strong>s tecnologias <strong>da</strong> informação<br />

reforçaram a necessi<strong>da</strong><strong>de</strong> <strong>de</strong> tais proprie<strong>da</strong><strong>de</strong>s <strong>de</strong> correcção.<br />

Quanto aos aspectos estratégicos e económicos, é também essencial garantir a fiabili<strong>da</strong><strong>de</strong> dos sistemas<br />

produzidos. O instituto norte-americano para as normas e as tecnologias (NIST) avaliava os custos dos bugs<br />

sobre a economia norte-americana em 59 biliões <strong>de</strong> dolares en 2002. Em 1994, após um erro encontrado no<br />

processador Pentium, Intel teve <strong>de</strong> trocar gratuitamente milhões <strong>de</strong> uni<strong>da</strong><strong>de</strong>s produzi<strong>da</strong>s e já distribui<strong>da</strong>s.<br />

Além do impacto económico, a comunicação social realçou a perca <strong>de</strong> confiança na Intel ressenti<strong>da</strong> pelos<br />

clientes. Neste sentido, a Intel tomou como um dos interesses estratégicos a verificação formal (VF) dos<br />

microprocessadores durante a fase <strong>de</strong> <strong>de</strong>sign.<br />

É entretanto bem conhecido que não é possível obter a garantia absoluta <strong>da</strong> segurança <strong>de</strong> um sistema. No<br />

entanto, consoli<strong>da</strong>r a fiabili<strong>da</strong><strong>de</strong> e a confiança que po<strong>de</strong>mos ter num sistema continua a ser uma preocupação<br />

justifica<strong>da</strong> e central. No sector industrial várias medi<strong>da</strong>s foram toma<strong>da</strong>s. Exemplos são o teste e a simulação.<br />

Por serem mais rigorosos e abrangentes, os métodos formais (MF) (aos quais pertence a verificação formal)<br />

revestem uma importância ca<strong>da</strong> vez maior. Uma ilustração <strong>de</strong>ste facto é o estabelecimento, pela parte <strong>de</strong><br />

organismos normativos e governamentais, do programa ISO 15408 - Common Criteria [6] que <strong>de</strong>fine<br />

padrões <strong>de</strong> quali<strong>da</strong><strong>de</strong> para os SIs. O mais alto nível, chamado EAL7, exige uma total verificação pelos<br />

métodos formais do sistema alvo.<br />

1


3.1 Os métodos formais<br />

Os métodos formais fornecem uma abor<strong>da</strong>gem lógica e matemática — alternativa/complementar à simulação<br />

— à garantia <strong>de</strong> fiabili<strong>da</strong><strong>de</strong>. No coração dos MF encontramos formalismos e ferramentas matemáticas que<br />

permitam mo<strong>de</strong>lar e raciocinar sobre SIs.<br />

O problema central que os MF se proponhem a resolver é garantir, por uma abor<strong>da</strong>gem formal, que um SI<br />

tenha um <strong>de</strong>terminado comportamento. No centro <strong>de</strong> todos os formalismos temos o conceito <strong>de</strong> especificação.<br />

Este último é um mo<strong>de</strong>lo do sistema alvo e inclui, em alguns casos, a <strong>de</strong>scrição do comportamento <strong>de</strong>sejado.<br />

Neste contexto os MF permitem dividir o problema central em dois sub-problemas:<br />

(1) Como garantir, ao nível <strong>da</strong> especificação, o comportamento <strong>de</strong>sejado? Trata-se aqui <strong>de</strong> construir e vali<strong>da</strong>r<br />

um mo<strong>de</strong>lo;<br />

(2) Como obter duma especificação uma implementação que conserva o comportamento <strong>de</strong>sejado? ou ain<strong>da</strong>,<br />

como garantir que uma implementação usufrua do mesmo comportamento <strong>de</strong> uma especificação? Trata-se<br />

aqui <strong>de</strong> relacionar uma implementação com uma especificação;<br />

Constatou-se que nenhuma ferramenta existente soluciona <strong>de</strong> forma satisfatória e completa o problema<br />

central. Assim, por não existir uma ferramenta all-in-one, combinar e completar sistemas existentes tornou-se<br />

uma alternativa a proveitosa.<br />

3.2 JaKarTa<br />

Neste contexto, o sistema JaKarTa [3, 2, 1, 5] propõe-se facilitar a especificação e a sua <strong>de</strong>monstração<br />

combinando mecanismos <strong>de</strong> transformação <strong>de</strong> especificação (para po<strong>de</strong>r abstrair e refinar especificações),<br />

ferramentas <strong>de</strong> especificação (para po<strong>de</strong>r mo<strong>de</strong>lar SIs), ferramentas <strong>de</strong> <strong>de</strong>monstração assisti<strong>da</strong> por computador<br />

(para po<strong>de</strong>r vali<strong>da</strong>r especificações) e linguagens <strong>de</strong> programação (para que seja possível produzir<br />

implementações a partir <strong>de</strong> especificações). Concretamente, JaKarTa propõe:<br />

1. uma arquitectura centra<strong>da</strong> sobre uma plataforma <strong>de</strong> especificação e a linguagem <strong>de</strong> especificação JSL<br />

(JaKarTa Specification Language);<br />

2. mecanismos <strong>de</strong> comunicação entre diferentes ferramentas e a plataforma <strong>de</strong> especificação. Actualmente<br />

os sistemas contemplados são linguagens <strong>de</strong> programação e sistemas <strong>de</strong> <strong>de</strong>monstração (<strong>de</strong>monstradores<br />

<strong>de</strong> teoremas e sistemas <strong>de</strong> prova assisti<strong>da</strong>);<br />

3. mecanismos <strong>de</strong> administração e <strong>de</strong> automatização <strong>de</strong> <strong>de</strong>monstração <strong>de</strong> proprie<strong>da</strong><strong>de</strong>s <strong>de</strong> especificação;<br />

4. um quadro a<strong>de</strong>quado para a:<br />

• transformação <strong>de</strong> especificações JSL pelo módulo JTK (JaKarTa Transformation Kit);<br />

• automatização <strong>da</strong> <strong>de</strong>monstração <strong>de</strong> correcção <strong>de</strong>ssas últimas.<br />

3.3 Descrição do projecto<br />

A ferramenta JaKarTa provou ser uma mais valia no contexto dos MF, no entanto uma melhor ergonomia<br />

do sistema parece-nos ser uma etapa apreciável no ciclo <strong>de</strong> vi<strong>da</strong> do JaKarTa. Integrar mecanismos <strong>de</strong><br />

módulos, <strong>de</strong> nomes qualificados, à linguagem JSL permitirá obter especificações mais legíveis e mais fáceis<br />

<strong>de</strong> manipular.<br />

Preten<strong>de</strong>-se assim, neste projecto, que sejam implementa<strong>da</strong>s soluções ergonómicas como a extensão <strong>da</strong><br />

linguagem JSL com mecanismos <strong>de</strong> módulos, nomes qualificados. O mo<strong>de</strong>lo para seguir será o sistema <strong>de</strong><br />

módulos do OCaml <strong>de</strong>scrito em [4].<br />

2


3.4 Plano <strong>de</strong> trabalho<br />

A realização <strong>de</strong>ste trabalho divi<strong>de</strong>-se nas partes seguintes:<br />

• estado <strong>da</strong> arte (e pesquisa bibliográfica) em programação modular;<br />

• integração conceptual do sistema <strong>de</strong> módulo escolhido no sistema JaKarTa (integração com o JTK e<br />

com o módulo <strong>de</strong> prova do sistema JaKarTa);<br />

• nova implementação do compilador do sistema JaKarTa;<br />

• re<strong>da</strong>cção <strong>da</strong> dissertação <strong>de</strong> <strong>mestrado</strong>.<br />

Referências<br />

[1] G. Barthe, P. Courtieu, G. Dufay, and S. Melo <strong>de</strong> Sousa. Tool-Assisted Specification and Verification of<br />

the JavaCard Platform. In H. Kirchner and C. Ringessein, editors, Proceedings of AMAST’02, volume<br />

2422 of Lecture Notes in Computer Science, pages 41–59. Springer-Verlag, 2002.<br />

[2] G. Barthe, G. Dufay, M. Huisman, and S. Melo <strong>de</strong> Sousa. Jakarta: A toolset for reasoning about<br />

JavaCard. Lecture Notes in Computer Science, 2140, 2001.<br />

[3] D. Junho and S. Melo <strong>de</strong> Sousa. The jakarta toolset site. http://www.di.ubi.pt/~<strong>de</strong>sousa/JaKarTa.<br />

[4] X. Leroy. A modular module system. Journal of Functional Programming, 2000.<br />

[5] S. Melo <strong>de</strong> Sousa. Outils et techniques pour la vérification formelle <strong>de</strong> la plate-forme JavaCard. PhD<br />

thesis, INRIA - Université <strong>de</strong> Nice Sophia Antipolis, 2003.<br />

[6] NIST. Common criteria for it security evaluation. http://csrc.nist.gov/cc/in<strong>de</strong>x.html.<br />

3

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!