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 ...
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