INFO7052-CI1061-CI092 TRABALHO 2 – ERE4
UTILIZAÇÃO DE UM GERADOR DE CÓDIGO DE ARQUIVOS JSON ou XMI
Arquivos JSON são amplamente utilizados em várias aplicações. Uma aplicação possível é para definição de modelos de dados aninhados, isto é, que possuem uma estrutura formada por elementos, e estes elementos possuem propriedades ou sub-elementos, e assim sucessivamente.
Neste trabalho, os arquivos JSON serão utilizados para definição de modelos de dados e este modelo será utilizado para a utilização de um gerador de código para produzir Java.
Considere o exemplo abaixo escrito em JSON:
{ "Aluno": [ { "nome": "José", "cpf": "12341234", "telefone": "9999999", "Turma": [ { "codigo": "CI1061", "nome": "Técnicas em modelagem" }, { "codigo": "CI1057", "nome": "Algoritmos 3" } ] }, { "nome": "Carlos", "cpf": "123456", "telefone": "8888888", "Turma": [ { "codigo": "CI092", "nome": "Técnicas em modelagem" }, { "codigo": "CI1056", "nome": "Algoritmos 2" } ] } ] }
O JSON acima deverá ser utilizado para geração das classes java correspondentes. Para geração do código, deverá ser utilizado um gerador de código existente. A escolha do gerador de código ficará a critério do grupo. Duas sugestões de geradores de código para serem utilizados são: Acceleo (disponível na distribuição “Modeling” do Eclipse) e Picocog. Existem centenas de ferramentas de geradores de código, como estas apresentadas na Wikipedia.
Um exemplo de código gerado pode ser mostrado abaixo:
class Aluno { String nome; String cpf; String telefone; ArrayList<Turma> turmas; } class Turma { String codigo; String nome; }
class Programa { public static void main (String args[]){ }
}
ENTRADA:
O gerador de código receberá um arquivo .json (ou XMI) com estrutura semelhante à descrita no exemplo. Não será necessário processar a especificação completa do formato JSON ou XMI, apenas o subconjunto descrito acima.
Alternativa de entrada: Outro formato também possível para representação de modelos é o formato XMI. Este formato é utilizado por diferentes editores, entre eles o editor de modelos Ecore disponível na ferramenta Eclipse ou editores UML como Papyrus. O grupo poderá escolher entre JSON e XMI, justificando a escolha.
SAIDA:
O gerador irá produzir um arquivo .java com um conjunto de classes correspondentes. O arquivo deve ser funcional, isto é, ao ser compilado e executado não poderá apresentar erros.
A compilação e execução serão feitas com os seguinte comandos:
javac *.java
java Programa
ENTREGA
Deverá ser entregue um conjunto de arquivos fones com a utilização do gerador do código. Todas as classes (fontes) devem estar em uma mesma pasta e compactadas em um arquivo (tar.gz ou zip). Trabalhos sem os fontes não serão considerados. Os trabalhos deverão compilar e rodar facilmente nos servidores do Departamento de Informática, ou usando a última versão da distribuição “Eclipse Modeling” do framework Eclipse.’
Deverá ser entregue um relatório explicando as principais escolhas de implementação:
– escolha do gerador;
– comparativo entre a utilização de um gerador de código e a implementação de um gerador de código, feito no trabalho 1.
MODO DE ENTREGA : enviar o código por email para marcos.ddf _at_ inf.ufpr.br (até as 24h da data final). Cada dia de atraso serão descontados 10 pontos da nota.
No corpo do email, colocar o nome e GRR do aluno. No assunto, preencher com “Entrega trabalho 092”. O trabalho pode ser feito em grupos com 2 ou 3 participantes.