Anda di halaman 1dari 6

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E

TECNOLOGIA DO PIAUÍ
Curso: Análise e Desenvolvimento de Sistemas
Disciplina: Tópicos Especiais em Programação
Professor: Ely

Trabalho 02

1. Regras e observações gerais


I. O trabalho pode ser feito em equipes de até três integrantes;
II. A qualquer momento, podem ser enviadas, para o e-mail pessoal do professor,
dúvidas com relação ao trabalho;
III. Qualquer etapa do trabalho deve ser orientada pelo sentimento de progresso
intelectual e moral, visando não só contribuir com a sua formação, mas também
com a dos demais envolvidos no seu ambiente de estudo;
IV. O trabalho deve ser enviado para o e-mail elydasilvamiranda@gmail.com até as
23:59 do dia 08/06 com os arquivos necessários: projeto compatível com o plugin
ADT, projeto Web, script SQL e relatório técnico de implementação;
a. Os alunos que usarem arquivos que gerem um grande tamanho dos
anexos devem atentar que as tentativas de anexar arquivos e enviar o
trabalho “de última hora” podem falhar;
b. Após o envio do e-mail, os alunos devem baixar os anexos e testá-los, pois
caso estejam corrompidos, não terão como ser avaliados implicando
desconsideração do trabalho.
c. Se necessário, envie também regras de configuração do projeto web.
V. Após a data/hora do item anterior, a nota final perderá 2,0 pontos por dia de
atraso, salvo motivo formalmente justificado pelos alunos;
VI. As aulas de 09/06 e 11/06 (das 8h às 10h: avisem a outros professores que já
há essa aula agendada) serão utilizadas para a exposição oral dos trabalhos:
a. Cada equipe terá direito a uma exposição de 20 minutos;
b. Haverá questionamentos do professor às equipes durante 10 minutos;
c. Os questionamentos serão específicos a cada membro e suas respostas
contarão para a atribuição de nota individual ao trabalho.
VII. Nos dias do item anterior, somente os alunos presentes receberão nota. Salvo
motivo formalmente justificado pelos ausentes;
VIII. Cabe aos alunos ter o trabalho previamente configurado em um computador
pessoal com acesso à Internet (se necessário) no dia de questionamentos;
IX. Qualquer problema, impedimento ou situação que comprometa o
desenvolvimento do trabalho deve ser notificado o quanto antes ao professor
para ponderações;
X. Caso situações citadas no item anterior sejam notificadas ao professor somente
às vésperas das datas supracitadas, fica reservada ao professor a possibilidade
de desconsiderar a argumentação;
XI. Quaisquer itens descritos ou eventualmente omissos nas regras e entrelinhas da
especificação desse trabalho devem ser analisados, entendidos, interpretados e
criticados pelo ponto de vista do aluno com bom senso e boa fé visando priorizar
a qualidade das implementações e não contrariar o disposto no item III.
XII. Quaisquer cópias parciais ou totais identificadas nos trabalhos acarretarão a
anulação dos trabalhos e atribuição do conceito zero aos alunos envolvidos.
2. Descrição geral do trabalho

Projete e implemente uma aplicação que tenha duas partes:


• Módulo Web;
• Módulo cliente com Android.
A aplicação Web não precisa ser rica em funcionalidades, mas deve permitir
que a aplicação cliente se comunique e solicite operações como:
• Autenticação e autorização de usuários
• Consulta e atualização de dados existentes.
• Consultar por atualizações importantes que gerarão notificações,
atualizações ou simplesmente interação com o usuário.

3. Áreas de aplicação

Como sugestões, o projeto pode ter como foco uma das áreas chave:
• Ajuda humanitária alertas, denúncias, agregador de doações, socorro...;
• Saúde e cuidados pessoais: aplicações de e-care, lembretes de medicação,
compromissos, prontuário eletrônico, controle de peso ou de desempenho
físico, cuidados com idosos...;
• Educação: aplicativos para crianças, portadores de deficiências...;
• Notícias e comunicações: guias turísticos, culturais, leitores de feeds,
jornais, notícias, informações sobre clima e tempo...;
• Produtividade pessoal: agenda de compromissos, técnicas de
produtividade. Ex: pomodoro, ZTD, GTD.
• Redes sociais: de eventos, de mensagens, integração com redes existentes
ou novas...;
• Jogos: apostas online, jogos de competição a partir de 2 jogadores...;
• Sistemas de Reputação: avaliação de produtos, de sites, de profissionais...;

