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
ondeistyyyyy
é vossa identidade IST.
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]:
- homepage [PDF]
- tutorial simples (HelloWorld)
- Tutorial detalhado, para quem nunca utilizou a FF (PhoneBook)
- tutorial simplificado, para utilizadores experientes na FF (PhoneBook)
- como começar a minha aplicação FF
- suporte para transacções
Domain Modeling Language [EN]:
- documentação base
- excerto da Tese de Doutoramento que introduziu a DML
- documentação avançada (e novos aspectos)