JCML - Java Card Modeling Language: Definição e Implementação
Autor(a) principal: | |
---|---|
Data de Publicação: | 2007 |
Tipo de documento: | Dissertação |
Idioma: | por |
Título da fonte: | Repositório Institucional da UFRN |
Texto Completo: | https://repositorio.ufrn.br/jspui/handle/123456789/17961 |
Resumo: | Formal methods should be used to specify and verify on-card software in Java Card applications. Furthermore, Java Card programming style requires runtime verification of all input conditions for all on-card methods, where the main goal is to preserve the data in the card. Design by contract, and in particular, the JML language, are an option for this kind of development and verification, as runtime verification is part of the Design by contract method implemented by JML. However, JML and its currently available tools for runtime verification were not designed with Java Card limitations in mind and are not Java Card compliant. In this thesis, we analyze how much of this situation is really intrinsic of Java Card limitations and how much is just a matter of a complete re-design of JML and its tools. We propose the requirements for a new language which is Java Card compliant and indicate the lines on which a compiler for this language should be built. JCML strips from JML non-Java Card aspects such as concurrency and unsupported types. This would not be enough, however, without a great effort in optimization of the verification code generated by its compiler, as this verification code must run on the card. The JCML compiler, although being much more restricted than the one for JML, is able to generate Java Card compliant verification code for some lightweight specifications. As conclusion, we present a Java Card compliant variant of JML, JCML (Java Card Modeling Language), with a preliminary version of its compiler |
id |
UFRN_21c22c2b4dd2b700b697ff9d1dcc8fdb |
---|---|
oai_identifier_str |
oai:https://repositorio.ufrn.br:123456789/17961 |
network_acronym_str |
UFRN |
network_name_str |
Repositório Institucional da UFRN |
repository_id_str |
|
spelling |
Souza Neto, Plácido Antônio dehttp://lattes.cnpq.br/3641504724164977http://lattes.cnpq.br/5861361541278876Costa, Umberto Souza dahttp://lattes.cnpq.br/9526809466920084Musicante, Martin Alejandrohttp://lattes.cnpq.br/6034405930958244Borba, Paulo Henrique Monteirohttp://lattes.cnpq.br/9395715443254344Moreira, Anamaria Martins2014-12-17T15:47:43Z2008-01-312014-12-17T15:47:43Z2007-09-06SOUZA NETO, Plácido Antônio de. JCML - Java Card Modeling Language: Definição e Implementação. 2007. 136 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal do Rio Grande do Norte, Natal, 2007.https://repositorio.ufrn.br/jspui/handle/123456789/17961Formal methods should be used to specify and verify on-card software in Java Card applications. Furthermore, Java Card programming style requires runtime verification of all input conditions for all on-card methods, where the main goal is to preserve the data in the card. Design by contract, and in particular, the JML language, are an option for this kind of development and verification, as runtime verification is part of the Design by contract method implemented by JML. However, JML and its currently available tools for runtime verification were not designed with Java Card limitations in mind and are not Java Card compliant. In this thesis, we analyze how much of this situation is really intrinsic of Java Card limitations and how much is just a matter of a complete re-design of JML and its tools. We propose the requirements for a new language which is Java Card compliant and indicate the lines on which a compiler for this language should be built. JCML strips from JML non-Java Card aspects such as concurrency and unsupported types. This would not be enough, however, without a great effort in optimization of the verification code generated by its compiler, as this verification code must run on the card. The JCML compiler, although being much more restricted than the one for JML, is able to generate Java Card compliant verification code for some lightweight specifications. As conclusion, we present a Java Card compliant variant of JML, JCML (Java Card Modeling Language), with a preliminary version of its compilerMétodos formais poderiam ser usados para especificar e verificar software on-card em aplicações Java Card. O estilo de programação para smart cards requer verificação em tempo de execução para condições de entrada em todos os métodos Java Card, onde o objetivo principal é preservar os dados do cartão. Projeto por Contrato, em particular, a linguagem JML, é uma opção para este tipo de desenvolvimento e verificação, pelo fato da verificação em tempo de execução ser parte da implementação pela JML. Contudo, JML e suas respectivas ferramentas para verificação em tempo de execução não foram projetadas com o foco nas limitações Java Card, sendo, dessa forma, não compatíveis com Java Card. Nesta dissertação, analisamos o quanto esta situação é realmente intrínseca às limitações Java Card e, se é possível re-definir a JML e suas ferramentas. Propomos requisitos para uma nova linguagem, a qual é compatível com Java Card e apresentamos como o compilador desta linguagem pode ser construído. JCML retira da JML aspectos não definidos em Java Card, como por exemplo, concorrência e tipos não suportados. Isto pode não ser o bastante, contudo, sem o esforço em otimização de código de verificação gerado pelo compilador, não é possível gerar código de verificação para rodar no cartão. O compilador JCML, apesar de ser bem mais restrito em relação ao compilador JML, está habilitado a gerar código de verificação compatível com Java Card, para algumas especificações lightweight. Como conclusão, apresentamos uma variante da JML compatível com Java Card, JCML (Java Card Modeling Language), com uma versão de seu compiladorCoordenação de Aperfeiçoamento de Pessoal de Nível Superiorapplication/pdfporUniversidade Federal do Rio Grande do NortePrograma de Pós-Graduação em Sistemas e ComputaçãoUFRNBRCiência da ComputaçãoMétodos FormaisJava CardJMLJCMLVerificação RuntimeCompiladorFormal MethodsJava CardJMLJCMLRuntime VerificationCompilerCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAOJCML - Java Card Modeling Language: Definição e Implementaçãoinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFRNinstname:Universidade Federal do Rio Grande do Norte (UFRN)instacron:UFRNORIGINALPlacidoASN.pdfapplication/pdf652214https://repositorio.ufrn.br/bitstream/123456789/17961/1/PlacidoASN.pdfb7912104bf8e3ec91262c75b9ef5d36bMD51TEXTPlacidoASN.pdf.txtPlacidoASN.pdf.txtExtracted texttext/plain221748https://repositorio.ufrn.br/bitstream/123456789/17961/6/PlacidoASN.pdf.txte2a22091ca85a2aa29b51011f078dad0MD56THUMBNAILPlacidoASN.pdf.jpgPlacidoASN.pdf.jpgIM Thumbnailimage/jpeg2243https://repositorio.ufrn.br/bitstream/123456789/17961/7/PlacidoASN.pdf.jpg978409299f7a465d4ded887e8a004e9aMD57123456789/179612017-11-04 10:02:44.319oai:https://repositorio.ufrn.br:123456789/17961Repositório de PublicaçõesPUBhttp://repositorio.ufrn.br/oai/opendoar:2017-11-04T13:02:44Repositório Institucional da UFRN - Universidade Federal do Rio Grande do Norte (UFRN)false |
dc.title.por.fl_str_mv |
JCML - Java Card Modeling Language: Definição e Implementação |
title |
JCML - Java Card Modeling Language: Definição e Implementação |
spellingShingle |
JCML - Java Card Modeling Language: Definição e Implementação Souza Neto, Plácido Antônio de Métodos Formais Java Card JML JCML Verificação Runtime Compilador Formal Methods Java Card JML JCML Runtime Verification Compiler CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO |
title_short |
JCML - Java Card Modeling Language: Definição e Implementação |
title_full |
JCML - Java Card Modeling Language: Definição e Implementação |
title_fullStr |
JCML - Java Card Modeling Language: Definição e Implementação |
title_full_unstemmed |
JCML - Java Card Modeling Language: Definição e Implementação |
title_sort |
JCML - Java Card Modeling Language: Definição e Implementação |
author |
Souza Neto, Plácido Antônio de |
author_facet |
Souza Neto, Plácido Antônio de |
author_role |
author |
dc.contributor.authorID.por.fl_str_mv |
|
dc.contributor.authorLattes.por.fl_str_mv |
http://lattes.cnpq.br/3641504724164977 |
dc.contributor.advisorID.por.fl_str_mv |
|
dc.contributor.advisorLattes.por.fl_str_mv |
http://lattes.cnpq.br/5861361541278876 |
dc.contributor.advisor-co1ID.por.fl_str_mv |
|
dc.contributor.referees1.pt_BR.fl_str_mv |
Musicante, Martin Alejandro |
dc.contributor.referees1ID.por.fl_str_mv |
|
dc.contributor.referees1Lattes.por.fl_str_mv |
http://lattes.cnpq.br/6034405930958244 |
dc.contributor.referees2.pt_BR.fl_str_mv |
Borba, Paulo Henrique Monteiro |
dc.contributor.referees2ID.por.fl_str_mv |
|
dc.contributor.referees2Lattes.por.fl_str_mv |
http://lattes.cnpq.br/9395715443254344 |
dc.contributor.author.fl_str_mv |
Souza Neto, Plácido Antônio de |
dc.contributor.advisor-co1.fl_str_mv |
Costa, Umberto Souza da |
dc.contributor.advisor-co1Lattes.fl_str_mv |
http://lattes.cnpq.br/9526809466920084 |
dc.contributor.advisor1.fl_str_mv |
Moreira, Anamaria Martins |
contributor_str_mv |
Costa, Umberto Souza da Moreira, Anamaria Martins |
dc.subject.por.fl_str_mv |
Métodos Formais Java Card JML JCML Verificação Runtime Compilador |
topic |
Métodos Formais Java Card JML JCML Verificação Runtime Compilador Formal Methods Java Card JML JCML Runtime Verification Compiler CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO |
dc.subject.eng.fl_str_mv |
Formal Methods Java Card JML JCML Runtime Verification Compiler |
dc.subject.cnpq.fl_str_mv |
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO |
description |
Formal methods should be used to specify and verify on-card software in Java Card applications. Furthermore, Java Card programming style requires runtime verification of all input conditions for all on-card methods, where the main goal is to preserve the data in the card. Design by contract, and in particular, the JML language, are an option for this kind of development and verification, as runtime verification is part of the Design by contract method implemented by JML. However, JML and its currently available tools for runtime verification were not designed with Java Card limitations in mind and are not Java Card compliant. In this thesis, we analyze how much of this situation is really intrinsic of Java Card limitations and how much is just a matter of a complete re-design of JML and its tools. We propose the requirements for a new language which is Java Card compliant and indicate the lines on which a compiler for this language should be built. JCML strips from JML non-Java Card aspects such as concurrency and unsupported types. This would not be enough, however, without a great effort in optimization of the verification code generated by its compiler, as this verification code must run on the card. The JCML compiler, although being much more restricted than the one for JML, is able to generate Java Card compliant verification code for some lightweight specifications. As conclusion, we present a Java Card compliant variant of JML, JCML (Java Card Modeling Language), with a preliminary version of its compiler |
publishDate |
2007 |
dc.date.issued.fl_str_mv |
2007-09-06 |
dc.date.available.fl_str_mv |
2008-01-31 2014-12-17T15:47:43Z |
dc.date.accessioned.fl_str_mv |
2014-12-17T15:47:43Z |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
format |
masterThesis |
status_str |
publishedVersion |
dc.identifier.citation.fl_str_mv |
SOUZA NETO, Plácido Antônio de. JCML - Java Card Modeling Language: Definição e Implementação. 2007. 136 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal do Rio Grande do Norte, Natal, 2007. |
dc.identifier.uri.fl_str_mv |
https://repositorio.ufrn.br/jspui/handle/123456789/17961 |
identifier_str_mv |
SOUZA NETO, Plácido Antônio de. JCML - Java Card Modeling Language: Definição e Implementação. 2007. 136 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal do Rio Grande do Norte, Natal, 2007. |
url |
https://repositorio.ufrn.br/jspui/handle/123456789/17961 |
dc.language.iso.fl_str_mv |
por |
language |
por |
dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
eu_rights_str_mv |
openAccess |
dc.format.none.fl_str_mv |
application/pdf |
dc.publisher.none.fl_str_mv |
Universidade Federal do Rio Grande do Norte |
dc.publisher.program.fl_str_mv |
Programa de Pós-Graduação em Sistemas e Computação |
dc.publisher.initials.fl_str_mv |
UFRN |
dc.publisher.country.fl_str_mv |
BR |
dc.publisher.department.fl_str_mv |
Ciência da Computação |
publisher.none.fl_str_mv |
Universidade Federal do Rio Grande do Norte |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFRN instname:Universidade Federal do Rio Grande do Norte (UFRN) instacron:UFRN |
instname_str |
Universidade Federal do Rio Grande do Norte (UFRN) |
instacron_str |
UFRN |
institution |
UFRN |
reponame_str |
Repositório Institucional da UFRN |
collection |
Repositório Institucional da UFRN |
bitstream.url.fl_str_mv |
https://repositorio.ufrn.br/bitstream/123456789/17961/1/PlacidoASN.pdf https://repositorio.ufrn.br/bitstream/123456789/17961/6/PlacidoASN.pdf.txt https://repositorio.ufrn.br/bitstream/123456789/17961/7/PlacidoASN.pdf.jpg |
bitstream.checksum.fl_str_mv |
b7912104bf8e3ec91262c75b9ef5d36b e2a22091ca85a2aa29b51011f078dad0 978409299f7a465d4ded887e8a004e9a |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositório Institucional da UFRN - Universidade Federal do Rio Grande do Norte (UFRN) |
repository.mail.fl_str_mv |
|
_version_ |
1802117734134185984 |