Skip to content

Math-Gomes/mdd-dgen

Repository files navigation

DGen

Esta ferramenta consiste em um gerador de código, no qual a partir da gramática DGen, geramos um CRUD das entidades definidas na gramática para uma aplicação web em Django.

Para construir este gerador, utilizamos o Xtext para criar uma gramática com sintaxe simplificada, em que podemos definir tipos de dados, entidades, atributos, relacionamentos e as ações do CRUD que estarão disponíveis para cada entidade.

A partir da definição da gramática, recorremos ao Xtend para, finalmente, gerar o código para a aplicação em Django.

Criando uma nova aplicação

Primeiramente é necessário criar o seu <filename>.dgen.

Como mencionado anteriormente, nele serão definidos:

  • Tipos de dados (Datatype's);
  • Entidades (Entity's);
  • Atributos (podem ser Datatype's ou Entity's);
  • Ações
    • Criar: @Create;
    • Ler: @Read;
    • Atualizar: @Update;
    • Deletar: @Delete;
    • Todas as anteriores: @All;
    • Nenhuma: @None.

Com o projeto do gerador aberto no eclipse, seguir estes passos:

  • Clicar com botão direito sobre o diretório org.xtext.mdd.dgen
  • Clicar em Run As -> Eclipse Application -> Next, next, next...

Uma nova aba do eclipse será aberta. É nela que iremos criar e escrever o arquivo <filename>.dgen, ou seja, estaremos instanciando a gramática que foi definida.

Primeiramente, devemos criar um novo Projeto Java.

  • File -> New -> Other -> Java Project -> Next -> [Dar um nome ao Projeto] -> Finish -> Create
  • Clicar com o botão direito sobre o diretório src -> New -> File -> [Criar o arquivo <filename.dgen>] -> Ok, next, next...

Exemplo de um modelo em DGen:

datatype String
datatype Int
datatype Float
datatype Date

@All
entity Funcionario {
	nome: String
	idade: Int
	dtAdmissao: Date
}

@Create
@Read
@Update
entity Departamento {
	nome: String
	many funcionarios: Funcionario
}

@All
entity Empresa {
	nome: String
	many deptos: Departamento
}

Após criar o arquivo .dgen, identificando nele as entidades do projeto, o código será gerado na pasta src-gen.

Para executar a aplicação Django que foi gerada, devemos usar os seguintes comandos:

# Executar o script que criamos para instalar algumas dependências do projeto...
> ./scripts/init.sh

# Para entrar no env...
> cd src-gen
> source env/bin/activate 

# Para atualizar a estrutura do banco de dados...
> python manage.py makemigrations app 
> python manage.py migrate

# E finalmente, para executar o servidor...
> python manage.py runserver 

E por fim, a última consideração é que, o código gerado servirá como base para o programador começar a construir sua a aplicação, ou seja, eventualmente poderão ocorrer mudanças nas entidades (classes definidas no arquivo models.py). Quando houverem alterações na(s) classe(s) do projeto, pare de executar o servidor e rode os seguintes comandos para atualizar a estrutura do banco de dados.

python manage.py makemigrations app 
python manage.py migrate

Além disso, também criamos um script para facilitar a inicialização do servidor. Basta executar o comando:

> ./scripts/run.sh

About

Trabalho desenvolvido na disciplina Desenvolvimento Orientado a Modelos

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published