12.07.2015 Views

JCML - Java Card Modeling Language: Definição e ... - Ifrn

JCML - Java Card Modeling Language: Definição e ... - Ifrn

JCML - Java Card Modeling Language: Definição e ... - Ifrn

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CAPÍTULO 3. JML - JAVA MODELING LANGUAGE 55Semelhantemente ao compilador <strong>Java</strong>, o compilador JML produz bytecode a partir docódigo-fonte e especificação, adicionando às declarações que verificam o código original.A tradução da especificação JML em código para verificação runtime é feita em 3passos.1. Simplificar a especificação JML em uma forma que facilite a tradução. Esta tarefaidentifica e extrai asserções executáveis dos métodos que contém especificação.2. Traduzir as asserções simplificadas em código runtime.3. Adicionar o código gerado no código original. Este passo insere o código de verificaçãoem tempo de execução no local apropriado do código original. Por exemplo,o código da pré e da pós-condição devem ser executados antes e após a execuçãodo corpo do método, respectivamente.Cheon [9] define uma abordagem para geração de código de especificação, esta abordagemé chamada de aboradagem wrapper. O método original se transforma em ummétodo que tem por responsabilidade checar as regras da especificação definida na classe.Usando o método wrapper as asserções definidas na especificação dão origem a métodosque checam as pré-condições ou pós-condições, sejam elas normais ou excepcionais. Ométodo wrapper substitui o método original.O método original, após ser compilado com o JMLc, torna-se privado. Contudo ométodo original é chamado pelo método wrapper gerado para que o retorno do que foiprogramado ocorra corretamente. Se existir um método original m com x n parâmetros eT n tipos, será gerado um método com a mesma quantidade de parâmetros. Estes parâmetrosserão utilizados quando o método original for chamado (Ver Figura 3.16). A visibilidadedo método wrapper será a mesma do método original; por exemplo, será publica seo método original for público.O método wrapper é chamado quando os clientes necessitam utilizar o método originalque tem a mesma assinatura. Cada método pode lançar uma exceção, caso os parâmetrosou retornos não satisfaçam a especificação do método. A Figura 3.17 apresenta aestrutura em tempo de execução da abordagem wrapper.

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

Saved successfully!

Ooh no, something went wrong!