Objectivos

Introdução à Fénix Framework para a modelação e geração automática de modelos de domínio persistentes e transaccionais.

Exercício

Pretende-se desenvolver uma aplicação para a gestão de voos de companhias aéreas. Esta aplicação deve permitir a definição de companhias aéreas, de novos voos, operados por uma dada companhia aérea e guardar toda a informação em suporte persistente através da Fénix Framework.

Um voo tem sempre associado um número (único no contexto da companhia aérea que o gere), um aeroporto de origem e outro de destino, bem como a hora de partida (hh:mm). Existe ainda a restrição de os aeroportos de origem e destino terem de ser obrigatoriamente distintos.
Um aeroporto é identificado quer pelo seu código IATA, quer pelo seu  código ICAO. O aeroporto está instalado numa dada cidade e tem associado um custo de utilização por voo. O código IATA e ICAO de um aeroporto são únicos dentro do contexto da aplicação de gestão de companhias aéreas, ou seja, não podem existir dois aeroportos com o mesmo código IATA ou ICAO dentro da mesma aplicação.
Por fim, uma companhia aérea tem um nome e um código IATA próprio, únicos na aplicação 
de gestão de companhias aéreas.

Desenvolva um protótipo de uma aplicação de consola que (1) cria a companhia aérea portuguesa "TAP Portugal", (2) define os seguintes voos, e (3) os apresenta na consola:

Número Origem Destino Partida
1951 Porto Lisboa 06:50
1988 Lisboa Porto 21:55
0651 Amsterdão Porto 14:20
0660 Lisboa Amsterdão 14:05

A apresentação de um voo deve obedecer ao seguinte formato:

<código companhia aérea> <número de voo> : <cidade origem> (<código IATA>), <cidade destino> (<código IATA>), <hora>

Para desenvolver esta aplicação, os alunos devem usar como ponto de partida o template de projecto para o Eclipse e as mesmas bibliotecas disponibilizadas para a aplicação PhoneBook.

Solução: a disponibilizar

Procedimento:

Exemplos

Exemplo de aplicações desenvolvidas com a Fénix Framework (FF):

  • PhoneBook
    • Tutorial que explica detalhadamente o desenvolvimento da aplicação PhoneBook utilizando a FF.
    • Template com as definições necessárias para o desenvolvimento de um projecto no Eclipse,
      incluindo um ficheiro build.xml preparado para compilar e executar aplicações FF.
    • As bibliotecas necessárias para se poder compilar e correr uma aplicação FF estão guardadas num repositório svn.
      Estas podem ser obtidas através do seguinte comando:
      • svn co svn+ssh://istyyyyy@sigma.ist.utl.pt/afs/ist.utl.pt/groups/leic-es/svn/ESSD/lib/trunk lib
        onde istyyyyy é vossa identidade IST. 
      Nota: 
      a directoria que contém estas bibliotecas deve estar ao mesmo nível que a directoria que contém o código da aplicação.
    • O código da aplicação phonebook-domain.
      Nota: 
      antes de consultarem esta solução, os alunos devem tentar primeiro desenvolver por eles próprios uma solução e, só depois, comparar o resultado obtido com a solução proposta.
  • HelloWorld
    • Tutorial introdutório disponível no website da Fénix Framework.

Documentação adicional:

Fénix Framework [EN]:

Domain Modeling Language [EN]:

Attachments