Projeto
Desenvolvimento de Aplicações Corporativas Avançadas
Como projeto de disciplina, você deve desenvolver uma aplicação completa J2EE com
interface Web. O projeto é um sistema de controle de biblioteca,
descrito abaixo.
Forme equipes de até 3 participantes. Atribua papeis a cada um (alguém tem que fazer
tracking, manter código, ser gerente de projeto, migrar bancos de dados da Miniblio,
etc.). Lembre que
alguém do seu time terá que assumir a posição de cliente.
Há duas alternativas para o projeto:
- Você pode fazer uma versão reduzida do sistema, mas implementar o
sistema várias vezes, usando tecnologias diferentes. Essa é a alternativa
que você deve escolher se não tiver muito conhecimento de J2EE. Você vai
aprender mais. Você vai fazer 5 versões do mesmo sistema:
- Usando Servlets (sem segurança ou controle de transações)
- Usando JSP (sem segurança ou controle de transações)
- Usando Struts (sem segurança ou controle de transações)
- Usando EJB-CMP (sem segurança ou controle de transações)
- Com controle de transações e segurança
- Se você já conhece alguma coisa de J2EE, você pode fazer um sistema
mais completo (não precisa ter toda a funcionalidade). Você deverá
usar Struts e EJB-CMP. Aspectos de transações e de segurança só precisam
ser implementados no último milestone. Nesta alternativa, você deve entrar
em produção. Isto é, quero que a Miniblio (com todos os dados migrados)
seja informatizada com este sistema. Se escolher esta alternativa, você
deverá escolher milestones (pelo menos 1 por mês), fazer um cronograma e
ter aprovação do professor. Isso deve ser feito na primeira semana de
aulas. Não esqueça da migração dos dados da Miniblio. Seria ótimo se
houvesse 5 milestones pois me ajudará a manter as notas dos alunos. Se
tiver tempo, no final, poderia publicar o serviço como Web Service usando o
WSDP da Sun. Aí estarão fazendo algo realmente estado da arte. Porém, só
escolha esta alternativa se já tiver bom conhecimento de J2EE.
Estou esperando que a maioria dos alunos escolherá a alternativa 1. Espero
também que haja pelo menos uma turma com a alternativa 2. Não há pontos
adicionais dados por escolher qualquer uma das alternativas.
Milestones (Alternativa 1)
- Cada milestone consiste da entrega da última versão do seu sistema.
- Há 5 milestones, um para cada versão
- Entregue o material obedecendo o seguinte:
- use um unico zip
- tudo deve cair no lugar certo ao deszipar
- posso deszipar em qualquer diretório que eu quiser na minha maquina
- use apenas nomes de arquivos relativos
- a construção da aplicação deve ser feita com ant/deploytool
- entregue instruções para a composição e deployment da aplicação
- qualquer script adicional deve estar na raiz do zip
- não esqueça dos testes de unidade!
- Forneça também um link para que eu veja o sistema executando.
- Eu mesmo poderei fazer um deployment durante a correção. Tenha portanto
todos os arquivos war, jar, ear, construídos pelo ant.
Algumas observações
- Faça todo o código em inglês. Isso deixa sua aplicação mais
fácil de levar para outros países. Mensagens devem aparecer em inglês e português dependendo das preferências do browser
do cliente.
- Tenha certeza que seu business logic funcione o máximo possível fora
de um ambiente Web
- Você pode rodar seu sistema usando o servidor J2EE fornecido no SDk J2EE.
Ele inclui um banco de dados
- É possível que seja fornecido um outro ambiente para desenvolvimento
no servidor anjinho usando JBoss e PostgreSQL. Verifique com o
professor.
- Use ant. Produza arquivos war, jar, ear, etc. com ant
- Se tiver tempo, um relatório em formato PDF poderia ser produzido para
você ver como´isso pode ser feito (lembre que relatório em HTML
frequentemente não são aceitáveis em certos sistemas). Use http://xml.apache.org/fop
Correção dos projetos
Execução |
Tratamento
de erro |
Separação de business
logic |
Instruções de composição
e deployment |
Javadoc |
Testes de unidade |
Arquivos .war/.ear |
Internacionalização |
40% |
10% |
10% |
5% |
10% |
15% |
5% |
5% |
Sistema de Controle de Biblioteca
Aqui estão os Use Cases e o Modelo
de Análise que um aluno fez no passado. Não sei se a informação está completa ou
boa, mas é um ponto de partida. Deve haver login para as operações críticas (que
afetam os dados do banco de dados), embora consultas possam ser feitas por qualquer
pessoa.
Para quem não pode ler os arquivos acima (usando Rational Rose), aqui está a mesma informação em html.
Para quem está fazendo a alternativa 1 do projeto, só implemente 4 Use
Cases:
- Consultar Obras
- Emprestar Item
- Devolver Item
- Manter Cadastro Obras
Não há cadastro de cliente e cada obra tem um único item (exemplar).
Portanto, "Obra" e "Item" são equivalentes.