Devem-se priorizar a originalidade e autenticidade na medida do possível, mas


podem ter por base, desde que citados as fontes, algum dos projetos do site abaixo:
http://code.google.com/intl/pt-BR/android/adc/ (no menu à direita estão as principais
categorias)

4. Da carga de implementação (ideal e viável)

Na aplicação Web, não são necessárias grandes esforços, apenas o que for
apresentado no próximo tópico.
No cliente, analisar e documentar duas situações são essenciais:
• A ideal: como seria a aplicação caso o tempo disponível fosse suficiente;
• A viável: um conjunto de no mínimo 4 funcionalidades a serem
implementadas retiradas da situação ideal (além da funcionalidade de
autenticação).
Essas funcionalidades viáveis podem ser definidas com em conjunto com o
professor em conversas informais ou por e-mail.

5. Aplicação Web

A aplicação Web deve ser desenvolvida em Java e, por questões de tempo,


deve servir apenas para acesso aos dados. Se houver disponibilidade, cadastros mais
básicos para alimentação do sistema podem ser providos.
A aplicação deve disponibilizar, através de algum mecanismo de persistência
física os dados a serem consultados e/ou alterados.

6. Comunicação entre cliente e servidor


A forma de comunicação é livre podendo ser sockets, HTTP, REST e ou Web
Services etc.
No entanto, a camada de conexão deve ser abstraída através de uma interface
a ser usada pelo cliente (algo parecido com o padrão DAO) de forma que, caso a
equipe deseje mudar a tecnologia utilizada, ela possa ser trocada.
Ex: em um primeiro momento, o uso de sockets era uma ótima solução, no
entanto, descobriu-se que o uso de HTTP seria bem mais produtivo.
A estratégia de consulta e atualização deve estar descrita no trabalho e suas
características bem definidas antes do projeto começar a ser implementado: on line,
sincronizada, em lote, por demanda...
Dependendo da decisão, a equipe deve pensar previamente na possibilidade
de manter alguns dados que não mudam frequentemente no próprio cliente.

7. A aplicação cliente
Esse módulo é o principal e responsável por utilizar de acesso aos dados um
servidor conforme estratégia definida nos itens anteriores.
No entanto, relativamente ao Android, os conteúdos vistos em sala devem ser
utilizados:
• Activities e Intents;
• Componentes de UI adequados à cada situação;
• Acesso a dados do servidor web;
• Acesso a banco de dados locais ou arquivos(se necessário conforme item
aterior);
• Mapas e principalmente geo localização;
• Serviços, broadcast receivers, alarmes e notificações.
Apesar da alimentação dos dados poder ser feita apenas no banco
disponibilizado no servidor, deve ser possível atualizar alguns dados trazidos ou
gerados pela aplicação cliente.
No entanto, deve-se evitar telas que tenham mais de 2 campos texto e dar
preferência a caixas de marcação e componentes selecionáveis.
As funcionalidades da aplicação cliente não precisam ser complexas. Bastam
ser criativas e focar na usabilidade. Evitem, porém, funcionalidades supérfluas ou com
pouca aplicabilidade e pensem sempre na contribuição ao contexto em que ela está
envolvida.
Exemplo de atualizações: curtir, comentar brevemente, indicar um positivo ou
negativo, categorizar um ponto em um mapa, dar baixa em uma medicação em um
horário, sinalizar perigo/catástrofe, atualizar um status pessoal, fornecer um números
de palpite em um jogo, efetuar uma cotação, relatar um abuso...

