You are here

EA872: Aula 12

Roteiro do Projeto

Introdução

Nas próximas 4 aulas, será desenvolvido o projeto final do curso, que comporá 55% da nota final da disciplina. Esse projeto nada mais é do que a integração das diversas partes do servidor Web, sua instalação e teste na placa i.MX53 QSB da Freescale, acompanhado da documentação de projeto. A apresentação do projeto constará de duas partes fundamentais:

  • envio do relatório com toda a documentação do software
  • entrevista individual de avaliação, que constará da demonstração do funcionamento do software instalado no kit i.MX53, por meio de uma sequência de testes padronizada e uma arguição sobre os detalhes do funcionamento e questões pertinentes ao curso

Veja os detalhes de como o processo de avaliação funcionará a seguir.

Funcionalidades esperadas na versão final do servidor Web

Espera-se que o servidor tenha todos os recursos que foram especificados durante as atividades do semestre. Alguns destes recursos são:

  • obtenção das requisições do navegador (browser) via rede (sockets);
  • passagem direta dos dados do socket para os analisadores léxico e sintático (isto é, sem o uso de arquivos intermediários);
  • análise léxica e sintática das requisições por meio de código gerado pelas ferramentas lex (ou flex) e yacc (ou bison);
  • processamento de pelo menos 5 comandos do protocolo HTTP : GET, HEAD, OPTIONS, POST e TRACE;
  • apresentação para o navegador de páginas com mensagens de erro adequadas para os diversos tipos de erro que podem surgir após o recebimento de uma requisição;
  • confinamento do espaço de atuação do servidor à área definida como webspace;
  • uso eficiente de concorrência para permitir o atendimento de várias requisições simultaneamente: criação, sob demanda, de um número arbitrário de threads para atender várias requisições de uma vez;
  • uso de mecanismos de autenticação.
  • indicação visual (por meio de leds) no hardware da placa i.MX53 informando que o servidor está operacional.

Estes recursos estão aqui relacionados apenas como ponto de partida. Há outros, mais detalhados, que foram especificados no decorrer das atividades e outros opcionais que não foram exigidos, mas que o aluno pode inserir no seu servidor como um serviço extra.

  • Funcionalidades extras poderão ser contempladas com pontuações extras que dependerão do nível de complexidade e da qualidade da implementação.

Sobre o relatório final

O relatório final terá duas partes.

PARTE I: documentação com os seguintes itens obrigatórios:

  • (A) descrição do sistema (objetivos, especificações, o que foi efetivamente implementado e o que faltou, formas de uso);
  • (B) estrutura do sistema (blocos que compõem o sistema e diagrama do fluxo de dados pelos mesmos);
    • OBS: o diagrama não precisa ser detalhado a ponto de descrever cada instrução do programa, mas deve ter detalhes suficientes que permitam a visualização dos principais blocos e funções que compõem o servidor e o relacionamento entre eles;
  • (C) estrutura do webspace usado para testes, mostrando árvore de diretórios, permissões e conteúdo dos arquivos;
  • (D) casos de teste (como o sistema foi testado, casos submetidos para teste e seus resultados); estes testes devem ser completos e mostrar cada funcionalidade do servidor e cada tipo de erro que ele pode tratar, não deixando nenhuma funcionalidade sem ser demonstrada;
  • (E) limitações da implementação feita;
  • (F) possíveis trabalhos futuros de melhoria do sistema;
  • (G) comentários, críticas e sugestões do aluno sobre o sistema desenvolvido e sobre a disciplina de um modo geral.

PARTE II: código fonte:

  • código fonte completo.

OBS: Entregas da documentação após o horário definido terão uma penalização de dois (2) pontos para cada 24 horas de atraso.

Sobre a Entrevista

  • A entrevista ocorrerá no laboratório LE-27.
  • A entrevista consistirá de demonstração do servidor desenvolvido durante o semestre e de questões sobre os detalhes da implementação, em especial sobre aqueles relacionados a sistemas operacionais e construção de parsers/compiladores.
    • Cada aluno terá 30 minutos para fazer sua entrevista. O horário deverá ser rigidamente respeitado, sob pena da entrevista não ser realizada.
    • Os horários poderão ser trocados entre alunos, desde que os envolvidos comuniquem ao professor com antecedência.
    • Recomenda-se aos alunos prepararem a demonstração com antecedência, pois não haverá segunda chance em caso de falha do programa ou de falta do aluno.
    • No início da demonstração será compilado e executado o código-fonte enviado previamente pelo aluno.

Agendamento de Entrevistas

Atenção:

  • As entrevistas devem ser agendadas respeitando-se os horários disponíveis na agenda do professor. Um horário estará agendado somente depois que o professor confirmar a aceitação do horário proposto pelo aluno. Ao agendar um horário, tome cuidado para fazer com que o agendamento apareça adequadamente na agenda do professor como horário ocupado, para evitar que outro aluno marque o mesmo horário, sem perceber. Após o agendamento, verifique se o horário aparece como ocupado na agenda do professor imediatamente. Caso não apareça, entre imediatamente em contato, para verificar qual o erro no processo de agendamento. 
  • Os alunos poderão fazer trocas de horários entre si desde que comuniquem o professor com antecedência.
  • Independentemente do dia/horário da entrevista, o relatório final deverá ser entregue (em papel) 48 horas antes do horário marcado.
  • O aluno deverá submeter o código final (contendo o servidor HTTP) compactado no formato zip através deste LINK.
  • A data limite para a entrevista é 29/11.

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer