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