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 69• Cinco (5) métodos auxiliares (para toda classe).Cada método tem a mesma estrutura para a definição de seus nomes, construídos deacordo com o tipo de especificação, a qual podem ser: pre, post ou xpost, respectivamente,o nome do método e o nome da classe.Os métodos serão gerados independentes de existir o item de especificação correspondente.Por exemplo, para a pré-condição do método credit, são gerados, pelo compiladorJML, três métodos para a verificação em tempo de execução. Os métodos são: check-Pre$credit$Wallet(APDU), checkPost$credit$Wallet(APDU apdu, Object obj) e checkX-Post$credit$Wallet(APDU apdu, Throwable throwable). Mesmo sem ter sido definidopós-condição normal ou excepcional, os métodos para tratamento desses tipos de especificaçãosão gerados. Os métodos tem conteúdo vazio. Contudo, quando aplicados aos recursosde um cartão inteligente, podem ocasionar uma sobrecarga para a pouca memóriaexistente.A biblioteca usada pela JML na geração de código, principalmente o pacote JMLruntime, não é suportado pela API <strong>Java</strong> <strong>Card</strong>. Outra incompatibilidade é em relação àquantidade de código gerado pelo compilador JML. A classe Wallet, inicialmente com 7Kbytes de tamanho, torna-se um arquivo executável de 35 Kbytes. Considerando exemplosdo mundo real, onde um arquivo com código fonte <strong>Java</strong> tem 15 Kbytes em média, acapacidade da memória EEPROM <strong>Java</strong> <strong>Card</strong> certamente será excedida.O aumento no tamanho do arquivo se dá pelo fato de ser adicionado código após oprimeiro passo de compilação. Os métodos de checagem de especificação são inseridos nocódigo original. É possivel identificar, na Figura 4.10, a chamada aos métodos que checamo invariante, pré e pós-condições. O exemplo apresenta apenas uma parte das 119 linhasde código geradas para o método credit. O código original mais a especificação têm,como apresentado na Figura 4.7, 23 linhas de código. Dessa forma, houve um aumentode mais de 400% de tamanho no código do método credit, antes de ser compilado e apóso uso do JMLc.Além da quantidade excessiva de código gerado pelo JMLc, objetos não suportadospela plataforma <strong>Java</strong> <strong>Card</strong> também são utilizados. Um exemplo é o objeto String e o

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

Saved successfully!

Ooh no, something went wrong!