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

Detalhes bibliográficos
Ano de defesa: 2007
Autor(a) principal: Souza Neto, Plácido Antônio de
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Federal do Rio Grande do Norte
BR
UFRN
Programa de Pós-Graduação em Sistemas e Computação
Ciência da Computação
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
JML
Link de acesso: 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_bb0ed59cb3abd1cd2294bdd33f2a330a
oai_identifier_str oai:repositorio.ufrn.br:123456789/17961
network_acronym_str UFRN
network_name_str Repositório Institucional da UFRN
repository_id_str
spelling JCML - Java Card Modeling Language: Definição e ImplementaçãoMétodos FormaisJava CardJMLJCMLVerificação RuntimeCompiladorFormal MethodsJava CardJMLJCMLRuntime VerificationCompilerCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAOFormal 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 compilerCoordenação de Aperfeiçoamento de Pessoal de Nível SuperiorMé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 compiladorUniversidade Federal do Rio Grande do NorteBRUFRNPrograma de Pós-Graduação em Sistemas e ComputaçãoCiência da ComputaçãoMoreira, Anamaria Martinshttp://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/9395715443254344Souza Neto, Plácido Antônio de2014-12-17T15:47:43Z2008-01-312014-12-17T15:47:43Z2007-09-06info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfapplication/pdfSOUZA 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/17961porinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFRNinstname:Universidade Federal do Rio Grande do Norte (UFRN)instacron:UFRN2017-11-04T13:02:44Zoai:repositorio.ufrn.br:123456789/17961Repositório InstitucionalPUBhttp://repositorio.ufrn.br/oai/repositorio@bczm.ufrn.bropendoar:2017-11-04T13:02:44Repositório Institucional da UFRN - Universidade Federal do Rio Grande do Norte (UFRN)false
dc.title.none.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.none.fl_str_mv Moreira, Anamaria Martins

http://lattes.cnpq.br/3641504724164977

http://lattes.cnpq.br/5861361541278876
Costa, Umberto Souza da

http://lattes.cnpq.br/9526809466920084
Musicante, Martin Alejandro

http://lattes.cnpq.br/6034405930958244
Borba, Paulo Henrique Monteiro

http://lattes.cnpq.br/9395715443254344
dc.contributor.author.fl_str_mv Souza Neto, Plácido Antônio de
dc.subject.por.fl_str_mv 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
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
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.none.fl_str_mv 2007-09-06
2008-01-31
2014-12-17T15:47:43Z
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.uri.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.
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
application/pdf
dc.publisher.none.fl_str_mv Universidade Federal do Rio Grande do Norte
BR
UFRN
Programa de Pós-Graduação em Sistemas e Computação
Ciência da Computação
publisher.none.fl_str_mv Universidade Federal do Rio Grande do Norte
BR
UFRN
Programa de Pós-Graduação em Sistemas e Computação
Ciência da Computação
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
repository.name.fl_str_mv Repositório Institucional da UFRN - Universidade Federal do Rio Grande do Norte (UFRN)
repository.mail.fl_str_mv repositorio@bczm.ufrn.br
_version_ 1855758827990810624