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 4. APLICABILIDADE DE JML A JAVA CARD 7201 private void checkPre$Nome_Metodo$Nome_Classe(byte x)02 throws RequiresException03 {04 if(!(x > 0))05 RequiresException.throwIt(RequiresException.SW_REQUIRES_ERROR);06 }Figura 4.11: Condições para geração de código• Não gerar métodos de verificação para especificações vazias. Por exemplo, se umaclasse não contém especificação para o invariante, o método de checagem de invariantenão deve ser gerado. Da mesma forma, o método wrapper não deve incluir achamada a este método, onde há intenção de verificar a satisfação do invariante.• Não gerar e chamar métodos de verificação para especificações definidas como true.• Se a especificação a ser checada é expressa apenas em termos de expressões puramente<strong>Java</strong>, então, o código de verificação usado deve ser um condicional, negandoa expressão. Por exemplo, uma pré-condição do tipo x > 0, na qual x é o parâmetrodo método, o método a ser gerado é definido como na Figura 4.11.• O usuário pode escolher o que deve ser gerado para verificação no cartão. Por exemplo,se apenas a pré-condição for escolhida, então, nenhum método de verificaçãopara invariante ou pós-condição será gerado.• Se a especificação não for satisfeita durante a execução, uma exceção, que herda daclasse <strong>Card</strong>RuntimeException, é lançada.4.4 ConclusãoEste capítulo analisou a aplicação de especificação JML em <strong>Java</strong> <strong>Card</strong>, mostrando imcompatibilidadesreferentes à linguagem e ao compilador JML. O objetivo principal nestaanálise foi mostrar que a estrutura atual do JML não é compatível com o ambiente <strong>Java</strong><strong>Card</strong> no âmbito da verificação em tempo de execução. Isso ocorre pois componentes decódigo gerado pelo compilador JML não estão definidos no ambiente de execução <strong>Java</strong><strong>Card</strong>.Devido às restrições da JML e ao tipo de código gerado por seu compilador, se fez

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

Saved successfully!

Ooh no, something went wrong!