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.