8. Autenticação
Essa funcionalidade deve ser a última a ser desenvolvida e deve ser possível
que um cliente previamente cadastrado no servidor tenha acesso ao sistema.
Na tela de login, deve ser permitida a entrada usando-se um login e senha que
devem ser checados (com hash de segurança) com os existentes no servidor.
Para minimizar a entrada de dados, deve-se fornecer a opção de salvar
localmente as credenciais em um arquivo ou banco, desde que criptografados. Deve
haver também a possibilidade de reativar o pedido de login e senha novamente.

9. Demais dicas

• Procurem testar a aplicação em mais de uma resolução e também testando


os modos horizontal e vertical (CTRL + F12);
• Procurem ser criativos e implementem soluções não-triviais que possam ser
transformadas em um modelo de negócio num futuro próximo;
• Idéias não precisam ser complexas para ser criativas

10. Documentação

Deve ser entregue, junto com o sistema, um relatório técnico sobre o projeto
em formato PDF. Não devem ser adotadas normas rígidas como ABNT, mas o devem
ser redigidos de forma breve os seguintes itens:

1. Apresentação e objetivos
Uma breve descrição do trabalho e seus objetivos relevantes

2. Atribuições dos membros da equipe


O que cada membro fez no projeto. Atribuam uma nota variando de 0 a 100
para o esforço de cada membro e justifique. A não atribuição gerará a perda
pontos

3. Cenário e funcionalidades ideais do sistema

Descrever o que a equipe concebeu como o ideal para um projeto de médio


prazo.

4. Funcionamento implementadas do sistema


Narrar todas as possibilidades de uso do sistema bem como ilustração (prints)
das telas. Essas funcionalidades são as viáveis escolhidas(justificar a escolha) do
cenário ideal.
Deve-se especificar também pelo menos duas resoluções em que o sistema
funcione (na posição horizontal e vertical)

5. Arquitetura do sistema

Uma breve descrição e ilustração de como funciona a arquitetura do cliente e


servidor evidenciando as funcionalidades propostas, bem como a forma de
atualização e sincronização dos dados.

6. Análise de usabilidade
Devem ser descritos critérios de usabilidade que foram considerados ou não.
Ex: foi utilizado o clique na tela para capturar informações para evitar que o usuário
realizasse muitos cliques em botões.
Também devem ser descritos fatores que foram limitantes na prototipagem.

7. Outros pontos relevantes


Descrever que outros pontos relevantes da implementação são relevantes de
serem comentados e não foram listados antes. Ex: foi simulado um clique longo
utilizando o evento XXYY, coisa que não é implementado na API.

8. Contribuições no aprendizado e dificuldades encontradas


Elencar conhecimentos e experiências adquiridas na execução do trabalho
bem como descrever que fatores foram limitantes no aprendizado e na execução
do trabalho.

9. Sugestões e críticas ao trabalho


Citar sugestões e dicas que permitam ao professor reavaliar a natureza,
complexidade e funcionalidades propostas no trabalho. Sugira ideias e justifique.

10. Referências
Citar fontes de consulta em livros, apostilas e sites da WEB
Notas:
• A partir desse trabalho, as ideias poderão ser refinadas e algumas poderão ser
formatadas para serem apresentadas em duas palestras a serem realizadas
em breve;
• Também poderão ser transformadas em artigos a serem enviados pelos
membros à revista WebMobile Magazine ou workshops de ferramentas.

11. Pontuação e avaliação


• Sistema:
o Aplicação Web: 1,5
o Cliente Android: 5,0
o Criatividade: 2,0
• Relatório: 1,5
Poderá também ser usado o critério comparativo entre os trabalhos, onde o
melhor receberá 10,0 e os demais receberem uma pontuação relativa.
Conforme observado anteriormente, os alunos também serão questionados e
avaliados individualmente. Respostas com falta de segurança ou desconhecimento da
implementação, seguidas ou não de desculpas como “essa parte não fui eu que fiz”
contarão negativamente para a avaliação individual.
O trabalho possivelmente poderá ser avaliado, além do professor, por outro
professor convidado mediante disponibilidade de tempo.

Bom trabalho!